Search code examples
asp.net-coreasp-classic

Migrating classic ASP application to ASP.NET Core


We have few classic ASP web applications which are to be converted to ASP.NET Core. Few questions:

1) Are there any tools which can help in migration

2) I have Windows server 2016 - what version of Visual studio , edition and framework is required to be installed on the server ?

3) Are there any other software / NuGet packages which are required as pre-requisite ?

4) What should be the approach taken for such migrations ?

Thanks


Solution

  • ASP.NET and ASP.NET Core, despite both having "ASP.NET" in their names are fundamentally different things down to their core, no pun intended. As such, no, there is no "tool" to migrate for you, because it basically requires a rewrite. You should not look at moving to ASP.NET Core as a "migration". You are creating a brand new application. The way you structured your previous app, how you chose to do things, the very architecture itself, will all need to be re-evaluated, just as if you were starting from scratch, because you essentially are.

    I'm actually in the middle of such a "migration" myself, but I've taken the opportunity to move to a microservices architecture. As such, I'm essentially just breaking off pieces of the old application and replacing them with microservices. This makes it relatively easy and straight-forward to start using ASP.NET Core while at the same time keeping your existing ASP.NET application working, limiting the scope of the changes required. Eventually, once all the core functionality is spun off, all you'll essentially have left is the UI, which is a rather simple replacement overall.

    As far as tooling, you must have Visual Studio 2017, edition does not matter. 2015 can only work with up to .NET Core 1.1, and not well even then. 2019 will be a better option once it's generally available. Basically, just use whatever the latest GA version is always. There's some benefit with the Enterprise edition as you get things like Live Unit Testing with that, but you can develop full ASP.NET Core apps on even the free Community edition, just without all the Visual Studio extra bells and whistles you get for paying for higher versions.

    NuGet packages are specific to your app, so you'll decide on those as you build. As far as other software goes, if you want to take the same microservices architecture approach, you'll want to have Docker for Windows installed. Generally, you'll of course also need the .NET Core SDK you plan to target installed, as well.