Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

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

    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

    • Debugging image mode with Red Hat OpenShift 4.20: A practical guide

    • EvalHub: Because "looks good to me" isn't a benchmark

    • SQL Server HA on RHEL: Meet Pacemaker HA Agent v2 (tech preview)

    • Deploy with confidence: Continuous integration and continuous delivery for agentic AI

    • Every layer counts: Defense in depth for AI agents with Red Hat AI

    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
    © 2026 Red Hat

    Red Hat legal and privacy links

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

    Chat Support

    Please log in with your Red Hat account to access chat support.