Visão geral do design de cliente do EWS para ExchangeEWS client design overview for Exchange

Saiba mais sobre as considerações de design para desenvolvimento com o EWS para Exchange.Learn about the design considerations for developing with EWS for Exchange.

Este artigo fornece informações gerais sobre como criar um aplicativo de serviços Web do Exchange (EWS).This article provides overview information about designing an Exchange Web Services (EWS) application. Você pode usar essas informações para determinar se o EWS é a API correta para seu aplicativo e, em caso afirmativo, qual tipo de implementação de cliente você deve usar.You can use this information to determine whether EWS is the right API for your application, and if so, what type of client implementation you should use. Este artigo também fornece informações de práticas recomendadas para projetar aplicativos que podem direcionar o Office 365, o Exchange Online e versões do Exchange a partir do Exchange 2007, em uma base de código e importantes pontos de decisão para direcionar servidores locais do Exchange versus direcionar o Exchange Online.This article also provides best practice information for designing applications that can target Office 365, Exchange Online, and versions of Exchange starting with Exchange 2007, in one code base, and important decision points for targeting on-premises Exchange servers versus targeting Exchange Online.

O EWS é a API certa para seu aplicativo?Is EWS the right API for your application?

Antes de começar a criar seu aplicativo, é importante considerar se o EWS é a API correta para você.Before you begin to design your application, it is important to consider whether EWS is the right API for you. Se você estiver desenvolvendo no Exchange Server ou no Exchange Online, o EWS é a tecnologia de acesso para cliente preferencial.If you are developing against Exchange Server or Exchange Online, EWS is the preferred client access technology. O desenvolvimento de acesso para cliente para versões do Exchange a partir do Exchange 2007 tem o foco principalmente no EWS.Client access development for versions of Exchange starting with Exchange 2007 has primarily been focused on EWS. A nova funcionalidade de acesso para cliente implementada no Outlook usa o EWS, incluindo os recursos de ausência temporária (OOF) e disponibilidade introduzidos no Exchange 2007, e as funcionalidades dicas de correio e obter salas introduzidas no Exchange 2010.New client access functionality that is implemented in Outlook uses EWS, including the Out of Office (OOF) and Availability features introduced in Exchange 2007, and the MailTips and Get Rooms functionality introduced in Exchange 2010. Isso representa um investimento confirmado no EWS para parceiros internos e externos que desenvolvem aplicativos cliente do Exchange.This represents a committed investment in EWS for both internal and external partners who develop Exchange client applications.

O EWS é a API de acesso para cliente principal para seus aplicativos cliente do Exchange.EWS is the primary client access API for your Exchange client applications. No entanto, em alguns casos, você pode considerar outras APIs do Exchange para o desenvolvimento de aplicativos cliente.However, in some cases, you might consider other Exchange APIs for client application development. Por exemplo, o Exchange ActiveSync oferece as seguintes vantagens sobre o EWS:For example, Exchange ActiveSync provides the following advantages over EWS:

  • A estrutura XML foi indexada para tornar o Exchange ActiveSync um protocolo mais compacto.The XML structure has been tokenized to make Exchange ActiveSync a more compact protocol.
  • O Exchange ActiveSync contém um mecanismo de política para controlar o acesso do cliente e fornecer outras soluções de mensagens móveis corporativas robustas.Exchange ActiveSync contains a policy mechanism to control client access and to provide other robust enterprise mobile messaging solutions.

Observação

Você precisa de uma licença para desenvolver clientes do Exchange ActiveSync.You need a license in order to develop Exchange ActiveSync clients. Para saber mais sobre as diferenças entre o Exchange ActiveSync e o EWS, consulte escolhendo entre Exchange ActiveSync e serviços Web do Exchange (EWS).To learn about the differences between Exchange ActiveSync and EWS, see Choosing between Exchange ActiveSync and Exchange Web Services (EWS).

MAPI RPC sobre HTTP é outra opção de programação para aplicativos cliente do Exchange.MAPI RPC over HTTP is another programmability option for Exchange client applications. No entanto, MAPI RPC sobre HTTP não fornece uma interface intuitiva para comunicação entre clientes e o servidor.However, MAPI RPC over HTTP does not provide an intuitive interface for communicating between clients and the server.

Para obter mais informações sobre as tecnologias de desenvolvimento do Exchange, consulte explorar a API gerenciada do EWS, EWS e serviços Web no Exchange.For more information about Exchange development technologies, see Explore the EWS Managed API, EWS, and web services in Exchange.

Opções para o desenvolvimento de cliente do EWSOptions for EWS client development

Várias opções estão disponíveis para desenvolvimento no Exchange usando o EWS.Several options are available for developing against Exchange by using 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.The best option for you will depend on the development platform, tools, available implementations, and application requirements for your organization. Veja a seguir as quatro opções principais que estão disponíveis para a criação de aplicativos clientes do EWS:The following are the four primary options that are available for building EWS client applications:

  • A API gerenciada do EWSThe EWS Managed API
  • A API Java do EWSThe EWS Java API
  • Os proxies gerados automaticamente pelo EWSThe EWS autogenerated proxies
  • Uma API de cliente EWS personalizadaA custom EWS client API

API Gerenciada do EWSEWS Managed API

A API gerenciada do EWS é um cliente de serviço Web personalizado.The EWS Managed API is a custom web service client. É a API de acesso para cliente padrão para aplicativos do .NET Framework.It is the standard client access API for .NET Framework applications.

A seguir estão alguns dos benefícios de usar a API gerenciada do EWS:The following are some of the benefits of using the EWS Managed API:

  • Ele fornece um modelo de objeto intuitivo.It provides an intuitive object model.
  • Ele abstrai as complexidades da descrição do serviço nos arquivos WSDL e de esquema.It abstracts the complexities of the service description in the WSDL and schema files.
  • Ele inclui a lógica de negócios do lado do cliente.It includes client-side business logic.
  • Ele lida com as solicitações e respostas da Web e serialização e desserialização de objetos.It handles the web requests and responses and object serialization and deserialization.
  • É compatível com a Microsoft.It is Microsoft-supported.

No entanto, observe que a API gerenciada do EWS não é uma solução completa.Note, however, that the EWS Managed API is not a complete solution. Algumas funcionalidades não são implementadas na API gerenciada do EWS.Some functionality is not implemented in the EWS Managed API. Embora a API gerenciada do EWS não implemente toda a funcionalidade do EWS, ela pode ser a melhor opção para o desenvolvimento de aplicativos cliente, pelos seguintes motivos:Although the EWS Managed API doesn't implement all EWS functionality, it might be the best choice for your client application development, for the following reasons:

  • Você pode usar o .NET Framework para desenvolvimento.You can use the .NET Framework for development.
  • Ele implementa a descoberta automática além da maioria das partes do modelo de objeto do EWS.It implements Autodiscover in addition to most parts of the EWS object model.
  • Ele implementa a lógica de negócios do lado do cliente para trabalhar com o EWS, na classe ExchangeService .It implements client-side business logic for working with EWS, in the ExchangeService class.

Você pode optar por usar a API do serviço Web EWS em vez da API gerenciada do EWS por qualquer um dos seguintes motivos:You might choose to use the EWS web service API instead of the EWS Managed API for any of the following reasons:

  • O aplicativo não usa o .NET Framework.Your application does not use the .NET Framework.
  • Você não deseja distribuir o assembly da API gerenciada do EWS.You don't want to distribute the EWS Managed API assembly.
  • Seu aplicativo usa recursos que não são implementados na API gerenciada do EWS.Your application uses features that aren't implemented in the EWS Managed API.

Para saber mais, confira introdução aos aplicativos clientes de API gerenciada do EWS.To learn more, see Get started with EWS Managed API client applications.

Observação

A API gerenciada do EWS já está disponível como um projeto de código-fonte aberto no GitHub.The EWS Managed API is now available as an open source project on GitHub. É possível usar a biblioteca de software livre para:You can use the open source library to:

  • Contribui com correções de bug e melhorias à API.Contribute bug fixes and enhancements to the API.
  • Obtenha correções e melhorias antes que estejam disponíveis em uma versão oficial.Get fixes and enhancements before they are available in an official release.
  • Acesse a implementação mais abrangente e atualizada da API, para usar como referência ou criar novas bibliotecas em novas plataformas. Access the most comprehensive and up-to-date implementation of the API, to use as a reference or to create new libraries on new platforms.

Agradecemos suas contribuições via github.We welcome your contributions via GitHub.

EWS Java APIEWS Java API

A API Java do EWS é um projeto de código aberto no GitHub que pode ser atualizado e estendido pela Comunidade.The EWS Java API is an open source project on GitHub that can be updated and extended by the community. É de formalmente semelhante à API gerenciada do EWS e usa solicitações e respostas do EWS SOAP em relação à conexão.It is stylistically similar to the EWS Managed API and uses EWS SOAP requests and responses over the wire. Embora você não possa acessar todas as operações do EWS SOAP usando a API Java do EWS, com a criação recente do projeto de código-fonte aberto, estamos procurando a Comunidade para preencher essa lacuna.Although you can't access all EWS SOAP operations by using the EWS Java API, with the recent creation of the open source project, we are looking to the community to bridge this gap. Observe que o suporte da Microsoft, com um contrato de suporte apropriado, tratará de qualquer pergunta relacionada ao protocolo do EWS SOAP, mas não à API Java do EWS.Note that Microsoft Support, with an appropriate support contract, will address any questions related to the EWS SOAP protocol but not the EWS Java API itself. A API Java do EWS está disponível para download e contribuição da Comunidade no GitHub.The EWS Java API is available for download and community contribution on GitHub.

Proxies gerados automaticamente pelo EWSEWS autogenerated proxies

As APIs de cliente geradas automaticamente são geradas a partir das definições de esquema de WSDL e XML do EWS.Autogenerated client APIs are generated from the EWS WSDL and XML schema definitions. Os geradores de modelos de objeto do cliente estão disponíveis para vários idiomas.Client object model generators are available for many languages. Em geral, os modelos de objeto gerados automaticamente gerenciam a serialização e a desserialização de objetos.In general, the autogenerated object models manage object serialization and deserialization. Eles não incluem a lógica de negócios, e o processo de geração automática geralmente cria artefatos que tornam o modelo de objeto menos intuitivo para usar.They do not include business logic and the autogeneration process often creates artifacts that make the object model less intuitive to use. O suporte do Exchange cobre o XML que é enviado e recebido pelo cliente, mas não pelo modelo de objeto.Exchange support covers the XML that is sent and received by the client but not the object model.

API de cliente EWS personalizadaCustom EWS client API

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.For some applications that use a small set of EWS functionality, you might create a custom client API to communicate with Exchange. Isso permite que você consuma menos recursos do sistema.This enables you to consume fewer system resources. Isso é útil para clientes que são executados em dispositivos restritos à memória, como clientes que executam o .NET micro Framework.This is useful for clients that run on memory-constrained devices, such as clients running the .NET Micro Framework.

Recursos do cliente EWSEWS client features

Independentemente da opção de desenvolvimento escolhida, você deve considerar como os recursos do EWS são implementados no cliente.Regardless of the development option that you choose, you should consider how EWS features are implemented in your client. A disponibilidade de recursos é baseada na versão do esquema do EWS que seu aplicativo direciona.Feature availability is based on the EWS schema version that your application targets. Como os esquemas do EWS são compatíveis com versões anteriores e posteriores, se você criar um aplicativo que tenha como destino uma versão de esquema anterior, como o Exchange Server 2007 SP1, seu aplicativo também funcionará com uma versão de esquema posterior, como o serviço do Exchange Server 2013 SP1, bem como o Exchange Online.Because EWS schemas are backward- and forward-compatible, if you create an application that targets an earlier schema version, such as Exchange Server 2007 SP1, your application will also work against a later schema version, such as the Exchange Server 2013 SP1 service, as well as Exchange Online.

Como recursos e atualizações de recurso são orientados pelo esquema, recomendamos que você use a base de código comum mais antiga que direciona os recursos do EWS que você deseja implementar no seu aplicativo cliente.Because features and feature updates are driven by the schema, we recommend that you use the earliest common code base that targets the EWS features that you want to implement in your client application. Muitos aplicativos podem se concentrar na versão do Exchange2007_SP1, porque 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.Many applications can target the Exchange2007_SP1 version, because the Exchange 2007 SP1 schema contains almost all the core Exchange functionality for working with items and folders in the Exchange store. Recomendamos que você mantenha as bifurcações de código para cada versão do esquema do EWS.We recommend that you maintain code forks for each EWS schema version. Veja a seguir as versões de esquema que estão disponíveis no momento.The following are the schema versions that are currently available.

  <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 do esquema são mantidas no tipo simples ExchangeVersionType .The schema versions are maintained in the ExchangeVersionType simple type.

Para obter informações sobre os recursos disponíveis em cada versão do esquema do EWS, consulte EWS Schema Versions in Exchange.For information about the features that are available in each EWS schema version, see EWS schema versions in Exchange.

Nesta seçãoIn this section

Confira tambémSee also