Mono là một dự án tự do nguồn mở nhằm tạo ra một để tạo software framework tương thích .NET Framework tương thích tiêu chuẩn Ecma, bao gồm một trình biên dịch C#Common Language Runtime. Ban đầu bởi Ximian, nó được Novell mua lại, và bây giờ được dẫn đầu bởi Xamarin, một công ty con của Microsoft[4].NET Foundation. Mục đích đã nêu của Mono không chỉ là có thể chạy các ứng dụng đa nền tảng của Microsoft mà còn mang lại các công cụ phát triển tốt hơn cho các nhà phát triển Linux.[5] Mono có thể chạy trên nhiều hệ thống phần mềm bao gồm Android, hầu hết các bản phân phối Linux, BSD, macOS, Windows, Solaris và thậm chí một số máy chơi game như [ PlayStation 3, Wii, và Xbox 360.

Mono
Mono Project Logo.svg
Sơ đồ kiến trúc Mono
Sơ đồ kiến trúc Mono
Thiết kế bởiXimian
Phát triển bởi.NET FoundationXamarin (một công ty con của Microsoft)
Phát hành lần đầu30 tháng 6 năm 2004; 16 năm trước (2004-06-30)
Phiên bản ổn định
6.8.0.96 / 15 tháng 1 năm 2020; 5 tháng trước (2020-01-15)[1]
Bản xem thử
6.6.0.156 / 15 tháng 11 năm 2019; 7 tháng trước (2019-11-15)[2]
Repository Sửa dữ liệu tại Wikidata
Viết bằngC, C#, XML
Hệ điều hànhWindows, macOS, Linux
Nền tảngIA-32, x64, IA-64, ARM, MIPS, PowerPC, SPARC, S390
Thể loạiSoftware framework
Giấy phépMIT License[3]
Websitemono-project.com

Dự án Mono đã gây tranh cãi trong cộng đồng nguồn mở, vì nó triển khai các phần của .NET Framework có thể được bảo vệ bởi các bằng sáng chế của Microsoft. Mặc dù các phần của .NET Framework được tiêu chuẩn hóa được trình bày trong Microsoft Open Specification Promise—một giao ước nói rằng Microsoft sẽ không khẳng định bằng sáng chế của mình chống lại việc triển khai các thông số kỹ thuật của mình trong các điều kiện nhất định, dự án có thể trở thành mục tiêu của các vụ kiện vi phạm bằng sáng chế. Sau khi Microsoft cung cấp nguồn mở cho một số công nghệ .NET cốt lõi kể từ năm 2014 và mua lại Xamarin vào đầu năm 2016, một cam kết bằng sáng chế đã được cấp cho dự án Mono.

Logo của Mono là khuôn mặt của một con khỉ cách điệu, mono trong tiếng Tây Ban Nha nghĩa là khỉ.[6]

Lịch sửSửa đổi

Lịch sử phát hành[7]
Ngày Phiên bản[8] Ghi chú
2004-06-30 1.0[9] Hỗ trợ C# 1.0
2004-09-21 1.1[10]
2006-11-09 1.2[11] Hỗ trợ C# 2.0
2008-10-06 2.0[12] API của Mono hiện tương đương với .NET 2.0. Giới thiệu trình biên dịch C# 3.0 và trình biên dịch Visual Basic 8. API dành riêng cho Mono mới: Mono.Cecil, Mono{.Cairo and Mono.Posix. Gtk# 2.12 được phát hành. Công cụ xác minh Gendarme và Mono Linker được giới thiệu.
2009-01-13 2.2[13] Mono chuyển engine JIT của nó sang một miêu tả mới[14] giúp tăng hiệu suất và giới thiệu hỗ trợ SIMD trong Mono.Simd[15] Mono.Simd namespace.
Mono introduces Full Ahead of Time compilation that allows developers to create full static applications and debuts the C# Compiler as a Service[16] and the C# Interactive Shell[17] (C# REPL)
2009-03-30 2.4[18] This release mostly polishes all the features that shipped in 2.2 and became the foundation for the Long-Term support of Mono in SUSE Linux.
2009-12-15 2.6[19] The Mono runtime is now able to use LLVM as a code generation backend and this release introduces Mono co-routines, the Mono Soft Debugger and the CoreCLR security system required for Moonlight and other Web-based plugins.
On the class library System.IO.Packaging, WCF client, WCF server, LINQ to SQL debut. The Interactive shell supports auto-completion and the LINQ to SQL supports multiple database backends. The xbuild build system is introduced.
2010-09-22 2.8[20] Defaults to .NET 4.0 profile, C# 4.0 support, new generational garbage collector, includes Parallel Extensions, WCF Routing, CodeContracts, ASP.NET 4.0, drops the 1.0 profile support; the LLVM engine tuned to support 99.9% of all generated code, runtime selectable llvm and gc; incorporates Dynamic Language Runtime, MEF, ASP.NET MVC2, OData Client open-source code from Microsoft;. Will become release 3.0
2011-02-15 2.10[21]
2012-10-18 3.0[22] C# 5.0 support, async support, Async Base Class Library Upgrade and MVC4 - Partial, no async features support.
2013-07-24 3.2[23] Default Garbage Collector is now the SGEN, instead of Boehm
2014-03-31 3.4[24]
2014-08-12 3.6[25]
2014-09-04 3.8[26]
2014-10-04 3.10[27]
2015-01-13 3.12[28]
2015-04-29 4.0[29] Defaults to .NET 4.5 profile and ships only .NET 4.5 assemblies, defaults to C# 6.0. First release to integrate Microsoft open-source .NET Core code
2017-05-10 5.0[30] Shipping Roslyn C# compiler to enable C#7 support; Shipping msbuild and deprecating xbuild for better compatibility; Enabling concurrent SGen garbage collector to reduce time spent in GC; Introducing the AppleTLS stack on macOS for HTTPS connections; Continued Progress on .NET Class Library convergence; Updated libjpeg in macOS package
2017-07-14 5.2[31] Support for .NET Standard 2.0, strong assembly names, and experimental default interface members.
2017-10-05 5.4[32] The JIT Runtime now supports concurrent method compilation and various other Performance Optimisations;
2018-02-01 5.8[33] Initial WebAssembly port; Modes for the SGen GC; Includes Roslyn’s csi (C# interactive) REPL tool
2018-02-26 5.10[34] The Interpreter is now included in the default installation; runtime now supports Default Interface Methods; WebAssembly considered reliable now; Support for .NET 4.7.1 / C# 7.2 / F# 4.1
2018-05-08 5.12[35] Port to IBM AIX/i; now includes VB.NET compiler; option to use jemalloc
2018-08-07 5.14[36] Major Windows.Forms update to improve compatibility with .NET
2018-10-08 5.16[37] Hybrid suspend garbage collector; Client certificate support; C# 7.3 support
2018-12-21 5.18[38] .NET 4.7.2 support; more CoreFX code is used
2019-07-17 6.0.0 C# compiler defaults to version C# 8.0 RC; Various stability improvement in debugger support; Mono Interpreter is feature complete and stable

When Microsoft first announced their .NET Framework in June 2000 it was described as "a new platform based on Internet standards",[39] and in December of that year the underlying Common Language Infrastructure was published as an open standard, "ECMA-335",[40] opening up the potential for independent implementations.[41] Miguel de Icaza of Ximian believed that .NET had the potential to increase programmer productivity and began investigating whether a Linux version was feasible.[42] Recognizing that their small team could not expect to build and support a full product, they launched the Mono open-source project, on July 19, 2001 at the O'Reilly conference.

After three years' development, Mono 1.0 was released on June 30, 2004.[43] Mono evolved from its initial focus of a developer platform for Linux desktop applications to supporting a wide range of architectures and operating systems - including embedded systems.[44]

Novell acquired Ximian in 2003. After Novell was acquired by Attachmate in April 2011, Attachmate announced hundreds of layoffs for the Novell workforce,[45] putting in question the future of Mono.[46][47]

On May 16, Miguel de Icaza announced in his blog that Mono would continue to be supported by Xamarin, a company he founded after being laid off from Novell. The original Mono team had also moved to the new company. Xamarin planned to keep working on Mono and had planned to rewrite the proprietary .NET stacks for iOS and Android from scratch, because Novell still owned MonoTouch and Mono for Android at the time.[48] After this announcement, the future of the project was questioned, MonoTouch and Mono for Android being in direct competition with the existing commercial offerings now owned by Attachmate, and considering that the Xamarin team would have difficulties proving that they did not use technologies they formerly developed when they were employed by Novell for the same work.[49] However, in July 2011, Novell, now a subsidiary of Attachmate, and Xamarin, announced that it granted a perpetual license to Xamarin for Mono, MonoTouch and Mono for Android, which officially took stewardship of the project.[50][51]

Tham khảoSửa đổi

  1. ^ “Mono 6.8.0 Release Notes”. Truy cập ngày 21 tháng 1 năm 2020. 
  2. ^ https://github.com/mono/website/commit/5b09541ab4837703d413a071658a5ac8e0634ed3
  3. ^ “FAQ: Licensing – Mono”. Truy cập ngày 19 tháng 11 năm 2016. 
  4. ^ “Microsoft to acquire Xamarin and empower more developers to build apps on any device”. Official Microsoft Blog. Truy cập ngày 24 tháng 2 năm 2016. 
  5. ^ “Mono Project aims to bring .Net apps to Linux”. ZDNet. 29 tháng 10 năm 2001. Called the Mono Project, this effort encompasses creating a development environment that will allow applications developed for .Net to run on Linux systems as well as at Windows systems. Mono originated out of a need for improved development tools for the GNOME community and for Ximian specifically, according to Miguel de Icaza, Ximian's chief technical officer. 
  6. ^ “Ximian's Mono project: .NET for monkeys, penguins, and gnomes”. TechRepublic. Bản gốc lưu trữ ngày 10 tháng 4 năm 2016. 
  7. ^ “Mono Releases - Mono”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015. 
  8. ^ “OldReleases - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  9. ^ “Mono 1.0 Release Notes”. Go-mono.com. Truy cập ngày 17 tháng 7 năm 2013. 
  10. ^ “Mono 1.1.1: Development Release: Features and Known Issues”. Go-mono.com. Truy cập ngày 17 tháng 7 năm 2013. 
  11. ^ “Mono 1.2: Release Notes”. Go-mono.com. Truy cập ngày 17 tháng 7 năm 2013. 
  12. ^ “Release Notes Mono 2.0 - Mono”. Mono-project.com. 6 tháng 10 năm 2008. Truy cập ngày 17 tháng 7 năm 2013. 
  13. ^ “Release Notes Mono 2.2 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  14. ^ “Linear IR - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  15. ^ “Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza”. Tirania.org. 3 tháng 11 năm 2008. Truy cập ngày 17 tháng 7 năm 2013. 
  16. ^ “Mono's C# Compiler as a Service on Windows. - Miguel de Icaza”. Tirania.org. 27 tháng 4 năm 2010. Truy cập ngày 17 tháng 7 năm 2013. 
  17. ^ “CsharpRepl - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  18. ^ “Release Notes Mono 2.4 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  19. ^ “Release Notes Mono 2.6 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  20. ^ “Release Notes Mono 2.8 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  21. ^ “Release Notes Mono 2.10 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013. 
  22. ^ “Release Notes Mono 3.0”. Mono-project.com. Truy cập ngày 23 tháng 9 năm 2013. 
  23. ^ “Release Notes Mono 3.2”. Mono-project.com. Truy cập ngày 23 tháng 9 năm 2013. 
  24. ^ “Release Notes Mono 3.4”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015. 
  25. ^ “Release Notes Mono 3.6”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015. 
  26. ^ “Release Notes Mono 3.8”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015. 
  27. ^ “Release Notes Mono 3.10”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015. 
  28. ^ “Release Notes Mono 3.12”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015. 
  29. ^ “Release Notes Mono 4.0”. Mono-project.com. Truy cập ngày 3 tháng 5 năm 2015. 
  30. ^ “Release Notes Mono 5.0”. Mono-project.com. Truy cập ngày 13 tháng 5 năm 2017. 
  31. ^ “Mono 5.2.0 Release Notes”. 
  32. ^ “Mono 5.4.0 Release Notes”. 
  33. ^ “Mono 5.8.0 Release Notes”. 
  34. ^ “Mono 5.10.0 Release Notes”. 
  35. ^ “Mono 5.12.0 Release Notes”. 
  36. ^ “Mono 5.14.0 Release Notes”. 
  37. ^ “Mono 5.16.0 Release Notes”. 
  38. ^ “Mono 5.18.0 Release Notes”. 
  39. ^ Bonisteel, Steven (23 tháng 6 năm 2000). “Microsoft sees nothing but .NET ahead”. ZDNet. 
  40. ^ “ECMA-335-Part-I-IV - ECMA-335, 1st edition, December 2001” (PDF). 
  41. ^ Wilcox, Joe; Shankland, Stephen (28 tháng 6 năm 2001). “Microsoft edges into sharing code”. ZDNet. 
  42. ^ “[Mono-list] Mono early history.”. 13 tháng 10 năm 2003. Bản gốc lưu trữ ngày 27 tháng 1 năm 2014. 
  43. ^ “OSS .NET implementation Mono 1.0 released - Ars Technica”. ArsTechnica. Truy cập ngày 23 tháng 10 năm 2009. 
  44. ^ “Supported Platforms”. Mono website. 
  45. ^ Koep, Paul (2 tháng 5 năm 2011). “Employees say hundreds laid off at Novell's Provo office”. KSL-TV. Truy cập ngày 7 tháng 5 năm 2011. 
  46. ^ J. Vaughan-Nichols, Steven (4 tháng 5 năm 2011). “Is Mono dead? Is Novell dying?”. ZDNet. Truy cập ngày 7 tháng 5 năm 2011. 
  47. ^ Clarke, Gavin (3 tháng 5 năm 2011). “.NET Android and iOS clones stripped by Attachmate”. The Register. Truy cập ngày 7 tháng 5 năm 2011. 
  48. ^ “Announcing Xamarin - Miguel de Icaza”. Tirania.org. 16 tháng 5 năm 2011. Truy cập ngày 17 tháng 7 năm 2013. 
  49. ^ “The Death and Rebirth of Mono”. infoq.com. 17 tháng 5 năm 2011. Truy cập ngày 29 tháng 5 năm 2011. Even if they aren't supporting it, they do own a product that is in direct competition with Xamarin's future offerings. Without some sort of legal arrangement between Attachmate and Xamarin, the latter would face the daunting prospect of proving that their new development doesn't use any the technology that the old one did. Considering that this is really just a wrapper around the native API, it would be hard to prove you had a clean-room implementation even for a team that wasn't intimately familiar with Attachmate's code. 
  50. ^ “SUSE and Xamarin Partner to Accelerate Innovation and Support Mono Customers and Community”. Novell. 18 tháng 7 năm 2011. Truy cập ngày 18 tháng 7 năm 2011. The agreement grants Xamarin a broad, perpetual license to all intellectual property covering Mono, MonoTouch, Mono for Android and Mono Tools for Visual Studio. Xamarin will also provide technical support to SUSE customers using Mono-based products, and assume stewardship of the Mono open source community project. 
  51. ^ de Icaza, Miguel (18 tháng 7 năm 2011). “Novell/Xamarin Partnership around Mono”. Truy cập ngày 18 tháng 7 năm 2011. 

Liên kết ngoàiSửa đổi

Bản mẫu:Common Language Infrastructure