Exchange の EWS クライアントの設計の概要EWS client design overview for Exchange

Exchange 用に EWS で開発する場合の設計の考慮事項について説明します。Learn about the design considerations for developing with EWS for Exchange.

この記事では、Exchange Web サービス (EWS) アプリケーションの設計に関する概要情報を提供します。This article provides overview information about designing an Exchange Web Services (EWS) application. この情報を使用して、EWS がアプリケーションに適した API であるかどうか、そして適している場合、どのような種類のクライアント実装を使用すべきかを判断することができます。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. また、この記事では、1 つのコード ベースで Office 365、Exchange Online、Exchange 2007 以降のバージョンの Exchange をターゲットにできるアプリケーションの設計に関するベスト プラクティス情報や、オンプレミスの Exchange サーバーと 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.

EWS は作成しようとしているアプリケーションに適した API かIs EWS the right API for your application?

アプリケーションの設計を開始する前に、EWS が用途に適した API であるかどうかを考慮することが重要です。Before you begin to design your application, it is important to consider whether EWS is the right API for you. Exchange Server または Exchange Online を対象に開発している場合、EWS は優先すべきクライアント アクセス技術です。If you are developing against Exchange Server or Exchange Online, EWS is the preferred client access technology. Exchange 2007 以降のバージョンの Exchange 用のクライアント アクセスの開発では、主に EWS に焦点が当てられてきました。Client access development for versions of Exchange starting with Exchange 2007 has primarily been focused on EWS. Outlook に実装されているクライアント アクセスの新機能は EWS を使用しています。これには、Exchange 2007 で導入された不在 (OOF) および空き時間の機能や、Exchange 2010 で導入されたメール ヒントと GetRooms 機能が含まれます。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. これは、Exchange クライアント アプリケーションを開発する社内および社外のパートナーの両方に対して、EWS に集中的に投資していることを示すものです。This represents a committed investment in EWS for both internal and external partners who develop Exchange client applications.

EWS は、Exchange クライアント アプリケーションの主なクライアント アクセス API です。ただし、場合によっては、クライアント アプリケーションの開発用として他の Exchange API を検討できます。たとえば、Exchange ActiveSync には、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:

  • XML データ構造がトークン化されたので、Exchange ActiveSync はよりコンパクトなプロトコルになります。The XML structure has been tokenized to make Exchange ActiveSync a more compact protocol.
  • Exchange ActiveSync には、クライアントのアクセスを制御したり、その他の堅牢なエンタープライズ モバイル メッセージング ソリューションを提供したりするポリシー メカニズムが含まれています。Exchange ActiveSync contains a policy mechanism to control client access and to provide other robust enterprise mobile messaging solutions.

注意

Exchange ActiveSync クライアントを開発するには、ライセンスが必要です。You need a license in order to develop Exchange ActiveSync clients. Exchange ActiveSync と EWS の違いについては、「Exchange ActiveSync と EWS のどちらかを選ぶ」を参照してください。To learn about the differences between Exchange ActiveSync and EWS, see Choosing between Exchange ActiveSync and Exchange Web Services (EWS).

MAPI RPC over HTTP は、Exchange クライアントのアプリケーション用のもう 1 つのプログラミング オプションです。しかし、MAPI RPC over HTTP は、クライアントとサーバー間の通信に直感的なインターフェイスを提供しません。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.

Exchange 開発技術の詳細については、「Exchange の EWS Managed API、EWS、および Web サービスについて学ぶ」を参照してください。For more information about Exchange development technologies, see Explore the EWS Managed API, EWS, and web services in Exchange.

EWS クライアント開発のためのオプションOptions for EWS client development

EWS を使用して Exchange を対象に開発を行うためのいくつかのオプションがあります。最良のオプションは、開発プラットフォーム、ツール、使用可能な実装、組織のアプリケーションの要件によって異なります。EWS のクライアント アプリケーションを構築するために利用可能な 4 つの主要なオプションは、次のとおりです。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:

  • EWS マネージ APIThe EWS Managed API
  • EWS Java APIThe EWS Java API
  • EWS の自動生成されたプロキシThe EWS autogenerated proxies
  • カスタム EWS クライアント APIA custom EWS client API

EWS マネージ APEWS Managed API

EWS マネージ API は、カスタム Web サービス クライアントです。The EWS Managed API is a custom web service client. これは、.NET Framework アプリケーションのための標準的なクライアント アクセス API です。It is the standard client access API for .NET Framework applications.

以下は、EWS マネージ API を使用する利点の一部です。The following are some of the benefits of using the EWS Managed API:

  • 直感的なオブジェクト モデルが用意されています。It provides an intuitive object model.
  • WSDL ファイルとスキーマ ファイルでのサービス記述の複雑さを軽減します。It abstracts the complexities of the service description in the WSDL and schema files.
  • クライアント側のビジネス ロジックが含まれています。It includes client-side business logic.
  • Web 要求と応答や、オブジェクトのシリアル化と逆シリアル化を処理します。It handles the web requests and responses and object serialization and deserialization.
  • Microsoft によるサポートがあります。It is Microsoft-supported.

ただし、EWS マネージ API は、完全なソリューションではないことにご注意ください。Note, however, that the EWS Managed API is not a complete solution. 一部の機能は、EWS マネージ API では実装されていません。Some functionality is not implemented in the EWS Managed API. EWS マネージ API は EWS のすべての機能を実装してはいませんが、次の理由により、クライアント アプリケーション開発の最良の選択肢になり得ます。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:

  • 開発に .NET Framework を使用できます。You can use the .NET Framework for development.
  • EWS オブジェクト モデルの大部分に加えて、自動検出を実装しています。It implements Autodiscover in addition to most parts of the EWS object model.
  • EWS と連携するためのクライアント側のビジネス ロジックが ExchangeService クラスで実装されています。It implements client-side business logic for working with EWS, in the ExchangeService class.

次の理由のいずれかにより、EWS マネージ API ではなく EWS の Web サービス API を使用することもできます。You might choose to use the EWS web service API instead of the EWS Managed API for any of the following reasons:

  • アプリケーションが .NET Framework を使用しない場合。Your application does not use the .NET Framework.
  • EWS マネージ API のアセンブリを配布することを望まない場合。You don't want to distribute the EWS Managed API assembly.
  • EWS マネージ API で実装されていない機能をアプリケーションで使用する場合。Your application uses features that aren't implemented in the EWS Managed API.

詳細については、「EWS マネージ API クライアント アプリケーションの概要」をご覧ください。To learn more, see Get started with EWS Managed API client applications.

注意

EWS マネージ API は、GitHub でオープンソース プロジェクトとして利用可能になりました。The EWS Managed API is now available as an open source project on GitHub. オープン ソース ライブラリを使用して、以下のことができます。You can use the open source library to:

  • バグ修正と API の機能強化に貢献します。Contribute bug fixes and enhancements to the API.
  • 公式のリリースで利用可能になる前に、修正プログラムや拡張機能を取得できます。Get fixes and enhancements before they are available in an official release.
  • API の最も包括的かつ最新の実装にアクセスして、参照として使用するか、新しいプラットフォームで新しいライブラリを作成します。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.

GitHub を通した皆様の貢献を歓迎いたします。We welcome your contributions via GitHub.

EWS Java APIEWS Java API

EWS Java API は、コミュニティが更新および拡張できる GitHub のオープン ソース プロジェクトです。The EWS Java API is an open source project on GitHub that can be updated and extended by the community. 形式的には EWS マネージ API と似ており、EWS SOAP 要求と応答をネットワーク経由で使用します。It is stylistically similar to the EWS Managed API and uses EWS SOAP requests and responses over the wire. EWS Java API を使用してすべての EWS SOAP 操作にアクセスできるわけではありませんが、最近作成されたオープン ソース プロジェクトにより、コミュニティがこのギャップを埋めることが期待されます。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. Microsoft サポートは、適切なサポート契約がある場合に、EWS SOAP プロトコルに関連する質問には対応しますが、EWS Java API 自体に関連する質問には対応しないことにご注意ください。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. GitHub で EWS Java API をダウンロードしたり、そのコミュニティに貢献したりすることができます。The EWS Java API is available for download and community contribution on GitHub.

EWS の自動生成されたプロキシEWS autogenerated proxies

自動生成されたクライアント API は、EWS の WSDL および XML スキーマ定義から生成されます。多くの言語でクライアント オブジェクト モデルのジェネレーターが用意されています。一般に、自動生成されたオブジェクト モデルは、オブジェクトのシリアル化および逆シリアル化を管理します。これにビジネス ロジックは含まれておらず、自動生成プロセスによって成果物が作成される結果、直感的には使用しにくいオブジェクト モデルになることが少なくありません。Exchange のサポートはクライアントによって送受信される XML を対象としますが、オブジェクト モデルは対象となりません。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.

カスタム EWS クライアント APICustom EWS client API

EWS 機能の小さなセットを使用する一部のアプリケーション用に、Exchange と通信するためのカスタム クライアント API を作成できます。これにより、使用するシステム リソースが少なくなります。これは、.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.

EWS のクライアント機能EWS client features

どの開発オプションを選ぶにせよ、EWS 機能をクライアントでどのように実装するかをご検討ください。機能が使用可能かどうかは、アプリケーションが対象とする EWS のスキーマのバージョン次第です。EWS のスキーマは後方互換性と前方互換性を持つため、Exchange Server 2007 SP1 などの以前のバージョンのスキーマを対象とするアプリケーションを作成する場合、アプリケーションは Exchange Server 2013 SP1 のサービスや 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.

機能および機能の更新はスキーマによって決定されるため、クライアント アプリケーションに実装する EWS 機能を対象としているもののうち、最も古い共通のコード ベースを使用することをお勧めします。多くのアプリケーションは Exchange2007_SP1 バージョンを対象にできます。なぜなら、Exchange 2007 SP1 のスキーマには、Exchange のストアのアイテムやフォルダーを操作するための Exchange のほとんどすべての主要機能が含まれているためです。EWS のスキーマのバージョンごとに、コードの分岐を維持することをお勧めします。現在利用可能なスキーマのバージョンを次に示します。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>

スキーマのバージョンは ExchangeVersionType の単純型で保持されます。The schema versions are maintained in the ExchangeVersionType simple type.

EWS スキーマの各バージョンで利用可能な機能については、「Exchange の EWS スキーマのバージョン」をご覧ください。For information about the features that are available in each EWS schema version, see EWS schema versions in Exchange.

このセクションの内容In this section

関連項目See also