How to modernize legacy .NET applications