I have a fair amount of experience with WPF (C#) and XAML. I might soon be asked to create a Silverlight 5 application. I have no experience with any version of SL. What sort of learning curve could I expect in creating a SL 5 app, given that I have some experience with WPF?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
The differences seem to be minimal until you unpeel the layers to reveal how Silverlight really works.
One person mentioned the inability to perform a synchronous web service call. Other notable limitations are that Silverlight runs on its own dedicated runtime environment and cannot utilize the core .NET framework libraries. It is wholly dependent on the limited Silverlight framework libraries, which in fairness is mostly complete however you will run into situations where you will want access to something specifically on the .NET core library that is not available to the Silverlight Runtime.
The other issue I have personally run into is with trying to reuse the same data model classes from my web service project to my Silverlight project. You can't share the project or the binary assembly directly, as it compiles and runs only on the core .NET framework. You either duplicate your data model code in both projects (which has its design advantages by the way) or you create a Silverlight project that references resources from your actual data model project. In this way you have two projects, one that will compile for running on the core framework and the other for Silverlight. Again, not a big deal, just another wtf realization I had the first time I ran into it.
There are also limitations on XAP file size which third party frameworks are able to deal with quite effectively, but it is something to look out for.
Your skills will directly transfer. Be not of concern.
Desktop apps are not browser apps.
Desktop apps have things like menubars and toolbars and statusbars and all the other heavyweight desktop-appy stuff that browser apps tend not to.
The important thing is not simply to port a desktop app to a browser app (which is what it sounds like you will wind up being asked to do), but to rethink it in terms of a browser app.
A detailed comparison can be found on the following paper. I assume that the paper was prior to Silverlight 5, nevertheless, the paper is very comprehensive. Guidance on difference between Silverlight and WPF. MSDN has released a comparison detailing some features in WPF not in Silverligth and vice verse on this link:MSDN-WPF-Silverlight. Hope this helps.
Silverlight is a subset of WPF, so it's quite similar...
One big thing to watch out for is that silverlight calls to the serverside have to be done asynchronously because unlike WPF calls cannot be blocked until an answer is returned