Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • View All Red Hat Products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Secure Development & Architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • Product Documentation
    • API Catalog
    • Legacy Documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Origins of .NET on Linux: An explanation for Java Developers

March 29, 2016
Lincoln Baxter III
Related topics:
.NETJava
Related products:
Red Hat Enterprise Linux

Share:

    The .NET framework is a relatively young technology when compared to the rest of computer science history, but as it turns fourteen this year, we can look back and see a long-standing record of innovation, developer productivity, and more recently a refreshing open-source mentality from Microsoft that has resulted in the first ever release of (the official) .NET framework in a Linux distribution.

    .NET is a development platform that includes several programming languages, notably C# and Visual Basic, and the .NET web framework. Microsoft Visual Studio itself is built on .NET, along with numerous open-source applications including the notable Gnome-Do (a quick-launch utility similar to the Windows key quick-launch) and KeePass (a password manager).

    Origins, parallels to Java, ahead of its time

    The fact that .NET development actually started in the late 1990s is little known, and at the time the framework was referred to as “Next Generation Windows Services” or NGWS. The official announcement for .NET on June 22, 2000 arrived nearly a full two years before version 1.0 of the framework was released, and was part of a larger rebranding and refocusing effort on behalf of Microsoft. This effort would (as history shows) likely re-define Microsoft’s products and services vision as they prepared for the internet-enabled age, eventually offering Office Online and other web-driven tools.

    Often compared to the Java Virtual Machine (JVM) and its ecosystem of JVM runtime languages, the .NET framework provides a broad selection of programming languages to choose from. But, unlike Java’s JVM (which has been used coincidentally as a platform for alternative language development), the .NET runtime was built with polyglot programming in mind; version 1.0 of .NET was released on Feb 13, 2002, and included the first Common Language Interface (CLI) and Common Language Runtime - enabling multiple programming languages to be interpreted and executed in the same application.

    At the time of its release, similarly again to Java’s JVM, the .NET CLI would not yet be recognized by the programming language community for its full potential. C# (C-sharp) and Visual Basic were the primary development languages delivered with the initial release (paired with the ASP.NET web framework). The first release already demonstrated the power of polyglot programming, but the CLI and CLR would later enable dozens of languages to be implemented within the .NET ecosystem.

    Microsoft approached .NET very seriously, and Bill Gates himself took the opportunity to devote his full attention to the project as chief software architect. Not without its problems, however, .NET suffered from some initial usability issues and bugs that gave Microsoft the opportunity to quickly and fully show its intent to support the technology. Making good on their promise to provide a “cohesive, user-driven” experience, Microsoft released .NET version 1.1 in less than a year, fixing numerous fatal error scenarios and other bugs in the framework.

    Progress continued, platform stabilized

    The next iteration of .NET took longer to arrive (released nearly three years later on January 22, 2006), but version 2.0 introduced critical development productivity features for C# that built on and surpassed some of those recently introduced in Java SE 5.0 - anonymous methods, iterators, partial classes, support for 64-bit devices, and truly generic types that did not suffer from many of the problems faced by the Java generics implementation.

    Only ten months after version 2.0 was made available, .NET Framework 3.0 was released November 21, 2006, and did not include a CLI or CLR update, new programming language features, nor a .NET Compact Framework release (for mobile devices, similar to Java Mobile Edition.) This release was mainly a rebranding effort, bringing the WinFX framework (already built on .NET) into the .NET ecosystem.

    Version 3.5 also followed the same trend as its predecessor, providing no major language or runtime updates, but the release of version 4.0 would prove to be more substantial, including improved support for parallel computing, new language features to further improve developer productivity, and would provide the iteration of the CLI that is still in use nearly seven years later today in .NET version 4.6.

    Joining the open source community

    The .NET framework has had un-official open-source support since 2004, when the Mono Framework was released as an open-source alternative to Microsoft’s .NET runtime. Mono was initially announced in 2001, shortly after Microsoft’s own announcement of the .NET framework. This early adoption of .NET by the open-source is an example of how rapidly the open-source community has changed the culture of software development.

    Last year, nearly a decade after the initial release of Mono, Microsoft announced that would release .NET Core as open source, a move which earned some credibility and kudos in the Mono development community, but is not without its own controversy. Some critics of the technology giant say that the gesture is “too little, too late”, and that an official open-source .NET still won’t be able to catch up with the momentum Java has built in the last twenty years. The open sourced code includes both the CLI, CLR, framework libraries such as collections and Networking APIs, and more. All of the .NET open source code is publicly hosted on GitHub.

    The news that .NET has been made available as open-source comes in tandem with the latest news that Microsoft is partnering with Red Hat Software to provide .NET on Linux. Red Hat is an open-source software champion best known for its enterprise-grade distribution of the Linux operating system, Red Hat Enterprise Linux (RHEL).

    A Red Hat and Microsoft partnership is particularly relevant because Linux is a popular operating system used on web servers, and the ability to run .NET in production Linux environments provides additional flexibility and choice for companies choosing production platforms. Red Hat has also recently offered the ability to host containerized .NET applications on its OpenShift open-cloud platform. Microsoft will also begin offering RHEL as an option on its Azure cloud platform, which provides a similar feature set to OpenShift.

    For additional information and articles on .NET Core visit our .NET Core web page for more on this topic.

     


     

    About the author:

    Lincoln Baxter, III is the Chief Editor of Red Hat Developers, and has worked extensively on JBoss open-source projects - most notably as creator & project lead of JBoss Forge, author of Errai UI, and Project Lead of JBoss Windup.

    He is a founder of OCPsoft, the author of PrettyFaces and Rewrite, the leading URL-rewriting extensions for Servlet, Java EE, and Java web frameworks; he is also the author of PrettyTime, social-style date and timestamp formatting for Java. When he is not swimming, running, or playing competitive Magic: The Gathering, Lincoln is focused on promoting open-source software and making technology more accessible for everyone.

    Last updated: January 18, 2023

    Recent Posts

    • Profiling vLLM Inference Server with GPU acceleration on RHEL

    • Network performance in distributed training: Maximizing GPU utilization on OpenShift

    • Clang bytecode interpreter update

    • How Red Hat has redefined continuous performance testing

    • Simplify OpenShift installation in air-gapped environments

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue