Blazor en .NET

WCF-services op .NET 10: CoreWCF, gRPC of REST?

WCF is de grootste blokkade bij de overstap van .NET Framework. Drie routes, wat er voor de clients verandert en een volgorde waarin alles blijft draaien.

Vlado Pandžić

Vlado Pandžić · Oprichter · Senior .NET-architect
Gepubliceerd · 4 min lezen

Inhoud
  1. Wat een probleem is, en wat niet
  2. Drie routes vooruit
  3. CoreWCF: hetzelfde contract op .NET 10
  4. Wat u controleert voor u kiest
  5. De volgorde die werkt
  6. Hoe lang het duurt
  7. Hoe wij werken

In bijna elke migratie van .NET Framework is er één punt dat het plan stopt: de WCF-services. De applicatie zelf zou wel over kunnen, maar WCF zit niet in modern .NET, en andere systemen, soms systemen waar u geen invloed op hebt, zijn elke dag van die services afhankelijk.

Het goede nieuws: er zijn drie beproefde routes, en u hoeft niet voor alles tegelijk één te kiezen.

Wat een probleem is, en wat niet

  • WCF-services aanroepen vanuit .NET 10 is geen probleem. Microsoft onderhoudt WCF-clientbibliotheken voor modern .NET, en dotnet-svcutil genereert de clientcode uit de servicebeschrijving, zoals voorheen.
  • WCF-services hosten is het probleem. De serverkant van WCF is nooit overgezet naar .NET Core en zijn opvolgers. Elke service die uw applicatie aanbiedt, heeft een nieuw thuis nodig.

Drie routes vooruit

CoreWCF gRPC REST-API
Wat het is Een port van WCF naar modern .NET Een snel, contract-first protocol over HTTP/2 ASP.NET Core Web API met JSON
Wat er voor de clients verandert Meestal niets Nieuwe clientcode Nieuwe clientcode
Uw bestaande code Contracten en implementatie blijven grotendeels De servicelaag wordt herschreven De servicelaag wordt herschreven
Past het best Naar .NET 10 zonder de afnemers aan te raken Aanroepen tussen uw eigen systemen Afnemers die u niet beheert, browsers, andere platforms
Let op Niet elke WCF-functie wordt ondersteund Browsers hebben gRPC-Web nodig Meer werk voor hetzelfde contract

CoreWCF is een open-sourceproject dat Microsoft ondersteunt. De ondersteuning volgt de .NET-versie waarop het draait; versie 1.9 ondersteunt .NET 10.

CoreWCF: hetzelfde contract op .NET 10

Met CoreWCF blijft het servicecontract zoals het is, en de service draait binnen een gewone ASP.NET Core-applicatie:

[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");
});

De clients blijven hetzelfde adres aanroepen met dezelfde berichten. Voor de systemen die van u afhangen, verandert er niets, en dat maakt de hele migratie vaak pas mogelijk.

Wat u controleert voor u kiest

  • Bindings. De gangbare HTTP- en TCP-bindings zijn gedekt. Minder gangbare controleert u in de CoreWCF-documentatie voordat u zich vastlegt.
  • Beveiliging. Windows-authenticatie, message security en certificaten kosten vaak meer tijd dan de code zelf.
  • Duplex en callbacks. Services die de client terugroepen, zijn lastiger over te zetten, welke route u ook kiest.
  • Wie de afnemers zijn. Uw eigen applicaties kunnen samen met de service veranderen. Het systeem van een partner of een apparaat in het veld meestal niet, en daarvoor is CoreWCF vaak de enige realistische eerste stap.

De volgorde die werkt

  1. Stap 1Inventarisatie: services, bindings, afnemers
  2. Stap 2CoreWCF op .NET 10, clients ongewijzigd
  3. Stap 3Nieuwe gRPC- of REST-endpoints ernaast
  4. Stap 4Afnemers één voor één over, dan uitzetten

De eerste stap brengt de applicatie naar een ondersteunde .NET-versie zonder dat iemand anders iets hoeft te veranderen. Daarna kunnen nieuwe endpoints naast de oude draaien, en elke afnemer stapt over wanneer het hem uitkomt. Het WCF-endpoint gaat pas uit als niemand het meer aanroept, en dat vertellen de logs u.

Hoe lang het duurt

Ruwe bandbreedtes:

  • een paar services op eenvoudige HTTP-bindings, gebruikt door uw eigen applicaties: een paar dagen tot CoreWCF
  • veel services met Windows-authenticatie, certificaten en externe afnemers: enkele weken
  • een volledige overstap naar gRPC of REST: hangt af van het aantal afnemers, meer dan van de services zelf

WCF is meestal onderdeel van een grotere verhuizing. Het hele plaatje staat in ons artikel over migratie van .NET Framework naar .NET 10, en de datalaag in EF6 naar EF Core.

Hoe wij werken

Precies dit doen wij. ProCoding is een .NET-studio uit Split, Kroatië, en we zetten oudere .NET-applicaties stuk voor stuk over naar modern .NET, terwijl ze blijven draaien: services, datalaag en schermen. We beginnen met de inventarisatie en stellen de volgorde voor. Zelf, met uw team of als freelance .NET developer in uw team. De eerste stap is een gratis gesprek van 30 minuten.

Bronnen

Dit artikel is alleen algemene informatie en geen juridisch, fiscaal, financieel of ander professioneel advies. Scenario’s, voorbeelden en berekeningen zijn ter illustratie. Gebruiksvoorwaarden en disclaimer.

Gerelateerde artikelen

© 2026 ProCoding — Alle rechten voorbehouden.Colofon en privacyDisclaimerSplit, Kroatië