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
There's a fully working sample app available, so you can try all the functions.
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
Callisto also has a sample app. https://github.com/timheuer/callisto
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.
The sample app can be found at: https://github.com/Q42/Q42.WinRT
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.
Instructions on how to use it can be found here:
Behaviours and triggers are missing from the WinRT framework. Well, not anymore! Windows.UI.Interactivity is a port of System.Windows.Interactivity to WinRT.
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:
Nice little framework to create an MVVM app easily use databinding in your app.
Loading Json data from an api? This is the library you need!
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.
Check out NuGetMustHaves for a ranking of the best WinRT NuGet packages: