Need advice about which tool to choose?Ask the StackShare community!
.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. 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. 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. 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. 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. 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. 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.
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.
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
Pros of .NET Core
- Perfect to do any backend ( and a fast frontend) stuff30
- Fast27
- Cross-platform26
- Great performance25
- It promotes better codebase architectures and organizat18
- All Platform (Mac, Linux, Windows)18
- Very fast development with templates11
Pros of Mono
- It was great, pre-dotnetcore1