Supporting the community with WF and WCF OSS projects

Scott Hunter [MSFT]

Scott

At the Build conference in May 2019, we mentioned that, after we add WinForms, WPF and Entity Framework 6 to .NET Core 3.0, we do not plan to add any more of the technologies from .NET Framework to .NET Core.

This means we will not be adding ASP.NET Web Forms, WCF, Windows Workflow, .NET Remoting and/or the various other smaller APIs to .NET Core. For new applications, there are better technologies that serve a similar purpose and provide more capabilities or better experiences. We think of .NET Core as the framework our customers will build brand new applications or port applications that they are still spending lots of engineering work on.

ASP.NET Blazor – provides a similar component and event-based programming model as ASP.NET Web Forms but generating a SPA (Single Page Application) instead of a traditional web site.

ASP.NET Web API or gRPC – provide APIs and contract-based RPCs that can be used across all devices and platforms.

.NET Core WCF Client – provides the ability for .NET Core projects to call into the existing WCF Servers that run on .NET Framework.

What do you do with your older applications that you are not spending much engineering time on? We recommend leaving these on .NET Framework. If you’re not spending much time on those projects and they meet your business needs, then you should just leave them where they are. You can even modernize those existing applications to Windows containers if you want to run them in containers.

.NET Framework will continue to be supported and will receive minor updates. Even here at Microsoft, many large products will remain on .NET Framework. There are absolutely no changes to support and that will not change in the future. .NET Framework 4.8 is the latest version of .NET Framework and will continue to be distributed with future releases of Windows. If it is installed on a supported version of Windows, .NET Framework 4.8 will continue to be supported too.

If you really want to move one of your older applications to .NET Core and don’t want to migrate it to newer technologies like Web API / gPRC / Cloud based workflow, we are supporting two community efforts that provide ports of Windows Workflow and WCF to .NET Core.

Core WCF

Core WCF is a new community owned project under the .NET Foundation. Microsoft has made an initial contribution of code from a WCF team member to help get the project started. Core WCF is not intending to be a 100% compatible port of WCF to .NET Core, but aims to allow porting of many WCF contract and service implementations with only a change of namespace.

Initially, it will be for HTTP and TCP SOAP services on-top of Kestrel, which are the most commonly used transports on .NET Framework.

This project is not yet ready for production but needs people to get involved and help get it there faster. If you are interested in this, or want more details about the project, then we encourage you to go and explore the Core WCF project on GitHub.

This project has joined the .NET Foundation and you can read about it on the .NET Foundation blog.

Core Workflow

Core WF is a port of Workflow for .NET Core sponsored by UIPath. The project was started by a former Workflow team member and the .NET team has been working to make sure that all the source code they need to do the work of porting Workflow is available to them. This project will need more community help to become a replacement for Workflow on .NET Framework and we encourage anyone who wishes to see Workflow on Core to get involved and see if you can help out.

Conclusion

We’re happy to see these projects be part of the .NET OSS community and hope that you’ll join us in supporting them and other .NET OSS. If you want more information about the .NET Foundation or what you can do to get involved then be sure to checkout the .NET Foundation website.

Scott Hunter [MSFT]
Scott Hunter

Director Program Management, .NET

Follow Scott   

15 comments

  • Avatar
    Lex Mitchell

    I’m grateful that you’ve backed work to happen on a Core compatible version of WCF, and made it available to the community. I hope, despite the move to the .Net Foundation, Microsoft will continue to actively contribute to the future of WCF.
    I wish you had just left it at that positive message, instead of feeling the need to position WCF Core as something for older applications because you have it covered Web API and gRPC. You don’t. You opened up major gaps with .Net Core in both the abstractions available, supported modern protocols and the ability to swap bindings.

    • Avatar
      Niels Swimberghe

      Windows depends on .NET Framework, and many external applications built on the Windows platform still do.MS isn’t in the business of breaking thousands of apps, they’re in the business of supporting thousands of apps for decades.

  • Avatar
    Jukka Snellman

    I don’t know if anyone (?) wants the Web Forms programming model, it was simply the only choice available back then, but there’s going to be a lot of big web applications made with Web Forms, that will need to be upgraded to .NET Core somehow.

  • Avatar
    Michael Sage

    Cool. First there a typo where you refer to WCF as WFC when suggesting people check out the Github code. 
    Also, has there been interest in porting Silverlight to WebAssembly?

  • Zachary Parton
    Zachary Parton

    Glad to see you guys came to your senses with WCF after dog piling on it for so long. Sad that it took a mob with pitchforks and torches to make it happen. 

  • Avatar
    Alois Kraus

    WCF Server part is essential for migration scenarios where you replace a .NET WCF service with a .NET Core service. I did never understand why that was completely lacking for .NET Core. HTTP/TCP binding should be sufficient to enable at least that scenario. If you want go forward with gRPC then the .NET Framework should also be able to support that natively. Or should we stick to https://github.com/grpc/grpc/tree/master/src/csharp in that case? Will the upcoming .NET Core gRPC support be 100% compatible with with the Google version so we can mix without issues. Personally I would prefer to make the .NET Core gRPC version compatible with the full .NET Framework so that the same library talks to itself.

  • Joseph Rufft
    Joseph Rufft

    Scott:
    ASP.Net Web Forms are a must in .Net Core or .Net 5.  Blazor an unreleased experimental framework sounds like a risky choice and a possible waste of time, money and could be self damaging to ones reputation if it doesn’t stick around.  Web Forms are mature, solve problems and work great for intranet apps.  University’s might be behind on recent trends, but they still teach ASP.Net Web Forms in their curriculum.  For Microsoft to not port Web Forms to .Net Core or .Net 5 shows a major disconcern for developers and companies that have spent millions developing on the Microsoft stack.  This is flat out bad business decision making and errodes customer loyalty!

Leave a comment