In Development
Migrate WCF to ASP.NET Core MVC
In Development
We are working on support for migrating WCF SOAP services to modern HTTP APIs with ASP.NET Core MVC.
Like our WCF to gRPC support, the generated code will follow best practices, including OpenAPI for documenting APIs and generating client code for multiple platforms and languages. Again, no proprietary packages or runtime dependencies will be added; once you’ve ReCoded your application, it’s all yours.
Why You Need To Upgrade
The most recent version of .NET platform is .NET 6, built off of .NET Core. While some .NET Framework technologies were ported over, WCF was not one of them, and there are no plans to change that. This means developers who continue to use WCF are stuck using a version of .NET that is no longer being innovated. Using the best version of .NET possible requires a switch.
Even if it were, it would not be the right solution for modern API development.
WCF was originally released as part of .NET Framework 3.0 at the end of 2006. The world of distributed systems was very different then: JSON was barely a thing, and Remote Procedure Calls (RPC) using XML-serialized SOAP messages was the prevailing standard for Service Oriented Architectures. The term “microservices” would not be coined for another five years. And technology moves forward ever-faster, so in the years since WCF was conceived, people have come up with better solutions to the problems it sought to solve.
Where does that leave you and many others that have a deep investment in WCF for building your critical applications?
ReCode from WCF to ASP.NET Core MVC
If you want to migrate to a modern micro-services approach you can convert your WCF applications to use
a native HTTP API - built with ASP.NET Core. Visual ReCode will guide you through creating a new
.NET Core 3.1 Web API Project and then automatically copy and rewrite your existing ServiceContract
types and implementations
into ASP.NET Core Web API Controllers.
Of course, just converting the controllers doesn’t cover all your application does - so ReCode will also
create POCO data transfer objects from DataContract
types and identify and copy dependencies from your
WCF project(s) to .NET Core 3.1 project(s). You can chose to merge or split your service contracts between
multiple projects to optimize how you want your final application code structure to be.
Keep Existing URLs
If your application uses WCF ReST, with [WebGet]
and [WebInvoke]
attributes, Visual ReCode
will keep those URLs in the generated solution so all your clients will continue to work.
Add OpenAPI Metadata
HTTP APIs aren’t documented in the same way WCF SOAP APIs are; there’s no WSDL
metadata for generating
client code. The modern alternative to this is OpenAPI
(formerly known as “Swagger”), which provides interactive documentation of your APIs in the browser and
supports client code generation across multiple platforms. Visual ReCode can automatically add the necessary
code to support OpenAPI as it migrates your WCF application to ASP.NET Core Web API. By using the
[NSwag]
Fast, Native Implementation
Visual ReCode works by moving your source code from a .NET Framework project to a new .NET Core project and rewriting it as a native ASP.NET Core Web API. It doesn’t add any proprietary third party libraries - instead it creates the same code you would make yourself if you were starting from scratch today.
Once you’ve ReCoded your application you don’t need Visual ReCode around to compile it, modify it, or deploy - because everything’s using the native .NET Core implementations just like a brand new implementation.