.NET Package Management: NuGet and Beyond
Rick Tuttle
@ricktuttle
Package Management
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...
Windows Update
Web Platform Installer
rpm (RedHat)
apt-get (Debian, Ubuntu)
Homebrew (Mac OS X)
App Store
ASP.NET Adoption of Web Tooling and OSS
2007: MVC (Rails)
2010 NuGet (Ruby gems)
Scaffolding
Node, NPM, Bower, Grunt/Gulp
Good artists copy. Great artists steal.
- Steve Jobs
NuGet
nuget.org
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
NuGet Demo
(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!
Bower
bower.io
Requires Node, npm, git
Can be used in alongside Nuget
Manage your javascript, css, font assets
Node.js
Server runtime built with Javascript
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
NPM
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
Bower
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
Manage versions
Flexible configuration
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.
Some References
John Papa - Pluralsight - Javascript Build Automation with Gulp
Channel 9 - Build 2015 Mads Kristensen - Modern Web Tooling in Visual Studio 2015
docs.asp.net
Questions?
Rick Tuttle
@ricktuttle
Made with Slides.com