Note: Before you read this post, it is using the public consumer preview (beta) of Windows 8, VS 11 & .NET 4.5, so I expect some issues will likely be resolved in later releases. Check the site out for more info!
With the beta of Win8, VS 11 & .NET 4.5 now out I thought I should post again (first post about this can be found here – recommended reading to see how it has improved) how it has improved or changed since the alpha. This is not meant to be an exhaustive list, it is a list of the most common things (where most common is what I use, because I am pretty common
)
Namespaces
Namespaces have been polished and there is a much better alignment of the new awesomeness to the old so this is getting much better.
#if NETFX_CORE
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml;
using Windows.UI.Core;
using Windows.UI.Xaml.Controls.Primitives;
#else
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
#endif
Duplication of INotifyPropertyChanged, ICommand & INotifyCollectionChanged is SOLVED!
I mentioned about the EPIC FAIL of the duplication of core interfaces – that has been solved! ![]()
![]()
![]()
ObservableCollection<T> is broken is SOLVED!
The double facepalm that was breaking ObservableCollection<T> has also been solved – so this means your Metro style apps are more like your WPF & Silverlight apps than ever before.
User Controls must be created on the main thread is SOLVED!
I did not get a stupid behaviour where a user control had to be created on the main thread, and thankfully that has been solved! You can now create user controls on other threads! ![]()
![]()
IValueConverter has been changed
Previously the Convert & ConvertBack methods second parameter was a string, now it has been changed to a Type. This is a good move as it allows for better compares, but means any IValueConverters from alpha will be broken and it is a simple change:
//Before broken public object Convert(object value, string typeName, object parameter, string language) //After changing type of second parameter = working public object Convert(object value, Type typeName, object parameter, string language)
Good work image from http://bloggers.com/posts/happy-developer-37379