Need advice about which tool to choose?Ask the StackShare community!

.NET Core

4.5K
2.5K
+ 1
155
Mono

84
59
+ 1
1
Add tool

.NET Core vs Mono: What are the differences?

Introduction

In this Markdown code snippet, we will provide the key differences between .NET Core and Mono. This information can be used to understand the distinctions between these two frameworks and make informed decisions when choosing which one to use for a website.

  1. 1. Execution Environment: .NET Core uses the .NET Core Runtime, while Mono uses the Mono Runtime for executing applications. The .NET Core Runtime is designed to be cross-platform and supports Windows, Linux, and macOS, whereas the Mono Runtime is primarily used for non-Windows platforms.

  2. 2. Supported Platforms: .NET Core supports a larger number of platforms compared to Mono. It can run on Windows, Linux, macOS, and also on a wide range of mobile (Android, iOS) and cloud platforms. On the other hand, Mono primarily focuses on providing cross-platform support for Linux and macOS.

  3. 3. Development Community: .NET Core has a larger and more active development community compared to Mono. This means that there are more resources, libraries, and community support available for .NET Core developers. Additionally, Microsoft actively contributes to the development of .NET Core, ensuring regular updates and improvements.

  4. 4. Ownership and Support: .NET Core is developed and supported by Microsoft, making it a more reliable and well-maintained framework. On the other hand, Mono is an open-source project led by the Mono community with support from companies like Xamarin and Microsoft. While both frameworks have strong support, .NET Core benefits from Microsoft's resources and expertise.

  5. 5. Performance: .NET Core generally offers better performance compared to Mono. This is because .NET Core is optimized for modern hardware and utilizes Just-In-Time (JIT) compilation, which can provide faster execution speeds. Mono, although performant, may not be as fast as .NET Core in certain scenarios.

  6. 6. Compatibility: .NET Core is not fully compatible with the full .NET Framework, which means that some features and libraries may not work out-of-the-box. On the other hand, Mono aims to provide compatibility with the full .NET Framework, allowing developers to run existing .NET applications seamlessly.

In summary, .NET Core and Mono differ in their execution environment, supported platforms, development community, ownership and support, performance, and compatibility. While .NET Core provides a more diverse and well-maintained ecosystem with broader platform support, Mono focuses on Linux and macOS platforms and offers compatibility with the full .NET Framework.

Decisions about .NET Core and Mono

I was researching multiple high performance, concurent//parallel languages for the needs of authentication and authorization server, to be built on microservice architecture and Linux OS. Node.js with its asynchronous behavior and event loop suits the case best. Python Django & Flash turns to be slower and .NET Core & Framework wasn't the best choice for the Linux environment at the time (summer 2018).

I also tested Go lang and Rust, although they didn't meet the quick prototyping criteria as both languages are young and lacking libraries or battle-tested ORM.

See more

There has been a lot of buzz around having PostgreSQL for ASP.NET Core 3.1 web apps. But Configuring Identity Server 4 with PostgreSQL is a real challenge. I've made a simple video to configure the ASP.NET Core 3.1 based Web application that uses AngualrJS as front end with Single Page App capabilities with Identity Server 4 talking to the PostgreSQL database. Check out this Video tutorial on how to do that in detail http://bit.ly/2EkotL5 You can access the entire code here on github http://bit.ly/35okpFj

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of .NET Core
Pros of Mono
  • 30
    Perfect to do any backend ( and a fast frontend) stuff
  • 27
    Fast
  • 26
    Cross-platform
  • 25
    Great performance
  • 18
    It promotes better codebase architectures and organizat
  • 18
    All Platform (Mac, Linux, Windows)
  • 11
    Very fast development with templates
  • 1
    It was great, pre-dotnetcore

Sign up to add or upvote prosMake informed product decisions

What is .NET Core?

Cross-platform (supporting Windows, macOS, and Linux) and can be used to build device, cloud, and IoT applications.

What is Mono?

It is a software platform designed to allow developers to easily create cross platform applications part of the .NET Foundation. It is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.

Need advice about which tool to choose?Ask the StackShare community!

What companies use .NET Core?
What companies use Mono?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with .NET Core?
What tools integrate with Mono?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to .NET Core and Mono?
ASP.NET
.NET is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
ASP.NET Core
A free and open-source web framework, and higher performance than ASP.NET, developed by Microsoft and the community. It is a modular framework that runs on both the full .NET Framework, on Windows, and the cross-platform .NET Core.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
See all alternatives