.NET Package Management: NuGet and Beyond
Package: code you want in your project
Registry: public repository of packages
Package Manager: gets the stuff for you and puts it in your project
You have used one of these...
Web Platform Installer
apt-get (Debian, Ubuntu)
Homebrew (Mac OS X)
ASP.NET Adoption of Web Tooling and OSS
2007: MVC (Rails)
2010 NuGet (Ruby gems)
Node, NPM, Bower, Grunt/Gulp
Good artists copy. Great artists steal.
- Steve Jobs
Part of Visual Studio
Package Manager Console
Package Manager Dialog
Can deliver front/back end components
Best for .NET Components
Adding a NuGet Package
Package contents downloaded to packages folder
References added to binaries
Support files added to project
Web.config parameters added
(and a little choco)
We Have Issues
NuGet works great for .NET binaries
Not so good for front-end components
Files get added to project inconsistently
We need more control!
Requires Node, npm, git
Can be used in alongside Nuget
Can be used as a harness to run front end utilities like bower, grunt, gulp, yeoman, etc.
Install on Win or Mac using an install executable/dmg
OR install with Chocolatey
Node Package Manager
Use it to install software that "runs in" Node.js
Even if not using Node.js for your project you use NPM to manage your "tooling" to build your project
Installs packages in your project
Front-end Assets like JS, CSS, Fonts
Uses public registry like NuGet except WAY more packages/projects available
Gets source from github repos
Bower + Gulp
Manage the versions of your front-end assets with Bower
Use Gulp to add your .js and .css <script> includes
Use Gulp for minification, combining scripts, running tests, cache busting!
Grunt is another alternative
Bower + Gulp Demo
The Future's So Bright...
ASP.NET 5 and VS 2015
Node, NPM, Bower, Grunt, Gulp
You're in control bro, rock on!
OMG. I'm in control. Bruh.
Channel 9 - Build 2015 Mads Kristensen - Modern Web Tooling in Visual Studio 2015