97
Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint 2010 e o Unified Access Gateway Este documento é fornecido “no estado em que se encontra”. As informações e exibições expressas neste documento, incluindo URLs e outras referências a sites da Internet, podem ser alteradas sem aviso prévio. As informações e exibições expressas neste documento, incluindo URLs e outras referências a sites da Internet, podem ser alteradas sem aviso prévio. Alguns exemplos citados neste documento são fornecidos somente como ilustração e são fictícios. Não há nenhuma intenção, nem por dedução, de qualquer associação ou conexão real. Este documento não oferece a você quaisquer direitos legais sobre propriedade intelectual em qualquer produto da Microsoft. Este documento pode ser copiado e usado para fins internos e de referência. Este documento pode ser modificado para fins internos e de referência. Microsoft, SharePoint , Silverlight, Visual Studio e Windows Phone 7 são marcas registradas ou marcas comerciais da Microsoft Corporation nos Estados Unidos e/ou em outros países. © 2011 Microsoft Corporation. Todos os direitos reservados.

Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint 2010 e o Unified Access Gateway

Este documento é fornecido “no estado em que se encontra”. As informações e exibições expressas neste

documento, incluindo URLs e outras referências a sites da Internet, podem ser alteradas sem aviso prévio. As

informações e exibições expressas neste documento, incluindo URLs e outras referências a sites da Internet,

podem ser alteradas sem aviso prévio.

Alguns exemplos citados neste documento são fornecidos somente como ilustração e são fictícios. Não há

nenhuma intenção, nem por dedução, de qualquer associação ou conexão real.

Este documento não oferece a você quaisquer direitos legais sobre propriedade intelectual em qualquer

produto da Microsoft. Este documento pode ser copiado e usado para fins internos e de referência. Este

documento pode ser modificado para fins internos e de referência.

Microsoft, SharePoint , Silverlight, Visual Studio e Windows Phone 7 são marcas registradas ou marcas

comerciais da Microsoft Corporation nos Estados Unidos e/ou em outros países.

© 2011 Microsoft Corporation. Todos os direitos reservados.

Page 2: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

2

Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint 2010 e o Unified Access Gateway

Dave Pae

Microsoft Corporation

Todd Baginski

Aptillon, Inc.

Matthew McDermott

Aptillon, Inc.

Ben Ari

Microsoft Corporation

Março de 2011

Aplica-se a: Microsoft® SharePoint® Server 2010, Microsoft SharePoint Foundation

2010, Microsoft Forefront Unified Access Gateway, Windows Phone 7™

Resumo:

Este white paper aborda cenários comerciais para o desenvolvimento de aplicativos móveis que

usam os recursos dos Produtos do SharePoint 2010 para colaboração ao autenticar através do

Microsoft Forefront Unified Access Gateway (UAG). O corpo principal do paper apresenta os

conceitos e códigos necessários para acessar os dados da lista SharePoint de maneira segura

através do Windows Phone 7. O Apêndice detalha a instalação e a configuração de uma instância

do desenvolvedor do UAG para fins de teste e desenvolvimento de aplicativos móveis com os

Produtos do SharePoint 2010.

Page 3: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

3

umário Sumário ............................................................................................................................................................ 3 Visão geral e objetivos ........................................................................................................................................ 5 Arquitetura ........................................................................................................................................................ 6

Intranet dos produtos do SharePoint 2010 ...................................................................................................... 6

UAG ........................................................................................................................................................... 6 Cenário de colaboração de Intranet ...................................................................................................................... 6

Valor comercial de colaboração ...................................................................................................................... 7

O aplicativo ................................................................................................................................................. 7 Segurança ....................................................................................................................................................... 11

Armazenamento de credenciais.................................................................................................................... 11

Autenticação ............................................................................................................................................. 11 Serviços do SharePoint ..................................................................................................................................... 12

Serviços de consumo .................................................................................................................................. 12

Acessando os dados da lista do SharePoint usando a Biblioteca de Cliente OData ............................................... 12

Atividade de RSS Feed ................................................................................................................................ 20

Serviço de Perfil de Usuário - Colegas ........................................................................................................... 23

Serviço de perfil de usuário - Dados de perfil de usuário ................................................................................. 26 Teste .............................................................................................................................................................. 29

Testando o aplicativo no emulador ............................................................................................................... 29

Testando o aplicativo em um dispositivo ....................................................................................................... 29 Considerações do Marketplace ........................................................................................................................... 29 Conclusão ....................................................................................................................................................... 33 Apêndice - Instalação e configuração do UAG para os Produtos do SharePoint 2010 ................................................. 34

1. Criar uma máquina virtual do SharePoint Server e uma máquina virtual do UAG. ........................................... 34

2. Instalar a rede do host da Máquina virtual Hyper-V .................................................................................... 35

3. Instalar a rede da Máquina virtual Hyper-V ................................................................................................ 36

4. Preparar a máquina virtual do UAG server para a instalação do UAG ............................................................. 40

5. Instantâneos da máquina virtual do UAG Server ........................................................................................ 41

6. Instalar o UAG Server ............................................................................................................................. 41

7. Instantâneos da máquina virtual do UAG Server ........................................................................................ 47

8. Configuração e ativação inicial do UAG Server ........................................................................................... 47

9. Criar o Tronco HTTP para publicar o site do SharePoint ............................................................................... 63

10. Criar um aplicativo SharePoint ............................................................................................................... 73

11. Configurar um aplicativo SharePoint ....................................................................................................... 83

12. Ativar a configuração ............................................................................................................................ 85

13. Configurar e verificar os Mapeamentos de acesso alternativo do SharePoint................................................. 87

Page 4: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

4

14. Adicionar entradas de arquivo hosts ao ambiente de desenvolvimento ........................................................ 87

15. Testar a configuração ............................................................................................................................ 88

16. Testar o News feed RSS ........................................................................................................................ 93 Recursos ......................................................................................................................................................... 96

Forefront UAG na TechNet ........................................................................................................................... 96

Blog 'Closer to the Edge' ............................................................................................................................. 96

Blog da equipe 'Silverlight Web Services' ...................................................................................................... 96 Sobre os autores .............................................................................................................................................. 96

Todd Baginski, MVP .................................................................................................................................... 96

Matthew McDermott, MVP ........................................................................................................................... 96

Ben Ari ..................................................................................................................................................... 97

Page 5: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

5

Visão geral e objetivos Conforme as organizações crescem e mudam, procurando acompanhar a tecnologia, seus funcionários podem se sentir desconectados da comunidade corporativa. Os produtos do Microsoft® SharePoint 2010 oferecem suporte a muitos recursos que permitem o comprometimento e a colaboração do funcionário a partir de listas e bibliotecas que armazenam e gerenciam os documentos e informações, para centralizar os perfis de usuários que permitem que os funcionários descrevam a si mesmos e a sua função na organização, para marcações e notas que facilitam o descobrimento das informações dentro de fora do firewall. O Windows Phone 7™ é a versão mais recente dos dispositivos móveis que oferece suporte para a visão da Microsoft de um local de trabalho móvel. O Windows Phone é fornecido com muitos recursos que suportam o “Office na nuvem,” incluindo aplicativos que podem abrir e ler documentos do Microsoft Office. A experiência de desenvolvimento do Windows Phone 7 foi adaptada para o desenvolvedor .NET que já possui um conhecimento sólido sobre o desenvolvimento do .NET e do Microsoft Silverlight®. Este white paper procura fazer a ligação entre o desenvolvedor do Windows Phone e o desenvolvedor do SharePoint que deseja criar aplicativos comerciais que podem aproveitar o potencial dos Produtos do SharePoint 2010 no Windows Phone.

Observação Neste white paper, produtos SharePoint 2010 refere-se ao Microsoft SharePoint® Server 2010 e ao Microsoft SharePoint Foundation 2010, exceto se especificado de outra forma. Os exemplos e cenários usam o SharePoint Server 2010.

Este papel procura esclarecer os seguintes cenários de desenvolvimento:

Como eu preparo a conexão dos produtos SharePoint 2010 a partir dos meus aplicativos Windows Phone 7?

Como eu conecto ao SharePoint através do UGA?

Como eu conecto, faço autenticação e consumo os serviços do SharePoint Web?

Como eu crio e atualizo os itens de lista do SharePoint?

Como eu consumo os RSS feeds fornecidos pelo SharePoint?

Page 6: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

6

Arquitetura No cenário ilustrado neste white paper, Contoso possibilita que seus

funcionários conectem aos produtos do SharePoint 2010 através do UGA.

O UAG traduz o nome de host externo configurado no telefone ao nome

de host interno configurado no SharePoint e adiciona uma camada de

segurança e autenticação necessário para as organizações se protegerem

e controlarem suas propriedades corporativas da Web.

Intranet dos produtos do SharePoint 2010 A intranet da Contoso é uma implementação corporativa dos Produtos do

SharePoint 2010. Este site é configurado usando um Aplicativo de Perfil de

Usuário e Aplicativo de Serviço de Pesquisa. O aplicativo móvel usará o serviço

da Web do Serviço de Perfil de Usuário para permitir que os funcionários

vejam as informações do Perfil de Usuário em seus telefones celulares.

Para obter mais informações sobre a configuração do Aplicativo de Serviço de

Perfil de Usuário, consulte Administração do serviço de Perfil de Usuário

(SharePoint Server 2010) (http://technet.microsoft.com/pt-br/library/ee721050.aspx).

UAG Publicando um site SharePoint através de um UAG server em um ambiente de desenvolvimento envolve a

configuração de redes na máquina host Hyper-V, o servidor executando o SharePoint Server 2010 e o UAG

server, para a instalação e configuração do UAG server.

O Apêndice descreve como configurar essas redes e instalar e configurar um UAG server para publicar um

site SharePoint para o desenvolvimento do Windows Phone 7. Estas etapas são adequadas para o ambiente

de desenvolvimento ou outro ambiente de não-produção. Consulte o Guia de soluções de publicação do

SharePoint (http://go.microsoft.com/fwlink/?LinkID=206256) na TechNet ao implementar um ambiente

como este para um ambiente de produção.

Cenário de colaboração de Intranet Contoso tem muitas pessoas talentosas trabalhando em muitas áreas diferentes da produção, incluindo

farmacêutica e eletrônica. A liderança na Contoso tem uma visão de integração de pessoas e software para

não só aumentar a produtividade do ambiente de trabalho mas também, criar mais conexão na perspectiva

do funcionário. A Contoso quer que todos aproveitem a interface com os dados para habilitar uma força de

trabalho feliz e produtiva. A empresa possui uma fundação inicial forte com sua implantação dos Produtos do

SharePoint 2010. Eles vêm o SharePoint como o aplicativo corporativo central que consolida os dados de

usuário e atividades. A Contoso quer ir mais além, oferecendo uma solução de mobilidade para seus

associados. Para isto, eles querem desenvolver um aplicativo móvel que permita que os usuários vejam suas

atividades no SharePoint, acompanhem os colegas e atualize listas hospedadas na Intranet do SharePoint.

Page 7: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

7

Valor comercial de colaboração Embora algumas empresas possam achar desafiador combinar diretamente o valor comercial aos recursos de

colaboração dos Produtos do SharePoint 2010, a Contoso encontrou um relacionamento direto entre a

conexão das pessoas entre si e a construção de um senso de comunidade com o SharePoint. Quanto mais os

funcionários se sentem conectados aos amigos no trabalho, mais felizes eles ficam para executarem suas

tarefas. Esta alegria e satisfação pelo trabalho levam a uma melhor retenção de funcionários (e facilita muito

o entrosamento de um novo funcionário). Uma melhor retenção de funcionários, reduz o custo das

contratações e aprimora o resultado de uma empresa.

O aplicativo Através do aplicativo móvel, a Contoso deseja replicar muitos dos recursos oferecidos pelo Meus Sites do

SharePoint em um navegador da Web. O fluxo do aplicativo consistirá de uma página panorâmica com caixas

de seleção para Pessoas Visualizadas Recentemente, Meu News Feed, Minhas Atividades e Meus Colegas.

Qualquer lugar em que um usuário marcar na imagem de outro usuário, o perfil do usuário selecionado

abrirá em uma nova página. Os resultados de pesquisa serão apresentados em uma caixa de seleção e a

seleção de um usuário exibirá o perfil do usuário. Figura 1 ilustra tais componentes.

Figura 1: A funcionalidade social do SharePoint que a Contoso deseja usar no seu aplicativo para o Windows

Phone 7.

Lista de tarefas pessoais Cada site pessoal possui uma lista de tarefas que o funcionário pode manter para rastrear o progresso

pessoal nas atribuições. O aplicativo conectará à lista de tarefa do site pessoal e permitirá que o funcionário

crie, atualize e exclua tarefas.

Meu News Feed O Meu News Feed (Figura 2) no Meu Site no SharePoint é o local onde os usuários podem obter as notícias

mais atualizadas sobre a empresa. Como Meu News Feed é extensível, as organizações como a Contoso pode

adicionar canais adicionais para eventos de atividades de outros sistemas.

Page 8: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

8

Figura 2: Meu News Feed em um site do SharePoint visto em um navegador da Web.

Meus Colegas A lista de colegas mantida por um usuário (“as pessoas que eu sigo”) são um recurso valioso (Figura 3). A

Contoso quer duplicar aquela lista na experiência móvel.

Figura 3: Meus Colegas em um site do SharePoint visto em um navegador da Web.

Page 9: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

9

O aplicativo do Windows Phone usará o controle de panorama para exibir as informações, incluindo os perfis

acessados recentemente, em um painel contínuo. (Figura 4)

Figura 4: O controle de panorama que mostra a vista holística do aplicativo do Windows Phone 7.

Cartão de perfil Ao selecionar qualquer usuário, aparecerão os detalhes do seu perfil (Figura 5). O cartão de perfil mostrará as

informações sobre o usuário na visualização móvel.

Page 10: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

10

Figura 5: Detalhes sobre um usuário em um site SharePoint conforme visto em um navegador da Web.

Figura 6: Detalhes sobre um usuário em um site SharePoint conforme visto no aplicativo do Windows Phone 7.

Page 11: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

11

Segurança A segurança para o desenvolvedor do Windows Phone deve ser considerada tanto nos dados a serem

transmitidos como no dados a serem armazenados. O armazenamento seguro de credenciais é obtido

através do uso de criptografia e armazenamento isolado. Para obter mais informações sobre as capacidades

de segurança do telefone, consulte Segurança para o Windows Phone

(http://go.microsoft.com/fwlink/?LinkId=215977) no MSDN.

Armazenamento de credenciais O Windows Phone 7 oferece suporte aos seguintes algoritmos de criptografia:

AES

HMACSHA1

HMACSHA256

Rfc2898DeriveBytes

SHA1

SHA256

É imperativo que o desenvolvedor de qualquer aplicativo móvel que armazene as credenciais no telefone

considere a segurança das credenciais armazenadas em um evento em que o dispositivo esteja perdido ou

comprometido.

Autenticação O Windows Phone 7 não oferece suporte para a autenticação NTLM . As solicitações de serviço da Web do

telefone através do UAG devem criar o cabeçalho correto de autenticação recuperando as credenciais do

usuário a partir do armazenamento de criptografia e anexando as credenciais ao cabeçalho do objeto

HttpWebRequest. As solicitações de Web devem ser feitas através de HTTPS e os cabeçalhos de autenticação

serem ultrapassados, da seguinte maneira.

upsRequest.Headers["Authorization"] = "Basic " +

Convert.ToBase64String(

Encoding.UTF8.GetBytes(AppSettings.Username + ":" + AppSettings.Password)) +

System.Environment.NewLine;

Ao usar uma referência de serviço WCF, o cabeçalho poderá ser adicionado ao cliente SOAP acessando o

OperationContextScope, conforme o seguinte exemplo.

using (OperationContextScope scope =

new OperationContextScope(ups.InnerChannel))

{

//Create the Request Message Property

HttpRequestMessageProperty request = new HttpRequestMessageProperty();

//Create the authentication and mobile agent header

Page 12: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

12

request.Headers[System.Net.HttpRequestHeader.Authorization] =

"Basic " +

Convert.ToBase64String(Encoding.UTF8.GetBytes(AppSettings.Username + ":" +

AppSettings.Password)) + System.Environment.NewLine;

request.Headers[System.Net.HttpRequestHeader.UserAgent] =

"Microsoft Office Mobile";

//Add the headers to the request

OperationContext.Current.OutgoingMessageProperties.Add(

HttpRequestMessageProperty.Name, request);

//Call the method

ups.GetUserColleaguesAsync(account);

}

Serviços do SharePoint

Serviços de consumo O aplicativo consumirár vários serviços do SharePoint para alcançar os requisitos para o negócio, conforme

resumido na seguinte tabela.

Requisito URL do serviço Método

Ler e atualizar Lista

de dados

http://sharepoint/_vti_bin/listdata.svc Biblioteca de cliente

OData

Visualizar News feed

do usuário

http://mysitehost/_layouts/activityfeed.aspx?consolidate

d=true

Consumir o RSS Feed

fornecido.

Visualizar os colegas

do usuário

http://mysitehost/_vti_bin/userprofileservice.asmx GetUserColleagues

Visualizar o Perfil do

usuário

http://mysitehost/_vti_bin/userprofileservice.asmx GetUserProfileByName

Acessando os dados da lista do SharePoint usando a Biblioteca de Cliente OData A publicação do conjunto de sites do SharePoint através do UAG server permite a integração entre os aplicativos

do Windows Phone 7 e os APIs REST do SharePoint. A Biblioteca de cliente OData para o Windows Phone 7 série

CTP (http://go.microsoft.com/fwlink/?LinkId=215984) permite que os dispositivos do Windows Phone 7

Page 13: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

13

consumam os feeds do OData. Os APIs REST do SharePoint pode ser chamados usando a Biblioteca de Cliente

OData para propiciar as operações criar, ler, atualizar e excluir (CRUD) na lista de dados do SharePoint. Isto

fornece a habilidade para integrar os dispositivos do Windows Phone 7 em colaboração com os aplicativos

desenvolvidos na plataforma do SharePoint. O modelo de código a seguir demonstra como usar a Biblioteca de

Cliente OData e os APIs REST do SharePoint para executar operações CRUD nos dados da lista do SharePoint.

Como você não pode adicionar Referências de serviço para os APIs REST do SharePoint a um aplicativo do

Windows Phone 7, você deve criar uma classe proxy manualmente e adicionar a classe como uma referência

ao projeto no Microsoft Visual Studio®. DataSvcUtil.exe (http://go.microsoft.com/fwlink/?LinkID=215987) é

usado para criar a classe proxy. Neste cenário, a classe proxy é chamada ContosoIntranetDataContext. Esta

classe é usada extensivamente nos modelos de código a seguir.

O método LoadTask demonstra como carregar as tarefas a partir da lista de Tarefas do SharePoint. Neste

método, a classe ContosoIntranetDataContext usa as configurações de IsolatedStorage para determinar em

qual site SharePoint se conectar. O manipulador de evento SendingRequest é atribuído à instância do

ContosoIntranetDataContext. Este manipulador de evento é acionado quando a classe

ContosoIntranetDataContext invoca uma solicitação para os APIs REST do SharePoint. requestUri defines a

operação REST e o método BeginExecute envia a solicitação. O método BeginExecute também registra o

método retorno de chamada assíncrono que será acionado quando a consulta for concluída.

private void LoadTasks()

{

Deployment.Current.Dispatcher.BeginInvoke(() =>

{

if (allTasks == null)

{

allTasks = new ObservableCollection<Task>();

}

ObservableCollection<TasksItem> tasks = new

ObservableCollection<TasksItem>();

//Retrieve the settings from isolated storage

SettingsModel settings =

(IsolatedStorageSettings.ApplicationSettings["Settings"]

as SettingsModel);

//Set up the ODATA context to point to the SharePoint site

context = new ContosoIntranetDataContext(

new Uri(settings.ServerUri + "/_vti_bin/listdata.svc"));

//Register the event handler used to authenticate to UAG

Page 14: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

14

context.SendingRequest += new EventHandler<SendingRequestEventArgs>(

context_SendingRequest);

//Set the URI to query the Tasks list

//Expand is used to retrieve lookup column values

Uri requestUri = new Uri(context.BaseUri.OriginalString +

"/Tasks()?$expand=AssignedTo,CreatedBy,ModifiedBy");

//Start the async call to query SharePoint

context.BeginExecute<TasksItem>(requestUri, QueryCallback, null);

});

}

O manipulador de evento SendingRequest será acionado quando a consulta OData for enviada aos Produtos

do SharePoint 2010. O código neste manipulador do evento é significativo: sem este código, o UAG server

não pode identificar corretamente um dispositivo Windows Phone 7 e interagir adequadamente para

autenticar um usuário. Cabeçalho do Agente do Usuário faz com que o UAG server responda com HTTP 401

em vez de 302. Cabeçalho de autorização inclui as credenciais criptografadas para o usuário acessando o

feed OData. As credenciais criptografadas são usadas pelo UAG server para autenticar o usuário.

private void context_SendingRequest(object sender, SendingRequestEventArgs e)

{

e.RequestHeaders["User-Agent"] = "Microsoft Office Mobile";

e.RequestHeaders["Authorization"] = "Basic " + Convert.ToBase64String(

Encoding.UTF8.GetBytes(App.Credential.Name + ":" +

App.Credential.Password)) + System.Environment.NewLine;

}

Após a conclusão da consulta ao servidor executando o SharePoint Server, o método QueryCallback é

acionado. Este método analisa os resultados retornados de uma consulta e os adiciona ao

ObservableCollection associado aos elementos da IU no aplicativo do telefone.

private void QueryCallback(IAsyncResult asyncResult)

{

IEnumerable<TasksItem> results;

allTaskItems = new ObservableCollection<TasksItem>();

results = context.EndExecute<TasksItem>(asyncResult).ToList()

Page 15: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

15

as IEnumerable<TasksItem>;

ObservableCollection<Task> returnedTasks =

new ObservableCollection<Task>();

foreach (TasksItem tasksItem in results)

{

//Code omitted for brevity: Retrieve metadata about the task…

//Create the new Task and set its properties

Task task = new Task()

{

Title = tasksItem.Title,

Priority = taskPriority,

TaskStatus = taskStatus,

Body = tasksItem.Description,

Author = authorUser.Name,

Editor = editorUser.Name,

AssignedTo = assignedToUser.Name,

StartDate = DateTime.Parse(tasksItem.StartDate.ToString()),

Modified = DateTime.Parse(tasksItem.Modified.ToString()),

Created = DateTime.Parse(tasksItem.Created.ToString()),

DueDate = DateTime.Parse(tasksItem.DueDate.ToString()),

UIVersion = 1,

Last_x0020_Modified =

DateTime.Parse(tasksItem.Modified.ToString()),

Created_x0020_Date =

DateTime.Parse(tasksItem.Created.ToString()),

PercentComplete = (int)finalPercentComplete,

ListID = tasksItem.Id

};

//Add each task to the ObservableCollection bound to UI elements.

returnedTasks.Add(task);

allTaskItems.Add(tasksItem);

}

Page 16: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

16

allTasks = returnedTasks;

//UI callback methods omitted for brevity

}

O método SaveTask cria novas tarefas e atualiza as existentes. O código a seguir demonstra como usar a

Biblioteca de cliente OData para criar novas tarefas ou atualizar as existentes em uma lista de tarefas do

SharePoint a partir de um dispositivo Windows Phone 7. A classe TasksItem representa uma tarefa em uma lista

de tarefas. Uma instância TasksItem é criada e suas propriedades são definidas para os valores no formulário

usado para criar ou editar tarefas. A instância TasksItem é então comparada às tarefas já carregadas no telefone

para ver se a tarefa já existe. Esta verificação determina se a Biblioteca de cliente OData foi usada para criar uma

nova tarefa na lista de tarefas do SharePoint ou atualizar uma existente. O método BeginSaveChanges invoca a

operação apropriada e registra o método de retorno de chamada saveChangesCallBack.

public void SaveTask(Task task, Action<Task> callback)

{

taskToSave = task;

#region Create/update new task object

saveTaskCallback = callback;

//Retrieve the settings from isolated storage

SettingsModel settings =

(IsolatedStorageSettings.ApplicationSettings["Settings"]

as SettingsModel);

//Set up the ODATA context to point to the appropriate SharePoint site

context = new ContosoIntranetDataContext(

new Uri(settings.ServerUri + "/_vti_bin/listdata.svc"));

//Register the event handler used to authenticate to UAG

context.SendingRequest +=

new EventHandler<SendingRequestEventArgs>(context_SendingRequest);

TasksItem tasksItem = new TasksItem();

tasksItem.Title = task.Title;

tasksItem.Description = task.Body;

tasksItem.AssignedToId = assignedToUserID;

tasksItem.PriorityValue = task.Priority.DisplayString;

tasksItem.StartDate = task.StartDate;

Page 17: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

17

tasksItem.DueDate = task.DueDate;

//Set percent complete

if (task.PercentComplete > 0)

{

tasksItem.Complete = (double)task.PercentComplete / 100;

}

else

{

tasksItem.Complete = (double)0;

}

//Set tasks status

tasksItem.StatusValue = task.TaskStatus.DisplayString;

//If the task already exists then update it

if (allTasks.Count > 0 && DoesTaskExist(taskToSave) && task.ListID != 0)

{

tasksItem.Id = task.ListID;

context.AttachTo("Tasks", tasksItem, "*");

context.UpdateObject(tasksItem);

}

//If the task does not exist then create it

else

{

context.AddToTasks(tasksItem);

}

Deployment.Current.Dispatcher.BeginInvoke(

() =>

{

//Start the async call to SharePoint to commit the changes

context.BeginSaveChanges(saveChangesCallBack, context);

}

);

}

Page 18: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

18

Após a conclusão da consulta, saveChangesCallBack é acionado. Este método analisa os resultados

retornados de uma consulta e atualiza o ObservableCollection associado aos elementos da IU no telefone.

private void saveChangesCallBack(IAsyncResult asyncResult)

{

Deployment.Current.Dispatcher.BeginInvoke(

() =>

{

//Get the data context from the response

context = asyncResult.AsyncState as ContosoIntranetDataContext;

//Call the endsavechanges method to commit the change

DataServiceResponse response = context.EndSaveChanges(asyncResult);

//If the task already exists then update it

if (allTasks.Count > 0 && DoesTaskExist(taskToSave))

{

for (int i = 0; i < allTasks.Count; i++)

{

if (allTasks[i].ListID == taskToSave.ListID)

{

//Update the corresponding task in the in-memory collection

allTasks[i] = taskToSave;

//Call the callback to tell the UI the save operation is complete

saveTaskCallback.DynamicInvoke(taskToSave);

break;

}

}

}

//If the task does not exist then create it

else

{

//Add the task to the in-memory collection

allTasks.Add(taskToSave);

//Call the callback to tell the UI the save operation is complete

saveTaskCallback.DynamicInvoke(taskToSave);

}

Page 19: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

19

}

);

}

O método DeleteTask demonstra como usar a Biblioteca de cliente OData para excluir tarefas em uma lista de

tarefas do SharePoint a partir de um dispositivo Windows Phone 7. Este método pega o ID associado à tarefa

selecionada no aplicativo do Windows Phone 7 e cria um objeto Task baseado no ID. O objeto Task é usado

para localizar o correspondente TasksItem no contexto da Biblioteca de cliente OData associado à lista de

tarefas do SharePoint. Após a localização da entrada correspondente, ela é marcada para exclusão. O método

de retorno de chamada BeginSaveChanges invoca o API REST do SharePoint e e registra o método de retorno

de chamada DeleteCallBack.

public void DeleteTask(int ID, Action callback)

{

deleteTaskCallback = callback;

taskToDelete = GetTask(ID);

//Retrieve the settings from isolated storage

SettingsModel settings =

(IsolatedStorageSettings.ApplicationSettings["Settings"]

as SettingsModel);

//Set up the ODATA context to point to the appropriate SharePoint site

context = new ContosoIntranetDataContext(

new Uri(settings.ServerUri + "/_vti_bin/listdata.svc"));

//Register the event handler used to authenticate to UAG

context.SendingRequest +=

new EventHandler<SendingRequestEventArgs>(context_SendingRequest);

foreach (TasksItem tasksItem in allTaskItems)

{

if (tasksItem.Id == taskToDelete.ListID)

{

context.MergeOption = MergeOption.OverwriteChanges;

context.AttachTo("Tasks", tasksItem, "*");

context.DeleteObject(tasksItem);

//Start the async call to SharePoint to commit the delete

context.BeginSaveChanges(DeleteCallback, context);

Page 20: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

20

break;

}

}

}

Após a conclusão da consulta, o método DeleteCallBack é acionado. Este método analisa os resultados

retornados de uma consulta e remove a tarefa no ObservableCollection associado aos elementos da IU no

telefone.

private void DeleteCallback(IAsyncResult asyncResult)

{

Deployment.Current.Dispatcher.BeginInvoke(

() =>

{

//Get the data context from the response

context = asyncResult.AsyncState as ContosoIntranetDataContext;

//Call the endsavechanges method to commit the change

DataServiceResponse response = context.EndSaveChanges(asyncResult);

// Remove the task from the in-memory collection as well

if (taskToDelete != null)

{

//Remove the task from the in-memory collection

GetAllTasks().Remove(taskToDelete);

//Call the callback to tell the UI the delete operation is complete

deleteTaskCallback.DynamicInvoke();

}

}

);

}

Atividade de RSS Feed

O news feed pessoal e as atividades recentes são publicadas no host Meu Site como um RSS feed. O

aplicativo precisa somente solicitar o RSS feed, fazer download da cadeia e adicionar os resultados a um

objeto do conjunto. As atividades são publicadas pelo host do Meu Site na URL

http://<mysitehost>/_layouts/activityfeed.aspx?consolidated=true. (Certifique-se de que testou o RSS feed

Page 21: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

21

seguindo as orientações no Apêndice ao final deste paper antes de tentar acessá-lo através da abordagem de

código descrita abaixo.)

O método LoadNewsfeed demonstra como solicitar o feed de atividades consolidada para os usuários

autenticados através do UAG. Uma nova A new HtpWebRequest é criada passando a URI do feed de

atividade consolidada. Os cabeçalho de cliente necessários são adicionados à solicitação. A Conta e Senha são

variáveis acessadas em um armazenamento criptografado isolado. Para facilitar o uso do padrão Modelo de

Exibição da Exibição do modelo, o kit de ferramentas leves MVVM empregado (para obter mais informações,

consulte Site da Web do kit de ferramentas leves MVVM (http://go.microsoft.com/fwlink/?LinkId=216135)).

Neste modelo DispatcherHelper.CheckBeginInvokeOnUI é chamado para manusear ResponseStream e os

resultados são passados para o AddNewsfeedItems para extrair os valores resultantes e adicioná-los ao

conjunto NewsfeedItems.

private void LoadNewsfeed()

{

//My Newsfeed RSS URL

string url =

String.Format(“{0}/my/_layouts/activityfeed.aspx?consolidated=true",

AppSettings.Url);

System.Uri authServiceUri = new Uri(url);

HttpWebRequest client =

WebRequest.CreateHttp(authServiceUri) as HttpWebRequest;

//Add the necessary headers for UAG

client.Headers["User-Agent"] = "Microsoft Office Mobile";

client.Headers["Authorization"] = "Basic " +

Convert.ToBase64String(Encoding.UTF8.GetBytes(AppSettings.Username + ":" +

AppSettings.Password)) +

System.Environment.NewLine;

client.AllowReadStreamBuffering = true;

client.AllowAutoRedirect = true;

// Call and handle the response.

client.BeginGetResponse((asResult) =>

{

DispatcherHelper.CheckBeginInvokeOnUI(

() =>

{

try

Page 22: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

22

{

var response = client.EndGetResponse(asResult);

StreamReader reader = new

StreamReader(response.GetResponseStream());

string responseString = reader.ReadToEnd();

AddNewsfeedItems(responseString);

}

catch (WebException failure)

{

throw failure;

}

});

},

null);

}

Após a conclusão do download AddNewsfeedItems adiciona resultados para o conjunto associado a IU.

responseString é analisado em um XDocument e os dois nomes de espaço são adicionados. O LINQ foi usado

para consultar o conjunto de entradas e criar objetos MyNewsfeedViewModel que armazenam os itens de

news feed resultantes e as informações do autor. Finalmente, os itens são adicionados ao conjunto

MyNewsFeedItems.

private void AddNewsfeedItems(string responseString)

{

//Parse the XML Response

XDocument newsfeedDoc = XDocument.Parse(responseString);

//Add the necessary Namespaces

XNamespace ns = "http://www.w3.org/2005/Atom";

XNamespace af = "AF";

//Use LINQ to extract the information into a ViewModel

IEnumerable<MyNewsfeedViewModel> entries = from entry in

newsfeedDoc.Descendants(XName.Get("entry", ns.NamespaceName))

select new MyNewsfeedViewModel()

{

Summary = entry.Element(ns + "summary").Value,

Published = entry.Element(ns + "published").Value,

Author =

Page 23: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

23

(from author in entry.Descendants(XName.Get("author",

ns.NamespaceName))

select new PersonViewModel(NavigationService)

{

AccountName = author.Element(af + "AccountName").Value,

Name = author.Element(ns + "name").Value,

PersonalSiteUrl = author.Element(ns + "uri").Value,

Email = author.Element(ns + "email").Value,

PictureUrl = author.Element(af + "Picture").Value

}).FirstOrDefault()};

//Add the resulting items to the Collection bound to the UI controls

DispatcherHelper.CheckBeginInvokeOnUI(() =>

{

foreach (MyNewsfeedViewModel e in entries.ToList())

{

MyNewsfeedItems.Add(e);

}

});

}

Serviço de Perfil de Usuário - Colegas O serviço de Perfil de Usuário do SharePoint oferece a habilidade de visualizar, criar, editar e gerenciar as

informações do perfil de usuário nos Produtos do SharePoint 2010. O serviço é o principal ponto de entrada

para o aplicativo recuperar as informações sobre os colegas e o perfil do usuário. O código a seguir

demonstra como chamar o serviço de Perfil de Usuário no Windows Phone7 através do UAG.

Criar referência de serviço de perfil de usuário Comece adicionando um Serviço de referência ao seu projeto no Windows Phone 7. Digite a URL para o

ponto de extremidade do Serviço de perfil de usuário do SharePoint, por exemplo:

http://spwp7intranet.contoso.com/_vti_bin/userprofileservice.asmx

Forneça um nome reconhecível à Referência de serviço, tal como UserProfileService e clique em OK.

Método da Web GetUserColleagues O método LoadColleagueData usa o método GetUserColleaguesAsync do Serviço de perfil de usuário para

retornar um conjunto de colegas como objetos ContactData. Após a criação de BasicHttpBinding e

Page 24: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

24

EndpointAddress, um novo UserProfileServiceSoapClient é criado com os parâmetros necessários. As chamadas

de serviço no Silverlight devem ser feitas de modo assíncrono. Um novo manipulador de evento OnCompleted é

adicionado para o evento GetUserColeaguesCompleted. Para adicionar os cabeçalhos solicitados pelo UAG, um

OperationContextScope é usado e um HttpRequestMessageProperty é criado para manter os dois cabeçalhos

necessários para autenticação no UAG. Os cabeçalhos são adicionados à mensagem de saída e a chamada

assíncrona é feita para GetUserColleaguesAsync usando a conta do usuário como parâmetro.

private void LoadColleagueData()

{

string url =

String.Format("{0}/_vti_bin/userprofileservice.asmx", AppSettings.Url);

BasicHttpBinding binding = new BasicHttpBinding();

EndpointAddress endpoint = new EndpointAddress(url);

UserProfileService.UserProfileServiceSoapClient ups =

new UserProfileServiceSoapClient(binding, endpoint);

//Add the Event Completed Handler

ups.GetUserColleaguesCompleted +=

new EventHandler<GetUserColleaguesCompletedEventArgs>(

ups_GetUserColleaguesCompleted);

//Add the credentials

using (OperationContextScope scope =

new OperationContextScope(ups.InnerChannel))

{

//Create the Request Message Property

HttpRequestMessageProperty request = new HttpRequestMessageProperty();

//Create the authentication and mobile agent header

request.Headers[System.Net.HttpRequestHeader.Authorization] =

"Basic " +

Convert.ToBase64String(Encoding.UTF8.GetBytes(AppSettings.Account +

":" + AppSettings.Password)) + System.Environment.NewLine;

request.Headers[System.Net.HttpRequestHeader.UserAgent] =

"Microsoft Office Mobile";

//Add the headers to the request

OperationContext.Current.OutgoingMessageProperties.Add(

Page 25: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

25

HttpRequestMessageProperty.Name, request);

//Call the method

ups.GetUserColleaguesAsync(account);

}

}

Quando o método GetUserColleaguesAsync retorna os resultados, o evento ups_GetUserColleaguesCompleted é

chamado. Se não houver erros, LINQ será usado para criar uma lista de PersonViewModels a partir do

ContactData resultante. A última etapa é adicionar PersonViewModels a partir da lista para ColleaguesList no

thread IU chamando CheckBeginInvoke e passando na nossa lista de PersonViewModels.

private void ups_GetUserColleaguesCompleted(object sender,

GetUserColleaguesCompletedEventArgs e)

{

if (e.Error == null)

{

//Create a list of PersonViewModels

IEnumerable<PersonViewModel> colleagues =

from contact in e.Result

select new PersonViewModel()

{

AccountName = contact.AccountName,

UserProfileID = contact.UserProfileID.ToString(),

Name = contact.Name,

Title = contact.Title,

Email = contact.Email,

PersonalSiteUrl = contact.Url

};

//Load the Colleagues list on the UI thread

DispatcherHelper.CheckBeginInvokeOnUI(() =>

{

foreach (PersonViewModel c in colleagues.ToList())

{

Colleagues.Add(c);

}

});

}

Page 26: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

26

else

{

Debug.WriteLine("Error loading the Colleagues List: {0}",

e.Error.Message);

}

}

Serviço de perfil de usuário - Dados de perfil de usuário O método Web GetUserColleagues não retorna os perfis de usuários. Este método retorna ContactData que

podem ser passados de volta ao método GetUserProfileByName Serviço de perfil de usuário que retorna um

objeto de Perfil de usuário completo que pode ser usado para exibir um perfil de usuário completo. O método a

seguir é usado para retornar os detalhes do perfil de usuário para nossos colegas. Especificamente,

retornaremos os campos AboutMe, WorkPhone, MobilePhone e PictureURL.

O método GetUserProfileProperties pega um objeto PersonViewModel para a pessoa cujo perfil queremos

recuperar. Neste método, construímos um inspetor de mensagens para resolver um problema que faz com

que os valores de retorno de PropertyData não sejam analisados corretamente. Então criamos um

BasicHttpMessageInspectorBinding que toma o inspetor de mensagem como parâmetro, passa a associação

e o ponto de extremidade para o construtor para o UserProfileServiceSoapClient. e registra o manipulador

de evento GetUserProfileByNameCompleted . Para adicionar as solicitações de cabeçalho solicitadas pelo

UAG, um OperationContextScope adiciona os cabeçalhos Authorization e UserAgent à solicitação.

Finalmente, chamamos o método GetUserProfileByNameAsync e passamos o Account Name para o usuário

e o PersonViewModel que queremos atualizar.

private void GetUserProfileProperties(PersonViewModel person)

{

//URL for the service

string url = String.Format("{0}/_vti_bin/userprofileservice.asmx",

AppSettings.ServerUrl);

//Create the Message Inspector

SPAsmxMessageInspector messageInspector = new SPAsmxMessageInspector();

//Apply the Message Inspector to the Binding

BasicHttpMessageInspectorBinding binding = new

BasicHttpMessageInspectorBinding(messageInspector);

EndpointAddress endpoint = new EndpointAddress(url);

Page 27: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

27

UserProfileService.UserProfileServiceSoapClient ups = new

UserProfileServiceSoapClient(binding, endpoint);

//Add the Event Completed Handler

ups.GetUserProfileByNameCompleted += new

EventHandler<GetUserProfileByNameCompletedEventArgs>

(ups_GetUserProfileByNameCompleted);

using (OperationContextScope scope = new

OperationContextScope(ups.InnerChannel))

{

//Create the Request Message Property

HttpRequestMessageProperty request = new HttpRequestMessageProperty();

//Create the authentication and mobile agent header

request.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " +

Convert.ToBase64String(Encoding.UTF8.GetBytes(AppSettings.UserName + ":" +

AppSettings.Password)) + System.Environment.NewLine;

request.Headers[System.Net.HttpRequestHeader.UserAgent] =

"Microsoft Office Mobile";

//Add the headers to the request

OperationContext.Current.

OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name, request);

Debug.WriteLine("Getting User Profile for: {0}", person.AccountName);

//Call the method

ups.GetUserProfileByNameAsync(person.AccountName, person);

}

}

Ao chamar GetUserProfileByNameCompleted, os valores de propriedade de retorno (se houverem) são inspecionados e associados à propriedade adequada em PersonViewModel.

private void ups_GetUserProfileByNameCompleted(object sender,

GetUserProfileByNameCompletedEventArgs e)

{

if (e.Error == null)

Page 28: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

28

{

Debug.WriteLine("Got the user profile for {0}",

((PersonViewModel)e.UserState).AccountName);

foreach (UserProfileService.PropertyData propertyData in e.Result)

{

switch (propertyData.Name)

{

case "AboutMe":

((PersonViewModel) e.UserState).AboutMe = propertyData.Values.Count >

0 ? (propertyData.Values[0].Value as string): String.Empty;

break;

case "WorkPhone":

((PersonViewModel)e.UserState).WorkPhone = propertyData.Values.Count >

0 ? (propertyData.Values[0].Value as string): String.Empty;

break;

case "CellPhone":

((PersonViewModel)e.UserState).MobilePhone = propertyData.Values.Count >

0 ? (propertyData.Values[0].Value as string): String.Empty;

break;

case "PictureURL":

((PersonViewModel)e.UserState).PictureUrl = propertyData.Values.Count >

0 ? (propertyData.Values[0].Value as string): String.Empty;

break;

}

}

}

else

{

Debug.WriteLine(e.Error.Message);

}

}

Page 29: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

29

Observação: O inspetor de mensagem neste exemplo só é recomendado para uso em ambientes nos quais

você aplicou as atualizações mais recentes do Silverlight. Para obter mais informações, consulte Alternativa

para o acesso a alguns serviços ASMX a partir do Silverlight 4

(http://go.microsoft.com/fwlink/?LinkID=216134 ) e GUIDs de Serviço de perfil de usuário do Silverlight e do

SharePoint User (http://go.microsoft.com/fwlink/?LinkId=216136).

Teste

Testando o aplicativo no emulador O aplicativo neste modelo é estado no emulador de desenvolvimento do Windows Phone 7. O emulador usa

a conexão de rede da máquina host de desenvolvimento. Se necessário, as entradas de arquivo do host

podem ser adicionadas à máquina de desenvolvimento e assim, resolver o endereço do UAG server de

desenvolvimento.

Testando o aplicativo em um dispositivo O teste do aplicativo em um dispositivo físico Windows Phone requer que o telefone esteja conectado a uma

conexão Wi-Fi com disponibilidade pública que fornece o DNS e a rota para o teste de destino no UAG server,

ou testar o UAG server exposto na Internet.

Considerações do Marketplace Depois de desenvolver seu aplicativo para o Windows Phone 7, é importante seguir as etapas apropriadas

para publicar seu aplicativo com segurança no Windows Phone Marketplace. A Microsoft já alocou vários

mecanismos para evitar a pirataria de software nos aplicativos do Windows Phone 7. Você pode ler mais

sobre estas medidas em White-paper anti-pirataria do Windows Phone Marketplace

(http://go.microsoft.com/fwlink/?LinkId=216137).

Em um nível superior, o número mínimo de etapas que você deve seguir para publicar um aplicativo do

Windows Phone 7 no Windows Phone Marketplace inclui a criação de uma conta de desenvolvedor e a

publicação do seu aplicativo no mercado. O artigo Registro de desenvolvedor de Apl Hub passo a passo

(http://go.microsoft.com/fwlink/?LinkId=216138) descreve como registrar uma conta de desenvolvedor.

É importante observar que uma conta de desenvolvedor pode estar vinculada a um indivíduo ou a uma

empresa. Dependendo das suas necessidades, você pode se inscrever com uma conta que seja mais

adequada. A taxa de registro é a mesma para ambos tipos de conta. O artigo Envio de aplicativo do

Windows Phone 7 passo a passo (http://go.microsoft.com/fwlink/?LinkId=216139) descreve como enviar seu

aplicativo para verificação e publicação. Se seu aplicativo estiver de acordo com os Requisitos de certificação

de aplicativo Windows Phone 7[PDF] (http://go.microsoft.com/?linkid=9730558), ele será publicado no

Windows Phone Marketplace.

Na data da publicação deste white paper, não há um “mercado particular” para empresas, para evitar a

distribuição pública de seus aplicativos. Consulte App Hub (http://create.msdn.com) para obter atualizações

e informações sobre a habilidade das organizações em publicar os aplicativos em particular.

Page 30: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

30

Embora a Microsoft tenha colocado várias garantias, você deve tomar precauções extras para proteger seu

código no caso de alguém obter uma cópia do arquivo .xap que representa seu aplicativo do Windows Phone 7.

Antes que você vá para as etapas para publicar seu aplicativo no Windows Phone Marketplace, certifique-se de

que ocultou seus aplicativos para proteger sua propriedade individual. Já existem várias ferramentas diferentes

disponíveis para ocultar os aplicativos do Windows Phone 7.

Embora esta lista possa não ser exclusiva, ela deve fornecer um bom ponto de partida para explorar as

opções disponíveis atualmente.

Soluções preemptivas Dotfuscator do Windows Phone (http://www.preemptive.com/windowsphone7.html)

RedGate SmartAssembly 6 EAP (http://www.red-gate.com/MessageBoard/viewforum.php?f=116)

DeepSea Obfuscator (http://www.deepseaobfuscator.com/)

A camuflagem adequada é um processo interativo que leva tempo para testes e verificações. Certifique-se

de garantir um tempo no seu planejamento de processo para ocultar os aplicativos do Windows Phone 7,

testá-los e verificar se o nível de camuflagem é adequado para suas necessidades.

Você pode usar a ferramenta de implantação de aplicativo do Windows Phone 7 (Figura 7) para tentar

ocultar os aplicativos do Windows Phone 7. Esta ferramenta permite que você implemente os aplicativos do

seu Windows Phone 7 camuflado para um dispositivo Windows Phone 7 atual que você tenha registrado

usando sua conta de desenvolvedor para o emulador do Windows Phone 7.

Page 31: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

31

Figura 7: Ferramenta de desenvolvimento de aplicativo do Windows Phone 7

Depois de implementar e testar um aplicativo camuflado para o Windows Phone 7, você pode se dar conta

de que níveis muito altos de camuflagem (onde você ativa todo tipo possível de opção para proteger seu

código) não permitem que o aplicativo seja executado de maneira adequada em um dispositivo Windows

Phone 7 ou no emulador do Windows Phone 7. Por outro lado, você pode achar que usar um nível mínimo

de configurações de camuflagem para garantir que seu aplicativo seja executado adequadamente, não

oferece a camuflagem que você necessita.

Você pode adotar as seguintes etapas para determinar qual o nível de camuflagem é aplicado em seu

aplicativo por uma ferramenta de camuflagem. Primeiro, localize o arquivo .xap que representa seu

aplicativo Windows Phone 7 e renomeie a extensão dele para .cab ou .zip. Abra o arquivo e extraia o

conteúdo. Depois, use uma ferramenta como o RedGate .NET Reflector para abrir o assembly que

Page 32: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

32

corresponde ao seu aplicativo. Abrir o Nó de recursos permitirá que você veja os arquivos XAML e os salve

em seu disco rígido. (Figura 8)

Figura 8: Salvando os arquivos XAML com o .NET Reflector

Você pode examinar os arquivos XAML para ver qual o nível de camuflagem aplicado ao código. Você se

surpreenderá ao constatar que níveis baixos de camuflagem não alteram o conteúdo de um arquivo XAML e

os níveis altos meramente removem os espaços em branco. Isso definitivamente encoraja o uso do padrão

Modelo de Exibição da Exibição do Modelo para separar a apresentação lógica e o código das camadas de

acesso de dados.

Você também pode examinar o código nos assemblies em que o seu aplicativo do Windows Phone 7 é

baseado. A figura 9 mostra um assembly camuflado.

Page 33: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

33

Figura 9: Camuflagem aplicada a um assembly de aplicativo do Windows Phone 7.

Um detalhe importante a ser lembrado sobre camuflagem é que nenhum nível de camuflagem pode evitar

que um hacker muito determinado faça a engenharia reversa da maior parte do seu código fonte. As

técnicas de camuflagem foram criadas para proteger a propriedade intelectual fornecendo uma barreira que

torna difícil o roubo e a engenharia reversa do código.

Conclusão Há muitos recursos disponíveis para o desenvolvedor do Windows Phone 7. O lugar para começar é no App

Hub on MSDN, http://create.msdn.com. Os artigos, blogs e fóruns ajudam os desenvolvedores desde os

cenários de desenvolvimento iniciantes até os mais avançados. Os Produtos do SharePoint 2010 fornecem

uma gama ampla de capacidade para organizações que desejam colaborar e compartilhar conhecimento,

experiência e informações. As aplicações corporativas que aproveitam as capacidades tanto da mobilidade

como do SharePoint fornecerão uma vantagem sem precedentes para as empresas que podem gerenciar,

manter e implementar de maneira inteligente as soluções baseadas na plataforma .NET.

Page 34: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

34

Apêndice - Instalação e configuração do UAG para os Produtos do SharePoint 2010 Esta seção descreve como configurar a rede e instalar e configurar um UAG server para publicar um site do

SharePoint para o desenvolvimento do Windows Phone 7. Estas etapas são adequadas para um ambiente de

desenvolvimento. Para obter informações sobre a implementação em um ambiente de produção, consulte

Guia de solução de publicação do UAG (http://go.microsoft.com/fwlink/?LinkID=206256) na TechNet. O UAG

server solicitará no mínimo 4 GB de RAM durante o processo de instalação. Para um ambiente

demonstrativo, 2 GB são suficientes e o aviso pode ser ignorado sem problemas.

1. Criar uma máquina virtual do SharePoint Server e uma máquina virtual do UAG. Neste exemplo, 2010 Information Worker Demonstration and Evaluation Virtual Machine (RTM)

(http://go.microsoft.com/fwlink/?LinkID=189314) é usada uma máquina virtual do SharePoint Server. Para

criar uma máquina virtual do UAG Server, instale o Windows Server 2008 R2 em uma máquina virtual, instale

todas as atualizações usando o Windows Update e siga as etapas abaixo.

Rede O diagrama a seguir ilustra como o servidor executando o SharePoint Server, o UAG server e a máquina de

desenvolvimento do Windows Phone 7estão conectados. A documentação a seguir descreve como

implementar esse cenário.

Page 35: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

35

Windows 7 Development Machine Hyper-V Host Machine

UAG Server Virtual Machine

SharePoint Server Virtual Machine

Visual Studio 2010

.5 .180 .171

.180

.1.6

192.168.150.x – Internal Network | 192.168.1.x – External Network

2. Instalar a rede do host da Máquina virtual Hyper-V Na máquina host Hyper-V, crie duas redes virtuais da seguinte maneira. A instalação de duas redes simula um

ambiente de rede de perímetro onde o UAG server conversa com a Internet em um adaptador de rede e com

os recursos internos (neste caso, o servidor executando o SharePoint Server) em outro adaptador de rede.

Nome Tipo de conexão Descrição

Interno Somente interno Conexão entre o UAG server e o servidor

executando o SharePoint Server.

UAG

Externo

Externo - Associado ao adaptador de rede na

máquina host Hyper-V.

A conexão entre a máquina de

desenvolvimento do WP7 e o UAG server.

Observação: Os endereços de IP podem ser um pouco diferentes em seu ambiente. A solução é a rede

interna operar em uma sub-rede diferente da rede externa.

Defina as configurações TCP/IP para o adaptador da rede interna na máquina host da seguinte maneira.

Page 36: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

36

Defina as configurações TCP/IP para o adaptador da rede externa na máquina host da seguinte maneira.

3. Instalar a rede da Máquina virtual Hyper-V Na máquina virtual do UAG server, adicione outro adaptador de rede e configure a máquina virtual do UAG

server para usar as redes UAG internas e externas na Hyper V.

Page 37: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

37

Na máquina virtual do SharePoint Server, adicione outro adaptador de rede e configure a máquina virtual do

SharePoint Server para usar as redes UAG internas e externas na Hyper V.

Defina as configurações TCP/IP para o adaptador da rede interna na máquina virtual do UAG server da

seguinte maneira.

Page 38: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

38

Defina as configurações TCP/IP para o adaptador da rede externa na máquina virtual do UAG server da

seguinte maneira.

Defina as configurações TCP/IP para o adaptador da rede interna na máquina virtual do SharePoint server da

seguinte maneira.

Page 39: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

39

Defina as configurações TCP/IP para o adaptador da rede externa na máquina virtual do SharePoint server da

seguinte maneira.

Page 40: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

40

4. Preparar a máquina virtual do UAG server para a instalação do UAG Faça login na máquina virtual do UAG server. Renomeie a máquina para UAG1, coloque-a no domínio

contoso.com e reinicialize. Observação: Se não estiver usando o 2010 Information Worker Demonstration

and Evaluation Virtual Machine (RTM) (consulte

http://go.microsoft.com/fwlink/?LinkID=189314&clcid=0x416), ingresse o UAG server no mesmo domínio do

servidor executando o SharePoint Server. Certifique-se de que o 2010 Information Worker Demonstration

and Evaluation Virtual Machine (RTM) esteja em execução.

Use as credenciais a seguir para ingressar a máquina virtual do UAG server no domínio contoso.

Nome de usuário: contoso\administrator

Senha: pass@word1

Reinicialize e faça login usando as credenciais contoso\administrator ou as credenciais específicas do seu

ambiente.

Page 41: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

41

5. Instantâneos da máquina virtual do UAG Server Desligue a máquina virtual do UAG server e dê uma olhadela no console de gerenciamento da Hyper-V.

6. Instalar o UAG Server Primeiro, monte a mídia de instalação UAG na máquina virtual do UAG server. Inicie então a máquina virtual

do UAG server e faça login usando as credenciais contoso\administrador. Depois de ter efetuado login,

verifique se você efetuou login usando as credenciais de administrador contoso. Abra um prompt de

comando, digite whoami e aperte ENTER para verificar as credenciais.

Em seguida, inicie a instalação do UAG a partir da mídia de instalação. Consulte Instalando o SP1 para o

Forefront UAG 2010 (http://go.microsoft.com/fwlink/?LinkId=216130) na TechNet para obter informações

adicionais sobre a instalação. (Observação: você não pode instalar o UAG durante uma sessão remota, é

necessário instalá-lo a partir do console.)

Page 42: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

42

Clique em Instalar Forefront UAG. Em um cenário de desenvolvimento, você pode executar a máquina

virtual do UAG server com menos de 4 GB de RAM. Se você alocou menos de 4 GB de RAM para a máquina

virtual do UAG, clique em Continuar.

Page 43: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

43

Na página do assistente Bem-vindo, clique em Avançar >.

Page 44: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

44

Clique em Eu aceito os Termos de Licenciamento para o Software da Microsofte clique em Avançar.

Page 45: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

45

Na página Selecione o local de instalação, clique em Avançar.

Page 46: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

46

Neste ponto, a instalação começa. O instalador instala as Funções e Recursos dos quais o UAG depende e

configura o servidor para o UAG.

Page 47: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

47

Na página Assistente de instalação concluído, clique em Avançar >.

7. Instantâneos da máquina virtual do UAG Server Depois da reinicialização da Máquina virtual do UAG e o término da instalação do UAG, desligue a máquina

virtual do UAG server e dê uma olhada no console de gerenciamento da Hyper-V.

8. Configuração e ativação inicial do UAG Server Inicie a máquina virtual do UAG server e faça login usando as credenciais contoso\administrador. Depois de

ter efetuado login, verifique se você efetuou login usando as credenciais de administrador contoso: Abra um

prompt de comando, digite whoami e aperte ENTER para verificar as credenciais.

Page 48: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

48

Para iniciar o assistente de configuração do UAG, clique em iniciar | Todos os programas |Microsoft

Forefront UAG | Forefront UAG Management.

Clique em Configurar definições de rede.

Page 49: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

49

Clique em Avançar.

Page 50: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

50

Selecione as configurações do adaptador de rede conforme exibido na captura de tela acima e clique em Avençar.

Page 51: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

51

Clique em Avançar.

Page 52: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

52

Clique em Concluir.

Nesta etapa, você define o UAG com uma configuração de “Servidor único”.

Page 53: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

53

Clique em Definir topologia do servidor.

Clique em Avançar.

Page 54: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

54

Clique em Servidor único e clique em Avançar.

Page 55: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

55

Clique em Concluir.

Clique em Ingressar no Microsoft Update.

Page 56: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

56

Clique em Avançar.

Page 57: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

57

Clique em Usar o Microsoft Update ao procurar por atualizações (recomendado) e clique em Avançar.

Page 58: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

58

Selecione Sim ou Não e clique em Avançar.

Page 59: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

59

Clique em Concluir.

Page 60: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

60

Clique em Fechar.

Clique em Sim para ativar a configuração.

Page 61: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

61

Digite uma senha e clique emAvençar >.

Clique em Ativar.

Page 62: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

62

Clique em Concluir.

O Assistente de Ativação foi concluído. Contudo, a configuração do UAG pode não estar totalmente ativada

ainda. Para garantir isso, ative as mensagens informativas na janela Mensagem.

No menu Mensagens, selecione Filtrar mensagens.

Marque a caixa de seleção Mensagens informativas.

Clique em OK.

Aguarde até que a janela Mensagem mostre a mensagem Ativação concluída com êxito.

Page 63: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

63

9. Criar o Tronco HTTP para publicar o site do SharePoint Neste cenário, é usado um tronco HTTP para fins de desenvolvimento. Usando um tronco HTTP em vez de

um HTTPS acelera a configuração eliminando as etapas envolvidas com a configuração dos certificados de

segurança para ativar o SSL (Secure Sockets Layer). Em um ambiente de desenvolvimento, também é mais

fácil usar o HTTP porque evita que você tenha que recriar os certificados temporários a cada duas semanas.

Em um ambiente de teste e em um ambiente de produção, um tronco HTTPS é recomendado para garantir as

comunicações entre os dispositivos móveis e o UAG server. Consulte Topologias de publicação do SharePoint

(http://go.microsoft.com/fwlink/?LinkId=216131) na TechNet para aprender sobre as topologias mais

comuns usadas na implantação de servidores executando os Produtos do SharePoint 2010 através do UAG.

Para criar o tronco HTTP, clique com o botão direito do mouse em Conexões HTTP e clique em Novo tronco.

Clique em Avançar.

Page 64: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

64

Na etapa 1 do Assistente de Criação de Tronco, clique em Tronco do portal e clique em Avançar.

Page 65: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

65

Na etapa 2 do Assistente de criação de tronco, digite ContosoMobile na caixa de texto Nome do tronco. Este

nome não é uma URL navegável, ela representa um nome amigável e identificável para o tronco HTTP.

Na caixa de texto Nome do host público digite portal.contoso.com. Este valor expõe um ponto de

extremidade no tronco HTTP usado pelo UAG para criar um ambiente de portal único que publique todos os

aplicativos em uma única página. Por exemplo, nosso site SharePoint.

Selecione o endereço IP correspondente ao IP da rede externa para a máquina virtual do UAG server.

Clique em Avançar.

Page 66: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

66

Na etapa 3 do Assistente de Criação de Tronco, clique em Adicionar para abrir a caixa de diálogo que permite

que você adicione o servidor de autenticação ao tronco.

Clique em Adicionar.

Na lista suspensa Tipo de servidor selecione Active Directory.

Na caixa de texto Nome do servidor digite demo2010a.contoso.com. Este é o FQDN (nome de domínio

totalmente qualificado) para o controlador de domínio em execução na máquina virtual SP2010-7a.

Page 67: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

67

Na seção Configurações de conexão, clique em Definir controladores de domínio.

Na seção Configurações de conexão, clique em Definir.

Na caixa de diálogo Controladores de domínio, digite o endereço IP interno para o controlador de domínio.

Na máquina virtual SP2010-7a, este endereço IP é 192.168.150.1.

Clique em OK.

Na seção Configurações de pesquisa, clique no botão … próximo de DN base.

Na caixa de diálogo Raiz de pesquisa, na lista suspensa Selecionar DN base, selecione

CN=Usuários,DC=contoso,DC=com.

Clique em OK.

Marque a caixa de seleção Incluir subpastas.

Defina o Nível de grupos aninhados como igual a 0.

Na seção Acesso ao servidor, na caixa de texto Usuário (domínio\usuário), digite contoso\administrator.

Na caixa de texto senha, digite pass@word1.

Page 68: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

68

Clique em OK.

Clique em Sim.

Selecione o servidor demo2010a.contoso.com e clique em Selecionar.

Page 69: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

69

Clique em Usuário fornecerá credenciais para cada servidor selecionado. (Em um ambiente de servidor

único como este, você pode selecionar Usuário selecionará em uma lista de servidores.)

Marque a caixa de seleção Usar o mesmo nome de usuário.

Clique em Avançar.

Page 70: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

70

Clique em Usar políticas de acesso do Forefront UAG.

Para fins de desenvolvimento, as políticas de acesso padrão do Forefront UAG serão suficientes. Em um

ambiente de produção, você pode adequar estas políticas para uma configuração mais específica par ao seu

ambiente.

Clique em Avançar.

Page 71: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

71

Para fins de desenvolvimento, as políticas de acesso padrão do ponto de extremidade do Forefront serão

suficientes. Em um ambiente de produção, você pode adequar estas políticas para uma configuração mais

específica par ao seu ambiente.

Clique em Avançar.

Page 72: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

72

A página final no Assistente de Criação de Tronco mostra um resumo da configuração do tronco.

Clique em Concluir para ativar a configuração.

Page 73: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

73

10. Criar um aplicativo SharePoint Na seção Aplicativos do console de gerenciamento do UAG, clique em Adicionar.

No Assistente para Adicionar Aplicativos clique em Avançar.

Na etapa 2 do Assistente para Adicionar Aplicativos clique em Web.

Na lista suspensa Web, selecione Microsoft SharePoint Server 2010.

Page 74: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

74

Clique em Avançar >.

Na caixa de texto Nome do aplicativo digiteIntranet Contoso.

Este é um nome amigável para o aplicativo que você está publicando com o UAG server. Este nome

aparecerá na home page do Portal UAG.

Page 75: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

75

Clique em Avançar.

Page 76: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

76

Clique em Avançar.

Para fins de desenvolvimento, as políticas de acesso padrão do ponto de extremidade do Forefront serão

suficientes. Em um ambiente de produção, você pode adequar estas políticas para uma configuração mais

específica par ao seu ambiente.

Clique em Configurar um servidor de aplicativo.

Page 77: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

77

Clique em Avançar.

Deixe Tipo de endereço como IP/Host.

Na lista de Endereços, digite o nome do host ou endereço IP interno do servidor executando o SharePoint

Server 2010 192.168.150.1. Dependendo do seu ambiente, você pode também escolher usar o FQDN para o

servidor executando o SharePoint Server ou o endereço IP para carregar o equilíbrio do hardware.

Na lista Caminhos, deixe a entrada padrão “/”. Isso indica que o aplicativo publicado do SharePoint será

publicado na raiz.

Clique em Porta http e digite 80 na caixa.

Conforme mencionado anteriormente, o uso de uma porta HTTP em vez de uma HTTPS simplifica o

desenvolvimento da instalação e da configuração. Em um ambiente de produção, uma porta HTTPS deve ser

usada para criptografar as credenciais passadas entre as máquinas cliente e o UAG server.

Na caixa de texto Nome do host público digite spwp7intranet. Este é uma URL de mapeamento de acesso

alternativo no servidor executando o SharePoint que corresponde ao conjunto de sites que você está

publicando.

Page 78: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

78

Este valor é a URL que o UAG server usará para publicar o aplicativo nas máquinas cliente. Ao acessar o

conjunto de sites intranet.contoso.com através dos clientes do UAG server, use a URL

http://spwp7intranet.contoso.com. O UAG direciona a solicitação ao SharePoint como

http://spwp7intranet.contoso.com após a autenticação do usuário. O mapeamento de acesso alternativo do

SharePoint (a ser configurado em etapas posteriores) mapeará a solicitação para

http://intranet.contoso.com.

Clique em Avançar.

Marque a caixa de seleção Usar SSO.

Clique em Adicionar.

Na caixa de diálogo Servidor de autenticação e autorização, selecione demo2010a.contoso.com.

Page 79: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

79

Clique em Selecionar.

Na seção Selecionar o método de autenticação do cliente clique em Ambos.

Marque a caixa de seleção Permitir que os clientes avançados ignorem a autenticação tronco.

Marque a caixa de seleção Usar formulários do Office baseados na autenticação para aplicativos Office cliente .

Page 80: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

80

Clique em Avançar.

Clique em Sim.

Na caixa de diálogo Link do Portal marque a caixa de seleção Abrir em uma nova janela. O link do portal é

opcional porque o aplicativo do Windows Phone 7 acessa diretamente os APIs do SharePoint APIs, mas o link

é uma excelente ferramenta de solução de problemas.

Page 81: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

81

Clique em Avançar.

Marque a caixa de seleção Autorizar todos os usuários.

Em um ambiente de desenvolvimento, conceder a todos os usuários o acesso ao conjunto de sites publicados do

SharePoint fornece uma flexibilidade máxima para fins de testes. Em um ambiente de produção, conceda acesso

somente aos usuários e grupos específicos que têm permissão para acessar o conjunto de sites do SharePoint.

Page 82: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

82

Clique em Avançar.

Page 83: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

83

Clique em Concluir.

11. Configurar um aplicativo SharePoint No console de gerenciamento do Forefront UAG, na seção Aplicativos, selecione Contoso Intranet e clique

em Editar.

Page 84: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

84

Na guia Link do Portal, marque as seguintes caixas de seleção: Portal do computador, Portal móvel premium

e Portal móvel não-premium.

Page 85: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

85

Clique em OK.

12. Ativar a configuração No console de gerenciamento do Forefront UAG, na barra de ferramentas, clique no botão Ativar.

A caixa de diálogo Ativar configuração será exibida.

Page 86: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

86

Clique em Ativar.

A nova configuração está ativada no UAG server.

Clique em Concluir.

Aguarde até que a janela Mensagem na parte inferior do console de gerenciamento do Microsoft Forefront

UAG exibir a mensagem Ativação concluída com êxito. Embora a caixa de diálogo Ativar configuração

indique que ela foi ativada com êxito, o processo não está completo até que você veja a mensagem na janela

Mensagem.

Page 87: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

87

13. Configurar e verificar os Mapeamentos de acesso alternativo do SharePoint O SharePoint deve ser configurado para responder a solicitações para http://spwp7intranet.contoso.com e

mapear as solicitações para http://intranet.contoso.com.

1. Em Administração central do SharePoint 2010. navegue até a seção Gerenciamento de aplicativo e selecione

Gerenciamento de aplicativo Web.

2. Selecione Intranete escolha Estender (Estender aplicativo Web) na faixa de opções.

3. Na caixa de diálogo Estender aplicativo Web para outro site IIS digite as configurações a seguir:

Nome: SharePoint - spwp7intranet.contoso.com – 80

Porta: 80

Cabeçalho do host: spwp7intranet.contoso.com

Zona: Intranet

4. Clique em OK.

5. Confirme as configurações navegando para Gerenciamento de aplicativo | Aplicativos Web | Configurar

mapeamento de acesso alternativo.

6. Escolha Grupo de mapeamento de acesso alternativo para a Intranet e você deverá ver a nova entrada para

http://spwp7intranet.com

14. Adicionar entradas de arquivo hosts ao ambiente de desenvolvimento Neste cenário, as entradas de arquivo hosts são usadas para resolver o UAG e o server executando o

SharePoint. As entradas DNS poderiam também ser usadas, mas os arquivos de hosts possuem uma

alternativa aceitável em um ambiente de desenvolvimento. Em um ambiente de produção, as entradas DNS

devem ser usadas para a resolução de nomes.

Na máquina onde o emulador do Windows Phone 7 está em execução, adicione uma entrada para o arquivo

de hosts para apontar para nome do host público e o endereço IP associado ao aplicativo do portal intranet

Contoso no UAG server. O arquivo de hosts está situado em c:\windows\system32\drivers\etc.

192.168.1.171 spwp7intranet.contoso.com

Opcionalmente, você pode adicionar uma entrada na Home page do portal UAG.

192.168.1.171 portal.contoso.com

Page 88: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

88

15. Testar a configuração Na máquina onde o emulador do Windows Phone 7 estiver em execução, feche todos os navegadores da

Web para certificar-se de que a entrada do arquivo de hosts seja reconhecida. Abra então o Internet Explorer

e navegue para http://spwp7intranet.contoso.com.

O Aplicativo do UAG Server e o Portal de acesso à rede serão exibidos.

Baixar e instalar o controle ActiveX.

Page 89: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

89

Clique em Instalar.

Clique em Sim.

Marque a caixa de seleção Confiar neste site e clique em Confiar.

Digite as credenciais para um usuário que tem acesso ao site publicado do SharePoint site e clique emLogin.

Page 90: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

90

O site do SharePoint será exibido no navegador da Web. Neste ponto, o site publicado do SharePoint através

do UAG pode agora ser acessado através de um dispositivo móvel, como o Windows Phone 7.

Page 91: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

91

Opcionalmente, você pode testar o acesso à página do portal UAG digitando a URL http://portal.contoso.com

em um navegador.

Page 92: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

92

O UAG também apresenta um Portal móvel premium para os clientes como o Windows Phone. A partir do

navegador do emulador, digite uma URL para o portal, http://portal.contoso.com e você será redirecionado

para a página de login:

Digite a credencial Contoso (por exemplo Contoso\tonip e pass@word1) e você será redirecionado para o

Portal móvel.

Page 93: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

93

Selecione o link Contoso Intranet e você deverá ver a home page do SharePoint.

16. Testar o News feed RSS Quando os Produtos do SharePoint 2010 são publicados através do UAG, algumas páginas padrão não são

analisadas corretamente. A página Activityfeed.aspx é de principal importância para este documento pois

renderiza o news feed consolidado. Teste as configurações seguindo as orientações abaixo.

Page 94: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

94

Activityfeed.aspx Vá para a página Meu News Feed e marque para ver o RSS feed.

O seguinte erro é exibido.

Resolução A regra padrão para ocultar o log está sendo aplicada na página ActivityFeed.aspx. Para mudar esta regra

para evitar o aplicativo da regra, siga as etapas a seguir:

Abra o arquivo de configuração AppWrap apropriado em um editor de texto. Os arquivos podem ser

encontrados no diretório %ProgramFiles%\Microsoft Forefront Unified Access

Gateway\von\Conf\WizardDefaults\AppWrapTemplates.

Faça back up e edite o arquivo AppWrap adequadamente para o protocolo do seu portal:

HTTP_WhlFiltAppWrap_ForPortal for HTTP e HTTPS_WhlFiltAppWrap_ForPortal for HTTPS.

Page 95: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

95

Localize a linha:

<!-- for sharepoint 2010 conditional appwrap hide log off -->

<URL case_sensitive="false">.*\.aspx.*</URL>

Mude-a para:

<!-- for sharepoint 2010 conditional appwrap hide log off changed to

exclude ActivityFeed.aspx -->

<URL case_sensitive="false">^.*(?<!(^|\\|/)(activityfeed))\.aspx.*</URL>

Salve o arquivo e ative a nova configuração.

Retorne para a página Meu News Feed e clique no botão RSS. A página deve renderizar corretamente e a URL

deve ser reescrita corretamente.

Page 96: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

96

Recursos

Forefront UAG na TechNet http://go.microsoft.com/fwlink/?LinkId=216132&clcid=0x416

Blog 'Closer to the Edge' Autor = Jason Jones

Impacto das alterações de avaliação de ponto de extremidade para o Forefront UAG SP1 em dispositivos

móveis como iPads/iPhones (http://go.microsoft.com/fwlink/?LinkId=216133)

Blog da equipe 'Silverlight Web Services' Alternativa para o acesso a alguns serviços ASMX a partir do Silverlight 4

(http://go.microsoft.com/fwlink/?LinkId=216134)

Sobre os autores

Todd Baginski, MVP Todd é um consultor independente e profissional cinco vezes mais valioso para o Microsoft

SharePoint, que usa as tecnologias do SharePoint, do Silverlight, do Office, do Windows Phone 7

e da .NET para criar sites e soluções personalizadas para fornecer informações aos

trabalhadores. Todd é o autor do conteúdo e apresentador da parte de BCS(Serviços

Corporativos de Conectividade) do programa MCM (Mestres certificados Microsoft) em

SharePoint e um apresentador regular na TechEd, SharePoint Connections e conferências da

Microsoft SharePoint. Todd contribui com colunas regulares para a revista SharePointPro

Connections e também recentemente foi editor técnico para o livro de Scot Hillier e Brad

Stevenson, Professional Business Connectivity Services in SharePoint 2010. Ele também criou os

materiais de treinamento do Microsoft BPOS (Microsoft Business Productivity Online Suite) para

o SharePoint Online (SPO) 2010 enquanto o BPOS 2010 estava ainda nos estágios alfa e beta e

entregou os materiais de treinamento BPOS/SPO após a conferência TechReady 11 somente

para os funcionários da Microsoft.

Todd é uma pessoa muito ativa que gosta de passar o seu tempo livre com a família e

esquiando sempre que tem oportunidade. Ele pode ser encontrado através do email

[email protected].

Matthew McDermott, MVP Matthew McDermott, Microsoft SharePoint Server MVP, é um membro fundador da Aptillon, Inc.

e Consultor principal da AbleBlue em Austin, Texas. A AbleBlue é especialista em integração do

SharePoint, estratégia e consultoria em implementação. Matthew é um autor e especialista em

tecnologias SharePoint focadas no gerenciamento de conteúdo Web, colaboração, computação

de pesquisa e social, Matthew vem liderando a implementações do SharePoint para empresas da

Fortune 500 desde 2002. Seu blog (www.ableblue.com/blog) apresenta tópicos de interesse

para desenvolvedores, profissionais de TI e usuários finais em geral. Matthew pode ser

contatado pelo email [email protected].

Page 97: Criando aplicativos para o Windows Phone 7 com …download.microsoft.com/download/1/D/C/1DC513C3-67D1-4EF2...Criando aplicativos para o Windows Phone 7 com os Produtos do SharePoint

97

Ele passa seu tempo livre como adestrador de cães para K9 Search • Austin, uma equipe K9

voluntária de busca que serve ao FBI e aos Departamentos de polícia de Austin e San Antonio.

Um excelente cozinheiro e bartender, em suas horas vagas, Matt passa o máximo de tempo com

sua esposa o quanto os cães lhe permitem.

Ben Ari Ben Ari é um engenheiro de segurança sênior com Microsoft especialista em UAG e fornece

suporte para o produto para os clientes Premier da Microsoft e clientes profissionais mundiais.

Ele também é um jornalista ativo e autor de um blog, tendo publicado recentemente o Microsoft

Forefront UAG 2010 Administrator's Handbook (ISBN 978-1849681629). Você encontrará o blog

dele em http://blogs.technet.com/b/ben.