Top 5 NuGet packages for Windows 8 development
When you're starting Windows 8 / WinRT development in XAML, one of the first things you do is look at the available controls. The default controls shipped with the WinRT XAML framework are ok, but not all scenario's are covered.
If you need more controls, there are some paid control toolkits available. But luckily there are also some state of the art free libraries. NuGet is a great resource to find controls and helper libraries for Windows 8 development. For me, these are the top 5 NuGet packages:
WinRT XAML Toolkit
Great control toolkit with a lot of UI controls and extensions. New controls are added on a regular basis.
Some of the best are: WrapPanel, WatermarkTextBox and the AppBar.HideWhenSnapped extension. But there's a lot more. Check the full list at: http://winrtxamltoolkit.codeplex.com
NuGet: http://nuget.org/packages/winrtxamltoolkit
There's a fully working sample app available, so you can try all the functions.
Callisto
The Callisto toolkit contains controls there are really useful when you want to embrace the metro design style. Some of the controls in the Callisto toolkit really should be default controls for the WinRT framework.
* SettingsFlyout to create a standard settings flyout with a default style
* Menu, to create a context menu
* Date and Time picker
NuGet: http://nuget.org/packages/Callisto
Callisto also has a sample app. https://github.com/timheuer/callisto
Q42.WinRT
This is the toolkit I created. It's targeted at data driven applications. It includes helpers to easily cache data from API calls and cache web images to the local storage. There's also a DataLoader included which functions as a wrapper around a Task method. You can bind a ProgressBar or ProgressRing to the DataLoader and show it as long as the task is running.
NuGet: https://nuget.org/packages/Q42.WinRT
The sample app can be found at: https://github.com/Q42/Q42.WinRT
MetroGridHelper
A small but useful package if you're following the Metro design style is the MetroGridHelper. It creates a grid overlay on top of your application. The overlay grid helps to check if your elements are correctly alligned.
NuGet: http://nuget.org/packages/WinRT.MetroGridHelper
Instructions on how to use it can be found here:
http://mark.mymonster.nl/2012/07/25/metrogridhelper-for-winrt-a-helper-to-get-the-alignment-right
Windows.UI.Interactivity
Behaviours and triggers are missing from the WinRT framework. Well, not anymore! Windows.UI.Interactivity is a port of System.Windows.Interactivity to WinRT.
NuGet: https://nuget.org/packages/Windows.UI.Interactivity
Sample app
https://github.com/jlaanstra/Windows.UI.Interactivity
Others
There are ofcourse other useful NuGet packages for Windows 8, but these are not specific for Windows 8 and can be used in any type of app:
MVVM Light
Nice little framework to create an MVVM app easily use databinding in your app.
NuGet: https://nuget.org/packages/MvvmLight
Newtonsoft.Json
Loading Json data from an api? This is the library you need!
NuGet: https://nuget.org/packages/Newtonsoft.Json
SQLite-net
SQLite-net allows you to communicate with your SQLite database using LINQ. It contains simple methods for executing CRUD operations and queries safely (using parameters) and for retrieving the results of those query in a strongly typed fashion.
NuGet: https://nuget.org/packages/sqlite-net
Instructions:
https://github.com/praeclarum/sqlite-net
Even More
Check out NuGetMustHaves for a ranking of the best WinRT NuGet packages:
http://www.nugetmusthaves.com/Category/WinRT