Marcelo's profileExpressions (Inativo)BlogListsGuestbookMore Tools Help

Blog


    April 28

    Perguntas e Respostas Sobre Silverlight 2

     

    1 - O que é o Silverlight?

    O Silverlight é uma tecnologia que permite a criação de experiências ricas, com alta interatividade e conteúdo multimídia na Internet. Com o Silverlight é possível criar interfaces de forte apelo visual, conectadas a transações e bases de dados complexas, criando uma categoria totalmente nova de aplicações.

    Isso é possível porque o Silverlight é baseado na plataforma .NET da Microsoft, e as aplicações são criadas com duas ferramentas poderosas: o Expression Studio, para a criação dos elementos gráficos, e o Visual Studio, para a criação da parte transacional, regras de negócio e acesso a dados. As aplicações Silverlight são multi-plataforma e multi-browser, rodando em Internet Explorer, Firefox e Safari, e nos sistemas operacionais Windows e Mac OS X.

    O projeto Moonlight (independente da Microsoft) permite que aplicações Silverlight também rodem em Linux.

    2 - Quais são as principais diferenças no uso do Flash e do Silverlight?

    Existe uma sobreposição grande de funcionalidades entre o Flash e o Silverlight, especialmente no tocante à criação de interfaces de usuário. A comparação correta seria entre Microsoft Silverlight e a combinação de Adobe Flash + Adobe Flex. Eu diria que a grande diferença não está no resultado final, mas no processo de criação.

    O Flex foi criado para dar ao Flash, um plataforma criada originalmente apenas para a criação de interfaces, capacidades de acesso a transações complexas. A Adobe procurou oferecer um front-end onde fosse possível a criação de formulários e o consumo de Web Services para acessar transações. Essas transações podem ser feitas em qualquer tecnologia, inclusive .NET, mas o caminho de desenvolvimento do Flex, baseado na ferramenta de desenvolvimento Eclipse, leva para uma integração mais forte com tecnologias não Microsoft, como Java, Rails e outras tecnologias "LAMP" (Linux + Apache + MySQL + PHP).

    O Silverlight tem uma origem, e portanto uma afinidade no caminho oposto: apesar de ser possível criar front-ends em Silverlight para tecnologias LAMP, o modelo ideal é o uso do Silverlight integrado ao .NET. Isso por si só já garante uma maior produtividade, pois o ambiente de desenvolvimento é integrado do design à implantação no servidor, passando por desenho de bancos de dados, programação e testes. Além disso, o Silverlight suporta linguagens de script que antes eram associadas ao LAMP, como Python e Ruby.

    3 - Quais são as vantagens na utilização do Silverlight?

    A principal vantagem é o uso da tecnologia XAML - Extensible Application Markup Language. O XAML oferece uma maneira declarativa, como a do HTML, para a descrição dos elementos de interface, incluindo primitivas gráficas, campos de formulário, elementos de layout inteligente, imagens, vetores, 3D, animações, áudio e vídeo.

    O poder do XAML reside no fato de que todos os elementos descritos em XAML têm equivalentes nas linguagens de programação suportadas pelo ambiente (C#, Visual Basic, VBScript, JavaScript, IronRuby e IronPython. Propriedades, eventos e métodos podem ser manipulados e mesmo criados por código, a partir de transações, regras de negócio ou campos de bancos de dados.

    Isso permite, por exemplo, que a cor ou o tamanho de um objeto vetorial (como um gráfico de barras, por exemplo) possa ser associado facilmente a uma informação de negócios. Apesar de isso ser possível em Flash/Flex, a produtividade do desenvolvimento em Silverlight/.NET é muito superior. Além disso, o modelo de programação .NET permite que o desenvolvedor consuma transações e dados de todos os servidores Microsoft diretamente, incluindo SharePoint, BizTalk, SQL Server, Dynamics CRM e Communications Server, entre outros.

    4 - Quando devemos recomendar o uso de Silverlight?

    Em princípio, qualquer projeto que exija alta interatividade e execução dentro do browser podem ser desenvolvidos com Silverlight. Isso inclui a maioria dos cenários hoje desenvolvidos em AJAX (Asynchronous JavaScript and XML) e Flash/Flex. A linha de decisão entre AJAX, Flash ou Silverlight hoje passa pelos seguintes fatores:

    1. Será fácil para o usuário instalar o plugin do Silverlight, caso ele não esteja instalado? Esse hoje é principal ponto de decisão, mas tende a perder importância quando a base instalada de Silverlight crescer. O plugin do Silverlight é bastante pequeno e fácil de instalar, então a questão é se os usuários terão privilégios para instalá-lo.
    2. É uma aplicação inteligente, ou apenas um display de imagens ou animações? A grande maioria das aplicações Flash são hotsites ou banners com muita exibição de imagens e pouca interação real. Quanto mais interação e, especialmente, comunicação com a retaguarda, maior a vantagem em usar Silverlight.
    3. O ambiente de retaguarda da aplicação e/ou da empresa "dona" da aplicação é .NET? Se sim, a recomendação é adotar Silverlight imediatamente. Os ganhos de interatividade e produtividade sobre Flash e AJAX num ambiente que já usa .NET são enormes.
    4. Se a aplicação for desktop, especialmente se for uma aplicação corporativa, talvez o "irmão mais velho" do Silverlight, o Windows Presentation Foundation, seja uma boa alternativa. Os princípios de programação são os mesmos, mas a tecnologia apresenta vantgens sobre o Silverlight para aplicações locais, como acesso a dispositivos e dados com direitos totais (full-trust), e mais classes e funcionalidades .NET do que está disponível no Silverlight.

    5 - Existe um perfil de projeto ideal para utilização do Silverlight?

    Alguns cenários são bastante adequados ao uso do Silverlight:

    1. Aplicações multimídia baseadas em bancos de dados, no estilo do Flickr ou do YouTube. Desenvolver aplicações desse tipo em Silverlight é extremamente mais simples e fácil de dar manutenção que os complicadíssimos sistemas AJAX em que essas aplicações são baseadas.
    2. Internet Banking e e-Commerce. Essas aplicações têm tudo a ganhar com um paradigma de usabilidade mais próximo de uma aplicação desktop. A facilidade para se manipular listas, grids de dados e gráficos em Silverlight supera em muito qualquer outra tecnologia Web.
    3. Sites de redes sociais e comunicação entre usuários. Aqui as coisas estão apenas começando, mas com Silverlight vai ser possível a criação de verdadeiros cockpits para aplicações sociais, com funcionalidades e aparência muito além do que é possível com AJAX.
    4. Sites de rádios e TVs online. Aqui também a experiência rica e as capacidades multimídia do Silverlight vão permitir a criação de players muito poderosos e integrados a grandes bases de dados.
    5. E-mail. O Silverlight permite a criação de clientes online de email tão poderosos quanto o Otlook, com grande facilidade.

    Aqui vale notar a questão de facilidade de desenvolvimento do Silverlight x Flash. Hoje praticamente nenhuma aplicação do tipo das mencionadas acima é desenvolvida em Flash, simplesmente porque não é economicamente viável.

    6 - Que tipo de conhecimento um profissional precisa ter para trabalhar com Silverlight?

    Existem dois perfis de profissionais que tocam o Silverlight, o desenvolvedor e o designer. O desenvolvedor pode reaproveitar seus conhecimentos em .NET ou em qualquer uma das linguagens suportadas em Silverlight, e usar o Visual Studio 2008 como ferramenta de programação. O designer pode reaproveitar seus conhecimentos em Photoshop e Flash, pois as ferramentas do Expression Studio são facilmente dominadas por profissionais que já conheçam as ferramentas da Adobe.

    A maioria dos conceitos de design, usabilidade, interatividade e animação são universais, independente da ferramenta. Existe um conhecimento que deve ser compartilhado entre o designer e o programador, que são os princípio pelos quais o XAML funciona. Quanto mais o desenvolvedor e o designer entenderem a "mágica" do XAML, mais poderosas serão suas aplicações.

    7 - Quais os recursos de aprendizado para quem deseja se aprofundar no assunto?

    Hoje a melhor maneira de se aprender Silverlight é online. A Microsoft tem uma série de tutoriais e hands-on labs que valem à pena ser feitos tanto por desenvolvedores quanto por designers. É importante que ambos compartilhem essa base comum de conhecimento, mesmo que design pareça assustador para um desenvolvedor e um designer seja avesso a colocar a mão em código. Aqui vale o mesmo que vale para HTML.

    Os melhores desenvolvedores e designers de páginas Web são os que conhecem coisas que tocam aos dois universos, como HTML bem formado, CSS e JavaScript. Sendo assim, conhecer um pouco de Expression Blend é fundamental para o desenvolvedor Silverlight, e o designer Silverlight se beneficiará bastande de um pouco de conhecimento de uma linguagem como C#.

    Outra comparação interessante é com Flash, onde bons designrs conhecem o básico de ActionScript, e os bons desenvolvedores sabem o básico do ambiente de desenho e animação. O ideal é desenvolvedores e designers aprenderem esses recursos em conjunto, com cada um ajudando o outro quando necessário. Isso ajudará as duplas designer/desenvolvedor a criar seu fluxo de trabalho ideal.

    Os recursos básicos para aprendizado do Silverlight 2.0 são:

    Conteúdo em português da MSDN Brasil:

    Microsoft Expression Developer Center:
    http://www.microsoft.com/brasil/msdn/DevCenterExpression/default.mspx
    Artigos e links para recursos de aprendizado sobre o Microsoft Expression.

    Webcasts sobre Silverlight
    https://www.msdnbrasil.com.br/mediacenter/subject.aspx?center=60
    Área onde são publicados todos os Webcasts em português sobre Silverlight.

    Conteúdo em inglês:

    Getting Started With Silverlight
    http://silverlight.net/GetStarted/
    Esta página mostra como preparar o computador para usar o Silverlight, links para as ferramentas de desenvolvimento e design, e 6 vídeos que mostram o uso de Silverlight com JavaScript. Ótimo ponto de entrada para o aprendizado.

    Silverlight Tutorials
    http://silverlight.net/learn/tutorials.aspx
    Tutoriais cobrindo tópicos avançados de Silverlight. Mais voltados a desenvolvedores, mas que valem à pena serem feitos também por designers.

    Hands-On Lab de uma aplicação real em Silverlight
    http://blogs.msdn.com/swiss_dpe_team/archive/2008/04/17/silverlight-2-beta-1-end-to-end-hands-on-lab.aspx
    Este material excelente mostra todos os passos para se criar uma aplicação de e-Commerce de venda de carros. Muito bom para se dominar o processo completo de criação de uma aplicação complexa em Silverlight.

    Videos "How Do I...?"
    http://silverlight.net/learn/videocat.aspx?cat=2
    Dezenas de vídeos mostrando aspectos diferentes de desenvolvimento avançado em Silverlight, cobrindo desde a criação de interfaces para entrada de informações, até diversas técnicaas para consumo de dados a partir de bancos, Web Services ou feeds RSS.

    Silverlight Hands-On Labs
    http://silverlight.net/learn/labs.aspx
    Laboratórios aprofundados dos principais conceitos de Silverlight.

    8 - Quais são os melhores exemplos de aplicações Silverlight disponíveis?

    1. Hard Rock Cafe Memorabilia: http://memorabilia.hardrock.com/ O uso mais legal (por enquanto) do recurso Deep Zoom Composer do Silverlight; um passeio interativo pelo acervo de fotografias e documentos do Hard Rock Cafe, numa interface inovadora.Para aprender mais sobre o Deep Zoom, acesse http://www.hanselman.com/blog/DeepZoomSeadragonSilverlight2MultiScaleImagesAtMix.aspx.
    2. Infragistics FaceOut: http://www.infragistics.com/hot/silverlight.aspx#InfragisticsandSilverlight
    3. Excelente exemplo de uma aplicação corporativa, mostrando o que pode ser feito com Silverlight para visualização de dados; inclui código fonte e um preview dos componentes Infragistics para Silverlight.
    4. Shock: http://www.nokola.com/shock/
    5. O clássico jogo Breakout em Silverlight, com código-fonte; ótimo para quem quer aprender a criar jogos com a tecnologia.
    6. Silverlight Airlines: http://silverlight.net/Samples/2b1/SilverlightAirlines/run/default.html
    7. Exemplo de uma interface inovadora para a marcação de viagens aéreas. O código-fonte pode ser baixado de http://silverlight.net/Samples/2b1/SilverlightAirlines/SilverlightAirlines.zip.
    8. Silverlight Controls: http://silverlight.net/Samples/2b1/SilverlightControls/run/default.html

    Uma demonstração de como usar diversos controles de entrada de dados em Silverlight. O código-fonte pode ser baixado de: http://silverlight.net/Samples/2b1/SilverlightControls/SilverlightControls.zip.

    Mais aplicações com código-fonte podem ser baixadas de http://silverlight.net/community/gallerydetail.aspx?cat=5, e você pode encontrar diversos exemplos de aplicações Silverlight em: http://silverlight.net/Showcase/.