Blazor und .NET

WCF-Services auf .NET 10: CoreWCF, gRPC oder REST?

WCF ist die häufigste Hürde beim Umstieg von .NET Framework. Drei Wege, was sich für die Clients ändert, und eine Reihenfolge, bei der alles weiterläuft.

Vlado Pandžić

Vlado Pandžić · Gründer · Senior .NET-Architekt
Veröffentlicht · 4 Min. Lesezeit

Inhalt
  1. Was ein Problem ist und was nicht
  2. Drei Wege nach vorn
  3. CoreWCF: derselbe Vertrag auf .NET 10
  4. Was Sie vor der Wahl prüfen sollten
  5. Die Reihenfolge, die funktioniert
  6. Wie lange es dauert
  7. Wie wir arbeiten

In fast jeder Migration von .NET Framework stoppt ein Punkt den Plan: die WCF-Services. Die Anwendung selbst würde umziehen, aber WCF ist nicht Teil des modernen .NET, und andere Systeme, manchmal solche, die Sie nicht kontrollieren, hängen jeden Tag an diesen Services.

Die gute Nachricht: Es gibt drei bewährte Wege, und Sie müssen nicht für alles auf einmal einen wählen.

Was ein Problem ist und was nicht

  • WCF-Services aus .NET 10 aufzurufen, ist kein Problem. Microsoft pflegt WCF-Clientbibliotheken für modernes .NET, und dotnet-svcutil erzeugt den Clientcode aus der Servicebeschreibung, wie bisher.
  • WCF-Services zu hosten, ist das Problem. Die Serverseite von WCF wurde nie auf .NET Core und seine Nachfolger portiert. Jeder Service, den Ihre Anwendung anbietet, braucht ein neues Zuhause.

Drei Wege nach vorn

CoreWCF gRPC REST-API
Was es ist Eine Portierung von WCF auf modernes .NET Ein schnelles, vertragsbasiertes Protokoll über HTTP/2 ASP.NET Core Web API mit JSON
Was sich für die Clients ändert Meist nichts Neuer Clientcode Neuer Clientcode
Ihr bestehender Code Verträge und Implementierung bleiben weitgehend Die Service-Schicht wird neu geschrieben Die Service-Schicht wird neu geschrieben
Passt am besten Umstieg auf .NET 10, ohne die Aufrufer anzufassen Aufrufe zwischen Ihren eigenen Systemen Aufrufer, die Sie nicht kontrollieren, Browser, andere Plattformen
Achtung Nicht jede WCF-Funktion wird unterstützt Browser brauchen gRPC-Web Mehr Arbeit für denselben Vertrag

CoreWCF ist ein Open-Source-Projekt, das Microsoft unterstützt. Der Support folgt der .NET-Version, auf der es läuft; Version 1.9 unterstützt .NET 10.

CoreWCF: derselbe Vertrag auf .NET 10

Mit CoreWCF bleibt der Servicevertrag, wie er ist, und der Service läuft in einer normalen ASP.NET-Core-Anwendung:

[ServiceContract]
public interface IOrderService
{
    [OperationContract]
    Task<OrderDto> GetOrderAsync(int id);
}
builder.Services.AddServiceModelServices();

var app = builder.Build();

app.UseServiceModel(services =>
{
    services.AddService<OrderService>();
    services.AddServiceEndpoint<OrderService, IOrderService>(
        new BasicHttpBinding(), "/OrderService.svc");
});

Die Clients rufen weiter dieselbe Adresse mit denselben Nachrichten auf. Für die Systeme, die von Ihnen abhängen, ändert sich nichts, und genau das macht die Migration oft erst möglich.

Was Sie vor der Wahl prüfen sollten

  • Bindings. Die üblichen HTTP- und TCP-Bindings sind abgedeckt. Seltenere sollten Sie in der CoreWCF-Dokumentation prüfen, bevor Sie sich festlegen.
  • Sicherheit. Windows-Authentifizierung, Message Security und Zertifikate kosten oft mehr Zeit als der Code selbst.
  • Duplex und Callbacks. Services, die den Client zurückrufen, sind schwerer umzuziehen, egal auf welchem Weg.
  • Wer die Aufrufer sind. Ihre eigenen Anwendungen können sich zusammen mit dem Service ändern. Das System eines Partners oder ein Gerät im Feld meist nicht, und dafür ist CoreWCF oft der einzig realistische erste Schritt.

Die Reihenfolge, die funktioniert

  1. Schritt 1Bestandsaufnahme: Services, Bindings, Aufrufer
  2. Schritt 2CoreWCF auf .NET 10, Clients unverändert
  3. Schritt 3Neue gRPC- oder REST-Endpunkte daneben
  4. Schritt 4Aufrufer einzeln umziehen, dann abschalten

Der erste Schritt bringt die Anwendung auf ein unterstütztes .NET, ohne dass jemand anderes etwas ändern muss. Danach können neue Endpunkte neben den alten laufen, und jeder Aufrufer zieht um, wenn es ihm passt. Der WCF-Endpunkt wird erst abgeschaltet, wenn ihn niemand mehr aufruft, und das sagen Ihnen die Logs.

Wie lange es dauert

Grobe Spannen:

  • einige Services mit einfachen HTTP-Bindings, aufgerufen von Ihren eigenen Anwendungen: einige Tage bis CoreWCF
  • viele Services mit Windows-Authentifizierung, Zertifikaten und externen Aufrufern: mehrere Wochen
  • ein vollständiger Umstieg auf gRPC oder REST: hängt von der Zahl der Aufrufer ab, mehr als von den Services selbst

WCF ist meist Teil eines größeren Umzugs. Das Gesamtbild beschreibt unser Artikel zum Umstieg von .NET Framework auf .NET 10, die Datenschicht der Artikel EF6 zu EF Core.

Wie wir arbeiten

Genau das machen wir. ProCoding ist ein .NET-Studio aus Split in Kroatien, und wir bringen ältere .NET-Anwendungen Stück für Stück auf modernes .NET, während sie weiterlaufen: Services, Datenschicht und Masken. Wir beginnen mit der Bestandsaufnahme und schlagen die Reihenfolge vor. Eigenständig, mit Ihrem Team oder als .NET Freelancer in Ihrem Team. Der erste Schritt ist ein kostenloses 30-minütiges Gespräch.

Quellen

Dieser Artikel dient nur der allgemeinen Information und ist keine Rechts-, Steuer-, Finanz- oder sonstige Fachberatung. Szenarien, Beispiele und Berechnungen dienen der Veranschaulichung. Nutzungsbedingungen und Haftungsausschluss.

Verwandte Artikel

© 2026 ProCoding — Alle Rechte vorbehalten.Impressum und DatenschutzHaftungsausschlussSplit, Kroatien