tags:

views:

250

answers:

2

I absolutely have no idea about Silverlight except that it is a Microsoft technology. Having nearly completed a Computer Science degree, having programmed in C# for a few years in a work environment - have a good knowledge of Java and OO techniques - how hard is the road of average Silverlight programming? I've been offered some work DAMN IT!

I've mucked around with PHP, HTML and nearly no CSS..

Would I need a strong web programming background in order to pick it up?

+3  A: 

Unless your Silverlight app has to interact with a traditional web page, you don't need to know anything about traditional web UI technologies.

If you've done any desktop UI development you'll find Silverlight much easier to pick up than any web UI paradigm. Compared to the unholy mess that is css + html + javascript combined with ever-changing browsers and fourteen other hundred-author web "standards", Silverlight is a walk in the park.

Ben M
Thanks, sounds encouraging. I'll give it a shot. Plus it's in VS2008 so you get full advantage of Intellisense and the modern tools I guess? Like debugger, etc. ?Leo
lb
Yes: you can step through your Silverlight web UI (running in the browser) and your backend database code in a single debug session. Also you have intellisense, a huge chunk of the BCL to work with, C# 3.0, LINQ in the UI, a totally modern UI development paradigm (XAML+codebehind), etc, etc...
Ben M
Sounds fantastic.
lb
+5  A: 

I like Ben's answer, and he's right that a huge bonus of learning Silverlight is that you don't have to worry about the stateless model. However, there are a few parts of Silverlight that are less easy to learn:

  • Styling & control templates - These concepts look like CSS at first but there's a good bit more that you can do with them such as completely overriding the visual aspects of the control. Also, modifying the styles of existing controls is one thing and learning how to create your own control that can be easily styled is quite another.
  • Database connectivity - If you're anything like me the first thing you'll want to do after you write a "hello world" test is hook up to a Db and pull down some data. Since Silverlight can't directly connect to a Db you'll have to learn one of 3 techniques to move data between the browser and server: 1. WCF + your custom service methods + LINQ to SQL or LINQ to EF or whatever data access you choose. 2. ADO.NET Data Services (great way to start out) 3. .NET RIA Services (once you've realized that you need your data access technology to play nice with data binding and honor biz rules).
  • Security - You need to learn another part of the MS technology stack to get this working properly, ASP.NET Application Services. It should take more than a few hours to hook things up but it is another technology to learn.
  • Browser navigation, search engine friendliness & deep linking - Things you take for granted writing a traditional web app will take a bit more work in SL. You can use .NET RIA Services to handle browser navigation & deep linking, others have written about making your site friendly to search engines (and I don't know how ;).

What I'm trying to highlight here is that while learning the basics of Silverlight is easy, you'll probably run into other parts of the MS technology stack that you'll need to learn to get your work done. The beautiful thing here is that all of the technologies come from 1 vendor with a single focus and they work really well together. I shudder when I think about all the different technologies you'd need to pull off my current SL app in the open source domain.

Pick up the book "Silverlight Unleashed" and go to http://silverlight.net/GetStarted to start learning. Scott Gu's 8 part blog posting (#3 on that Getting Started web page) was one of the first things I read about Silverlight and is hugely helpful.

James Cadd
Good answer--all true. And although some of these things are challenging, learning them is a rewarding experience since they're all well-documented and, as you say, coherently implemented by a single vendor using related technologies tightly integrated throughout the tiers.
Ben M
Wow - I might wait till after I graduate! Seems like Silverlight is another .NET world.
lb
Please don't let that stop you from writing a hello world app - I'm pointing out some things I needed for developing apps at work.
James Cadd