So I’ve been doing some browsing around my various Social Media feeds and saw a tweet about the drama surrounding a Pull Request for the Nuget Repository Website to add a tab for how to get a package through Paket. This is evidently big stuff for Microsoft and the makers of Paket alike.  But that’s neither here-nor-there.  What I’m getting at is that after reading about Paket, I’ve decided to switch to it. 

Why would I do such a thing?  Isn’t nuget the bomb?

Yes, nuget is quite awesome.  However, the one thing that sucks about it is the lack of support for intelligently figuring out what to include in your nuget files.  With plain-old-nuget, you have to manage all aspects of your nuspec file yourself, including what files are included and where they go.  To overcome this limitation I’ve been using a nuget package called OctoPack.  OctoPack is pretty cool.  It will figure out the files that need to be included for your project and dutifully include them in your nuget file.  It also includes a MS-Build task for creating the Nuget package upon building your project.

Unfortunately, OctoPack has some limitations.  If you let it figure out what to package, it only puts those files into the root folder of your target location.  This may be fine for an application being deployed through Octopus Deploy, but it is no good for nuget packages heading for a repository for further consumption.  To get it to put the correct files in the correct places, you still need to specify the files location in the nuspec file.  Sad smile

So, when I read about Paket I got really excited.  Paket has the ability to not only know what files to include, but since it’s targeting developers instead of application deployments, it puts the files in the correct locations for re-use as nuget repository packages.

Additionally, Paket reads a lot of information from your AssemblyInfo.cs file (such as Project Title, version etc.) and automatically populates the package manifest accordingly.

So I’ve been writing a lot lately.  I’ve also been creating a lot of libraries lately.  Where pertinent, I’ve been writing articles about those libraries on CodeProject.  A couple of those are listed as Articles, and a couple as Tips & Tricks.

Here’s a breakdown, go read them!


Tips & Tricks

Go check them out!  If you like them, upvote them.  These articles are the foundation for something big.

Back in 2009 I published a set of Extension methods called Generic Extension Methods.  Over the years, hundreds of people have downloaded the source code and made their own projects with it.  Now I’ve refined the extensions and repackaged them under Gateway Programming School.  

There are extension methods for dealing with DBNull, getting/setting values of properties of an unknown typed object, and manipulating text.

Many of the methods exposed back in 2009 are no longer applicable as Microsoft has included many of the methods into the .Net Framework.  This library will grow in the near future as it becomes actively used in the GPS projects.

You can get more info at the Project Site or on GitHub.