Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba mais sobre os vários conjuntos de APIs que são fornecidos no SharePoint, incluindo o modelo de objeto de servidor e os diversos modelos de objeto do cliente e o serviço Web REST/OData.
Fatores que determinam qual conjunto de APIs deve ser usado
Você pode escolher dentre vários conjuntos de APIs para acessar a plataforma SharePoint. A opção a ser usada depende dos seguintes fatores:
- O tipo de aplicativo. As possibilidades incluem, mas não se limitam a, as seguintes categorias, que não são mutuamente exclusivas: um Suplemento do SharePoint, uma peça Web numa página do SharePoint, uma aplicação Silverlight em execução num computador cliente ou num dispositivo móvel cliente, uma aplicação ASP.NET exposta no SharePoint por um IFrame, JavaScript em execução numa página de site do SharePoint, uma página de aplicação do SharePoint, uma aplicação do Microsoft .NET Framework em execução num computador cliente, um script de Windows PowerShell e uma tarefa de temporizador em execução num servidor do SharePoint.
- Suas habilidades existentes. De forma surpreendente, você pode criar aplicativos no SharePoint sem precisar aprender muito sobre a programação no SharePoint. Você pode iniciar diretamente o desenvolvimento no SharePoint se já tiver experiência com qualquer um dos seguintes modelos de programação:
- JavaScript
- ASP.NET
- REST/OData
- .NET Framework
- Windows Phone
- Silverlight
- Windows PowerShell
- O dispositivo em que o código é executado. As possibilidades incluem um servidor no farm do SharePoint, um servidor externo, como um servidor na nuvem, um computador cliente e um dispositivo móvel. Este tópico fornece uma visão geral dos vários conjuntos de API que são fornecidos pelo SharePoint. A Figura 1 mostra quais conjuntos de APIs podem ser usados para desenvolver cada um dos 13 aplicativos comuns relacionados ao SharePoint. Para muitos aplicativos, há mais de uma opção de API.
Figura 1. Tipos de extensão do SharePoint selecionados e conjuntos de APIs do SharePoint
A tabela a seguir fornece orientação sobre o conjunto de APIs a ser usado para uma lista selecionada de projetos de extensibilidade comuns do SharePoint. As demais seções deste tópico descrevem os diversos conjuntos de APIs.
| Se você quiser fazer isto... | ... use estas APIs |
|---|---|
| Criar um aplicativo Web ASP.NET que executa operações CRUD (criação/leitura/atualização/exclusão) em um firewall no SharePoint ou dados externos apresentados no SharePoint por um tipo de conteúdo externo do Serviços Corporativos de Conectividade da Microsoft (BCS) | Modelo de objeto do cliente JavaScript |
| Criar um aplicativo Web ASP.NET que execute operações CRUD em dados do SharePoint ou em dados externos apresentados no SharePoint por um tipo de conteúdo externo do BCS, mas que não precise chamar o SharePoint através de um firewall | Modelo de objeto cliente .NET Framework, modelo de objeto do cliente Silverlight ou pontos de extremidade REST/OData |
| Criar um aplicativo Web LAMP que execute operações CRUD em dados do SharePoint ou em dados externos apresentados no SharePoint por um tipo de conteúdo externo do BCS | Pontos de extremidade REST/OData |
| Criar um aplicativo Windows Phone que execute operações CRUD em dados do SharePoint | Modelo de objeto do cliente móvel |
| Criar um aplicativo Windows Phone que use o Serviço de Notificação por Push da Microsoft para alertar o dispositivo móvel de eventos no SharePoint | Modelo de objeto do cliente móvel e o modelo de objeto servidor |
| Criar um aplicativo para iOS ou Android que execute operações CRUD em dados do SharePoint | Pontos de extremidade REST/OData |
| Criar um aplicativo .NET Framework que execute operações CRUD em dados do SharePoint | Modelo de objeto do cliente .NET Framework |
| Criar um aplicativo Silverlight que execute operações CRUD em dados do SharePoint | Modelo de objeto do cliente Silverlight |
| Criar um aplicativo HTML/JavaScript que execute operações CRUD em dados do SharePoint | Modelo de objeto do cliente JavaScript |
| Criar um Suplemento do Office que funcione com o SharePoint | Modelo de objeto do cliente JavaScript |
| Criar um comando personalizado do Windows PowerShell | Modelo de objeto de servidor |
| Criar um trabalho de temporizador | Modelo de objeto de servidor |
| Criar uma extensão da Administração Central | Modelo de objeto de servidor |
| Criar uma identidade visual consistente em um farm do SharePoint inteiro | Modelo de objeto de servidor |
| Criar uma web part, uma página de aplicativo ou um controle de usuário do ASP.NET personalizado | Modelo de objeto de servidor Importante: se a funcionalidade que você deseja oferecer aos clientes não estiver voltada para a administração do SharePoint em um escopo mais amplo do que o conjunto de sites, recomendamos que, em vez de usar o modelo de objeto de servidor, você crie um Suplemento do SharePoint que inclua um aplicativo Web ASP.NET remoto com controles de usuário e web parts personalizados, conforme necessário. Confira as duas linhas superiores da tabela. |
Modelo de objeto de servidor
O maior conjunto de APIs está no modelo de objeto servidor de classes gerenciadas. No nível do SharePoint Foundation 2013, esse modelo de objeto inclui classes e membros que habilitam o controle programático de site básico e estrutura de lista do SharePoint Foundation. A maioria destas classes encontra-se no espaço de nomes Microsoft.SharePoint . Além disso, pode expandir quase todos os componentes do SharePoint Foundation através do modelo de objeto de servidor, incluindo fluxos de trabalho, alertas, peças Web, pesquisa básica e Serviços de Conectividade Empresarial da Microsoft (BCS). O modelo de objeto servidor também inclui um conjunto abrangente de APIs para habilitar extensões do sistema de administração e segurança do SharePoint Foundation, incluindo backup, integridade e diagnóstico de farm, logs, gerenciamento de farms e aplicativos Web, atualização, implantação, armazenamento em cache e personalização do Windows PowerShell.
No nível do SharePoint, muito mais classes são adicionadas para habilitar a programação de ECM (Gerenciamento de Conteúdo Corporativo), perfis de usuário, taxonomia, pesquisa avançada e outros recursos do SharePoint.
Pode utilizar LINQ to Objects para consultar qualquer coleção IEnumerable na memória, mas um fornecedor de LINQ para SharePoint permite a consulta direta das listas nas bases de dados de conteúdos do SharePoint. Em termos rigorosos, este fornecedor não está disponível com qualquer outro conjunto de APIs abordados neste tópico; no entanto, existem formas de utilizar a sintaxe LINQ na maioria das outras.
Os assemblies que definem as classes internas do servidor são instalados no cache global de assemblies de cada servidor quando o SharePoint é instalado. Quando você programa em relação ao modelo de objeto de servidor, os assemblies são instalados como soluções de farm no cache global de assemblies.
Observação
O desenvolvimento de novas soluções de área restrita em relação ao SharePoint foi preterido em razão do desenvolvimento de suplementos do SharePoint. No entanto, ainda é possível instalar as soluções de área restrita em conjuntos de sites no SharePoint. Os assemblies dessas soluções permanecem no pacote, exceto quando realmente estão em uso. Nesse momento, são instalados temporariamente em uma pasta no servidor. Para obter mais informações, consulte Onde estão as Assemblagens nas Soluções em Sandbox Implementadas?.
Limitações para quando você pode usar o modelo de objeto de servidor
A lógica personalizada em Suplementos do SharePoint é sempre distribuída "para baixo" até o cliente ou "para cima" até a nuvem (ou "para cima" até algum servidor fora do farm do SharePoint). Em todos esses modelos de distribuição, um dos modelos de objeto do cliente ou os pontos de extremidade REST/OData devem ser usados. (Você não pode usar o modelo de objeto de servidor em um Suplemento do SharePoint.) Por exemplo, se o aplicativo contém páginas hospedadas do SharePoint, essas páginas podem acessar dados do SharePoint usando o modelo de objeto do cliente JavaScript. As páginas também podem expor aplicativos do Silverlight que usam o modelo de objeto do cliente SharePoint Silverlight. Para obter mais informações sobre os Suplementos do SharePoint, veja Aspetos importantes da arquitetura do Suplemento do SharePoint e do panorama do desenvolvimento.
Modelos de objeto do cliente para código gerenciado
O SharePoint tem três modelos de objeto do cliente para código gerenciado: .NET, Silverlight e móvel.
Modelo de objeto do cliente .NET
O modelo de objeto SharePoint para .NET Framework é usado em aplicativos .NET Framework executados em um cliente Windows que não seja para telefone. Qualquer um dos seguintes itens conta como um cliente:
- O computador de um usuário
- Um servidor externo ao farm do SharePoint
- Uma função Web ou de trabalho no Microsoft Azure
Quase todas as classes no modelo de objeto de servidor de lista e site principal têm uma classe correspondente no modelo de objeto do cliente do .NET Framework. Além disso, o modelo de objeto do cliente do .NET Framework expõe um conjunto completo de APIs para estender outros recursos, incluindo alguns recursos do SharePoint como ECM, taxonomia, perfis de usuário, pesquisa avançada, análise, BCS e outros.
Para melhorar o desempenho, linhas de código escritas em relação ao modelo de objeto cliente .NET Framework são enviadas ao servidor SharePoint em lotes, sendo convertidas em código do servidor e executadas. Os resultados consultados e o novo estado de todas as variáveis são então retornados ao cliente. Como desenvolvedor, você determina se um lote é executado de maneira síncrona ou assíncrona. Em um lote síncrono, o aplicativo .NET Framework aguarda os resultados retornados do servidor antes de continuar; em um lote assíncrono, o processamento no cliente continua imediatamente, e a IU (interface do usuário) continua a responder.
Você pode usar a sintaxe de consulta LINQ no código de cliente para consultar qualquer objeto IEnumerable, inclusive objetos SharePoint que implementam IEnumerable. No entanto, ao fazê-lo, está a utilizar LINQ to Objects, não o LINQ para o fornecedor do SharePoint, pelo que a documentação deste último não é relevante para o código do lado do cliente.
Os assemblies para o modelo de objeto cliente .NET Framework devem ser instalados no cliente. Estão incluídos num pacote de redistribuição que pode obter nos Componentes de Cliente do SharePoint.
Para obter exemplos de utilização do modelo de objeto .NET Framework, veja Concluir operações básicas com o código da biblioteca de cliente do SharePoint.
Observação
Você também pode usar os pontos de extremidade REST/OData do SharePoint em um aplicativo .NET Framework. Para obter uma comparação do modelo de objeto de cliente .NET Framework com os pontos finais REST/OData do SharePoint, veja a secção Pontos finais REST/OData mais à frente neste artigo.
Modelo de objeto do cliente Silverlight
O modelo de objeto SharePoint para Silverlight é usado em aplicativos do Silverlight, independentemente de onde o arquivo .xap compilado é mantido. Pode ser em uma biblioteca de ativos em um site do SharePoint, em um computador cliente, no armazenamento na nuvem ou em um servidor externo. Normalmente, uma aplicação Silverlight é apresentada no SharePoint num objeto SilverlightWebPart . O modelo de objeto do cliente Silverlight no SharePoint é quase idêntico ao modelo de objeto do cliente .NET Framework e inclui suporte para as mesmas áreas de extensibilidade. A principal diferença é que, na versão Silverlight, todos os lotes de comandos são enviados ao servidor de forma assíncrona para que a interface do usuário do aplicativo permaneça ativa.
As assemblagens para o modelo de objeto de cliente Silverlight são mantidas em todos os servidores do SharePoint em %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin. Eles não precisam ser instalados no computador que está executando o aplicativo do Silverlight, embora você tenha a opção de fazer isso. Além disso, você pode empacotá-los no arquivo .xap do aplicativo.
Os arquivos .xap do Silverlight podem ser incluídos em Suplementos do SharePoint, inclusive aplicativos hospedados do SharePoint. Neste último caso, o arquivo .xap é implantado em uma biblioteca no aplicativo Web. (Para obter mais informações sobre webs de aplicações, consulte o artigo Alojar Webs, webs de suplementos e componentes do SharePoint no SharePoint.) Isto torna uma aplicação silverlight uma forma útil de incluir código do SharePoint personalizado numa aplicação, uma vez que o código personalizado do lado do servidor não é permitido nos Suplementos do SharePoint. Também permite que os programadores do Silverlight utilizem as suas competências existentes para criar aplicações do SharePoint com uma curva de aprendizagem mínima.
Observação
Você também pode usar os pontos de extremidade REST/OData do SharePoint em um aplicativo Silverlight. Para obter uma comparação do modelo de objeto cliente silverlight com os pontos finais REST/OData do SharePoint, veja a secção Pontos finais REST/OData mais à frente neste artigo.
Modelo de objeto cliente
Uma versão especial do modelo de objeto do cliente do Silverlight está disponível para dispositivos Windows Phone. Ele inclui algumas APIs adicionais que são relevantes somente para telefones, como APIs que habilitam um aplicativo de telefone a se registrar para receber notificações do Serviço de Notificação por Push da Microsoft. Ele dá suporte a toda a funcionalidade principal do SharePoint. No entanto, não dá suporte a nenhuma das áreas de extensibilidade não principais que têm suporte nos outros dois modelos de objeto do cliente para código gerenciado. Para acessar essas áreas adicionais, use os pontos de extremidade REST/OData do SharePoint no aplicativo móvel. Confira a seção Pontos de extremidade REST/OData mais adiante neste artigo.
As assemblagens do modelo de objetos móveis são mantidas em todos os servidores do SharePoint em %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin. Você os empacota no arquivo .xap do aplicativo do Windows Phone.
Modelo de objeto do JavaScript
O SharePoint fornece um modelo de objeto do JavaScript para uso em script embutido ou arquivos .js separados. Ele possui todas as mesmas funções dos modelos de objeto do cliente .NET Framework e Silverlight. Assim como o modelo de objeto do cliente Silverlight, o modelo de objeto do JavaScript é uma maneira útil de incluir código personalizado do SharePoint em um aplicativo, pois código personalizado no servidor não é permitido em Suplementos do SharePoint. Ele também habilita desenvolvedores da Web a usar suas habilidades de JavaScript existentes para criar aplicativos do SharePoint com curva de aprendizado mínima.
Assim como os modelos de objeto do cliente de código gerenciado, a infraestrutura do JavaScript para SharePoint interage com os servidores de farm em lotes. Os lotes sempre são executados de forma assíncrona. Além disso, agora é possível acessar dados do SharePoint em todos os domínios no JavaScript (mas apenas os dados que estão no mesmo conjunto de sites pai), o que não era permitido em versões anteriores do SharePoint. Para saber mais, confira Acessar dados do SharePoint a partir de suplementos usando a biblioteca de domínio cruzado. Os dados são retornados do servidor em JSON (JavaScript Object Notation).
O modelo de objeto JavaScript é definido num conjunto de *.js ficheiros localizados em %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS em cada servidor.
Para obter exemplos de utilização do modelo de objeto .NET Framework, veja Complete basic operations using JavaScript library code in SharePoint (Concluir operações básicas com código de biblioteca JavaScript no SharePoint).
Observação
Você também pode usar os pontos de extremidade REST/OData do SharePoint em um aplicativo JavaScript. Para obter uma comparação do modelo de objeto de cliente JavaScript com os pontos finais REST/OData do SharePoint, veja a secção seguinte, pontos finais REST/OData.
Pontos de extremidade REST/OData
Para cenários em que precisa de aceder a entidades do SharePoint a partir de tecnologias de cliente que não utilizam JavaScript e não são criadas nas plataformas .NET Framework ou Silverlight, o SharePoint fornece uma implementação de um serviço Web Representational State Transfer (REST) que utiliza o protocolo OData para realizar operações CRUD em dados de lista do SharePoint. Além disso, quase todas as APIs nos modelos de objeto do cliente têm um ponto de extremidade REST correspondente. Isso habilita o código a interagir diretamente com artefatos do SharePoint usando qualquer tecnologia que dê suporte a solicitações e respostas HTTP padrão. Para usar os recursos REST internos do SharePoint, o código cria uma solicitação HTTP RESTful para um ponto de extremidade que corresponde à API do modelo de objeto do cliente desejado. O serviço Web client.svc manipula a solicitação HTTP e fornece uma resposta no formato Atom ou JSON.
Para obter mais informações sobre como utilizar o serviço Web REST/OData, veja o nó Utilizar operações de consulta OData em pedidos REST do SharePoint; para obter exemplos, veja o tópico Concluir operações básicas com pontos finais REST do SharePoint.
Comparação da programação REST/OData à programação de modelo de objeto do cliente
Em algumas situações, pode ser preferível usar os pontos de extremidade REST até mesmo em aplicativos para os quais um modelo de objeto SharePoint está disponível, especialmente para desenvolvedores que não têm experiência com desenvolvimento no Windows. A tabela a seguir fornece uma comparação dos principais recursos dessas opções de programação para um desenvolvedor que esteja criando um aplicativo em uma plataforma Windows ou com uma plataforma que dê suporte a JavaScript.
| Recurso | Modelos de objeto .NET Framework ou Silverlight | Modelo de objeto do JavaScript | Pontos de extremidade REST/OData chamados de uma plataforma Windows ou JavaScript |
|---|---|---|---|
| Programação orientada a objeto | Sim | Sim | Não |
| Processamento em lotes | Sim | Sim | Sim |
| APIs para processamento condicional e manipulação de exceções | Sim | Não | Não |
| Disponibilidade da sintaxe LINQ | Sim | Não | Não |
| Combinação de dados de lista de diferentes aplicativos Web do SharePoint | Sim | Não | Sim |
| Familiaridade para desenvolvedores experientes de REST/OData | Não | Não | Sim |
| Semelhança à programação não Windows ou à programação em JavaScript | Não | Sim | Sim |
| Tipos fortes para campos de item de lista | Não (exceto com LINQ) | Não | Sim, da plataforma Windows; Não, do JavaScript |
| Aproveitamento de jQuery, Knockout e outras bibliotecas JavaScript | Não | Sim | Não, da plataforma Windows; Sim, do JavaScript |
Estrutura WCF Data Services
Se preferir utilizar a sintaxe LINQ em aplicações cliente .NET Framework ou Silverlight, o SharePoint suporta WCF Data Services como fornecedor linQ. Você pode direcionar o listdata.svc (somente para dados de lista), como nas versões anteriores do SharePoint Foundation ou pode direcionar o mesmo client.svc que dá suporte à interface de OData para obter acesso a todas as entidades do SharePoint, além de dados de lista. Para saber mais, confira Consultar o SharePoint Foundation com Serviços de Dados ADO.NET.
A Figura 2 ilustra a relação entre as várias APIs de cliente, os diversos tipos de aplicativos cliente e o SharePoint. As várias URLs _api são as URLs relativas ao farm para os pontos de extremidade REST. Para obter mais informações, confira o tópico Como saber mais sobre o serviço REST do SharePoint 15.
Figura 2. Aplicativos cliente e APIs no SharePoint
Conjuntos de APIs preteridos
Dois conjuntos de API ainda são suportados na arquitetura do SharePoint para retrocompatibilidade, mas recomendamos que não os utilize para novos projetos: os serviços Web ASP.NET (asmx) e chamadas de Chamadas de Procedimento Remoto (RPC) diretas para o ficheiro de owssvr.dll .
Confira também
- Visão geral do desenvolvimento do SharePoint
- Modelos de programação no SharePoint
- Suplementos do SharePoint em comparação com soluções do SharePoint
- Usar operações de consulta OData em solicitações REST do SharePoint
- Realizar operações básicas usando os pontos de extremidade REST do SharePoint
- Realizar operações básicas usando o código de biblioteca cliente do SharePoint
- Realizar operações básicas usando o código de biblioteca do JavaScript no SharePoint
- APIs de gerenciamento do ciclo de vida (ALM) do aplicativo
- Consultar o SharePoint Foundation com Serviços de Dados ADO.NET