Visão geral de design do cliente EWS para o Exchange

Saiba mais sobre as considerações de design para desenvolver com o EWS para Exchange.

Este artigo fornece informações gerais sobre como criar um aplicativo EWS (Serviços Web do Exchange). Você pode usar essas informações para determinar se o EWS é a API certa para seu aplicativo e, nesse caso, que tipo de implementação de cliente você deve usar. Este artigo também fornece informações de práticas recomendadas para a criação de aplicativos que podem ter como destino o Office 365, o Exchange Online e as versões do Exchange a partir do Exchange 2007, em uma base de código e pontos de decisão importantes para o direcionamento de servidores locais do Exchange em comparação com o Exchange Online.

O EWS é a API certa para seu aplicativo?

Antes de começar a criar seu aplicativo, é importante considerar se o EWS é a API certa para você. Se você estiver desenvolvendo no Exchange Server ou no Exchange Online, o EWS será a tecnologia de acesso de cliente preferencial. O desenvolvimento de acesso para cliente para versões do Exchange a partir do Exchange 2007 tem sido focado principalmente no EWS. A nova funcionalidade de acesso do cliente implementada no Outlook usa o EWS, incluindo os recursos de ausência temporária e disponibilidade introduzidos no Exchange 2007 e a funcionalidade Dicas de Email e Obter Salas introduzidas no Exchange 2010. Isso representa um investimento confirmado no EWS para parceiros internos e externos que desenvolvem aplicativos cliente do Exchange.

O EWS é a API de acesso do cliente principal para seus aplicativos cliente do Exchange. No entanto, em alguns casos, você pode considerar outras APIs do Exchange para o desenvolvimento de aplicativos cliente. Por exemplo, o Exchange ActiveSync fornece as seguintes vantagens sobre o EWS:

  • A estrutura XML foi tokenizada para tornar o Exchange ActiveSync um protocolo mais compacto.
  • O Exchange ActiveSync contém um mecanismo de política para controlar o acesso do cliente e fornecer outras soluções robustas de mensagens móveis corporativas.

Observação

Você precisa de uma licença para desenvolver clientes do Exchange ActiveSync. Para saber mais sobre as diferenças entre o Exchange ActiveSync e o EWS, consulte Escolhendo entre o Exchange ActiveSync e o Exchange Web Services (EWS).

MAPI RPC sobre HTTP é outra opção de programação para aplicativos cliente do Exchange. No entanto, o MAPI RPC sobre HTTP não fornece uma interface intuitiva para comunicação entre clientes e o servidor.

Para obter mais informações sobre tecnologias de desenvolvimento do Exchange, consulte Explorar a API Gerenciada do EWS, o EWS e os serviços Web no Exchange.

Opções para desenvolvimento de cliente EWS

Várias opções estão disponíveis para desenvolvimento no Exchange usando o EWS. A melhor opção para você dependerá da plataforma de desenvolvimento, das ferramentas, das implementações disponíveis e dos requisitos de aplicativo para sua organização. A seguir estão as quatro opções principais disponíveis para a criação de aplicativos cliente do EWS:

  • A API gerenciada do EWS
  • A API Java do EWS
  • Os proxies gerados automaticamente pelo EWS
  • Uma API de cliente EWS personalizada

API Gerenciada do EWS

A API Gerenciada do EWS é um cliente de serviço Web personalizado. É a API de acesso do cliente padrão para aplicativos .NET Framework.

A seguir estão alguns dos benefícios de usar a API Gerenciada do EWS:

  • Ela fornece um modelo de objeto intuitivo.
  • Ela abstrai as complexidades da descrição do serviço no WSDL e nos arquivos de esquema.
  • Ela inclui a lógica de negócios do lado do cliente.
  • Ela manipula as solicitações e respostas da Web e a serialização e desserialização de objetos.
  • Ela é compatível com a Microsoft.

Observe, no entanto, que a API Gerenciada do EWS não é uma solução completa. Algumas funcionalidades não são implementadas na API Gerenciada do EWS. Embora a API Gerenciada do EWS não implemente todas as funcionalidades do EWS, ela pode ser a melhor opção para o desenvolvimento de aplicativos cliente, pelos seguintes motivos:

  • Você pode usar o .NET Framework para desenvolvimento.
  • Ele implementa a Descoberta Automática, além da maioria das partes do modelo de objeto do EWS.
  • Ele implementa a lógica de negócios do lado do cliente para trabalhar com o EWS, na classe ExchangeService.

Você pode optar por usar a API de serviço Web do EWS em vez da API Gerenciada do EWS por qualquer um dos seguintes motivos:

  • Seu aplicativo não usa o .NET Framework.
  • Você não deseja distribuir o assembly da API Gerenciada do EWS.
  • Seu aplicativo usa recursos que não são implementados na API Gerenciada do EWS.

Para saber mais, confira Introdução aos aplicativos cliente da API Gerenciada do EWS.

Observação

A API Gerenciada do EWS agora está disponível como um projeto de software livre no GitHub. É possível usar a biblioteca de software livre para:

  • Contribui com correções de bug e melhorias à API.
  • Obtenha correções e melhorias antes que estejam disponíveis em uma versão oficial.
  • Acesse a implementação mais abrangente e atualizada da API, para usar como referência ou criar novas bibliotecas em novas plataformas.

Agradecemos suas contribuições via GitHub.

EWS Java API

A API Java do EWS é um projeto de software livre no GitHub que pode ser atualizado e estendido pela comunidade. Ela é estilisticamente semelhante a API Gerenciada do EWS e usa solicitações e respostas SOAP EWS durante a transmissão. Embora você não possa acessar todas as operações SOAP EWS usando a API Java do EWS, com o recente criação do projeto de software livre, estamos procurando a comunidade para preencher essa lacuna. Observe que Suporte da Microsoft, com um contrato de suporte apropriado, abordará quaisquer perguntas relacionadas ao protocolo SOAP EWS, mas não à própria API Java do EWS. A API Java do EWS está disponível para download e contribuição da comunidade no GitHub.

Proxies gerados automaticamente pelo EWS

As APIs de cliente geradas automaticamente são geradas a partir das definições de esquema WSDL e XML do EWS. Os geradores de modelo de objeto do cliente estão disponíveis para muitas linguagens. Em geral, os modelos de objeto gerados automaticamente gerenciam a serialização e a desserialização de objetos. Eles não incluem lógica de negócios e o processo de geração automática geralmente cria artefatos que tornam o modelo de objeto menos intuitivo de usar. O suporte do Exchange abrange o XML que é enviado e recebido pelo cliente, mas não pelo modelo de objeto.

API de cliente EWS personalizada

Para alguns aplicativos que usam um pequeno conjunto de funcionalidades do EWS, você pode criar uma API de cliente personalizada para se comunicar com o Exchange. Isso permite que você consuma menos recursos do sistema. Isso é útil para clientes executados em dispositivos com restrição de memória, como clientes que executam o .NET Micro Framework.

Recursos do cliente EWS

Independentemente da opção de desenvolvimento escolhida, você deve considerar como os recursos do EWS são implementados em seu cliente. A disponibilidade de recursos é baseada na versão do esquema do EWS que seu aplicativo tem como destino. Como os esquemas do EWS são compatíveis com versões anteriores e futuras, se você criar um aplicativo direcionado a uma versão de esquema anterior, como o Exchange Server 2007 SP1, seu aplicativo também funcionará em relação a uma versão posterior do esquema, como o serviço Exchange Server 2013 SP1, bem como o Exchange Online.

Como os recursos e as atualizações de recursos são orientados pelo esquema, recomendamos que você use a base de código comum mais antiga direcionada aos recursos do EWS que você deseja implementar em seu aplicativo cliente. Muitos aplicativos podem ser direcionados à versão Exchange2007_SP1, pois o esquema do Exchange 2007 SP1 contém quase todas as funcionalidades principais do Exchange para trabalhar com itens e pastas no repositório do Exchange. Recomendamos que você mantenha bifurcações de código para cada versão de esquema do EWS. A seguir estão as versões de esquema que estão disponíveis no momento.

  <xs:simpleType name="ExchangeVersionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Exchange2007" />
      <xs:enumeration value="Exchange2007_SP1" />
      <xs:enumeration value="Exchange2010" />
      <xs:enumeration value="Exchange2010_SP1" />
      <xs:enumeration value="Exchange2010_SP2" />
      <xs:enumeration value="Exchange2013" />
      <xs:enumeration value="Exchange2013_SP1" />
    </xs:restriction>
  </xs:simpleType>

As versões de esquema são mantidas no ExchangeVersionType tipo simples.

Para obter informações sobre os recursos disponíveis em cada versão de esquema do EWS, consulte versões de esquema do EWS no Exchange.

Nesta seção

Confira também