Vue d’ensemble de la conception client EWS pour ExchangeEWS client design overview for Exchange

Découvrez les considérations de conception pour le développement avec EWS pour Exchange.Learn about the design considerations for developing with EWS for Exchange.

Cet article fournit des informations générales sur la conception d'une application Exchange Web Services (EWS). Vous pouvez utiliser ces informations pour déterminer si EWS représente une API appropriée pour votre application, et si c'est le cas, quel type de mise en œuvre du client vous devez utiliser. Cet article fournit également des informations sur les meilleures pratiques en matière de conception d'applications pouvant cibler Office 365, Exchange Online et les versions d'Exchange depuis Exchange 2007, dans une base de code, ainsi que d'importants points permettant de faire un choix entre le ciblage de serveurs Exchange locaux et le ciblage d'Exchange Online.This article provides overview information about designing an Exchange Web Services (EWS) application. 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. 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.

EWS représente-t-il une API appropriée pour votre application ?Is EWS the right API for your application?

Avant de commencer à concevoir votre application, il est important de déterminer si EWS représente l'API appropriée pour vous. Si vous développez à l'aide d'Exchange Server ou d'Exchange Online, EWS est la technologie d'accès au client privilégiée. Le développement d'accès au client pour les versions d'Exchange 0 partir d'Exchange 2007 s'est principalement concentré sur EWS. La nouvelle fonctionnalité d'accès au client implémentée dans Outlook utilise EWS, y compris les fonctionnalités Absent(e) du bureau et Disponible introduites dans Exchange 2007, et les fonctionnalités Infos-courrier et Obtenir des salles introduites dans Exchange 2010. Cela représente un investissement engagé dans EWS pour les partenaires internes et externes qui développent des applications clientes Exchange.Before you begin to design your application, it is important to consider whether EWS is the right API for you. If you are developing against Exchange Server or Exchange Online, EWS is the preferred client access technology. Client access development for versions of Exchange starting with Exchange 2007 has primarily been focused on EWS. 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. This represents a committed investment in EWS for both internal and external partners who develop Exchange client applications.

EWS est l’API d’accès au client principale pour vos applications clientes Exchange. Toutefois, dans certains cas, vous pouvez envisager d’utiliser d’autres API Exchange pour le développement d’applications clientes. Par exemple, Exchange ActiveSync offre les avantages suivants, contrairement à EWS :EWS is the primary client access API for your Exchange client applications. However, in some cases, you might consider other Exchange APIs for client application development. For example, Exchange ActiveSync provides the following advantages over EWS:

  • La structure XML a été tokenisée pour transformer Exchange ActiveSync en un protocole plus compact.The XML structure has been tokenized to make Exchange ActiveSync a more compact protocol.
  • ActiveSync Exchange contient un mécanisme de stratégie pour contrôler l’accès au client et fournir d’autres solutions de messagerie mobile d’entreprise robustes.Exchange ActiveSync contains a policy mechanism to control client access and to provide other robust enterprise mobile messaging solutions.

Notes

Vous avez besoin d’une licence pour développer des clients Exchange ActiveSync.You need a license in order to develop Exchange ActiveSync clients. Pour en savoir plus sur les différences entre Exchange ActiveSync et EWS, voir Choisir entre Exchange ActiveSync et les Services Web Exchange (EWS).To learn about the differences between Exchange ActiveSync and EWS, see Choosing between Exchange ActiveSync and Exchange Web Services (EWS).

RPC MAPI sur HTTP est une autre option de programmabilité pour les applications clientes Exchange. Toutefois, RPC MAPI sur HTTP ne fournit pas d’interface intuitive pour la communication entre les clients et le serveur.MAPI RPC over HTTP is another programmability option for Exchange client applications. However, MAPI RPC over HTTP does not provide an intuitive interface for communicating between clients and the server.

Pour plus d'informations sur les technologies de développement Exchange, voir Explorer l'API managée EWS, EWS et les services web dans Exchange.For more information about Exchange development technologies, Explore the EWS Managed API, EWS, and web services in Exchange.

Options pour le développement de clients EWSOptions for EWS client development

Plusieurs options sont disponibles pour le développement sur Exchange à l’aide d’EWS. La meilleure option dépend de la plateforme de développement, des outils, des implémentations disponibles et des exigences en matière d’application pour votre organisation. Les quatre options principales disponibles pour la création d’applications clientes EWS sont les suivantes :Several options are available for developing against Exchange by using EWS. The best option for you will depend on the development platform, tools, available implementations, and application requirements for your organization. The following are the four primary options that are available for building EWS client applications:

  • API managée EWSThe EWS Managed API
  • API Java EWSThe EWS Java API
  • Proxys générés automatiquement EWSThe EWS autogenerated proxies
  • API cliente EWS personnaliséeA custom EWS client API

API managée EWSEWS Managed API

L'API managée EWS est un client de service web personnalisé. Il s'agit de l'API d'accès au client standard pour les applications .NET Framework.The EWS Managed API is a custom web service client. It is the standard client access API for .NET Framework applications.

Voici quelques-uns des avantages que représente l’utilisation de l’API managée EWS :The following are some of the benefits of using the EWS Managed API:

  • elle fournit un modèle objet intuitif ;It provides an intuitive object model.
  • elle résume les complexités de la description de service dans les fichiers WSDL et de schéma ;It abstracts the complexities of the service description in the WSDL and schema files.
  • elle comprend une logique métier côté client ;It includes client-side business logic.
  • elle gère les requêtes et réponses web, ainsi que la sérialisation et désérialisation d’objet ;It handles the web requests and responses and object serialization and deserialization.
  • elle est prise en charge par Microsoft.It is Microsoft-supported.

Notez toutefois que l'API managée EWS n'est pas une solution complète. Certaines fonctionnalités ne sont pas implémentées dans l'API managée EWS. Bien qu'elle n'implémente pas toutes les fonctionnalités EWS, elle peut représenter le meilleur choix pour votre développement d'application cliente, pour les raisons suivantes :Note, however, that the EWS Managed API is not a complete solution. Some functionality is not implemented in the EWS Managed API. 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:

  • vous pouvez utiliser .NET Framework pour le développement ;You can use the .NET Framework for development.
  • elle implémente la découverte automatique en plus de la plupart des parties du modèle objet EWS ;It implements Autodiscover in addition to most parts of the EWS object model.
  • elle implémente la logique métier côté client pour l'utilisation d'EWS, dans la classe ExchangeService.It implements client-side business logic for working with EWS, in the ExchangeService class.

Vous pouvez choisir d’utiliser l’API de service web EWS au lieu de l’API managée EWS pour les raisons suivantes :You might choose to use the EWS web service API instead of the EWS Managed API for any of the following reasons:

  • votre application n’utilise pas .NET Framework ;Your application does not use the .NET Framework.
  • vous ne voulez pas distribuer l'assembly d'API managée EWS ;You don't want to distribute the EWS Managed API assembly.
  • votre application utilise des fonctionnalités qui ne sont pas implémentées dans l'API managée EWS.Your application uses features that aren't implemented in the EWS Managed API.

Pour plus d'informations, voir Prise en main des applications clientes d'API managée EWS.To learn more, see Get started with EWS Managed API client applications.

Notes

L’API managée EWS est désormais disponible comme projet open source sur GitHub.The EWS Managed API is now available as an open source project on GitHub http://aka.ms/ews-managed-api-github . You can use the open source library to: Vous pouvez utiliser la bibliothèque open source pour :You can use the open source library to:

  • Participer aux résolutions de bogues et aux améliorations de l’API.Contribute bug fixes and enhancements to the API.
  • obtenir des correctifs et des améliorations avant qu’ils soient disponibles dans une version officielle ;Get fixes and enhancements before they are available in an official release.
  • Accéder à l’implémentation la plus complète et la plus à jour de l’API afin de l’utiliser comme référence ou pour créer des bibliothèques sur de nouvelles plateformes.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.

Vos contributions sont les bienvenues via GitHub.We welcome your contributions via GitHub.

API Java EWSEWS Java API

L'API Java EWS est un projet open source sur GitHub qui peut être mis à jour et étendu par la communauté. Elle est stylistiquement semblable à l' API managée EWS et utilise les requêtes et réponses SOAP EWS sur le réseau. Bien que vous ne puissiez pas accéder à toutes les opérations SOAP EWS à l'aide de l'API Java EWS, avec la création récente du projet open source, nous attendons que la communauté comble cette lacune. Notez que le support Microsoft, avec un contrat de support approprié, traite les questions relatives au protocole SOAP EWS, mais pas à l'API Java EWS. Cette dernière est disponible pour téléchargement et pour contribution de la communauté sur GitHub.The EWS Java API is an open source project on GitHub that can be updated and extended by the community. It is stylistically similar to the EWS Managed API and uses EWS SOAP requests and responses over the wire. 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. 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. The EWS Java API is available for download and community contribution on GitHub.

Proxys EWS générés automatiquementEWS autogenerated proxies

Les API clientes générées automatiquement sont générées à partir de WSDL EWS et de définitions de schéma XML. Les générateurs de modèle objet client sont disponibles dans de nombreuses langues. En règle générale, les modèles objet générés automatiquement gèrent la sérialisation et désérialisation d’objet. Ils n’incluent pas de logique métier et le processus de génération automatique crée souvent des artefacts qui rendent le modèle objet moins intuitif lors de l’utilisation. Le support Exchange prend en charge le code XML qui est envoyé et reçu par le client, mais pas le modèle objet.Autogenerated client APIs are generated from the EWS WSDL and XML schema definitions. Client object model generators are available for many languages. In general, the autogenerated object models manage object serialization and deserialization. They do not include business logic and the autogeneration process often creates artifacts that make the object model less intuitive to use. Exchange support covers the XML that is sent and received by the client but not the object model.

API cliente EWS personnaliséeCustom EWS client API

Pour certaines applications qui utilisent un petit ensemble de fonctionnalités EWS, vous pouvez créer une API cliente personnalisée pour communiquer avec Exchange et afin d’utiliser moins de ressources système. Cela est utile pour les clients qui s’exécutent sur des périphériques limités par la mémoire, tels que les clients exécutant .NET Micro Framework.For some applications that use a small set of EWS functionality, you might create a custom client API to communicate with Exchange. This enables you to consume fewer system resources. This is useful for clients that run on memory-constrained devices, such as clients running the .NET Micro Framework.

Fonctionnalités clientes EWSEWS client features

Quelle que soit l’option de développement que vous choisissez, vous devez penser à la façon dont les fonctionnalités EWS sont implémentées dans votre client. La disponibilité des fonctionnalités est basée sur la version du schéma EWS ciblée par votre application. Étant donné que les schémas EWS sont compatibles en amont et en aval, si vous créez une application qui cible une version de schéma antérieure, comme Exchange Server 2007 SP1, votre application fonctionnera également sur une version de schéma ultérieure, comme le service Exchange Server 2013 SP1, ainsi qu’Exchange Online.Regardless of the development option that you choose, you should consider how EWS features are implemented in your client. Feature availability is based on the EWS schema version that your application targets. 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.

Étant donné que les fonctionnalités et les mises à jour de fonctionnalité sont pilotées par le schéma, nous vous recommandons d’utiliser la base de code commun la plus récente ciblant les fonctionnalités EWS que vous souhaitez mettre en œuvre dans votre application cliente. De nombreuses applications peuvent cibler la version Exchange2007_SP1, car le schéma Exchange 2007 SP1 contient presque toutes les principales fonctionnalités Exchange pour travailler avec des éléments et des dossiers dans la banque d’informations Exchange. Il est recommandé de conserver des branches de code pour chaque version de schéma EWS. Vous trouverez ci-dessous les versions de schéma actuellement disponibles.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. 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. We recommend that you maintain code forks for each EWS schema version. 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>

Les versions de schéma sont conservées dans le type simple ExchangeVersionType.The schema versions are maintained in the ExchangeVersionType simple type.

Pour plus d'informations sur les fonctionnalités disponibles dans chaque version de schéma EWS, voir Versions de schéma EWS dans Exchange.For information about the features that are available in each EWS schema version, see EWS schema versions in Exchange.

Dans cette sectionIn this section

Voir aussiSee also