Sie sind hier: Wissen
Begriff Core Windows Communication Foundation
Abkürzung CoreWCF
Eintrag zuletzt aktualisiert am 29.04.2022

 Zur Stichwortliste unseres Lexikons

Was ist Core Windows Communication Foundation ?

Core Windows Communication Foundation (CoreWCF) ist eine Implementierung einer Teilmenge der Windows Communication Foundation (WCF) für modernes .NET (.NET Core, .NET 5 ff).

Hintergründe

Während Microsoft die Client-Bibliothek für WCF (Windows Communication Foundation Client Libraries) [https://github.com/dotnet/wcf] beim Umbau von .NET Framework zu .NET Core übernommen hat, steht die Serverseite von WCF seit 2019 auf der Liste der Klassen [https://www.heise.de/developer/meldung/Build-2019-Microsoft-konkretisiert-die-Plaene-fuer-NET-5-0-4416914.html], die Microsoft nicht mehr ins moderne .NET migrieren will. Microsoft verwies die Entwickler darauf, REST-basierte Web-APIs oder gRPC-Dienste an Stelle von WCF zu nutzen, was einen erheblichen Migrationsaufwand für bestehende WCF-basierten Services bedeutete [https://www.heise.de/hintergrund/Umstieg-auf-NET-Core-Teil-4-SOAP-und-REST-Webservices-umstellen-4705706.html?seite=2].

Bereits 2019 gründete sich das Community Project "CoreWCF" [https://github.com/CoreWCF/CoreWCF] unter Leitung von Matt Connew [https://github.com/mconnew], um den WCF-Server in die moderne .NET-Welt zu überführen. Microsoft unterstütze dies mit der Bereitstellung des WCF-Quellcodes als Open Source und der Schirmherrschaft der .NET Foundation [https://devblogs.microsoft.com/dotnet/supporting-the-community-with-wf-and-wcf-oss-projects/]. Matt Connew ist zwar selbst bei Microsoft angestellt, hat aber lange Zeit offensichtlich wenig Zeit und Unterstützung für CoreWCF gehabt. In einem Video [https://www.youtube.com/watch?v=dom2O19fGAo] aus dem Februar 2022 sagte er, dass er nur etwa 20 Prozent seiner Arbeitszeit im CoreWCF-Projekt verbracht hat – die übrige Zeit verbrachte er mit der Pflege von WCF im .NET Framework und der WCF-Clients in modernem .NET. Auch wenn es dann Hilfe aus dem Amazon AWS-Team gab [https://corewcf.github.io/blog/2022/04/28/corewcf-10_0_release], dümpelte CoreWCF mit der Bemerkung "Please note that right now, this port is not production ready." vor sich hin. Ein erstes Release 0.1 gab es erst im Februar 2021. Die Anzahl von Beiträgen aus anderen Unternehmen erhöhte sich [https://corewcf.github.io/blog/2022/04/28/corewcf-1_0_0release]. Am 28. April 2022 ist nun Version 1.0 von CoreWCF erschienen.

Download

Die Implementierung von CoreWCF steht auf GitHub [https://github.com/CoreWCF/CoreWCF/releases] und NuGet [https://www.nuget.org/packages?q=CoreWCF] bereit.

Support von Microsoft

Bemerkenswert ist, dass Microsoft technischen Support für CoreWCF [https://github.com/CoreWCF/CoreWCF/blob/main/Documentation/Microsoft-Support.md] anbietet, auch wenn das Projekt kein offizielles Microsoft-Produkt darstellt und auch nicht als Teil des .NET SDK ausgeliefert werden wird. Dabei gibt es Hilfe aber nur für diejenigen Versionen, die bei Microsoft noch offiziell im Support sind

Features in WCF Core (Stand Version 1.0, 28.4.2022)

Dabei bietet CoreWCF 1.0 – wie schon 2019 angekündigt – zunächst nicht alle Funktionen von WCF, sondern konzentriert sich auf die am häufigsten genutzten Kommunikationsszenarien. WCF fasst Kommunikationsszenarien zu sogenannten "Bindings" zusammen. Vollständig unterstützte Bindings in CoreWCF 1.0 sind BasicHttpBinding (HTTP/HTTPS mit SOAP), WebHttpBinding (HTTP/HTTPS mit beliebigem XML oder JSON) und NetHttpBinding (HTTP/HTTPS mit binärer Serialisierung). Bei den Bindungen NetTcpBinding (TCP/binär) und WSHttpBinding (HTTPS/SOAP) sowie WSFederationHttpBinding (HTTPS/SOAP mit WS-Federation) gibt partielle Unterstützung. So wird zum Beispiel Verschlüsselung nur auf Transportprotokollebene, nicht aber auf Nachrichtenebene mit WS-Security unterstützt. Bei der Authentifizierung können Entwickler zwischen Zertifikaten, Benutzername/Kennwort und der integrierten Windows-Authentifizierung wählen, wobei die Konfiguration dafür sich geändert hat.

Metadaten mit WSDL werden in CoreWCF 1.0 unterstützt, aber kein Message Queuing und keine verteilten Transaktionen sowie kein Tracing. Die XML-basierten Konfigurationsdateien sowie die Erweiterbarkeit von WCF ist teilweise implementiert. Metadaten mit WSDL werden unterstützt, aber mit einigen Unterschieden bei der Aktivierung [https://corewcf.github.io/blog/2022/04/26/wsdl]. Einige Features in CoreWCF 1.0 sind auch ganz neu, d.h. existieren nicht im Original-WCF, z.B. Unterstützung für die OpenAPI-Medadaten im WebHttpBinding [https://corewcf.github.io/blog/2022/04/13/webhttp] und Dependency Injection für die Klassen HttpContext, HttpRequest und HttpResponse.

Plattformen für WCF Core

CoreWCF 1.0 basiert auf .NET Standard 2.0 und läuft daher in .NET Framework ab Version 4.6.2, .NET Core ab Version 2.0 sowie .NET 5.0 und .NET 6.0. Während das ursprüngliche WCF unabhängig von ASP.NET war, basiert CoreWCF auf ASP.NET Core und setzt die Installation der ASP.NET Core Runtime voraus (auch unter .NET Framework – hier läuft höchstens Version ASP.NET Core 2.2).

Beratung & Support

Schulungen zu diesem Thema

 Anfrage für eine individuelle Schulung zum Thema Core Windows Communication Foundation CoreWCF  Gesamter Schulungsthemenkatalog