Home / Case Studies / How to Migrate WinForms to .NET Core 3.2: Reimplementing Functionality
case study

How to Migrate WinForms to
.NET Core 3.2: Reimplementing Functionality

How to Migrate WinForms to .NET Core 3.2: Reimplementing Functionality

Will desktop apps remain effective in modern reality?

Not really. This project highlights the underlying truth that transitions to newer technologies will undoubtedly take place, it’s just a matter of time.

About the Client

Our client is a large enterprise offering financial and insurance services in the healthcare industry. The company went through a merger and acquisition (M&A) process that required two different systems to work as a single unit. On one side - a modern and highly-scalable cloud-based SaaS platform, and on the other – a legacy and clunky desktop app.

The 20-year-old WinForms system was effective for many tasks but only relied on the Windows operating platform, causing limitations. When it was time to conduct the M&A process, the software needed to be integrated into a modern system made with .NET Core. That’s where they met the ModLogix team to migrate WinForms to .NET Core 3.

The Business Case for Migration: Starting the Merger & Acquisition Process

Starting the Merger and Acquisition Process

A merger with an established company is one of the key business growth drivers. It can help speed up operational processes, reduce tech debt, and bring innovations, resulting in higher ROI and customer satisfaction.

Our client chose this approach for several reasons, which include:

A drastic decrease in productivity;

Frequent users' complaints about legacy interfaces;

A shortage of developers who can support desktop applications.

Our client’s long-term partner was interested in broadening the service line, which equaled improving the functionality of the existing software. That’s how they reached an agreement to start the M&A process.

In addition, the client’s organization managed modules that were to be integrated into a modern cloud-based SaaS platform. Still, this lucrative deal was full of technical challenges for which the companies weren’t ready.

Read this case study as an addition to our other story about M&A.

We reveal the M&A process in detail and explain data integration and standardization. The two-part act is now available to read!


WinForms in .NET Ecosystem: Key Things to Know

In 2016, Microsoft announced .NET Core, a future of .NET development. It provides greater opportunities to create web and cloud apps of any scale and more.

Windows Forms (WinForms) technology, lying in the core of the desktop system, was primarily introduced in 2002 as the first desktop UI technology for .NET. The technology is mature and perfectly runs on Windows without lags. Even though Microsoft has no plans to evolve WinForms, it constantly receives bug fixes which showcases the apps’ stability. However, there’s an obvious drawback – software is tied to OS, which isn’t a developer of modern programs.

.NET Core benefits are:

  • cross-platform support;
  • command-line interface tools for effective development;
  • open-source development;
  • availability across different devices.

WinForms in .NET Ecosystem: Key Things to Know

Desktop Packs

Windows Forms
EF6 (cross-plat)

.NET Core 3





EF Core



.NET Standart

Challenges We Faced in this Project

Since our team was in charge of the technical part of the M&A process, we instantly hit the ground running to move WinForms to .NET Core 3

We worked on two different systems, bringing forth the following challenges:

Disparity of technologies

Even though WinForms is a part of the .NET ecosystem, it’s impossible to just port desktop apps to .NET Core technology. The different architectures, libraries, components, and tools required a load of manual efforts to get the desirable outcomes. Ultimately, our team came up with an idea to rewrite the legacy parts from the ground up

Integrating databases and standardizing raw data

Since each system stored and processed data differently, data consolidation was a rather difficult task. In addition, the desktop system had data duplicates and data siloes that needed to be eliminated.

Restoring the core functionality

The desktop app features must be an extension (new modules) of the bigger SaaS platform, aka the target system. To fully integrate its functionality, we had to dig into incomplete documentation, bridge existing gaps, align UI&UX design patterns with the new style, and avoid business disruptions

The Importance of Planning and Risk Management During the Migration Process

As soon as all business requirements were set out, the desktop to web app migration process commenced. Our client wasn’t ready to stop providing their services during the M&A, so we selected software integrity as a starting point for the entire migration.

In a nutshell, the plan consisted of 5 key steps:

Analyze project dependencies and functionality to make informed decisions on software maintenance and further integration;

Evaluate Database Management System (DMS) design and architecture to fit into a new environment;

Create a “backbone” of a new project, which means rewriting an old desktop app from scratch;

Redesign the desktop application to match modern needs and be compatible with the new system’s design;

Test, test, test, and, then roll out.

Throughout the process, we also supported the old version of the app. In fact, we still support it. Its functionality is too large to transfer everything at once and the migration is in progress.

Blog Posts

Guide to Legacy Application Migration: All You Need to Know

Migration from desktop to web is a tricky process. Learn the top tips on legacy system migration every CTO should know.

Learn more

Working with Data: SQL Server Database Upgrade

Diving deeper into the project and analyzing business processes, we found a database overload that provoked the low performance of the whole app. It weighed almost 100~120 GB! In addition, different data formats in the desktop app were scattered and unorganized. The verdict was that we couldn’t just port them into a new environment.

The first thing we did was take up a data unification process which involved structuring the data from various sources into a common view. Then, when everything was prepared, we merged two databases into one and upgraded it to the newest version – MS SQL 17, for the sake of optimization

As an intermediate result, we compressed the size of the database up to 40%. Sounds easier than it is!

Our professional database developer thoroughly planned a homogenous migration which took 4 steps:

assessment and analysis

Read about the legacy database migration process in detail.

Read case

Desktop System Redesign

Considering that 70% of M&A fail, we were fully aware of the cultural change challenge. In most cases, companies fall short of their expectations when the M&A ends

The software is brand new, the rules are different, and interfaces are no longer the same, which may cause some users to struggle tremendously. Our team was aware of this challenge, and we worked on the project diligently to avoid any user frustrations.

Desktop System Redesign

The business analyst and designer gathered user requirements, which they integrated into the new system. The idea behind the software redesign was to create a familiar concept with well-known behavioral patterns.

That way, we satisfied users’ needs, improved the system due to on-time feedback, and increased employee satisfaction.

Rewriting WinForms App to Fit in .NET Core Application

Microsoft provided corporate users with detailed documentation on how to convert WinForms to .NET Core. To start with, organizations should use portability analyzer to identify APIs that are not portable with the latest .NET versions. The reason is that usually, migration involves rewriting some parts from scratch.

It was the case where we rewrote the code base and re-architected the whole desktop system to fit in the SaaS platform. We couldn’t use automation tools for migration as the upgraded version must’ve been fully integrated into the established software structure.

Since the app was multimodule, we rewrote everything, module by module, while supporting the desktop app for the end-users.

ModLogix tips for migration of large apps

Our experts, professional migration developers, state that every third legacy software must be rewritten from scratch, especially if they are enterprise systems. Such solutions often have a tangled network of dependencies that cannot be ported to a new environment with automation tools. As such, it’s reasonable to manually recreate the app using modern technology like .NET 6, which was recently released.

If you are ready to hire qualified .NET developers for modernization projects, contact the ModLogix team today!


Maintaining the Desktop and Web Version Simultaneously

Bearing in mind that we were ready to give the desktop app a new lease of life, our team ensured we made the transition to the new software as smooth as possible. Achieving high customer satisfaction levels was our ultimate goal

For that reason, we divided our team into two separate divisions that worked in parallel. One was tasked with moving the functionality of legacy parts to the new system as the other fixed bugs in the old version and assisted users. That way, our team created a “bridge” for effective migration, supporting the production and M&A process simultaneously.

and Tools We Use

*as a part of a bigger project
1 Project Manager
4 Full-stack Developers
1 Back-end Developer
2 Front-end Developers
1 Ui/ux Designer
1 Business Analyst
1 Technical Writer
2 Qa Engineers


 5x lesser code length Legacy application web-enablement

The customer and users admitted a significant increase in usability and accessibility of the platform. Earlier, the desktop system required a lot of manual configurations, whereas the web version has allowed users to interact with the application from various platforms.

123% higher product performance Optimized MS SQL database

Professional developers understand in-depth how an unoptimized database can affect the performance of the whole app. Our team fixed the database’s slowness by speeding up SQL queries and changing database architecture. These measures contribute to the system’s performance, optimizing its functionality.

LTS support Simplified maintenance and reduced technical debt

Administration and maintenance of desktop apps were often problematic, as they always involved a bunch of manual configurations. Any updates or bug fixes posed the unanticipated expenses resulting in a tech debt. The new system is now updated automatically; plus, the client takes advantage of speed-up software scalability.


Key Takeaways

When moving VB.NET/WinForms applications to .NET Core/Angular pay close attention to the initial structure of applications. If they are buggy and consist of plenty of “dead code,” don’t rush porting them but fix the existing issues.

Rewriting apps can be more beneficial than porting them, especially when using automation tools. Before choosing a modernization approach, consult with a legacy software modernization company.

Desktop systems cause more trouble than bring real value to the business. Web and cloud enablement is a must-have for modern organizations that want to provide top-notch services.

Our Team
on This Project

Full-stack Developer

Moving on to the future

What else can we add if all modern apps are built using emerging .NET technologies? Undoubtedly, those apps are much easier to upgrade and maintain, streamlining our work.


Case Studies

Actions speak louder than words! Take a look at our legacy app modernization
services in essence.

All Cases

Let’s Start a

Share your challenge with us – we want to hear from you!

* Please enter your name
* Please leave a message


    We use cookies to ensure that we give you the best experience on our website. By continuing to browse this site you accept the use of cookies.

    Get Your FREE Template!

    Please, provide the email address so that we can send the whitepaper to you.

    * Please enter your name

      Get Your FREE Template!

      Please, provide the email address so that we can send the checklist to you.

      * Please enter your name