What is the hardest part about learning a new programming language? I’ve often argued that learning a new language is easy, it’s learning a new framework is can be time consuming.
In case you’ve been living under a rock lately, you probably already know that Windows 8 Metro style apps can be built with Xaml & C#. This means that .NET & Silverlight developers can leverage their existing skillset to easily build Win8 Metro Xaml style apps. But just how similar is Silverlight to WinRT?
In an effort to get some real numbers, I created a program to iterate over all the default assemblies included WinRT and compare with those found in Silverlight 5. Here’s what I found:
Of those 1,582 matching types, here is a look at the members (properties, method, & events) they have in common:
Comparison details for those interested:
- I included all Silverlight 5 assemblies installed as part of the SDK. Other assemblies such as RIA services and the Silverlight Toolkit were not included.
- The public Silverlight 5 RC was used. IMO it is highly unlikely any numbers will change once the final version is released.
- Differences in namespaces, type accessibility, and base classes were still counted as a match. For example, I ignored differences such as a type being sealed or implementing ISerializable.
- Similar liberties were taken with members.
- Property get & set methods and event add & remove methods were not counted as unique members.
My key takeaways:
- WinRT includes a ton of new types. Some of these are certainly for new features such as the marketplace, accelerometer support, …etc. Time to start learning!
- Approximately 1/4 of the types in Silverlight are not present in WinRT. Some of these are no longer relevant like the types associated with the DOM bridge or Out of Browser support.
- When comparing just the shared types, SL5 starts to look very close to an actual subset of WinRT. This is good news for Silverlight developers because it means most of your existing code should easily port.
Coming soon: I also have a side-by-side comparison of the entire WinRT and SL5 API so you can explore each and every difference in their respective APIs. Check back soon.
Update: Detail now available, here’s a complete comparison of every single public API in WinRT and Silverlight 5 and where they match.
[...] Comments « The WinRT Genome Project [...]
[...] Read original post by Tim Greenfield at Programmer Payback [...]
Do you try to compare WinRT with WPF? Mabye they are closer?
Or compare WP7 and WinRT…i’d love to see the overlap (especially where it comes to hardware APIs)/
nicely done!!! It clearly shows that Silverlight got it’s genes into WinRT.
Has anyone tried to port a large SL LOB project to 8 and how difficult is that going to be to do?
[...] Greenfield, a Silverlight Insider, has compared the WinRT API with Silverlight’s, to see how similar or different they are and how easy would be for a developer to make the [...]
[...] Read original post by Tim Greenfield at Programmer Payback [...]
[...] point est une lecture sur InfoQ (un de mes sites informatiques préférés), qui renvoyait sur une page extrêmement intéressante, avec une analyse des types communs entre WinRT et Silverlight [...]
[...] my mind on this is a reading from InfoQ (one of my favorite IT sites), that linked to another extremely interesting webpage containing an analysis of common types between WinRT and Silverlight [...]
[...] From what is already visible, it is very likely that Silverlight and WinRT are going to have great overlap. The combination of XAML, C# and WinRT plus the tooling will be very familiar to all Silverlight users. That means, it is likely that the asynchronous programming model will be the predominant model for client/server communication for Windows Metro style apps. In order to simplify this, C#5.0 is going to include the await/async keywords, that will make callback chaining obsolete. [...]
[...] tun wird. Leider ist die Schnittmenge zwischen Silverlight und WinRT sehr klein. Siehe z.B. hier: http://programmerpayback.com/2011/11…enome-project/ Es gibt mit WinRT auch keine CLR mehr und daher auch keine IL, wie sie auch Silverlight nutzt. [...]
[...] http://programmerpayback.com/2011/11/17/the-winrt-genome-project/ [...]
[...] The verticals for XNA in WinRT imply Silverlight [...]