views:

33

answers:

2

I've been asked to do some work on an existing Silverlight project, mainly extending it a bit and doing bug fixes as needed. But there are a couple of ASP.Net pages too and a WCF service to deal with too. My background is desktop development with .Net so I think this is a good opportunity to start getting more involved in Web development.

So I'm trying to figure out what background knowledge I need for a project like this. Clearly I need to get familiar with Silverlight, but I'm not sure what other Web technologies, etc I need to ramp up on for this project. Obviously I would like to know as much as possible but in reality with limited time and resources I really need to focus on what I important in the near term for this project. Then expand my knowledge as things arise.

The things I'm thinking that are important in the immediate future are:

  1. The basics of Web Development (I'm thinking this might be the most important\fundamental area to build a good foundation)
    • But what are consided the basics?
    • What is technology\language independent?
    • What is important for Silverlight?
  2. The basics of ASP.Net (since there is some ASP.Net code)
    • What are the basics? ASP.net seems so huge, I have a 1000+ pg book here which seems daunting.
    • If you focus on Silverlight is knowing ASP.Net important, or is ASP.Net something I will continually run into?
    • How does ASP.Net MVC fit into the overall development picture and especially as related to Silverlight?
  3. The basics of WCF
    • As compared what?

Any suggestions\comments on the list above?

What other topics\technologies will I run into if I continue doing Web development?

Note: Beyond this project I would focus on the Microsoft stack.

+1  A: 

Generally speaking the amount of knowledge of ASP.Net you need to do Silverlight development is very very low.

Silverlight applications are hosted in a browser, usually via the <object> tag. This can sit on an asp.net page or a html page. The Silverlight template creates that for you, so you can forget its there and just get on with the Silverlight app.

Of course if you are integrating into an ASP.net environment (for example, islands of Silverlight sprinkled through an ASP.net site) then thats another thing. There are ways to get Silverlight talking to the HTML dom via the HTML Bridge but its not necessary. Really depends on what you are developing and integrating with. (new site vs existing)

I avoided ASP.net for as much as i could as the richness compared to desktop (WPF) just wasnt there. Silverlight changed all that. Its a Rich world on the web now!

Best place to start learning Silverlight is www.silverlight.net on the getting started part of the site. great Quickstarts and tutorials there.

Good luck

Stephen Price
+1 for amount of knowledge of ASP.Net you need to do Silverlight development being very very low. I would add a decent knowledge of XAML, dependency properties, Silverlight architecture, async data access. A lot would depend on your current skill set.
DaveB
A: 

Only cursory knowledge of traditional web technologies (css, html, js, etc.) are necessary for silverlight development. As a consequence, you also don't need to understand the many cross-browser dependencies as well.

Here is my list of things that you must get a really good understanding of to be proficient at Silverlight development:

  • Understanding WCF (the Silverlight-supported parts) is essential. It can be a configration nightmare, but once working it is pretty stable/ reliable
  • You need to understand serialization used by WCF and how to debug the mysterious 404 errors. Get good at Fiddler and/or Firebug.
  • You must understand multi-threaded applications and how do debug them. Silverlight makes extensive use of threading to not block the UI thread. This creates numerous opportunities for race conditions that create what appear to be "magical" results. That said, it is incredibly powerful and IMHO one of the dominant reasons to use Silverlight.
  • What you learn about serialization and WCF will ultimately help you cache some data in IsolatedStorage. Learn about IsoStorage, it will reduce our bandwidth requirements and cost and improve your user experience
  • Learn about Linq - again this is one of the most powerful features of Silverlight. Combined with a smart client-side caching strategy you can offload lots of processing to the client.
  • Figure out how you going to support printing. SL3 does not at all and you will need a server side component. SL4 beta does, but it is not go live
  • Understand the Silverlight Roadmap as much as possible and plan out your roadmap to match/ sync with it as best as possible. I first built a SL2 app and I spent a lot of time building things by hand that were ultimately released in SL3. As it is getting more mature, there is less of this.
  • Download the Silverlight Toolkit and use it. But more importantly examine the source code, the structures, its build process. There is not better real world place to look for inspiration & best practices.

Good luck.

caryden