Este artigo foi traduzido por máquina.

Design vinculado a dados

Crie uma Web Part do Silverlight 4 para o SharePoint 2010

Paul Stubbs

Baixe o código de exemplo

Microsoft SharePoint 2010 oferece uma plataforma de colaboração de negócios que é fácil personalizar ferramentas que as organizações podem depender e crescer com. E quando estiver criando soluções personalizadas do SharePoint, é melhor tirar proveito do Silverlight em front-end.

As Web Parts são uma parte central da maioria das soluções do SharePoint. Quando a maioria dos desenvolvedores pensa sobre como usar o Silverlight no seu aplicativo do SharePoint, usá-lo nas Web Parts se parece com a direção óbvia e Web Parts são a maneira mais comum para criar aplicativos do Silverlight no SharePoint. Mas não de Web Parts sua única opção.

Você também pode usar o Silverlight em menus de navegação, as caixas de diálogo, layouts de página, páginas mestras — em qualquer lugar, você pode colocar uma marca de objeto. Isso permite que os designers uma grande flexibilidade para criar grandes experiências sentem integradas ao SharePoint. Com essa abordagem, o Silverlight deve se sentir como uma extensão natural do SharePoint.

O enorme variedade e a profundidade da plataforma SharePoint e do Silverlight podem ser desanimador para desenvolvedores. Na verdade, é comum aos desenvolvedores se concentrarem inteiramente no SharePoint e para os criadores de estar mais familiarizados com o Silverlight. Para criar um aplicativo útil do SharePoint, você precisará compreender as duas tecnologias. Neste artigo, eu vai lhe dar uma visão geral da integração do Silverlight com o SharePoint 2010 e orientá-lo os fundamentos de usar o Silverlight front-end de uma solução do SharePoint.

O Silverlight e o fluxo de trabalho do SharePoint

A primeira etapa no trabalho com o Silverlight e SharePoint juntos está usando as ferramentas corretas. O Visual Studio e Expression Blend são projetados para trabalharem juntos e por meio do Silverlight o desenvolvedor pode criar um aplicativo grande usando dados de exemplo do SharePoint sem jamais vejam ou instalar o SharePoint. Da mesma forma, um desenvolvedor do SharePoint pode integrar o aplicativo do Silverlight ao SharePoint sem precisar compreender ou me aprofundar no código XAML.

Neste artigo, mostrarei como criar um simples da Web Part do Silverlight que irá usar o modelo de objeto de cliente do SharePoint para o Silverlight para surgir uma lista do SharePoint. O aplicativo também será um aplicativo do SharePoint no modo seguro que permite que os administradores de conjunto de sites instalar e gerenciar o aplicativo. O aplicativo também funcionarão no SharePoint Online contas padrão.

A Figura 1 mostra como será a aparência final aplicativo quando ele estiver sendo executado no SharePoint.

image: The Completed Silverlight/SharePoint Application

Figura 1 do aplicativo do Silverlight/SharePoint concluída

Dados de exemplo do SharePoint

Para desenvolvedores do Silverlight e do SharePoint trabalhar de forma independente, o desenvolvedor do Silverlight será necessário os dados de exemplo com base nos dados do SharePoint. Isso permitirá que o desenvolvedor do Silverlight seja completamente livre para criar um aplicativo que irá funcionar corretamente quando conectado ao SharePoint.

O Expression Blend tem uma série de recursos para dados de tempo de design de suporte e os dados de exemplo. Neste exemplo, vou usar os dados de exemplo do XML-formatado. Isso significa que o desenvolvedor do SharePoint deve criar um arquivo XML que representa a lista do SharePoint que o aplicativo utilizará. Você pode fazer esse arquivo de dados de exemplo em qualquer forma desejada, mas tudo se torna muito mais fácil se você fizer a mesma forma como o que será retornado do SharePoint. Por exemplo, as formas retornadas usando as entidades de serviços de dados do WCF e o ListData RESTful, serviços do SharePoint são diferentes da forma dos dados retornados usando o modelo de objeto de cliente do Silverlight.

Neste aplicativo, eu uso alguns dos novos recursos de ligação de dados de 4 do Silverlight e o modelo de objeto de cliente do SharePoint para o Silverlight. Não há nenhum modo interno para gerar dados de exemplo, para que você precisará criar um aplicativo de console simples para gerar os dados de exemplo do SharePoint. Nesse caso, eu criei um aplicativo de console do Visual Basic que usa o modelo de objeto de cliente do Microsoft .NET Framework para gerar um documento XML dos principais itens de cinco lista (consulte do Figura 2).

Do Console de aplicativos para retornar os dados XML, a Figura 2

Imports Microsoft.SharePoint.Client
Imports System.Text
Module Module1
  Sub Main()
    Dim context As New _
      ClientContext("http://intranet.contoso.com")
    Dim sampleListItems As ListItemCollection
    Dim sampleList As List = _
      context.Web.Lists.GetByTitle("Contacts")
    Dim qry As New Microsoft.SharePoint.Client.CamlQuery
    qry.ViewXml = "<View><RowLimit>5</RowLimit></View>"
    sampleListItems = sampleList.GetItems(qry)
    context.Load(sampleListItems)
    context.ExecuteQuery()
    'Build the Sample XML Data
    Dim SampleData = _
      <SharePointListItems></SharePointListItems>
    'Iterate through each row using Linq 
    'and XML Literals
    For Each item In sampleListItems
      Dim sampleItem = <ListItem>
        <%= From fieldValue In item.FieldValues _
        Select <<%= fieldValue.Key %>>
        <%= fieldValue.Value %></> %>
        </ListItem>
      SampleData.Add(sampleItem)
    Next
    'Write the file to disk
    System.IO.File.AppendAllText( _
      "C:\SharePointSampleData.xml", _
      SampleData.ToString())
  End Sub
End Module

Depois de ter o arquivo SharePointSampleData.xml, você poderá usá-la no Expression Blend como a fonte de dados de tempo de design.

Design com dados de exemplo

Com o dados XML em mãos o arquivo de exemplo, pode abrir o Expression Blend e criar um novo aplicativo do Silverlight 4.

No painel de dados, clique no ícone Criar o exemplo de dados no canto superior direito do mouse e escolha Importar dados de exemplo do XML, em seguida, navegue até o arquivo SharePointSampleData.xml. Você também pode deixar o bloco verificado para ver os dados de exemplo, enquanto o aplicativo é executado. Caso contrário, você verá somente os dados de exemplo no Blend ou no designer do Visual Studio.

A Figura 3 mostra a lista de contatos. O modelo de objeto cliente, na verdade, retorna um dicionário do 45 campos, portanto, você não poderá vê-los todos na Figura sem rolagem.

image: The Sample Contacts List

A Figura 3 da exemplo de lista de contatos

A próxima etapa é criar uma caixa de listagem com dados vinculados. In the Data panel, make sure that the List Mode icon is set. Você o encontrará no canto superior esquerdo do painel de dados. Agora, selecione os campos que você deseja que apareça na caixa de listagem. Nesse caso, eu selecionei título, o que realmente é o primeiro nome, e eu selecionei o sobrenome. Arraste os campos da lista e solte-os para a superfície de design. O Expression Blend cria uma caixa e dados de modelo de lista com dados vinculados aos campos. Organize a caixa de listagem do lado esquerdo da superfície de design para criar espaço para os detalhes.

Criar detalhes ligados a dados é tão fácil. Selecione modo de detalhes a partir do ícone no canto superior esquerdo da janela do painel de dados. Selecione os campos desejados sejam exibidos como campos de detalhes. Arraste os campos para a superfície de design. O Expression Blend criará a cada campo acoplado para o item selecionado na caixa de listagem. Se você pressionar F5 e execute o aplicativo, você verá a caixa de listagem preenchida com os dados de exemplo. Conforme você altera o item selecionado na caixa de listagem, você verá os detalhes mudam para a direita (consulte do Figura 4).

image: Working on the App in Expression Blend

Figura 4 de trabalho no aplicativo no Expression Blend

Agora você tem um aplicativo totalmente funcional com dados vinculados aos dados de exemplo do SharePoint. Como criador do Silverlight, você pode continuar a testar e aprimorar seu aplicativo sem saber nada sobre o SharePoint. Neste exemplo, tenho feito um pouco mais de trabalho de design e organizados todos os campos e adicionado o tema do esboço do Kit de ferramentas do Silverlight.

A parte da Web no Silverlight

Neste ponto, o desenvolvedor do Silverlight pode entregar o arquivo de projeto para o desenvolvedor do SharePoint. Isso é possível, como o Expression Blend e o Visual Studio compartilham os mesmos arquivos de projeto. O desenvolvedor do SharePoint abre o projeto no Visual Studio 2010 e pode ver todas as partes do aplicativo para que ele possa trabalhar no aplicativo no designer do Visual Studio (consulte do Figura 5).

image: Working on the App in Visual Studio

De trabalho no aplicativo no Visual Studio, a Figura 5

A primeira coisa que o desenvolvedor do SharePoint precisará fazer é adicionar um projeto vazio do SharePoint para a solução existente que contém o projeto do Silverlight. Ele usará este projeto do SharePoint para implantar o arquivo de aplicativo do Silverlight (.xap) e para criar uma Web Part do Silverlight para hospedar o aplicativo do Silverlight.

O Visual Studio 2010 torna fazer ambas essas tarefas fácil em comparação à criação de soluções do SharePoint no passado. Clique com o botão direito sobre a solução e escolha Add New Project. Procure os modelos do SharePoint 2010 e selecione o projeto vazio do SharePoint. No assistente New Project, certifique-se de manter a seleção padrão para a criação do projeto como uma solução no modo seguro. Isso é uma prática recomendada e oferece as opções de implantação mais segura e flexível. O Silverlight também funciona bem com soluções em modo seguro, pois o Silverlight é executado no cliente e não está limitado a muitas das restrições, como código do lado do servidor em execução na área de segurança.

Embora na verdade não importa a ordem, é melhor primeiro criar a Web Part. Isso permitirá que você aninhar o módulo irá implantar o arquivo de .xap do Silverlight com a Web Part. Isso simplesmente mantém a estrutura de projeto bem organizados e mais fáceis de serem seguidos conforme aumentam suas soluções.

Adicione a Web Part ao seu projeto do SharePoint com o botão direito do mouse no projeto e escolha Add New Item. Selecione a Web Part da pasta de modelo do SharePoint 2010. Isso criará uma nova Web Part vazio em seu projeto.

Uma Web Part consiste em apenas três itens. A primeira é o arquivo Elements.xml. Este é um arquivo de solução do SharePoint que descreve os itens em um recurso.

O segundo é o arquivo de definição de Web Parts, que tem a extensão. WebPart. Este arquivo é implantado na Galeria de Web Parts do SharePoint e define o código para a Web Part e todas as propriedades da Web Part.

O arquivo de terceiro é o arquivo de código. Três desses arquivos são colocados em uma pasta na estrutura do projeto.

Portanto, esse é o que é interessante. Todos os arquivos são adicionados ao projeto quando você cria uma nova Web Part são necessários se você estiver criando uma Web Part a partir do zero. Nesse caso, você não precisa usar todos os arquivos de auto-gerado porque o SharePoint já vem com uma Web Part do Silverlight. O que você deseja fazer é criar sobre essa Web Part existente. Para fazer o que basta tornar o arquivo. WebPart, apontar para o código para a Web Part do Silverlight e incluir todas as propriedades.

Crie uma cópia do arquivo. WebPart Web Part do Silverlight incorporado. Há, na verdade, uma forma automática para fazer isso. No SharePoint, adicione uma Web Part do Silverlight para qualquer página. No modo de design, clique no menu drop-down da Web Part e escolha Exportar. Isso permite que você faça uma cópia do arquivo. WebPart que podem ser adicionados ao seu projeto. Agora, basta altere algumas propriedades, como o caminho para o aplicativo do Silverlight, título, descrição e assim por diante. Além disso, pois agora você estiver usando o código para a Web Part da Microsoft.SharePoint.dll internos, você não precisa do arquivo. cs para a Web Part. Você pode simplesmente excluir este arquivo. Figura 6 mostra um exemplo de como será a aparência do arquivo. WebPart depois que você adicionar ao seu projeto.

Figura 6 do trecho do default. WebPart File

<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <type name="Microsoft.SharePoint.WebPartPages.SilverlightWebPart, Microsoft.SharePoint, 
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
      <importErrorMessage>$Resources:core,ImportErrorMessage;
      </importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="HelpUrl" 
                  type="string" />
        <property name="AllowClose" 
                  type="bool">True</property>
        <property name="ExportMode" 
                  type="exportmode">All</property>
        <property name="Hidden" 
                  type="bool">False</property>
        <property name="AllowEdit" 
                  type="bool">True</property>
        <property name="Description" 
                  type="string">Contacts Web Part</property>
        ...
        <property name="Height" 
                  type="unit">480px</property>
        <property name="ChromeType" 
                  type="chrometype">None</property>
        <property name="Width" 
                  type="unit">640px</property>
        <property name="Title" 
                  type="string">Contacts Demo</property>
        <property name="ChromeState" 
                  type="chromestate">Normal</property>
        <property name="TitleUrl" 
                  type="string" />
        <property name="Url" 
                  type="string">
        ~site/_catalogs/masterpage/SilverlightApplication1.xap
        </property>
        <property name="WindowlessMode" 
                  type="bool">True</property>
      </properties>
    </data>
  </webPart>
</webParts>

Implantando o Silverlight ao SharePoint

Neste ponto, você tem um aplicativo do Silverlight totalmente funcional e uma Web Part para hospedar o aplicativo do Silverlight. Agora você precisa criar um módulo do SharePoint para implantar o arquivo de .xap real do Silverlight ao SharePoint.

O Visual Studio 2010 tem funcionalidade interna para fazer isso, para que conectar tudo o que é muito simples. Clique com o botão direito em sua pasta da Web Part e escolha Add New Item. Selecione o modelo de módulo de modelos de SharePoint 2010.

Um novo módulo, por padrão, contém um arquivo elements. XML, da mesma forma que você adicionou o recurso de Web Part. Ele também contém um arquivo de exemplo. txt. Exclua o arquivo de exemplo. txt, pois você não precisará dele.

Há uma maneira especial para adicionar uma referência ao aplicativo do Silverlight no seu projeto. Selecione a pasta do módulo no Solution Explorer e exibir as propriedades. Clique na propriedade de referências de saída de projeto para abrir a caixa de diálogo referências de saída do projeto. Na caixa de diálogo, clique no botão Adicionar para adicionar uma nova referência. No menu suspenso nome do projeto, escolha o projeto de aplicativo do Silverlight. Definir o tipo de implantação para Ele ­ entário arquivo e feche a caixa de diálogo.

Agora você adicionou uma referência para o aplicativo do Silverlight. Isso funciona bem como referências de projeto padrão no qual o projeto do Silverlight será criado antes do projeto do SharePoint e a saída do projeto do Silverlight (o arquivo .xap) será copiada para o projeto do SharePoint e criada para o arquivo de solução do SharePoint (o arquivo. wsp).

A última etapa é definir o caminho de implantação do aplicativo do Silverlight. Esse é o local para que o arquivo .xap será copiado e a localização de onde a Web Part carregará o aplicativo.

Abra o arquivo elements. XML na pasta do módulo. Defina a propriedade URL do elemento file é o mesmo que a propriedade URL do arquivo. WebPart. Nesse caso, que você implantará na página mestra Galeria então defina o valor:

~site/_catalogs/masterpage/ SilverlightApplication1.xap

Observação o til no início do caminho é um curinga do SharePoint especial para indicar a raiz do site.

Agora implante a solução em SharePoint para verificar se tudo o que está configurado corretamente. Defina o projeto do SharePoint como o projeto de inicialização padrão e pressione F5. O Visual Studio irá criar e a solução de pacote. Embora o Visual Studio irá abrir o site do SharePoint e anexar o depurador, você ainda precisará adicionar a Web Part à página. Acho que a maneira mais fácil de fazer isso enquanto o desenvolvimento de soluções de Minhas é adicionar a Web Part a uma nova página do site.

Modelo de objeto do cliente

Com tudo no lugar, você estará pronto para conectar o aplicativo do Silverlight e dados reais do SharePoint. SharePoint 2010 inclui modelos de objeto do lado do cliente para o CLR, o Silverlight e o ECMAScript. Eles permitem facilitar o acesso usando um modelo de objeto familiar aos dados do SharePoint, como listas e bibliotecas.

Nesse caso específico, você está criando um aplicativo do Silverlight, portanto, você precisa adicionar uma referência ao modelo de objeto de cliente do Silverlight. O modelo de objeto de cliente do Silverlight é composto de dois arquivos, Microsoft.Share ­ Point.Client.Silverlight.dll e Microsoft.SharePoint.Client.Silverlight.Runtime.dll. Esses arquivos estão localizados em C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin\.

Depois de ter as referências adicionadas, você pode escrever o código para recuperar os contatos da lista de contatos. Início, adicionando o uso de uma instrução para Microsoft.SharePoint.Client na parte superior do MainPage.xaml.cs. Em seguida, você precisará definir alguns dos campos de nível de classe para manter os resultados retornados. Você também precisa manipular o evento carregar a página é usado para carregar os dados da lista:

public partial class MainPage : UserControl { ClientContext ctx; ListItemCollection contactsListItems;

  public MainPage() { InitializeComponent(); this.Loaded += MainPage_Loaded; }

  void MainPage_Loaded( object sender, RoutedEventArgs e) { LoadList(); } }

Em seguida, implemente o método LoadList para recuperar os dados do SharePoint. Em primeiro lugar, obtenha uma referência ao contexto atual do cliente. O método estático ClientContext.Current retorna um contexto para o site no qual a Web Part é carregada. Em seguida, chame GetByTitle para obter uma referência à lista de contatos. O método Load adicionará a solicitação para a consulta. Em seguida, chame ExecuteQueryAnsc para fazer a chamada para o servidor do SharePoint:

void LoadList(){ ctx = ClientContext.Current;

  if (ctx != null) { //null if not in SharePoint List contactsList = ctx.Web.Lists.GetByTitle("Contacts"); 
contactsListItems = contactsList.GetItems( CamlQuery.CreateAllItemsQuery());

    ctx.Load(contactsListItems); ctx.ExecuteQueryAsync( ContactsLoaded, ContactsLoadedFail); } }

Chamadas para o servidor no Silverlight são assíncronas. Bem-sucedida do Exe método de QueryAsync FOFURA ­­ ­ leva dois delegados de retorno de chamada, uma para e outra para os resultados de falha. O método de retorno de chamada ContactsLoaded, dados ligar os resultados para o XAML no designer do Silverlight criado no início deste artigo. No retorno de chamada bem-sucedido, você só precisa fazer é definir a propriedade ItemsSource da caixa de listagem para a coleção de contatos retornada pelo modelo de objeto cliente. O retorno de chamada também ocorre em um thread de segundo plano, portanto, você precisará atualizar a propriedade dentro do método BeginInvoke do Dispatcher:

// ContactsLoaded void ContactsLoaded(object sender, ClientRequestSucceededEventArgs args)
 { //call back on the UI thread this.Dispatcher.BeginInvoke(() => 
{ ContactsListBox.ItemsSource = contactsListItems; }); }

Eu deixei o retorno de chamada com falha que permite a implementação.

Não há mais uma coisa que precisa fazer antes de executar o aplicativo: Você precisa alterar a maneira como o Silverlight é vinculado à fonte de dados. Lembre-se, no início deste artigo, eu criei um arquivo XML que representado os dados do SharePoint, mas isso não é exatamente os mesmos dados porque o modelo de objeto de cliente do SharePoint, na verdade, retorna uma coleção de valores de campo de dicionário.

Um dos novos recursos do Silverlight 4 é a capacidade de vincular os indexadores. Isso significa que você pode vincular dados para os valores de dicionário retornado pelo modelo de objeto do cliente usando o nome do valor do chave como uma seqüência de caracteres do comando de vinculação. Infelizmente, há não uma boa maneira de lidar com esses dados de exemplo complexo de com base no dicionário, mas é fácil alterar as ligações e para trás usando o Visual Studio localizar e substituir ferramentas. Por exemplo, você precisa alterar o texto = "{Binding título}"para text = "{Binding Path = FieldValues [Cargo]}". Para fazer isso para todos os campos. Eu adicionei o código de expressão regular para voltar e Avançar no código de exemplo deste artigo.

Depois que você alterou todas as ligações para usar a ligação do indexador de 4 do Silverlight, você estará pronto para executar o aplicativo. Navegue até a página de site criado para hospedar o aplicativo do Silverlight. Ele deve ter aparência 1 Figura que você viu no começo deste artigo.

Modelo de objeto do cliente carregados dinamicamente

Neste ponto, seu aplicativo estiver concluído, mas não há mais uma coisa que deseja mostrar a você. Esta é uma alteração para o SharePoint desde a versão beta. Quando eu criei uma referência ao modelo de objeto de cliente do Silverlight, navegando até os arquivos usando a caixa de diálogo do Visual Studio Add References, por padrão, o Visual Studio inclui esses dois arquivos no pacote .xap que ele se baseia. Isso adiciona KB 407 adicionais para o pacote do Silverlight.

A melhor opção é carregar dinamicamente esses módulos (assemblies) em tempo de execução. Isso permite que o navegador para o cache desses arquivos comuns, reduzindo o tamanho do seu aplicativo e os tempos de carregamento, aumentando o desempenho de seus aplicativos.

Desde a versão beta do SharePoint, SharePoint pacotes os arquivos de modelo de objeto de dois clientes em um arquivo único .xap chamado Microsoft.SharePoint.Client.xap. Este arquivo está no mesmo local que os outros clientes objeto modelo de arquivos, C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin. Você ainda precisará adicionar uma referência para os arquivos de modelo de objeto cliente, porque isso irá lhe fornecer o IntelliSense e compilar o suporte que necessário. Mas você precisará selecionar cada arquivo na pasta de referências do seu aplicativo do Silverlight e defina a propriedade Copy Local para false. Essa configuração para false impedirá que o Visual Studio adicionar esses arquivos para o pacote .xap.

Em seguida, você precisa adicionar código para carregar dinamicamente os assemblies de modelo de objeto cliente. Isso é muito genérico de código e pode ser usado em qualquer aplicativo do Silverlight em qualquer pacote .xap com pouca modificação. Comece alterando o evento de página carregada para chamar o código para fazer o download e a carga de módulos (assemblies). Neste exemplo, você pode passar um delegado de retorno de chamada ao método LoadList. Dessa forma, quando os assemblies são carregados e prontos para uso, será, em seguida, carregar os dados da lista do SharePoint, da seguinte forma:

void MainPage_Loaded(
  object sender, RoutedEventArgs e) {
  LoadClientOM loadClientOM = 
    new LoadClientOM(delegate() { LoadList(); });
  loadClientOM.Run();
}

Adicionar um novo arquivo de classe ao projeto chamado LoadClientOM.cs e adicione o código mostrado na do Figura 7. Esse código usa o WebClient para baixar o pacote .xap /_layouts/clientbin/Microsoft.SharePoint.Client.xap. Depois que o pacote for baixado, você carrega cada assembly do pacote.

A Figura 7 Carregando Microsoft.SharePoint.Client.xap

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Resources;
using System.Reflection;
namespace SilverlightApplication1 {
  public class LoadClientOM {
    private bool isDownloaded = false;
    private Action action;
    public LoadClientOM(Action action) {
      this.action = action;
    }
    public void Run() {
      WebClient client = new WebClient();
      client.OpenReadCompleted += 
        new OpenReadCompletedEventHandler(
        client_OpenReadCompleted);
      client.OpenReadAsync(new Uri(
        "/_layouts/clientbin/Microsoft.SharePoint.Client.xap", 
        UriKind.Relative));
    }
    void client_OpenReadCompleted(object sender, 
      OpenReadCompletedEventArgs e) {
      Stream assemblyStream;
      AssemblyPart assemblyPart;
      assemblyStream = Application.GetResourceStream(
        new StreamResourceInfo(e.Result, "application/binary"), 
        new Uri("Microsoft.SharePoint.Client.Silverlight.Runtime.dll", 
        UriKind.Relative)).Stream;
      assemblyPart = new AssemblyPart();
      Assembly b = assemblyPart.Load(assemblyStream);
      assemblyStream = Application.GetResourceStream(
        new StreamResourceInfo(e.Result, "application/binary"), 
        new Uri("Microsoft.SharePoint.Client.Silverlight.dll", 
        UriKind.Relative)).Stream;
      assemblyPart = new AssemblyPart();
      Assembly a = assemblyPart.Load(assemblyStream);
      this.isDownloaded = true;
      if (action != null) {
        action();
      }
    }
  }
}

Agora você pode executar o aplicativo novamente. Você verá que o aplicativo se parece exatamente o mesmo, mas agora você está carregando o modelo de objeto de cliente Silverlight dinamicamente em tempo de execução do servidor. Talvez seja difícil de detectar neste aplicativo simples, mas você também deve ver um melhor desempenho carregá-los dinamicamente.

Paul Stubbs é um divulgador técnico da Microsoft que focaliza a comunidade de desenvolvimento do operador de informações de rede social do SharePoint e o Office, o Silverlight e o Web 2. 0. Ele é autor de três livros sobre desenvolvimento de soluções com o Office, SharePoint e o Silverlight. Leia seu blog em blogs.msdn.com/b/pstubbsde .

Graças aos seguintes especialistas técnicos para revisão deste artigo: Mike Morton , John Papa e Unni Ravindranathan