Hot File

An Overview of the NuGet Ecosystem

View: 3461    Dowload: 0   Comment: 0   Post by: naruto  
Author: none   Category: Development Tools   Fields: none

9 point/8 review File has been tested

NuGet is a free, open source package management system for .NET and consists out of a few client tools (NuGet Command Line and NuGet Visual Studio Extension) and the official NuGet Gallery hosted at http://www.nuget.org/. Combined, these tools and the gallery form the NuGet project, governed by Outercurve Foundation and part of the ASP.NET Open Source Gallery. Although fully open source, Microsoft has extensively contributed to the development of the NuGet project. First introduced in 2010, NuGet has been around for a few years now and many people and organizations are beginning to realize that NuGet presents a great opportunity to improve and automate parts of their development processes. Whether you work on open source projects or in an enterprise environment, NuGet is here to stay, but you have a way bigger NuGet ecosystem at your disposal today.

Introduction

This article talks about the NuGet ecosystem. If you are new to NuGet or need practical guidance on how to use NuGet, then I highly recommend you to read through the NuGet documentation or buy the book Pro NuGet for a full reference, tips and tricks.

Training Materials

Using a new tool or technology usually comes with a learning curve. Luckily for you, NuGet has no steap learning curve it all! In fact, anyone can get started consuming packages in no time. Authoring packages however, and especially authoring good packages, as well as embracing NuGet in your automated build and deployment processes requires some research in order to get things right.

The following pointers should help you get the maximum out of NuGet:

The NuGet ecosystem

Because the NuGet project is open source under a permissive Apache v2 license, other projects can leverage NuGet and companies can build support for it in their products. All of them extend the NuGet ecosystem to what it is today, containing:

 


Outercurve Foundation

The sources for the Outercurve NuGet clients can be found on Codeplex, while the NuGet Gallery sources  are available on GitHub.

The Outercurve tools for NuGet include:

  • NuGet Core project
    • Download: sources (Codeplex) or NuGet package
    • License: Apache v2
    • Most NuGet client tools are based on the cross-platform NuGet.Core project. If you want to build your own NuGet client, you're best bet is to fetch the NuGet.Core project's sources from Codeplex, or to run the following command in the NuGet Package Manager Console:
Install-Package NuGet.Core

If you want to setup your own NuGet server using the tools provided by the Outercurve Foundation, you can do so using any of the following methods:

  • To create a basic NuGet server and point it to a local folder or network share, create a new ASP.NET application and run the following command in the Package Manager Console:

Install-Package NuGet.Server
    • Benefits:
      • requires minimal infrastructure (IIS and some diskspace)
      • requires .NET Framework 4.0
    • Drawbacks:
      • non-indexed storage (slower as repository-size increases)
      • single API key for entire server
      • no fine-grained security
      • single NuGet feed per NuGet.Server application
  • To set up your own NuGet Gallery, fetch the sources from GitHub and follow the instructions at https://github.com/NuGet/NuGetGallery.
    • Benefits:
      • indexed storage (faster querying)
      • basic user system (authentication, API-key per user, manage own packages, emails)
      • supports SSL
    • Drawbacks:
      • requires proper infrastructure (IIS, SqlServer)
      • requires .NET Framework 4.5 (I consider this a drawback due to the fact that .NET 4.5 is an in-place upgrade)
      • requires you to fetch the sources, compile everything and configure quite a lot in source code and configuration files (and repeat this step if you want to upgrade to a newer version)
      • there's a NuGet Gallery Operations Toolkit, but it's not designed nor intended to work with every NuGetGallery installation

 


Microsoft

The following NuGet clients are being shipped as part of Microsoft products and available as extensions on each product's extension gallery:

 


NuGet Package Explorer

One of the developers of the core NuGet team at Microsoft created a great graphical tool to work with NuGet packages. It allows you to very easily create, publish, download and inspect NuGet packages and their metadata.

 


MyGet (or NuGet-as-a-Service)

MyGet is a NuGet server that allows you to create and host your own NuGet feeds. It is hosted on Windows Azure and has a freemium offering, meaning you can use it for free (within the constrains of the free plan) or subscribe to one of the paying plans if you require more resources or features. More info at https://www.myget.org.

  • Availability and history: http://status.myget.org.
  • Documentation: http://docs.myget.org.
  • Twitter: https://twitter.com/mygetteam
  • JabbR: https://jabbr.net/#/rooms/myget
  • Provides:
    • requires no infrastructure
    • allows you to get started in a few clicks and focus on the packages instead of the server
    • fully compatible with all NuGet client tools
    • free software updates (including support for to the latest NuGet version)
    • free for open source projects (meeting criteria and within allowed quota)
    • publish and promote your feed in the public gallery
    • supports NuGet Feed Discovery and Package Source Discovery
    • extended feed functionality
      • SSL-by-default
      • feed visibility (public, readonly or private)
      • activity streams
      • strict SemVer validation for packages being pushed
      • upload packages directly in the browser
      • add packages from another feed (upstream package source)
      • upstream package source presets for nuget.org (including webmatrix and other curated feeds), chocolatey, teamcity, etc
      • filter upstream package sources
      • mirror upstream package sources
      • package promotion to an upstream package source
      • (automatic or manual) package mirroring
      • RSS
      • package retention rules
      • download entire feeds as ZIP archives for backup purposes
      • download packages from the web (without the need for nuget client tools)
      • integration with symbolsource (shared credentials and feed/repository security settings)
      • multiple endpoints, including the v1-compatible endpoint (e.g. you can use the feed as a custom Orchard Gallery feed)  
    • granular security
      • API key per user
      • user-roles on feeds (owner, co-owner, contributor, reader)
      • user management (enterprise plan)
      • quota management (enterprise plan)
      • web site authentication using on-premise ADFS (enterprise plan)
      • web site authentication using prefered identity providers: Live ID, Google, GitHub, StackOverflow, etc (enterprise plan)
    • build services
      • creates the NuGet and symbols packages for you
      • customizable automatic-versioning and assembly version patching
      • auto-trigger builds for CodePlex, BitBucket or GitHub commits
      • support for many unit testing frameworks
      • support for many SDKs (including windows phone)
      • build failure notifications through email and downloadable build logs
    • custom logo and domain name (enterprise plan)

 


Chocolatey 

Chocolatey.org is a system-level package manager for Windows based on NuGet, allowing you to search and install software components on your system, even unattended. Looks very promising and definitely something to keep an eye on!

 


OctopusDeploy

OctopusDeploy is a convention-based automated deployment solution using NuGet as a protocol. You can use the Community edition for free (limited to 1 project) or buy one of the paying editions.

  • Documentation: http://octopusdeploy.com/documentation
  • Blog: http://octopusdeploy.com/blog
  • Twitter: https://twitter.com/OctopusDeploy
  • Provides:
    • Deployment dashboard
    • Scalability through lightweight service agents (tentacles)
    • Deployment promotion between environments
    • Support for PowerShell scripts
    • Support for manual interventions
    • Support for XML configuration transforms and variables
    • Support for Windows Azure web and worker roles
    • Support for (S)FTP
    • Has a TeamCity plug-in
    • Has a Command Line (octo.exe)
    • Has a REST API
    • Fine-grained user permissions
    • Retention policies
    • Automation of common tasks for ASP.NET deployments (IIS configuration) and Windows Services

Deployment Manager (RedGate) 

RedGate's Deployment Manager is a custom fork of the OctopusDeploy project. History separates shortly after v1.0 of OctopusDeploy, as explained in this post

More info:  http://www.red-gate.com/delivery/deployment-manager/

 


SymbolSource

SymbolSource is a hosted symbolserver that integrates with NuGet and is configurable in Visual Studio, allowing you to debug NuGet packages by downloading the symbols and sources on-demand.

 


CoApp

The CoApp project originally aimed to create a vibrant Open Source ecosystem on Windows by providing the technologies needed to build a complete community-driven Package Management System, along with tools to enable developers to take advantage of features of the Windows platform. 

The project has pivoted to mesh with the NuGet project and the collaborative result is visible in NuGet 2.5 where support for native packages was first introduced. The CoApp project is still building additional tools to enhance C/C++ support in NuGet. 

 

 


ProGet (Inedo)

ProGet is an on-premise NuGet server with a freemium model that also provides integration with the Inedo BuildMaster product.

  • Documentation: http://inedo.com/support/documentation/table-of-contents
  • Twitter: http://twitter.com/inedo
  • Provides:
    • Compatibility with all NuGet client tools
    • Custom proget.exe client tool
    • Connectors to other NuGet feeds
    • Connector filters
    • Support for multiple feeds
    • Support for private feeds
    • License filtering
    • Download feeds and packages
    • LDAP authentication to the ProGet web application
    • Upload packages to the ProGet web application
    • integrated symbols and source server
    • SDK and API
    • Supports OData
    • Supports NuGet Feed Discovery and NuSpec Extensions

 


BoxStarter 

 

BoxStarter is another cool project leveraging NuGet and Chocolatey to quickly set up development environments. 

 

 

 


 

Other IDE support for NuGet

SharpDevelop 

SharpDevelop was amongst the first IDEs other than Visual Studio to support NuGet.

More info: http://community.sharpdevelop.net/blogs/mattward/archive/2011/01/23/NuGetSupportInSharpDevelop.aspx

Xamarin and MonoDevelop

Xamarin Studio and MonoDevelop also have a NuGet extension, built on top of a custom build of the NuGet.Core.dll and a custom build of Microsoft's XML Document Transformation (XDT) library.

More info: https://github.com/mrward/monodevelop-nuget-addin

ReSharper Plug-ins 

As of v8.0 of ReSharper,  the built-in extension manager allows you to fetch ReSharper plug-in packages from a custom NuGet Gallery hosted at https://resharper-plugins.jetbrains.com

 


 

Build Tools and Repository Managers

TeamCity

TeamCity has a few build steps specifically designed to deal with NuGet package consumption, creation and publication. In addition, it also comes with a built-in NuGet feed collecting all packages produced in your build artifacts.

More info: http://blogs.jetbrains.com/dotnet/2011/08/native-nuget-support-in-teamcity/

Artifactory

Artifactory is a repository manager with built-in support for various artifacts, including NuGet packages.

More info: http://www.jfrog.com/confluence/display/RTF/NuGet+Repositories

Sonatype Nexus

Nexus is another repository manager with built-in support for NuGet and they even provide a "What is NuGet for Java Developers" on their blog.

More info: http://books.sonatype.com/nexus-book/reference/nuget.html

 


Other NuGet-based utilities

There are quite a few other tools and utilities building further on top of NuGet. Here's a list of what I've found interesting:  

An Overview of the NuGet Ecosystem

An Overview of the NuGet Ecosystem Posted on 13-05-2014  NuGet is a free, open source package management system for .NET and consists out of a few client tools (NuGet Command Line and NuGet Visual Studio Extension) and the official NuGet Gallery hosted at http://www.nuget.org/. Combined, these tools and the gallery form the NuGet project, governed by Outercurve Foundation and part of the ASP.NET Open Source Gallery. Although fully open source, Microsoft has extensively contributed to the development of the NuGet project. First introduced in 2010, NuGet has been around for a few years now and many people and organizations are beginning to realize that NuGet presents a great opportunity to improve and automate parts of their development processes. Whether you work on open source projects or in an enterprise environment, NuGet is here to stay, but you have a way bigger NuGet ecosystem at your disposal today. 1.125/10 3461

Comment:

To comment you must be logged in members.

Files with category

  • Changes in Programmer Tools' Infrastructure

    View: 3021    Download: 0   Comment: 0   Author: none  

    Changes in Programmer Tools' Infrastructure

    Category: Development Tools
    Fields: Other

    0.75/6 review
    The article describes some observations concerning changes in the infrastructure of tools used by programmers in everyday work. First of all, these changes are related to the release of Visual Studio 2010.

  • An Overview of the NuGet Ecosystem

    View: 3461    Download: 0   Comment: 0   Author: none  

    An Overview of the NuGet Ecosystem

    Category: Development Tools
    Fields: none

    0.5625/8 review
    NuGet is a free, open source package management system for .NET and consists out of a few client tools (NuGet Command Line and NuGet Visual Studio Extension) and the official NuGet Gallery hosted at http://www.nuget.org/. Combined, these tools and...

  • Folder Listener: A Tool to Watch File System Activity in any Folder

    View: 3200    Download: 5   Comment: 0   Author: none  

    Folder Listener: A Tool to Watch File System Activity in any Folder

    Category: Development Tools
    Fields: none

    1.5/3 review
    Most of the time when you are doing some development or testing, you might need to know what changes are made in a particular folder. This requirement frequently arises when you are testing /developing software that copies /delete files in the...

  • Generating synchronous method stubs from asynchronous method pairs

    View: 2824    Download: 0   Comment: 0   Author: none  

    Generating synchronous method stubs from asynchronous method pairs

    Category: Development Tools
    Fields: Other

    0/4 review
    During the development of a GSM Modem API, I found I was repeating a lot of code for encapsulating the synchronous versions of asynchronous method templates. The common pattern for such code implements asynchronous methods with the same name as the...

  • How to Minify js and CSS file using Visual Studio 2012

    View: 1805    Download: 0   Comment: 0   Author: none  

    How to Minify js and CSS file using Visual Studio 2012

    Category: Development Tools
    Fields: Other

    1.125/4 review
    In my previous article I have talked about what is Microsoft’s Web Optimization Framework and how to use this framework in Asp.net web form application. There are two pillars of this framework bundling and minification. So this framework...

  • A New Approach to Designing Web Applications

    View: 3758    Download: 0   Comment: 0   Author: none  

    A New Approach to Designing Web Applications

    Category: Development Tools
    Fields: Other

    0/8 review
    With all the hay being made about UML modeling, you'd think that was the only way to design an application. I've got news for you. It's the wrong approach. Now, before you flame me for my heresy, read the rest of this paragraph. Much like the 60%...

  • How to install SNMP extension agent DLL

    View: 2158    Download: 0   Comment: 0   Author: none  

    How to install SNMP extension agent DLL

    Category: Development Tools
    Fields: none

    0/20 review
    This tutorial is the second part of my previous article "How to develop a SNMP extension agent DLL". Here I shall explain how to install the developed SNMP extension agent DLL in Windows 2000. This agent DLL is from the previous part of this...

  • The Web Developer Checklist : A One-Stop-Shop for Improving the Web

    View: 2639    Download: 0   Comment: 0   Author: none  

    The Web Developer Checklist : A One-Stop-Shop for Improving the Web

    Category: Development Tools
    Fields: Education - Schools

    0/1 review
    I’ve been searching for some time for a single resource that I could go to check a variety of best-practices and methods of improving the performance of my sites and applications and I can now mark that off of my list.

 
Newsletter Email

File suggestion for you

File top downloads

logo codetitle
Codetitle.com - library source code to share, download the file to the community
Copyright © 2015. All rights reserved. codetitle.com Develope by Vinagon .Ltd