Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Do que trata o artigo

Conheça algumas das novidades do Silverlight 4, através de um overview sobre os principais recursos adicionados desde a versão final do Silverlight 3. Além de conhecer as novidades o artigo contém alguns exemplos para que você possa aplicar na prática.


Para que serve

A tecnologia para o desenvolvimento RIA (Rich Internet Application) da Microsoft é o Silverlight, atualmente já é possível criar aplicações web com grande apelo visual e produtividade ao mesmo tempo. Aplicação RIA serve para proporcionar uma melhor experiência do usuário ao trabalhar com aplicações na Web.


Em que situação o tema é útil

Este artigo será muito útil para quem já trabalha com Silverlight e precisa conhecer rapidamente na prática o que há de novo na última versão da tecnologia.

Resumo do DevMan

Neste artigo você verá um overview sobre as principais novidades do Silverlight 4. Alguns dos novos recursos terão um exemplo simples e objetivo para que você entenda na prática como iniciar sua implementação, como por exemplo, os recursos de suporte a impressão, suporte ao COM, acesso a webcam e suporte ao microfone, acesso local a arquivos, novas propriedades de DataBinding, API de notificação, novos recursos de drag & drop, melhorias no DataGrid, novos eventos de mouse, o controle RichTextBox, estilos implícitos, suporte ao Clipboard, Text Trimming, suporte a Managed Extensibility Framework – MEF e muito mais.
Autores: Alexandre Tadashi Sato e Robson Fernandes

No dia 15 de março durante o evento MIX 2010 da Microsoft houve o lançamento da versão RC (release candidate) do Silverlight 4. O lançamento surpreendeu, pois poucos meses se passaram desde a versão Beta do Silverlight 4 (novembro de 2009), e desde a versão final do Silverlight 3 diversos recursos foram inseridos. Junto com o Silverlight 4 RC foram lançados também o Microsoft Expression Blend 4 Beta, Windows Phone Developer Tools para WP7 (que é o kit de desenvolvimento para o Windows Phone) e o Silverlight 4 Tools for Visual Studio 2010, esse último habilita o Visual Studio 2010 RC a trabalhar com o Silverlight 4 RC.

Os novos recursos incluem suporte a alta qualidade de vídeo e áudio, proteção para conteúdo on-line e off-line, melhorias na performance do runtime, suporte a impressão, suporte para vários novos idiomas, suporte completo no navegador web Google Chrome. Podemos destacar ainda o suporte ao WCF RIA Services, desenvolvimento modular com MEF, suporte completo no Visual Studio 2010, texto bidirecional, acesso a webcam e suporte ao microfone, melhoria nos recursos de Binding, suporte HTML, MVVM e ICommand, novas capacidades de integração com aplicações em modo "Trusted Application". Também temos agora o acesso a arquivos locais e COM Interop, que permite acesso a aplicativos como o Microsoft Office e a periféricos como controle de games, câmeras, entre outros.

Os exemplos do artigo foram criados no Visual Studio 2010 RC e Silverlight 4 RC, ambos disponíveis para download no site da Microsoft, confira na sessão de links no final do artigo.

Suporte à impressão

Durante o desenvolvimento de uma aplicação corporativa temos a necessidade de criar relatórios, listagens ou até mesmo a impressão de um documento como um orçamento ou um pedido de venda. O suporte a impressão é um dos recursos mais importantes inseridos nessa última versão do Silverlight, através da classe PrintDocument ganhamos uma série de recursos para imprimir documentos.

Na Listagem 1 temos um exemplo de como enviar um texto para a impressão. O PrintDocument tem um evento chamado PrintPage no qual podemos informar o que será enviado para a impressão, no exemplo é enviado o conteúdo digitado pelo usuário no RichTextBox, veja na Figura 1. Outros dois eventos disponíveis são o BeginPrint e o EndPrint, neles podemos adicionar qualquer rotina antes e depois da impressão respectivamente. Neste exemplo antes da impressão é acionado o componente BusyIndicator que vem no Silverlight Toolkit para mostrar na tela um indicador de “ocupado” e quando termina a impressão é informado ao BusyIndicador para não apresentar na tela este indicador. Por fim o evento Print envia o documento informado para a impressão, o parâmetro é o nome do documento que aparece na fila de impressão, conforme mostra a Figura 2.

Figura 1. Tela de impressão

Figura 2. Documento impresso

Listagem 1. Realizando a impressão pelo Silverlight


  1 PrintDocument doc = new PrintDocument();
  2
  3  // Quando inicia uma Impressão
  4  doc.BeginPrint += (s, args) =>
  5    {
  6                    // Aciona o controle BusyIndicator
  7                    // para apresentar na tela
  8                    // um indicador de ocupado
  9                    busyIndicator1.IsBusy = true;
  10    };
  11
  12  // Realiza a impressão do RTB
  13  doc.PrintPage += (s, args) =>
  14    {
  15                    //Informa que será impresso o
  16                    //controle RTB
  17                    args.PageVisual = rtbTexto;
  18    };
  19                       
  20  // Finaliza uma Impressão
  21  doc.EndPrint += (s, args) =>
  22    {
  23                    // Remove o indicador de ocupado da tela
  24                    busyIndicator1.IsBusy = false;
  25    };
  26            
   
  27          //Envia o documento para a impressão
  28          doc.Print("documentoSL");

COM Interop

O COM Interop é um recurso que adiciona novas funcionalidades para acesso a objetos COM essa característica requer que o aplicativo Silverlight seja marcado como confiável e seja executado como OOB (Out-Of-Browser), para operações de automação, com interoperabilidade com o Windows.

Nota do DevMan

COM, acrônimo de Component Object Model, é uma tecnologia da família dos sistemas operacionais Windows que permite que componentes de software se comuniquem. É base para muitas outras tecnologias, por exemplo, para interoperabilidade entre aplicativos do Office.

Para marcar seu aplicativo como confiável, você precisará ativar o modo OOB (out of browser), através de um click em um checkbox na tela de configuração de aplicativos fora do browser, entre nas propriedades do seu projeto, clique em “Enable running application out of browser”, depois clique no botão “Out-of-Browser Setting” e marque a opção “Require elevated trust when running outside of the browser”.

Você deve verificar se a aplicação está em execução OOB, através da propriedade Application.Current.IsRunningOutOfBrowser, verificar se o componente COM é avaliado no sistema, através do AutomationFactory.IsAvailable, e se a aplicação tem permissão de acesso ao sistema, utilizando a propriedade Application.Current.HasElevatedPermission.

Caso estas verificações de consistência retornem True, então você poderá utilizar os recursos de Interoperabilidade no Microsoft Silverlight, podendo instanciar o objeto desejado através do método AutomationFactory.CreateObject.

Com a nova palavra-reservada “dynamic” do .NET Framework 4, você poderá criar um objeto “desconhecido” em tempo de compilação. Como podemos ver no exemplo da ...

Quer ler esse conteúdo completo? Tenha acesso completo