Introducción al diseño de EWS cliente de ExchangeEWS client design overview for Exchange

Obtenga información sobre las consideraciones de diseño para desarrollar con EWS para Exchange.Learn about the design considerations for developing with EWS for Exchange.

En este artículo se proporciona información general sobre el diseño de una aplicación de servicios Web de Exchange (EWS).This article provides overview information about designing an Exchange Web Services (EWS) application. Puede usar esta información para determinar si EWS es la API adecuada para su aplicación y, si es así, qué tipo de implementación de cliente debe 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. En este artículo también se proporciona información sobre los procedimientos recomendados para diseñar aplicaciones que puedan dirigirse a Office 365, Exchange Online y versiones de Exchange a partir de Exchange 2007, en una base de código y puntos de decisión importantes para dirigirse a servidores de Exchange locales, en lugar de dirigirse a 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.

¿La API correcta de la aplicación es EWS?Is EWS the right API for your application?

Antes de empezar a diseñar la aplicación, es importante tener en cuenta si EWS es la API adecuada.Before you begin to design your application, it is important to consider whether EWS is the right API for you. Si está desarrollando en Exchange Server o Exchange Online, EWS es la tecnología de acceso de cliente preferida.If you are developing against Exchange Server or Exchange Online, EWS is the preferred client access technology. El desarrollo de acceso de cliente para versiones de Exchange a partir de Exchange 2007 se ha centrado principalmente en EWS.Client access development for versions of Exchange starting with Exchange 2007 has primarily been focused on EWS. Las nuevas funciones de acceso de cliente que se implementan en Outlook usan EWS, incluidas las características de disponibilidad fuera de la oficina (OOF) que se incluyen en Exchange 2007 y las sugerencias de correo y la funcionalidad de obtener salas incorporadas en 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. Esto representa una inversión confirmada en EWS para socios internos y externos que desarrollan aplicaciones de cliente de Exchange.This represents a committed investment in EWS for both internal and external partners who develop Exchange client applications.

EWS es la API de acceso de cliente principal para las aplicaciones cliente de Exchange.EWS is the primary client access API for your Exchange client applications. Sin embargo, en algunos casos, puede considerar otras API de Exchange para el desarrollo de aplicaciones cliente.However, in some cases, you might consider other Exchange APIs for client application development. Por ejemplo, Exchange ActiveSync proporciona las siguientes ventajas con respecto a EWS:For example, Exchange ActiveSync provides the following advantages over EWS:

  • La estructura XML se ha acortado para convertir a Exchange ActiveSync en un protocolo más compacto.The XML structure has been tokenized to make Exchange ActiveSync a more compact protocol.
  • Exchange ActiveSync contiene un mecanismo de directivas para controlar el acceso de clientes y proporcionar otras soluciones de mensajería para móviles de empresa sólidas.Exchange ActiveSync contains a policy mechanism to control client access and to provide other robust enterprise mobile messaging solutions.

Nota

Necesita una licencia para poder desarrollar clientes de Exchange ActiveSync.You need a license in order to develop Exchange ActiveSync clients. Para obtener información sobre las diferencias entre Exchange ActiveSync y EWS, consulte Choosing Between Exchange ActiveSync and Exchange Web Services (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 es otra opción de programación para las aplicaciones cliente de Exchange.MAPI RPC over HTTP is another programmability option for Exchange client applications. Sin embargo, MAPI RPC sobre HTTP no proporciona una interfaz intuitiva para la comunicación entre clientes y el servidor.However, MAPI RPC over HTTP does not provide an intuitive interface for communicating between clients and the server.

Para obtener más información sobre las tecnologías de desarrollo de Exchange, consulte explorar la API administrada de EWS, EWS y servicios Web de Exchange.For more information about Exchange development technologies, see Explore the EWS Managed API, EWS, and web services in Exchange.

Opciones para el desarrollo de cliente EWSOptions for EWS client development

Hay varias opciones disponibles para desarrollar en Exchange con EWS.Several options are available for developing against Exchange by using EWS. La mejor opción dependerá de la plataforma de desarrollo, las herramientas, las implementaciones disponibles y los requisitos de aplicación de la organización.The best option for you will depend on the development platform, tools, available implementations, and application requirements for your organization. Las siguientes son las cuatro opciones principales que están disponibles para crear aplicaciones de cliente de EWS:The following are the four primary options that are available for building EWS client applications:

  • La API administrada EWSThe EWS Managed API
  • La API Java EWSThe EWS Java API
  • Los servidores proxy generados automáticamente de EWSThe EWS autogenerated proxies
  • Una API de cliente EWS personalizadaA custom EWS client API

API administrada EWSEWS Managed API

La API administrada de EWS es un cliente de servicio web personalizado.The EWS Managed API is a custom web service client. Es la API de acceso de cliente estándar para las aplicaciones de .NET Framework.It is the standard client access API for .NET Framework applications.

Estas son algunas de las ventajas de usar la API administrada de EWS:The following are some of the benefits of using the EWS Managed API:

  • Proporciona un modelo de objetos intuitivo.It provides an intuitive object model.
  • Abstrae las complejidades de la descripción del servicio en los archivos de esquema y WSDL.It abstracts the complexities of the service description in the WSDL and schema files.
  • Incluye lógica empresarial del lado cliente.It includes client-side business logic.
  • Controla las solicitudes y respuestas Web, y la serialización y deserialización de objetos.It handles the web requests and responses and object serialization and deserialization.
  • Es compatible con Microsoft.It is Microsoft-supported.

Sin embargo, tenga en cuenta que la API administrada de EWS no es una solución completa.Note, however, that the EWS Managed API is not a complete solution. Algunas funciones no se implementan en la API administrada de EWS.Some functionality is not implemented in the EWS Managed API. Aunque la API administrada de EWS no implementa toda la funcionalidad de EWS, puede ser la mejor opción para el desarrollo de aplicaciones cliente, por los motivos siguientes: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:

  • Puede usar .NET Framework para el desarrollo.You can use the .NET Framework for development.
  • Implementa la detección automática además de la mayoría de las partes del modelo de objetos EWS.It implements Autodiscover in addition to most parts of the EWS object model.
  • Implementa la lógica empresarial del lado cliente para trabajar con EWS, en la clase ExchangeService .It implements client-side business logic for working with EWS, in the ExchangeService class.

Puede elegir usar la API del servicio Web EWS en lugar de la API administrada de EWS por cualquiera de los siguientes motivos:You might choose to use the EWS web service API instead of the EWS Managed API for any of the following reasons:

  • La aplicación no utiliza .NET Framework.Your application does not use the .NET Framework.
  • No desea distribuir el ensamblado de la API administrada de EWS.You don't want to distribute the EWS Managed API assembly.
  • La aplicación usa características que no se implementan en la API administrada de EWS.Your application uses features that aren't implemented in the EWS Managed API.

Para obtener más información, vea Introducción a las aplicaciones de cliente de la API administrada de EWS.To learn more, see Get started with EWS Managed API client applications.

Nota

La API administrada EWS ya está disponible como proyecto de código abierto en GitHub.The EWS Managed API is now available as an open source project on GitHub. Puede usar la biblioteca de código abierto para:You can use the open source library to:

  • Contribuir con correcciones de errores y mejoras a la API.Contribute bug fixes and enhancements to the API.
  • Obtener correcciones y mejoras antes de que estén disponibles en una versión oficial.Get fixes and enhancements before they are available in an official release.
  • Tener acceso a una implementación más completa y actualizada de la API, para usarla como referencia o para crear nuevas bibliotecas en nuevas 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.

Le agradecemos las aportaciones que realice a través de GitHub.We welcome your contributions via GitHub.

API Java EWSEWS Java API

La API Java de EWS es un proyecto de código abierto en GitHub que la comunidad puede actualizar y extender.The EWS Java API is an open source project on GitHub that can be updated and extended by the community. Es similar a la API administrada de EWS y usa respuestas y solicitudes SOAP de EWS a través de la red.It is stylistically similar to the EWS Managed API and uses EWS SOAP requests and responses over the wire. Aunque no se puede acceder a todas las operaciones SOAP de EWS mediante la API de Java EWS, con la creación reciente del proyecto de código abierto, estamos mirando a la comunidad para salvar esta brecha.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. Tenga en cuenta que el soporte técnico de Microsoft, con un contrato de soporte técnico adecuado, solucionará las preguntas relacionadas con el protocolo SOAP de EWS, pero no la API de Java EWS en sí.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. La API de Java EWS está disponible para la descarga y la contribución de la comunidad en GitHub.The EWS Java API is available for download and community contribution on GitHub.

Servidores proxy generados automáticamente de EWSEWS autogenerated proxies

Las API de cliente generadas automáticamente se generan a partir de las definiciones de esquema XML y WSDL de EWS.Autogenerated client APIs are generated from the EWS WSDL and XML schema definitions. Los generadores del modelo de objetos de cliente están disponibles para muchos idiomas.Client object model generators are available for many languages. En general, los modelos de objetos generados automáticamente administran la serialización y deserialización de objetos.In general, the autogenerated object models manage object serialization and deserialization. No incluyen la lógica empresarial y el proceso de autogeneración suelen crear artefactos que hacen que el modelo de objetos sea menos intuitivo de usar.They do not include business logic and the autogeneration process often creates artifacts that make the object model less intuitive to use. La compatibilidad con Exchange cubre el código XML que el cliente envía y recibe, pero no el modelo de objetos.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 algunas aplicaciones que usan un pequeño conjunto de funciones de EWS, puede crear una API de cliente personalizada para comunicarse con Exchange.For some applications that use a small set of EWS functionality, you might create a custom client API to communicate with Exchange. Esto le permite consumir menos recursos del sistema.This enables you to consume fewer system resources. Esto es útil para los clientes que se ejecutan en dispositivos con memoria restringida, como los clientes que ejecutan .NET micro Framework.This is useful for clients that run on memory-constrained devices, such as clients running the .NET Micro Framework.

Características de cliente de EWSEWS client features

Independientemente de la opción de desarrollo que elija, debe tener en cuenta cómo se implementan las características de EWS en el cliente.Regardless of the development option that you choose, you should consider how EWS features are implemented in your client. La disponibilidad de la característica se basa en la versión del esquema EWS a la que se destina la aplicación.Feature availability is based on the EWS schema version that your application targets. Como los esquemas EWS son compatibles con versiones anteriores y posteriores, si se crea una aplicación destinada a una versión de esquema anterior, como Exchange Server 2007 SP1, la aplicación también funcionará con una versión de esquema posterior, como el servicio Exchange Server 2013 SP1, así como 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.

Debido a que el esquema controla las características y las actualizaciones de características, le recomendamos que use la base de código común más temprana que tenga como objetivo las características de EWS que desea implementar en la aplicación 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. Muchas aplicaciones pueden dirigirse a la versión Exchange2007_SP1, ya que el esquema de Exchange 2007 SP1 contiene casi todas las funciones principales de Exchange para trabajar con elementos y carpetas en el almacén de 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. Le recomendamos que mantenga bifurcaciones de código para cada versión de esquema EWS.We recommend that you maintain code forks for each EWS schema version. Las siguientes son las versiones de esquema que están disponibles en este 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>

Las versiones del esquema se mantienen en el tipo simple ExchangeVersionType .The schema versions are maintained in the ExchangeVersionType simple type.

Para obtener información sobre las características que están disponibles en cada versión del esquema de EWS, consulte versiones del esquema de EWS en Exchange.For information about the features that are available in each EWS schema version, see EWS schema versions in Exchange.

En esta secciónIn this section

Vea tambiénSee also