Showing posts with label NuGet. Show all posts
Showing posts with label NuGet. Show all posts

Tuesday, December 09, 2014

Two Tasty NuGets - "Create and Push NuGet Package in Visual Studio 2013" & "NuGet 101 – A Bootcamp"

Visual Studio Gallery - Create and Push NuGet Package in Visual Studio 2013


In this article we will see how we can create NuGet Package after each build and push the package to NuGet in Visual Studio 2013.


NuGet: NuGet is a Visual Studio extension that makes it easy to pull in libraries, components, and most importantly their configuration into your visual studio project. This is a tool that is installed with MVC 3 and it is used to bring in various components to make developing on MVC easier. These components are called NuGet Packages and they can include .NET assemblies, JavaScript files, HTML/Razor files, CSS files, images, and even files that can add configuration to your projects web.config. The goal of NuGet is to make is super easy to bring in or update a component in your existing projects.

More info-

First of all let’s make an mvc project –

Getting Started



David Whitney - NuGet 101 – A Bootcamp

I’ve been running and recording a lot of workshops over the last couple of months – here is one on NuGet packaging for beginners – starting out as a slide deck then moving into a practical demo.


Slide deck 

  • History
  • What’s a package
  • So it’s a zip file right?
  • Why should I use them?
  • An open source mentality
  • Disadvantages
  • Realities


  • Directory topologies of a library package
  • Adding packages to your solutions
  • Pairing nuspec files with csproj’s
  • Replacement tokens for metadata
  • The NuGet docs
  • Package dependencies
  • Dependency discovery and bundling
  • Versioning and SemVer
  • Package sources
  • NuGet.config



Yes, there are still dev's out there that don't know about, use or get NuGet. If you know of one, here are two posts you can use to help them help themselves...

Monday, June 02, 2014

ALM Ranger Version Control (fka Branching and Merging) Guide v3 now out (in three parts, "Branching Strategies", "Team Foundation Version Control", "Dependency Management with NuGet")

Willy's Reflections - Version Control Guidance v3.0 flight has landed delivering three great guides and lots of visuals

We are pleased to announce that the v3.0 of the Version Control (ex Branching and Merging) Guide has shipped, after Bill Heys completed the intensive copy-editing.

what’s new?

Third version of this blockbuster guidance has been split into separate topics as summarized below, allowing you to pick the “world” (guide) you are interested in. This release delivers a new crisper, more compact style, which is easier to consume on multiple devices without sacrificing any content. The content is updated and aligns with the latest Visual Studio technologies and incorporates feedback from the readers of the previous guidance.


Branching Strategies
Practical guidance on a number of (not all) common Branching Strategies and usage thereof.

  • Branching concepts
  • Branching strategies
  • Walkthroughs

Team Foundation Version Control (TFVC)
Practical guidance on how to use Team Foundation Version Control (TFVC) features.

  • Workspaces
  • Merging
  • New features, i.e. Code Lens
  • Walkthroughs

Dependency Management with NuGet
Practical guidance on dependency management, using NuGet with Visual Studio.

  • Managing shared resources
  • Dependency management
  • Walkthroughs


lots of visuals!

All illustrations used in the guidance and the quick reference posters are included in the ZIP package. Re-use the images in your presentations, documentation, etc.


what’s cooking?

  • The Git for TFVC user guide is still under development and not included in v3.0.

... [Click through for the download link]

Must have resource for anyone serious about TFS... (or NuGet or branching source in general...)


Related Past Post XRef:
Branching and Merging Guide v2 for Visual Studio 2012 RTM has RTW'd
Visual Studio Team Foundation Server Branching and Merging Guide, v2 [Beta] for Visual Studio 11 released

Visual Studio TFS Branching Guide 2010, aka Team Foundation Server Branching Guide III, released (by guess who? Yep,the ALM Rangers…)
Team Foundation Server Branching Guidance v2 Released
Branching Guidance on CodePlex

Friday, April 25, 2014

NuGet, OneGet and MyGet is YourGet... - Using MyGet as a OneGet package source

At the Build conference, Microsoft announced the Windows Management Framework 5.0 Preview which includes Windows PowerShell 5.0, updates to the PowerShell ISE, Network Switch Cmdlets and ... OneGet!

What is OneGet?

OneGet a unified package management interface component with a set of managed and native APIs, a set of PowerShell cmdlets, and a WMI provider. The component accepts both Microsoft-provided and 3rd party-provided plugins which extend the functionality for a given package type.


As part of this Preview, OneGet is shipping with a prototype plugin compatible with Chocolatey, the so called ChocolateyProvider. This is a prototype implementation of a Chocolatey-compatible package manager that can install existing Chocolatey packages. This is a clear confirmation for the hard work done by the Chocolatey folks, and both systems will continue to evolve together, as Rob Reynolds explains in this post. If you want to follow-up on OneGet, then check out its GitHub repository and follow PSOneGet on Twitter.

Something about a forest and trees...

NuGet, MyGet, Chocolatey, OneGet... what?! People ask questions and occasionally can't see the forest for the trees. Here's a quick recap:

  • NuGet: a solution-level package management tool, used to manage software dependencies within the scope of a solution. It is accompanied by the NuGet Gallery, the home of many if not all .NET open source components.
  • Chocolatey: a system-level package management tool, used to manage software installations on a Windows system. It (currently) leverages PowerShell and NuGet, supports the Web Platform Installer (WebPI), MSI, RubyGems and many more, and is accompanied by the Chocolatey Gallery where you can find many popular software packages. Rob describes Chocolatey as somewhat like "apt-get", but with Windows in mind.
  • MyGet: a hosted NuGet package server where you can create and secure your own feeds. In essence, MyGet is able to host vanilla NuGet feeds, as well as Chocolatey feeds.
  • OneGet: a a unified interface to package management systems (see above)

So what does this mean? How do these package managers play along?

OneGet supports multiple package sources, and as stated earlier, OneGet comes with a ChocolateyProvider. As MyGet also supports Chocolatey feeds, this effectively means that you can register a MyGet feed as a Chocolatey package source in OneGet! The below diagram is an attempt to illustrate how they relate:



How can I use a private OneGet package source?


This flow allows you to control what packages get distributed through OneGet, avoids the need to publish your internal software to the general public, and still allows you to leverage the great new scenarios that OneGet offers!

As usual, happy packaging! :)

I've still not played with OneGet yet... But I'm going to. Really. Any time now... um... yeah


Related Past Post XRef:
PowerShell gets Chocolatey NuGet with OneGet
Using NuGet doesn't mean you have to give it away... "Distributing .NET Licensed components using NuGet"

Thursday, April 17, 2014

PowerShell gets Chocolatey NuGet with OneGet

Stefan Stranger's Weblog - Manage your IT Infrastructure - Viewing NuGet Packages with the NuGet Explorer

You may have seen that we released the the Windows Management Framework V5 Preview and that one of the new features  is Windows PowerShell OneGet. OneGet is designed to dramatically simplify how you discover and install software packages.

Windows PowerShell OneGet

OneGet is a new way to discover and install software packages from around the web. With OneGet, you can:

  • · Manage a list of software repositories in which packages can be searched, acquired, and installed
  • · Search and filter your repositories to find the packages you need
  • · Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

This first version of OneGet installs and searches software from Chocolatey repositories.  Support of additional repositories will come in subsequent versions.


One of the things that comes getting up in discussions about using Chocolatey Packages with or without OneGet is the question how can I trust the Packages from a resource like Chocolatey? The Chocolatey Nuget Packages are build by the community so you need to be careful what you are downloading and installing like all other software from sources you don’t own yourself.

But what if there is a easy way to view the content of NuGet Package before installing the Chocolatey NuGet packages? And that is possible using the NuGet Package Explorer.




While I had seen the WMF v5 news, I hadn't seen, or at least registered, the OneGet news. That really does look awesome and something I'm going to have to take a much closer look at...


Related Past Post XRef:
Spelunking NuGet Packages with the NuGet Package Explorer (and creating, editing and publishing nupkg's with it too)
NuGet, Open Wrap, NPanday, Chocolatey, Chewie, Ninite, top Package/Dependency Management for .Net tools
NuGet your Enterprise?
North by Northwest [Cadence] - Up coming casts from Northwest Cadence

Friday, March 28, 2014

NuGet, Open Wrap, NPanday, Chocolatey, Chewie, Ninite, top Package/Dependency Management for .Net tools

Visual Studio Magazine - 6 Top .NET Package- and Dependency-Management Tools

They may not be sexy, but package managers are an integral part of every developer's work -- using the right ones can make you more productive. Read on to find out what -- and where -- they are.


For the app developer or system admin, however, the process of getting utilities, libraries and frameworks installed, along with any required dependencies -- particularly when dealing with the huge ecosystem of open source software -- represents a bigger problem. And this is where package management comes to the rescue.

Package managers help you download, install, configure and update software "packages" from repositories. A package contains the software itself (possibly as source), plus metadata specifying the locations of any dependencies that need to be installed and instructions for automatic compilation, when necessary.

... Here are some great package- and dependency-management tools created specifically for Windows-based development.


NuGet is probably the best-known package and dependency manager for, in Redmond's words, "the Microsoft development platform including .NET." As with the other tools I've mentioned here, NuGet helps you find, install, update and remove packages. However, similar to CocoaPods, NuGet focuses primarily on package and dependency management at the development-project level.


Open Wrap
OpenWrap is another popular open source package-management sytem for .NET programmers. Created by Sebastien Lambla, OpenWrap is command-line only and supports both OpenWrap and NuGet packages. OpenWrap also includes ReSharper integration, so ReSharper knows about the packages you've installed and doesn't throw up spurious warnings.


NPanday is an Apache Incubator project "to integrate Apache Maven into .NET development environments." Maven is more of a build-automation and dependency-management tool, and also developed more specifically for Java-based development, but developers have figured out how to Maven build for .NET applications.


Chocolatey NuGet
So, those are the big, established players in package management on Windows. But they're not the only options. Chocolatey is a general-purpose "tools enabler" and "silent application installer" for Windows, modeled after apt-get.


Chewie is yet another NuGet offshoot that attempts to incorporate some features of the Ruby Bundler gem manager into the package\-management workflow on Windows.


OK, Ninite isn't really a package manager in any typical sense of the word, and unlike the rest of the apps I've discussed, it's neither open source itself nor open source focused. But it is a handy utility and it does fall into the same general category as apt-get and Chocolatey.




You mean there's more than NuGet? No, say it's not so! Kidding aside, this is a great article of tools you might not of heard of before. Make sure you click through to read the details.

Jetting to the new home of ManagedEsent, a new v1.9 and MSDN Doc's too!

JET - Welcome to the home of the JET (aka ESE or ESENT) team

The Extensible Storage Engine (ESE/ESENT), also known as JET Blue, is an Indexed Sequential Access Method (ISAM)data storage technology. Its purpose is to allow applications to store and retrieve data via indexed and sequential access.

ESE provides transacted data update and retrieval. A crash recovery mechanism is provided so that data consistency is maintained even in the event of a system crash. Transactions in ESE are highly concurrent making ESE suitable for server and client applications. ESE caches data intelligently to ensure high performance access to data. In addition, ESE is lightweight making it suitable for auxiliary applications.

The ESE Runtime (ESENT.DLL) has shipped in every Windows release since Windows NT 3.5, with native x64 version of the ESE runtime shipping with x64 versions as well (including IA64), and ARM. ESE is available on Windows, all flavors (server and client) and SKUs....

JET - ManagedEsent is released

... To download the latest ManagedEsent version, visit the nuget project page at

JET - ManagedESENT documentation now available on MSDN!

Check out the new ManagedESENT documentation on MSDN at This documentation covers over 300 public methods exposed by ManagedESENT.

How is the ManagedESENT library different than ESENT?

ESENT is an embeddable, transactional database engine that allows you to create custom applications that need reliable, high-performance, low-overhead storage of data. The ESENT engine can help with data needs that range from something as simple as a hash table that is too large to store in memory, to something more complex, such as an application with tables, columns, and indexes. To create an application with ESENT, you use the esent.dll DLL that is part of the Windows operating system and write your code with C/C++. For more information about ESENT, see Extensible Storage Engine Reference.

ManagedESENT is built on top of esent.dll, which is part of Windows, so there are no extra unmanaged binaries to download and install. With the ManagedESENT library, you can create your application by using a managed language such as C# instead of C/C++. ...

Extensible Storage Engine Managed Reference


If you're using ManagedEsent, have heard of it but haven't started yet, or never heard of it before, you've got a new shiny blog, NuGet version and doc resource...


Related Past Post XRef:
Easing into the Extensible Storage Engine on Windows 8 with ManagedEsent v1.8
ESE C#/C++ Toolkit v1.2 for Microsoft Extensible Storage Engine (ESE) (ESE is the database engine that's been in the box since Windows 2000)
Did you know Windows (since Windows Server 2000) comes with a transactional database engine already baked into the OS, which you can use in your applications today, no download required?
Managed ESENT v1 released – Managed/.Net access to the free embedded database (“Extensible Storage Engine/ESE”) that ships with Windows

Monday, August 19, 2013

Oh Concierge, can you NuGet me [a related package recommendation?]... Hello NuGet Concierge...

NuGet blog - Introducing NuGet Concierge

Twelve weeks ago, Microsoft’s Azure Applications Platform & Tools team welcomed three 2nd-year college students, Jaspreet Bagga, Jeremiah Jekich, and Melissa McNeill, and gave them an opportunity to contribute to NuGet.

Package Discovery

Discovering NuGet packages can be a daunting process. The best way to do so is either via word of mouth or online search. However, your friends aren’t always available when you’re looking for a new package at 3:00 in the morning. You could try to search online, but you’d need to spend unnecessary amounts of time sifting through the results before finding a package that may be helpful. We recognize that this time is better spent actually developing software. We wanted to create an accessible service to deliver package recommendations using real world data about how developers use packages.

NuGet Concierge

Thus was born NuGet Concierge, a package recommendation service that recommends packages to developers based on the packages currently being used in their project. We envisioned developers being able to upload their project’s packages.config file to the NuGet Concierge website, which would then present them with a list of packages they may find useful. Something along the lines of “Most projects that use Package A also use Package B.”

So, at the beginning of the summer, we put out a call to the community via Twitter, asking for developers to upload their projects’ packages.config files to help seed our newly conceived recommendation service. We asked, and you delivered! Armed with a collection of over 350 packages.config files, the NuGet Concierge project was brought to life.


The first step was to translate the collected .config files into a structure that would allow us to analyze the relationships between packages. How often are individual packages used? But, more importantly, how are packages used together?

So, we took the community’s .config files and parsed them, using them to construct a graph. In doing so, we tracked the number of times a package was used, a value we referred to as the package’s “popularity.” We also tracked how many times two packages were used together, which we referred to as the packages’ “pairing frequency.”

Determining Relationships

Let’s say we have two packages, EntityFramework and jQuery...


NuGet Concierge’s Potential

NuGet Concierge is just a conceptual prototype at the moment. But if the concept proves to be valuable, we imagine NuGet Concierge as a fully integrated part of NuGet, having a presence in the Gallery, Visual Studio’s Manage NuGet Packages dialog, and the Package Manager Console. The greatest part of NuGet Concierge is the data powering it. The ability to reference real data about how packages are actively used together opens up a world of opportunities that can potentially help NuGet better serve developers.

Until then, please feel free to try out NuGet Concierge at and let us know if you like the concept and/or the recommendations. You can also see the code for NuGet Concierge at


Interesting... But more, I love how it's OSS.

North by Northwest [Cadence] - Up coming casts from Northwest Cadence

Northwest Cadence - Upcoming Events and Training Courses

Northwest Cadence hosts regularly-scheduled events designed with our clients and community in mind. Come ready to ask hard questions, gain new knowledge, and be part of the social occasion.

What’s more fun than talking about tough technical topics, showing amazingly cool demos, and sharing insiders tips learned through years in the trenches?


  • Aug. 27. 13 | 9:00AM PT | Webcast | Register | Agile Development using Visual Studio ALM
  • Sep. 3. 13 | 9:00AM PT | Webcast | Register | Deliver Early, Often, and Exceptionally with Visual Studio Premium
  • Sep. 10. 13 | 9:00AM PT | Webcast | Register | Automating your Software Delivery Pipeline
  • Sep. 11. 13 | 9:00AM PT | Webcast | Register | Enterprise Dependency Management with NuGet and Chocolatey
  • Sep. 17. 13 | 9:00AM PT | Webcast | Register | Introducing the New Git Integration with TFS 2012
  • Sep. 18. 13 | 9:00AM PT | Webcast | Register | Continuous Delivery with Team Build and Octopus Deploy
  • Sep. 24. 13 | 9:00AM PT | Webcast | Register | Automating your Software Delivery Pipeline
  • Sep. 25. 13 | 9:00AM PT | Webcast | Register | Enterprise Dependency Management with NuGet and Chocolatey


Bunch of free webcasts from the boys and girls at Northwest Cadence.

What's with the dupe's? That's a feature, not a bug... It's a great chance to interact with the presenters for the given session if you missed the first one.

Friday, July 26, 2013

Imaging an even simpler image for using the Nokia Imaging SDK (NuGet it!)

Nokia Developer - Simpler installation of the Imaging SDK, using NuGet

When it comes to installing the Nokia Imaging SDK to your Windows Phone 8 projects, the easiest way is to use NuGet.  Until today, you still had to complete the installation by manually editing your project file (.csproj), but thanks to the fantastic input of PetroQ, an active member of the SDK discussion board, the installation is now significantly simpler. Kudos PetroQ!

The steps to install the Nokia Imaging SDK are now:

  1. In Visual Studio, from the NuGet Package manager, install the Nokia Imaging SDK to your project.
  2. Remove the “All CPU” configuration from the project, to leave only “ARM” and “X86″.
  3. Close and reopen your project.

That’s it! Detailed installation steps are documented here.


Yeah, that does make it much easier! :)


Related Past Post XRef:
Reimagining images with the Nokia Imaging SDK for Windows Phone 8

Wednesday, July 24, 2013

Katana Lifts Its License - Katana v2 nuget bins will not be restricted to Windows only...

CodeBetter - Howard Dierking - Katana License Lifts Windows-only Restriction

Over the past few months, a great deal of attention has been paid to the following clause used in most of the licenses associated with the NuGet packages that we and other teams at Microsoft ship.

“ a. Distribution Restrictions. You may not distribute Distributable Code to run on a platform other than the Windows platform;

In the case of the ASP.NET-related projects, including project Katana, this license (and the associated restriction) does not apply to the source code, but rather to the compiled binaries that are distributed via NuGet (the Katana source code is released under the Apache 2.0 license). This means that even today, it is perfectly reasonable to build the source code yourself and run it on Mono on whatever platform you choose.

As Microsoft teams continue to take more and more components out of the traditional box products and deliver them as NuGet packages, the frustration over this restriction has grown proportionally. ...

So we changed the license.

With the release of Katana 2.0, which will accompany Visual Studio 2013, the Windows-only restriction will be removed from the Katana binary license. It’s important to note here that at this point, the exception applies only to the Katana packages.

While it may appear to be a small step, we’re very excited as we believe it to be a significant one in the right direction!

As I said in my last post, this isn't the Microsoft we grew up with, is it? Nice to see the team respond to this concern and to take steps, no matter how small, to make it "right."

Friday, April 26, 2013

NuGet your Enterprise?

simple talk - Taking NuGet to the Enterprise

The NuGet package manager  is a great way for developers to install and update third-party tools. It solves a lot of the problems of dependency management and integration. Is it ready for the exacting requirements of  development in the enterprise?


  • NuGet as That Tool
  • A World Without NuGet
  • NuGet… to the rescue?
  • Dependency Management Overview
  • Brief History of NuGet
  • The Enterprise Development Challenge
  • Enterprise Annoyances with NuGet
  • Getting around Nuget annoyances
  • Private NuGet Repository
  • Preparing Packages for the Enterprise
  • Alternative Client Tools
  • Taking NuGet to the Enterprise

Beyond Dependency Management

Several tools – both open source and commercial – have repurposed NuGet components for uses other than dependency management. While these components will obviously share NuGet’s annoyances, the same techniques can be applied to mitigate these annoyances in the enterprise.

One such tool is Chocolatey. It’s described as “somewhat like apt-get, but built with Windows in mind,” and allows users to install programs like Notepad++, Git, and 7Zip with a single command at the Command Prompt. The Chocolatey client accomplishes this by downloading the corresponding .nupkg file from and executing the install.ps1 contained within.

Obviously, most of NuGet’s dependency management annoyances aren’t applicable with Chocolatey, but Package Verification, Arbitrary PowerShell Script Execution, and Unexpected Licensing are equally – if not more – problematic. But they can all be mitigated with a private NuGet repository and careful package preparation.

Another tool that uses NuGet components is Red Gate’s Deployment Manager. Essentially, it retrieves application components (which have been packaged as NuGet packages) from a private NuGet repository and deploys those components to various servers. But in this case, since the packages come from known sources (i.e. built by the organization), used outside of the context of development, and are already housed in a private repository, none of NuGet’s annoyances have transferred.

All new tools brought in the enterprise need to be carefully adopted, but as these examples show, just because a tool uses NuGet components doesn’t mean that it inherits NuGet’s annoyances. And even if it does (as is the case with Chocolatey), it’s just as easy to mitigate.

At work we had a discussion about just this yesterday, about leveraging NuGet with a private repository, primarily for sharing in-house bin's. But also to re-purpose NuGet too as a "service" repository. I hadn't thought to use a private repository for storing of third-party stuff we've licensed. In hindsight that seems to make a good deal of sense... Interesting... 

Friday, April 19, 2013

"The Essential Binary Repository Management Cheat Sheet" (Think "You've got bin's in my source VCS... No, you've got source in my bin VCS")

DZone - Binary Repository Management

The Essential Binary Repository Management Cheat Sheet

Software development produces both source code and binary artifacts, and both kinds of artifact need to be handled differently. This Refcard assumes basic familiarity with source repository management, and is intended to help you design and configure a binary repository, optimize it for various workflows, and fit it smoothly into your software development lifecycle.

From the PDF

❱ Repository Requirements
❱ Repository Design
❱ Hosting & Management
❱ Security & Maintenance
❱ Binary Releases
❱ Popular Repository Managers... and More!

Software development produces two distinct kinds of artifacts: (1) source code, and (2) binary artifacts. This Refcard assumes basic familiarity with source repository management, and is intended to help you design and configure a binary repository, optimize it for various workflows, and fit it smoothly into your software development lifecycle.



I liked the broad, cross platform nature of this refcard.  While for .Net Dev's, Nuget is pretty much the real go to for this, what I thought interesting was that two of the three products mentioned at the end provide Nuget support i.e. Nuget is as much an api as is a repository. Remember, you don't have to use if you don't want too. Nuget makes it very very easy to use other repositories...

Tuesday, August 21, 2012

I've got your new TPL [Report] right here... TPL Dataflow and MEF 4.5 RTM NuGets released

Base Class Library Blog - MEF and TPL Dataflow NuGet Packages for .NET Framework 4.5

Last week we released .NET Framework 4.5. Today we are happy to announce the release of the RTM versions of the MEF and TPL Dataflow NuGet packages, as promised.


Our pre-release versions were already in an excellent shape so we didn’t have to change much. In fact, there are no surface area changes and no behavioral changes. We updated a few strings to align with some branding changes (in case you didn’t notice: “Metro style apps” are now called “Windows Store apps”).

However, we added one feature we believe is worth discussing in more detail: we now provide a  symbol package for MEF.

What are symbol packages?

If you read our .NET 4.5 release announcement carefully, you noticed that we also updated the reference source that allows you to debug the source code of the .NET Framework. Scott Guthrie discussed this in detail here. For out-of-band releases we thought it doesn’t make much sense to publish our source as part of the .NET Framework reference sources drop because one of the goals of releasing out-of-band is being able to publish more frequently than the .NET Framework itself.

Instead, we decided to take advantage of NuGet’s symbol packages. In a nutshell, symbol packages allow Visual Studio to find .pdbs and sources for a given binary.

So let’s have a look at how debugging MEF with the NuGet symbol package would look like.



It's great to see these released via NuGet . VS2012 is THE NuGet release and will finally bring NuGet use into the LOB mainstream.


Related Past Post XRef:
TPL (Task Parallel Library) Dataflow CTP Released

Stephen Toub says, "I've got your Samples for Parallel Programming with the .NET... right here..."
A Plethora Parallel Programming PDF’s - 12 Parallel Programming with the .NET Framework 4 articles for download
The Coffee Table Guide of the Parallel Programming Samples for .NET 4
Extra .Net 4 Parallel Extension goodness in the Parallel Extension Samples, with RTM updates and a few new Projects
“Samples for Parallel Programming with the .NET Framework 4” gets some VB love…
[Insert Three Hour Tour and/or TPL Report Joke Here] - “A Tour of Various TPL Options” – 28 page free ebook about parallel programming options in .Net via the Task Parallel Library (TPL)
TPL (That is, Task Parallel Library) Article of the Day: “Parent-Child Task Relationships in the .Net Framework 4”
“Samples for Parallel Programming with the .NET Framework 4” gets some VB love…
[.Net 4.0]: Get your Parallel Extensions here… All baked in and part of the Core…. Get your Task Parallel Library here…

You've got your TPL in my MEF. No, you've got your MEF in my TPL...

Monday, August 06, 2012

There's a WIF on Nuget

Vibro.NET - The Windows Identity Foundation 1.0 Runtime is now available as NuGet Package

You asked for it, loud and clear, and we worked hard to make it happen:

today it is my honor & privilege to announce that from now on you can get the WIF 1.0 runtime from its official NuGet package.

There you go, short and sweet. I wanted to write this blog post for a looong time Smile happy WIF1.0-chaining!

Windows Identity Foundation

Windows Identity Foundation enables .NET developers to externalize identity logic from their application, improving developer productivity, enhancing application security, and enabling interoperable federation. Enjoy greater productivity, applying the same tools and programming model to build on-premises software as well as cloud services. Create more secure applications by reducing custom implementations and using a single simplified identity model based on claims. Enjoy greater flexibility in application deployment through interoperability based on industry standard protocols, allowing applications and identity infrastructure services to communicate via claims.


Want to learn more about WIF? Windows Identity Foundation Simplifies User Access for Developers

Thursday, August 02, 2012

Nuget needs your help! Help in testing if a CDN helps make your Nuget'ing faster or not... [Update: Done and results are in... ] Blog - Help Us Test CDN for

"Over the past few weeks, we’ve been investigating whether to turn on the content delivery network (CDN) feature of the Azure blob storage container for NuGet packages. In theory, this would make package downloads faster – especially if you’re located outside of the United States.

We want your help to conduct an experiment to measure the difference in downloading packages with CDN enabled verses disabled. Our initial experiment deployed nuget.exe into different regions and measured the time to download a set of NuGet packages. Unfortunately, in all of the regions we deployed to, we were still sitting on an Internet backbone connection, so even our baseline measurements (with CDN disabled) showed a statistically insignificant difference between a deployment in northern Europe and a deployment in the USA. As such, it would seem that enabling CDN wouldn’t yield any measurable benefit.

We think that the reason for the inconclusive baseline is due to the fact that there’s no “last mile” involved in the measurements, and this is where the majority of the slowdown happens. While we could try and simulate last mile time, we would rather change the experiment a bit and ask for your help.

We’ve created a custom of NuGet.exe along with a batch file runner that you can download here. Just unpack the zip file and run NuGet-CDN.bat. This will download the top 25 NuGet packages from both the standard package URL and a CDN URL and then log the time it takes to perform the download operations. You will then be asked to optionally provide your location, which will help us get a better sense of the global impact of using the CDN.


The batch process will wrap the log files along with your location information into a new NuGet package. Please email that package to"

This is a quick and simple process, to cloud-source some Nuget testing on if a CDN would help get your nuget packages faster or not.

Do you Nuget? Are you outside of the US (or not, I'm not, but the wider their set cases the better)? Want to help them see if a CDN would make your Nuget'ing faster? This is your chance to help. It's quick, easy and when done, you just need to email them the generated 9K "NuGetTraces.1.0.nupkg".

I know, you're thinking a CDN HAS to be faster right? Well sometimes these things are really counter intuitive and I think it's cool that they are putting some hard data behind their CDN decision.

I've already done it and emailed my package in. Have you?


Update 8/12/2012:

Results of NuGet CDN Experiment

A little over a week ago, we asked for your help with an experiment that we were conducting to see whether there was value in enabling CDN support for our packages blob storage container. Over 100 of you responded from all over the world, and the data that you provided made it pretty clear that there was sufficient justification for turning on CDN support for the production NuGet blob storage container. So firstly, thank you to everyone who participated in the experiment!

In addition to turning on CDN, we wanted to share the results of the data that you provided us. First, the worldwide numbers look like the following:



Wednesday, June 20, 2012

Using NuGet doesn't mean you have to give it away... "Distributing .NET Licensed components using NuGet" - Distributing .NET Licensed components using NuGet

"If you are building components that are licensed using the .NET Licensing Model, you might have been looking for a way to take benefit from NuGet as a distribution mechanism.

If you are unfamiliar with the .NET Licensing Model, I recommend this excellent article providing you with a good introduction and sample code.

No matter what licensing model you use, an application that consumes a licensed component needs to use a mysterious licenses.licx file and set it as an embedded resource. In addition, the license key or .lic file for the licensed component being consumed must be present.

This makes packaging a .NET licensed component slightly different from packaging a simple assembly.


Securing the package?

Ok, so you have a package which is worth something. It contains a licensed fully working version of your component (using this very basic licensing mechanism at least). How do I distribute it? Putting it on is a no-go, as everyone can simply consume it without paying the license fee.

Here's an alternative: create a private NuGet feed on MyGet. Simply give access to those people who paid for it, and secure it for others.

Again, I used a very basic licensing mechanism only to demonstrate how you can embed a file-based license into your NuGet package and pointed out you can secure your feed with granular access instead of worrying about your package. It's up to you to ensure your licensing mechanism doesn't support distributing the licensed package elsewhere! (this proof-of-concept doesn't mitigate this at all, so be warned!)

The code as well as the NuGet package are attached to this blog:


Think using NuGet means you have to give it away? Well if you're using NuGet.Org it does, but remember you don't have to use that feed. You can add other feeds, such as a private feed. So imagine giving your customers the power of NuGet while still being able to provide a commercial, licensed library? That's what caught my eye in this post (that and you just don't see this kind of usage mentioned anywhere...)

Tuesday, June 19, 2012

NuGet 2 2 U - NuGet v2.0 Released

NuGet blog - NuGet 2.0 Released

We’re happy to announce that we released NuGet 2.0 on 6/19/2012. This release includes support for grouping dependencies, tools and content by the target framework of the project. Additionally, we’ve dramatically improved the performance of tab completion in the package management console.

Package restore consent is now active

As described in an earlier post on package restore consent, NuGet 2.0 will now require that consent be given to enable package restore to go online to download packages. Please ensure that you have provided consent via either the package manager configuration dialog or the EnableNuGetPackageRestore environment variable.

More details on NuGet 2.0 can be found on the release notes. Finally, NuGet 2.0 fixed several bugs. For a full list of work items fixed in NuGet 2.0, please view the NuGet Issue Tracker for this release.

NuGet Docs - NuGet 2.0 Release Notes

Known Installation Issue

If you are running VS 2010 SP1, you might run into an installation error when attempting to upgrade NuGet if you have an older version installed.

The workaround is to simply uninstall NuGet and then install it from the VS Extension Gallery. See for more information, or to go directly to the VS hotfix.

Note: If Visual Studio won't allow you to uninstall the extension (the Uninstall button is disabled), then you likely need to restart Visual Studio using "Run as Administrator."

Group dependencies by target frameworks

Starting with version 2.0, package dependencies can vary based on the framework profile of the target project.


Grouping content files and PowerShell scripts by target framework

In addition to assembly references, content files and PowerShell scripts can also be grouped by target framework.

Improved tab completion performance

The tab completion feature in the NuGet Package Manager Console has been updated to significantly improve performance. There will be much less delay from the time the tab key is pressed until the suggestion dropdown appears.

Bug Fixes

NuGet 2.0 includes many bug fixes with an emphasis on package restore consent and performance

New nugets are always tasteful! :)

Thursday, April 05, 2012

NuGet 1.7 is out... - NuGet 1.7 Release Notes

Known Installation Issue

If you are running VS 2010 SP1, you might run into an installation error when attempting to upgrade NuGet if you have an older version installed.

The workaround is to simply uninstall NuGet and then install it from the VS Extension Gallery. See for more information.

Note: If Visual Studio won't allow you to uninstall the extension (the Uninstall button is disabled), then you likely need to restart Visual Studio using "Run as Administrator."


  • Support opening readme.txt file after installation
  • Show prerelease packages in the Manage NuGet packages dialog
  • Show Package Restore button when package files are missing
  • Add solution-level packages.config file

In previous versions of NuGet, each project has a packages.config file which keeps track of what NuGet packages are installed in that project. However, there was no similar file at the solution level to keep track of solution-level packages. As a result, there was no way to restore solution-level packages. This feature is now implemented in NuGet 1.7. The solution-level packages.config file is placed under the .nuget folder under solution root and will store only solution-level packages.

  • Remove New-Package command

Due to low usage, the New-Package command has been removed. Developers are recommended to use nuget.exe or the handy NuGet Package Explorer to create packages.

Bug Fixes

  • NuGet 1.7 has fixed many bugs around the Package Restore workflow and Network/Source Control scenarios. ...

I ran into the Known Issues above myself. If you're having problems updating (like the uninstall is disabled, errors, etc), check out those notes and suggestions.

I think my favorite item in this release is the Solution Level feature...

(via The Morning Brew - The Morning Brew #1080)

Friday, March 30, 2012

If you can't make the data, then fake the data... Faker.Net

Awkward Coder - faking data in WP7 and other .Net platforms

I needed to fake some data for a WP7 app yesterday and I was about to write a couple of classes when I thought why not check out what's available out there already...

There were already a couple of NuGet packages out there but I wanted to try out my forking skills on GitHub :) I had a quick conversation with Ben Smith about faker-cs and producing a NuGet package.

Introducing Faker.Net on NuGet, with support for .Net 3.5 SP1, .Net 4.0, Silverlight & WP7.

Faker.Net support loads of different ways to fake data - addresses, names, phones numbers and more:




I can see where this could really come in handy... And probably so much better than using my pet's, family's, etc, names. ;)