Ultimamente tenho visto diversas discussões sobre como criar aplicações Silverlight e como adequar essa tecnologias em algum design pattern comum no mercado como MVC, MVP, MVVM.
Vou tentar ilustrar nesse post como eu imagino uma aplicação Silverlight do ponto de vista de um arquiteto de software.
Web ou Client-side
Uma das coisas mais legais de Silverlight, é que apesar de ser uma tecnologia Web, ela roda em cima de um plugin que é instalado no computador do Cliente, portanto eu considero o paradigma de desenvolvimento Silverlight muito pais parecido com o desenvolvimento de aplicações Desktop do que com o desenvolvimento de aplicações Web.
Sempre que criamos uma aplicação Silverlight no VS 2008 o próprio VS já se propõe a criar uma aplicação Web para que você possa testar sua aplicação.
Isso está mais do que correto, você pode estruturar seu desenvolvimento em dois lados:

Você deve sempre pensar que o seu Client de Silverlight é REALMENTE uma aplicação Client, portanto, você pode desenvolver utilizando qualquer pattern interessante ao momento, como Singleton, Abstract Factory e Observer(esse muito recomendado).
Já seu lado Server-Side, ou seja sua aplicação Web, você também pode estruturar utilizando as melhores práticas voltadas para web, como a criação de serviços ou handlers.
Nos meus próximos posts vou tentar abordar como utilizar as melhores práticas de arquitetura com o Silverlight e em quais cenários eles se aplicam.
Até a próxima Arqinovação!!!