….. It was an exciting day in the development lab. It was a beautiful day in 2003, We had started a design spike for a new client project. This client has a secure manufacturing facility and they audited the raw material at the beginning and end of their assembly line. We didn’t want to put a full PC on the floor just to audit these numbers, so we went out and bought a PDA. We wrote a proof of concept with the .NET Compact Framework and had a hands-on demo for our client to show how this project needed to have a mobile component. Fast forward, and voila, handheld devices are in the mix…..
I took you on a stroll down memory lane because this was in 2003, the .NET framework was upgraded from 1.0 to 1.1 and everything was still very new. The design spike I described above actually went as smoothly as I described. I read about two pages worth of the .NET Compact Framework documentation and put together a demo that we could sync to actual hardware. Once the client saw things running on the metal, they were sold, and the development costs were low enough that we bought extra hardware and didn’t worry about the pain that is managing local devices.
Recently, I’ve been working on a side project to learn Silverlight. My experience has been very different from the project I listed above. The reason being that Silverlight is divergent from the .NET core libraries. Too much of my time was spent rewriting .NET libraries to be Silverlight libraries and not enough time was being spent on new features.
I really like Silverlight 4 as a RIA technology. Full trust support in networking, printing, and COM interop means that I have all of the tools I need to create rich applications. However, my bag of tricks is only half full, since the libraries that I’ve used on other projects will need to be recreated to be used in Silverlight. While the Silverlight 4 deployment story is great, (really much nicer than ClickOnce), the development rework required is too great in my opinion to consider Silverlight 4 for RIA development. If you are a Silverlight developer, maybe you’ve already crossed this bridge, but for a .NET developer trying to decide if Silverlight is appropriate, I found that the migration costs were just too high. At PDC10, Microsoft shows how to design your codebase to maximize reuse between .NET, Silverlight, and Windows Phone. I think this is exactly what would be needed for me to consider Silverlight development as a go-to solution. The issue with that is that all of the component vendors would need to design in a similar manner so that any third party components that I use can
To summarize, it is too expensive to “reinvent” existing codebase/applications in Silverlight. Reuse across the framework just isn’t there. This post is not to declare Silverlight dead however. I’ve been learning a lot about the platform and I’ll be posting where Silverlight IS appropriate in a future blog post. Stay Tuned!!!!