Jump to section

What is .NET application modernization?

Copy URL

.NET (formerly known as .NET Core) is an open source development platform that developers can use to build cross-platform cloud and console applications that run on Linux and Windows.

Within .NET, there are three platforms that allow .NET code to execute in different places — .NET Core, .NET Framework, and Xamarin/Mono. .NET Core is the cross-platform implementation that can run anywhere on Windows, Linux, and macOS. .NET Framework is the original implementation of .NET that supports running websites, services, desktop apps, and more on Windows. Xamarin/Mono is .NET for mobile that runs apps on all the major mobile operating systems, including iOS and Android.

Before Microsoft embraced Linux as a key platform, .NET was originally closed source and for Windows only.

Despite .NET now being open source and available on multiple platforms, problems can arise if the existing solution is the .NET Framework, which only runs in Windows environments. The .NET Framework will ultimately need to modernize into a Linux environment. 

Many organizations find that a large share of legacy workloads, underlying platforms, technologies, and traditional development practices are holding back business agility and innovation. This is because legacy systems were developed before the rise of cloud computing, cloud-native development practices, Linux containers, and other recent advancements. However, many of these workloads are still business-critical and represent significant long-term investments which cannot be easily replaced or retired.

This leaves organizations in a difficult position, needing to balance the necessity of maintaining these systems with the desire to innovate, meet new customer expectations, and address new opportunities. These legacy applications can require so much time, budget, and resources to maintain that they become a significant obstacle to innovation.

The purpose of workload modernization is to bring agility back to legacy workloads by migrating them to a modern platform, breaking up monoliths into smaller easier-to-maintain components like microservices, applying modern software development and deployment practices, and integrating old with new.

Benefits

Getting existing .NET workloads into a more modern platform comes down to how much effort developers want to spend and how teams embrace changes in the process. With that in mind, there are immediate benefits to getting workloads modernized like:

  • Better scalability: .NET workloads now can scale based on demand. 
  • Better reliability: .NET workloads will be running more reliably in a much more stable and resilient environment. 
  • Better security: .NET workloads can rely on existing cloud practices to bring an extra layer of security.
  • Cost reduction: By getting more automation into the mix, organizations can reduce costs. 

Because containerization and Kubernetes have developed so much, it is now possible to containerize .NET on any server. Based on business needs, organizations can pick which modernization strategy is best. Budget and time constraints might require different strategies for different workloads. Sometimes, a phased approach might be more appropriate to collect feedback from users and justify the modernization investment in order to get the full benefits of this effort.
There are three paths to modernize existing .NET applications.

  1. Rehosting: Known in the industry as "Lift & Shift," rehosting is the process of migrating an on-premises application to the cloud without modifying it, moving it to a cloud-infrastructure ready platform. In this migration approach, current on-premises applications migrate or rehost to an Infrastructure-as-a-service (IaaS) platform. Applications will have almost the same composition as before, but they now deploy to virtual machines (VMs) in the cloud. This strategy is used mostly to migrate large-scale applications to satisfy specific business goals, such as launching a product in an accelerated timeline or leaving an on-premises data center.
  2. Replatforming: At this level, additional benefits are gained from running an app in the cloud with modern technologies like containers and additional cloud-managed services, making it cloud optimized without altering significant code. This maturity model allows containers to deploy on IaaS or Platform-as-a-Service (PaaS) while using additional cloud-managed services related to databases, cache as a service, monitoring, and continuous integration/continuous deployment (CI/CD) pipelines. Replatforming a .NET application as a Windows container provides the advantage of container technologies without changing the core architecture of a .NET application.
  3. Rearchitecting: With rearchitecting, PaaS services are used to move applications to PaaS computing platforms. Cloud-native applications and microservices architecture are implemented to evolve applications with long-term agility, and to easily  scale based on demand. This type of modernization usually requires architecting specifically for the cloud by writing new code. This approach can help gain the benefits that are difficult to achieve in a monolithic and on-premises application environment. By breaking down a monolithic application into smaller services, each service serves a single purpose and is deployed as a container. The ability to follow a microservices-based approach, where some components are built with .NET and others with Java, but all can run on a common, supported platform on RHEL and OpenShift Container Platform.

If you typically work with Windows Server for existing practices, tools and processes, your team may need to add Linux, containers, and Kubernetes into the mix. This is exciting and scary because it involves changes that might affect your existing business. 

Red Hat understands that change is not always easy. Our business is all about helping our customers face technology changes, and adopt strategies and solutions to achieve business goals and ensure teams can cope with environment, technology, and processes changes.

Regardless of what modernization strategy you pick and the kind of benefits you're looking for based on your constraints, Red Hat offers products and services like Microsoft Azure Red Hat OpenShift (ARO).

Simply application modernization e-book cover image

Simplify app modernization with cloud-native approaches

Keep reading

Article

What are Red Hat OpenShift Operators?

Red Hat OpenShift Operators automate the creation, configuration, and management of instances of Kubernetes-native applications.

Article

AI/ML on Red Hat OpenShift

OpenShift includes key capabilities to accelerate AI/ML workflows and deliver AI-powered intelligent applications 

Article

Edge computing with Red Hat OpenShift

Extend application services to remote locations and analyze inputs in real time with OpenShift’s edge computing capabilities.

More about OpenShift

Products

Red Hat® OpenShift® provides a centralized collaboration platform to help your organization scale DevOps.

Red Hat® Developer Hub provides the tools to build an internal developer platform, a critical part of maintaining a DevOps culture.

Red Hat® Trusted Software Supply Chain helps organizations build security into the software development life cycle from the start.

Red Hat® Ansible® Automation Platform automates the major stages of CI/CD pipelines, becoming the activating tool of DevOps methodologies.

Resources

Training

Free training course

Running Containers with Red Hat Technical Overview

Free training course

Developing Cloud-Native Applications with Microservices Architectures

Free training course

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Interactive labs

Learn about Red Hat® OpenShift with step-by-step interactive lessons designed for hands-on practitioners.