WCF und ASP.NET-Web-APIWCF and ASP.NET Web API

WCF ist das einheitliche Programmiermodell von Microsoft, mit dem dienstorientierte Anwendungen erstellt werden können.WCF is Microsoft’s unified programming model for building service-oriented applications. Es ermöglicht Entwicklern das Erstellen sicherer, zuverlässiger und transaktiver Lösungen für die plattformübergreifende Integration und bietet unfassende Interoperabilität mit vorhandenen Investitionen.It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments. ASP.NET Web API ist ein Framework, die erleichtert das Erstellen von HTTP-Diensten, die eine Breite Palette von Clients, einschließlich Browsern und mobilen Geräten erreichen.ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. Die ASP.NET-Web-API ist eine ideale Plattform zum Erstellen von RESTful-Anwendungen in .NET Framework.ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework. Die Informationen in diesem Thema sollen Sie dabei unterstützen, die für Ihre Anforderungen optimal geeignete Technologie zu finden.This topic presents some guidance to help you decide which technology will best meet your needs.

Wahl der richtigen TechnologieChoosing which technology to use

In der folgenden Tabelle sind die wichtigsten Funktionen der jeweiligen Technologie beschrieben.The following table describes the major features of each technology.

WCFWCF ASP.NET-Web-APIASP.NET Web API
Ermöglicht das Erstellen von Diensten, die mehrere Transportprotokolle (HTTP, TCP, UDP und benutzerdefinierte Transporte) und das Wechseln zwischen den Protokollen unterstützen.Enables building services that support multiple transport protocols (HTTP, TCP, UDP, and custom transports) and allows switching between them. nur HTTPHTTP only. Erstrangige Programmiermodell für HTTP.First-class programming model for HTTP. Für den Zugriff von verschiedenen Browsern, mobile Geräte aktivieren usw. breit erreichen besser geeignet.More suitable for access from various browsers, mobile devices etc enabling wide reach.
Ermöglicht das Erstellen von Diensten, die mehrere Codierungen (textbasiert, MTOM und binär) desselben Nachrichtentyps sowie den Wechsel zwischen den Codierungen unterstützen.Enables building services that support multiple encodings (Text, MTOM, and Binary) of the same message type and allows switching between them. Ermöglicht das Erstellen von Web-APIs, die eine Vielzahl von Medientypen einschließlich XML, JSON usw. unterstützen.Enables building Web APIs that support wide variety of media types including XML, JSON etc.
Unterstützt das Erstellen von Diensten mit WS-*-Standards, z. B. zuverlässigem Messaging, Transaktionen und Nachrichtensicherheit.Supports building services with WS-* standards like Reliable Messaging, Transactions, Message Security. Verwendet Standardprotokolle und-Formate wie HTTP, WebSockets, SSL, JSON und XML.Uses basic protocol and formats such as HTTP, WebSockets, SSL, JSON, and XML. Höher entwickelte Protokolle wie zuverlässiges Messaging oder Transaktionen werden nicht unterstützt.There is no support for higher level protocols such as Reliable Messaging or Transactions.
Unterstützt die Nachrichtenaustauschmuster "Anforderung-Antwort", "Unidirektional" und "Duplex".Supports Request-Reply, One Way, and Duplex message exchange patterns. Anforderung/Antwort "HTTP" ist jedoch zusätzliche Mustern können unterstützt werden, über SignalR und WebSockets-Integration.HTTP is request/response but additional patterns can be supported through SignalR and WebSockets integration.
WCF-SOAP-Dienste können in WSDL beschrieben werden und bieten automatisierten Tools die Möglichkeit, selbst für Dienste mit komplexen Schemas Clientproxys zu generieren.WCF SOAP services can be described in WSDL allowing automated tools to generate client proxies even for services with complex schemas. Es gibt zahlreiche Methoden zur Beschreibung einer Web-API, von automatisch generierten HTML-Hilfeseiten mit Informationen zu Codeausschnitten bis hin zu strukturierten Metadaten für integrierte OData-APIs.There is a variety of ways to describe a Web API ranging from auto-generated HTML help page describing snippets to structured metadata for OData integrated APIs.
Im Lieferumfang von .NET Framework enthalten.Ships with the .NET framework. Im Lieferumfang von .NET Framework enthalten, steht jedoch auch als unabhängiges Out-of-Band-Download bereit, da es sich um eine Open Source-API handelt.Ships with .NET framework but is open-source and is also available out-of-band as independent download.

Verwenden Sie WCF zum Erstellen zuverlässiger, sicherer Webdienste, auf die über eine Vielzahl von Transporten zugegriffen werden kann.Use WCF to create reliable, secure web services that accessible over a variety of transports. Verwenden Sie die ASP.NET-Web-API zum Erstellen HTTP-basierter Dienste, auf die von vielen verschiedenen Clients zugegriffen werden kann.Use ASP.NET Web API to create HTTP-based services that are accessible from a wide variety of clients. Verwenden Sie die ASP.NET-Web-API, wenn Sie neue REST-Dienste entwerfen und erstellen.Use ASP.NET Web API if you are creating and designing new REST-style services. Obwohl WCF das Schreiben von REST-Diensten bis zu einem gewissen Grad unterstützt, bietet die ASP.NET-Web-API umfassendere REST-Unterstützung. Darüber hinaus werden zukünftige Optimierungen an REST-Funktionen in der ASP.NET-Web-API vorgenommen.Although WCF provides some support for writing REST-style services, the support for REST in ASP.NET Web API is more complete and all future REST feature improvements will be made in ASP.NET Web API. Wenn Sie bei einem vorhandenen WCF-Dienst zusätzliche REST-Endpunkte verfügbar machen möchten, verwenden Sie WCF und WebHttpBinding.If you have an existing WCF service and you want to expose additional REST endpoints, use WCF and the WebHttpBinding.

Siehe auchSee Also

Was ist die Windows Communication Foundation?What Is Windows Communication Foundation
Wesentliche Windows Communication Foundation-BegriffeFundamental Windows Communication Foundation Concepts