API Diff Lists for .NET, Silverlight, and Windows Phone
First Floor Software has just released an updated version of their Diff Lists for .NET, Silverlight, and Windows Phone. These updated lists make it easy to see what classes and method are available when moving code from one platform to another.
This information puts into stark light some of the falsehoods told by Microsoft when Windows 8 was announced. In the //Build keynotes it was said that most Silverlight code could be upgraded to WinRT with minimal changes such as modifying namespaces. But if you look at the list of controls between Silverlight 5 and Windows 8 you quickly see that’s not the case. Commonly used controls such as AutoCompleteBox, ChildWindow, DataGrid, Pivot, and WebBrowser are simply not available. Alternatives from Microsoft and others do exist, but the conversion is not necessarily straight forward.
Some interesting statistics:
.NET 3.5 had a total of 8,497 classes, structures, and interfaces. .NET 4.0 increased that by nearly a third to 12,677. Last year’s release, .NET 4.5, was quite small in comparison with less than a thousand new types.
By comparison, Windows 8 and Windows Phone 8 have 2,851 and 2,266 respectively. That puts it between Silverlight (2,210) and Java Standard Edition 7 (3,977) in terms of raw size. Of course many of these types are inconsequential DTOs such as CalendarDateChangedEventArgs.
The “mockability” of .NET remains quite low. For every 100 classes in .NET, there are roughly 8 1/2 interfaces. This is actually down from .NET 3.5 where there were 8 1/2 interfaces per 100 classes. While many of these classes are simple DTOs that don’t need to be mocked, others such as DirectoryInfo still don’t offer a good option.
First Floor Software is best known for the debugging tool XAML Spy, which was previously known as Silverlight Spy.