Sunday, 18 September 2011
Yay for Metro and Windows 8! Boo for lazy haters .... ;)
Why do all my posts start as comment posts.....
Look, consider me a bit harsh if you will, but if a developer considers themselves just a "Silverlight Developer" they deserve to feel pain. No one technology can solve every problem, the beauty of ".NET", or lets rather say "Managed" applications if you will, is not write once run everywhere, that was debunked a good 10 years ago after Java failed miserably at it. What C#/XAML/Visual Studio/LINQ give you is a set of very powerful, specialized tools you take with you and use as necessary.
I do windows I do web, I do services, I do some Silverlight, and I'd be happy to tackle Mac, Android or iOS with Mono if the opportunity ever presented itself. What ports is the language and the patterns, the rest is too difficult to abstract over such diverse platforms. I learnt that first from Miguel de Icaza (who weighs in fantastically here http://tirania.org/blog/archive/2011/Sep-15.html) and secondly from painful experience.
And that is exactly the issue with Metro.
Under the hood Silverlight is the closest cousin to WinRT there is, they're both subset CLRs based on native implementations rather than pure CLR due to constraints - Silverlight needs to be tiny to be downloadable, WinRT needs to be as performant as possible. Silverlight is designed for browser downloadable RAD desktop apps. WinRT is designed for App Store sourced, "run on any processor" Touch apps.
I won't pretend to be fluent in architect, but I guess you could call them domain specific language implementations.
So now what?
If you really want reuse what you should really be looking at is WCF and/or REST. Not necessarily even server side, run a windows services and make your Metro, Silverlight, HTML, WPF and, well frankly anything, just a thin UI implementation.
Just remember, every time you over engineer, a Project Manager kills a kitten.