- Описание
- Удаление
- Заключение
Данная статья расскажет о предназначении папки .mono, которую вы можете заметить у себя на локальном диске.
Папка компонента, связанного с .NET Framework, который необходим для работы некоторых приложений, игр. Папка может появиться например после установки игры Robocraft.
Стандартное расположение папки:
C:UsersDimaAppDataRoaming.mono
Директория может быть скрытой.
На самом деле Mono — некий проект, который занимается системой, основанной на .NET Framework. Простыми словами это компонент, который используется при создании некоторых программ, игр. Само по себе ПО .NET Framework от Microsoft — платформа, которая необходима для работы многих программ, включая игры.
Каталог .mono, расположенный в директории игры Hearthstone:
Также может быть в директории ProgramData:
Папка .mono — можно ли удалить?
Если папка весит немного — не стоит удалять, лучше оставить, она может понадобиться для работы некоторого ПО. Когда директория имеет большой размер — лучше сперва создать точку восстановления, а потом уже удалять.
Точку восстановления создавать очень желательно (в случае проблем сэкономит время и сохранит нервы):
- Откройте панель управления, можно например так: зажмите Win + R > введите команду control или control panel > кликните ОК.
- Найдите и запустите значок Система.
- Далее кликните слева Защита системы.
- Выберите системный диск (обычно имеет букву C) > нажмите кнопку Создать.
- Назовите точку восстановления, можно просто указать название До удаления папки .mono.
РЕКЛАМА
Заключение
Выяснили:
- Папка .mono — относится к платформе .NET Framework, необходима для работы софта, например игр, некоторых приложений.
- Если размер директории .mono небольшой — лучше оставить, не удалять.
- При удалении лучше заранее создать точку восстановления.
Удачи.
This article needs to be updated. Please help update this article to reflect recent events or newly available information. (March 2016) |
Diagram of Mono architecture |
|
Original author(s) | Ximian |
---|---|
Developer(s) | .NET Foundation and Xamarin (a Microsoft subsidiary) |
Initial release | June 30, 2004; 18 years ago |
Stable release |
6.12.0.182[1] |
Preview release |
6.12.0.184 |
Repository |
|
Written in | C, C#, XML |
Operating system | Windows, macOS, Linux, IBM AIX, IBM i[3] |
Platform | IA-32, x64, IA-64, ARM, MIPS, PowerPC, SPARC, S390 |
Type | Software framework |
License | MIT License[4] |
Website | www.mono-project.com |
Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft[5] and the .NET Foundation. Mono can be run on many software systems.
History[edit]
Date | Version[7] | Notes |
---|---|---|
2004-06-30 | 1.0[8] | C# 1.0 support |
2004-09-21 | 1.1[9] | |
2006-11-09 | 1.2[10] | C# 2.0 support |
2008-10-06 | 2.0[11] | Mono’s APIs are now in par with .NET 2.0. Introduces the C# 3.0 and Visual Basic 8 compilers. New Mono-specific APIs: Mono.Cecil, Mono.Cairo and Mono.Posix. Gtk# 2.12 is released. The Gendarme verification tool and Mono Linker are introduced. |
2009-01-13 | 2.2[12] | Mono switches its JIT engine to a new internal representation[13] that gives it a performance boost and introduces SIMD support in the Mono.Simd[14] 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[15] and the C# Interactive Shell[16] (C# REPL) |
2009-03-30 | 2.4[17] | 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[18] | 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[19] | 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[20] | |
2012-10-18 | 3.0[21] | C# 5.0 support, async support, Async Base Class Library Upgrade and MVC4 — Partial, no async features support. |
2013-07-24 | 3.2[22] | Default Garbage Collector is now the SGEN, instead of Boehm |
2014-03-31 | 3.4[23] | |
2014-08-12 | 3.6[24] | |
2014-09-04 | 3.8[25] | |
2014-10-04 | 3.10[26] | |
2015-01-13 | 3.12[27] | |
2015-04-29 | 4.0[28] | 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[29] | 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[30] | Support for .NET Standard 2.0, strong assembly names, and experimental default interface members. |
2017-10-05 | 5.4[31] | The JIT Runtime now supports concurrent method compilation and various other Performance Optimisations; Added .NET 4.7 reference assemblies |
2018-02-01 | 5.8[32] | Initial WebAssembly port; Modes for the SGen GC; Includes Roslyn’s csi (C# interactive) REPL tool |
2018-02-26 | 5.10[33] | 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[34] | Port to IBM AIX/i; now includes VB.NET compiler; option to use jemalloc |
2018-08-07 | 5.14[35] | Major Windows.Forms update to improve compatibility with .NET |
2018-10-08 | 5.16[36] | Hybrid suspend garbage collector; Client certificate support; C# 7.3 support |
2018-12-21 | 5.18[37] | .NET 4.7.2 support; more CoreFX code is used |
2019-07-17 | 6.0[38] | C# compiler defaults to version C# 8.0 RC; Various stability improvement in debugger support; Mono Interpreter is feature complete and stable |
2019-09-23 | 6.4[39] | C# compiler support for C# 8 language version; .NET Standard 2.1 support |
2019-12-10 | 6.6[40] | Added .NET 4.8 reference assemblies |
2020-01-15 | 6.8[41] | Various Bugfixes |
2020-05-19 | 6.10[42] | Various Bugfixes |
2020-11-24 | 6.12[43] | Various Bugfixes |
When Microsoft first announced their .NET Framework in June 2000 it was described as «a new platform based on Internet standards»,[44] and in December of that year the underlying Common Language Infrastructure was published as an open standard, «ECMA-335»,[45] opening up the potential for independent implementations.[46] Miguel de Icaza of Ximian believed that .NET had the potential to increase programmer productivity and began investigating whether a Linux version was feasible.[47] 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 of development, Mono 1.0 was released on June 30, 2004.[48] 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.[49]
Novell acquired Ximian in 2003. After Novell was acquired by Attachmate in April 2011, Attachmate announced hundreds of layoffs for the Novell workforce,[50] putting in question the future of Mono.[51][52]
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.[53] 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.[54] 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.[55][56]
Current status and roadmap[edit]
Mono’s current version is 6.0.0 (as of August 2019). This version provides the core API of the .NET Framework and support for Visual Basic.NET and C# 7.0. LINQ to Objects, XML, and SQL are part of the distribution. Windows Forms 2.0 is also supported, but not actively developed, and as such its support on Mono is incomplete.[57] Version 4.0 was the first version that incorporates Microsoft original source code that was released by Microsoft as part of the .NET Core project.
As of January 14, 2021, Mono has full support for all the features in .NET 4.7 except Windows Presentation Foundation (WPF) (which the Mono team do not plan to support due to the amount of work it would need)[57] and Windows Workflow Foundation (WF), and with only limited support for Windows Communication Foundation (WCF) and the ASP.NET async stack. However, System.Web and WCF are candidates for ‘almost immediate’ porting from the .NET reference source back to Mono.[58] Some missing parts of the .NET Framework are under development in an experimental Mono subproject called Olive.[59]
The Mono project has also created a Visual Basic .NET compiler and a runtime designed for running VB.NET applications. It is currently being developed by Rolf Bjarne Kvinge.
Moonlight[edit]
An open-source implementation of Microsoft Silverlight, called Moonlight, has been included since Mono 1.9.[60] Moonlight 1.0, which supports the Silverlight 1.0 APIs, was released January 20, 2009. Moonlight 2.0 supports Silverlight 2.0 and some features of Silverlight 3.0.[61] A preview release of Moonlight 3.0 was announced in February 2010 and contains updates to Silverlight 3 support.[62]
The Moonlight project was abandoned on May 29, 2012.[63] According to Miguel, two factors sealed the fate of the project: Microsoft added «artificial restrictions» that «made it useless for desktop programming», and the technology had not gained enough traction on the Web. In addition, Silverlight itself was deprecated by Microsoft by 2012.
Mono components[edit]
Mono consists of three groups of components:
- Core components
- Mono/Linux/GNOME development stack
- Microsoft compatibility stack
The core components include the C# compiler, the virtual machine for the Common Language Infrastructure and the core class libraries. These components are based on the Ecma-334 and Ecma-335 standards,[64] allowing Mono to provide a standards compliant, free and open-source CLI virtual machine. Microsoft issued a statement that covers both standards under their Community Promise license.[65]
The Mono/Linux/GNOME development stack provide tools for application development while using the existing GNOME and free and open-source libraries. These include: Gtk# for graphical user interface (GUI) development, Mozilla libraries for working with the Gecko rendering engine, Unix integration libraries (Mono.Posix), database connectivity libraries, a security stack, and the XML schema language RelaxNG. Gtk# allows Mono applications to integrate into the Gnome desktop as native applications. The database libraries provide connectivity to the object-relational database db4o, Firebird, Microsoft SQL Server (MSSQL), MySQL, Open Database Connectivity (ODBC), Oracle, PostgreSQL, SQLite, and many others. The Mono project tracks developing database components at its website.[66]
The Microsoft compatibility stack provides a pathway for porting Windows .NET applications to Linux. This group of components include ADO.NET, ASP.NET, and Windows Forms, among others. As these components are not covered by Ecma standards, some of them remain subject to patent fears and concerns.
Framework architecture[edit]
The major components of Mono include:
- Code Execution Engine
- Class Libraries
- Base Class Library
- .NET Compatibility Class Libraries
- Mono specific class libraries:
- Cross platform class libraries for both Mono and .NET (Gtk#, Mono.Cecil, Mono.CSharp, Text.Templating)
- Unix-specific class libraries (POSIX, Filesystem in Userspace (FUSE), curses)
- Platform-specific class libraries (bindings for: Mac, iOS, Android, MeeGo)
- CLI Assemblies
- CLI Metadata
- Mono’s Common Language Runtime
- Compatible with the ECMA Common Language Infrastructure/.NET Common Language Runtime
- Mono-specific enhancements:
- Mono.SIMD support
- Mono co-routines and continuations.
- Mono-specific enhancements
- Native interop services and COM interop
- Security — Transparent Code Framework
Code Execution Engine[edit]
The Mono runtime contains a code execution engine that translates ECMA CIL byte codes into native code and supports a number of processors: ARM, MIPS (in 32-bit mode only), SPARC, PowerPC, S390 (in 64-bit mode), x86, x86-64 and IA-64 for 64-bit modes.
The code generator is exposed in three modes:
- Just-in-time (JIT) compilation: The runtime will turn ECMA CIL byte codes into native code as the code runs.
- Ahead-of-Time (AOT) compilation: this code turns the ECMA CIL byte codes (typically found on a .exe or .dll file) and generates native code stored in an operating system, architecture and CPU specific file (for a foo.exe file, it would produce foo.exe.so on Linux). This mode of operation compiles most of the code that is typically done at runtime. There are some exceptions like trampolines and other administrative code that still require the JIT to function, so AOT images are not fully standalone.
- Full Static Compilation: this mode is only supported on a handful of platforms and takes the Ahead-of-Time compilation process one step further and generates all the trampolines, wrappers and proxies that are required into a static file that can be statically linked into a program and completely eliminates the need for a JIT at runtime. This is used on Apple’s iOS, Sony’s PlayStation 3 and Microsoft’s Xbox 360 operating systems.[citation needed]
Starting with Mono 2.6, it is possible to configure Mono to use the LLVM as the code generation engine instead of Mono’s own code generation engine. This is useful for high performance computing loads and other situations where the execution performance is more important than the startup performance.
Starting with the Mono 2.7 preview, it is no longer necessary to pick one engine over the other at configuration time. The code generation engine can be selected at startup by using the --llvm
or --nollvm
command line arguments, and it defaults to the fast-starting Mono code generation engine.
Starting with Mono 5.18, support for LLVM is a default configuration option. Previous versions required a special LLVM fork, but now mono can fall back to its own code generator when it encounters something not handled by LLVM.[67]
Garbage collector[edit]
As of Mono 2.8, the Mono runtime ships with two garbage collectors: a generational collector and the Boehm-Demers-Weiser Conservative Garbage Collector. The Boehm garbage collector could exhibit memory leaks on certain classes of applications, making it unsuitable for some long-running server applications.[68][69] Mono switched to Simple Generational GC (SGen-GC) as the default collector in version 3.1.1.
The SGen garbage collector has many advantages over a traditional conservative scanner. It uses generational garbage collection where new objects are allocated from a nursery, during the garbage collection cycle, all objects that survived are migrated to an older generation memory pool. The idea being that many objects are transient and can quickly be collected and only a handful of objects are long-term objects that live for the entire life of the application. To improve performance this collector assigns memory pools to each thread to let threads allocate new memory blocks without having to coordinate with other threads. Migration of objects from the nursery to the old generation is done by copying the data from the nursery to the old generation pool and updating any live pointers that point to the data to point to the new location. This can be expensive for large objects, so Mono’s SGen uses a separate pool of memory for large objects (Large Object Section) and uses a mark-and-sweep algorithm for those objects.[68]
Class library[edit]
The class library provides a comprehensive set of facilities for application development. They are primarily written in C#, but due to the Common Language Specification they can be used by any .NET language. The class library is structured into namespaces, and deployed in shared libraries known as assemblies. Speaking of the .NET Framework is primarily referring to this class library.[70]
Namespaces and assemblies[edit]
Namespaces are a mechanism for logically grouping similar classes into a hierarchical structure. This prevents naming conflicts. The structure is implemented using dot-separated words, where the most common top-level namespace is System, such as System.IO and System.Net. There are other top-level namespaces as well, such as Accessibility and Windows. A user can define a namespace by placing elements inside a namespace block.
Assemblies are the physical packaging of the class libraries. These are .dll files, just like (but not to be confused with) Win32 shared libraries. Examples of assemblies are mscorlib.dll, System.dll, System.Data.dll and Accessibility.dll. Namespaces are often distributed among several assemblies and one assembly can be composed of several files.
Common Language Infrastructure and Common Language Specification[edit]
The Common Language Infrastructure (CLI) as implemented by the Common Language Runtime (CLR), is implemented by the Mono executable. The runtime compiles and executes .NET applications. The common language infrastructure is defined by the ECMA standard.[64] To run an application, you must invoke the runtime with the relevant parameters.
The Common Language Specification (CLS) is specified in chapter 6 of ECMA-335 and defines the interface to the CLI, such as conventions like the underlying types for Enum. The Mono compiler generates an image that conforms to the CLS. This is the Common Intermediate Language. The Mono runtime takes this image and runs it. The ECMA standard formally defines a library that conforms to the CLS as a framework.
Managed and unmanaged code[edit]
Within a native .NET/Mono application, all code is managed; that is, it is governed by the CLI’s style of memory management and thread safety. Other .NET or Mono applications can use legacy code, which is referred to as unmanaged, by using the System.Runtime.InteropServices libraries to create C# bindings. Many libraries which ship with Mono use this feature of the CLI, such as Gtk#.
Mono-specific innovations[edit]
Mono has innovated in some areas with new extensions to the core C# and CLI specifications:
- C# Compiler as a Service (Use the C# compiler as a library).[15]
- C# Interactive Shell.[16]
- SIMD support[14] as part of the Mono.SIMD namespace, where method calls to special vector types are directly mapped to the underlying processor CPU SIMD instructions.
- Full static compilation of .NET code[71] (used on Mono/iPhone, Mono/PS3).
- Mono coroutines (used to implement micro-threading code and continuations, mostly for game developers).[72]
- Assembly injection to live processes.[73]
- Use of LLVM as JIT backend.
- Cxxi and CppSharp direct interop with C++ code and libraries.
In addition, Mono is available on a variety of operating systems and architectures.[74]
System requirements[edit]
Windows 7, Windows 8, Windows 8.1, Windows 10, macOS or Linux
[edit]
Several projects extend Mono and allow developers to use it in their development environment. These projects include:
Cross-platform:
- Banshee Media Player (stalled), a cross-platform music media player built with Mono and Gtk# and also a driver of dozens of C#-based libraries and projects for media handling.
- Beagle (unmaintained), a search system for Unix systems.
- Gecko#, bindings for embedding the layout engine used in Mozilla (Gecko).
- Gtk#, C# wrappers around the underlying GTK and GNOME libraries, written in C and available on Linux, MacOS and Windows.
- Mono Migration Analyzer (MoMA), a tool which aids Windows .NET developers in finding areas in their code that might not be cross-platform and therefore not work in Mono on Linux and other Unixes. Not upgraded since Mono 2.8 (2013); use Microsoft’s .NET Portability Analyzer (dotnet-apiport) instead.
- MonoCross, a cross-platform model–view–controller design pattern where the Model and Controller are shared across platforms and the Views are unique for each platform for an optimized User Interface. The framework requires Xamarin.iOS and Xamarin.Android.
- MvvmCross, a cross-platform Model View ViewModel framework utilizing Xamarin.iOS and Xamarin.Android for developing mobile apps.
- MonoDevelop an open-source and cross-platform integrated development environment that supports building applications for ASP.NET, Gtk#, Meego, MonoTouch and Silverlight/Moonlight.
- Moonlight (discontinued), an implementation of Silverlight that uses Mono.
- OpenTK, a managed binding for OpenGL, OpenCL and OpenAL.
- QtSharp, C# bindings for the Qt framework.
- Resco MobileBusiness, a cross-platform developer solution for mobile clients.
- Resco MobileCRM, a cross-platform developer solution for mobile clients synchronized with Microsoft Dynamics CRM.
- ServiceStack a high-performance open-source .NET REST web services framework that simplifies the development of XML, JSON and SOAP web services.
- SparkleShare an open-source client software that provides cloud storage and file synchronization services.
- Tao (superseded by OpenTK), a collection of graphics and gaming bindings (OpenGL, SDL, GLUT, Cg).
- Xwt, a GUI toolkit that maps API calls to native platform calls of the underlying platform, exposing one unified API across different platforms and making possible for the graphical user interfaces to have native look and feel on different platforms. It enables building GUI-based desktop applications that run on multiple platforms, without having to customizing code for different platforms. Xwt API is mapped to a set of native controls on each supported platform. Features that are not available on specific platforms are emulated by using native widgets, which is referred to as hosting in the Xwt context.[75] Xwt was partially used as GUI toolkit (beside GTK#) in the development of the Xamarin Studio.[76] Supported «backend» engines are: WPF engine and Gtk engine (using Gtk#) on Windows, Cocoa engine (using MonoMac) and Gtk engine (using Gtk#) on Mac OS X, and Gtk engine (using Gtk#) on Linux.[77]
macOS:
- Cocoa# – wrappers around the native macOS toolkit (Cocoa) (deprecated).
- Monobjc – a set of bindings for macOS programming.
- MonoMac – newer bindings for macOS programming, based on the MonoTouch API design.
Mobile platforms:
- MonoDroid. Mono for the Android operating system. With bindings for the Android APIs.
- MonoTouch. Mono for the iPhone, iPad and iPod Touches. With bindings to the iOS APIs.
Windows:
- MonoTools for Visual Studio A Visual Studio plugin that allows Windows developers to target Linux and macOS right from Visual Studio and integrates with SUSE Studio.
Other implementations[edit]
Microsoft has a version of .NET 2.0 now available only for Windows XP, called the Shared Source CLI (Rotor). Microsoft’s shared source license may be insufficient for the needs of the community (it explicitly forbids commercial use).
Free Software Foundation’s decommissioned Portable.NET project.[78]
MonoDevelop[edit]
MonoDevelop is a free GNOME integrated development environment primarily designed for C# and other .NET languages such as Nemerle, Boo, and Java (via IKVM.NET), although it also supports languages such as C, C++, Python, and Vala. MonoDevelop was originally a port of SharpDevelop to Gtk#, but it has since evolved to meet the needs of Mono developers. The IDE includes class management, built-in help, code completion, Stetic (a GUI designer), project support, and an integrated debugger.
The MonoDoc browser provides access to API documentation and code samples. The documentation browser uses wiki-style content management, allowing developers to edit and improve the documentation.
Xamarin.iOS and Xamarin.Android[edit]
Xamarin.iOS and Xamarin.Android, both developed by Xamarin, are implementations of Mono for iPhone and Android-based smartphones. Previously available only for commercial licensing,[79] after Microsoft’s acquisition of Xamarin in 2016, the Mono runtime itself was relicensed under MIT license[80] and both Xamarin.iOS and Xamarin.Android are being made free and open-source.[81]
Xamarin.iOS[edit]
Date | Version | Notes |
---|---|---|
2009-09-14 | MonoTouch 1.0[82] | Initial release |
2010-04-05 | MonoTouch 2.0[83] | iPad support |
2010-04-16 | MonoTouch 3.0[84] | iPhone 4 support |
2011-04-06 | MonoTouch 4.0[85] | iOS 4 support |
2011-10-12 | MonoTouch 5.0[86] | iOS 5 support |
2012-09-19 | MonoTouch 6.0[87] | iOS 6 support |
2013-02-20 | Xamarin.iOS 6.2[88] | Visual Studio support |
2013-07-24 | Xamarin.iOS 6.4[89] | .NET 4.5 async/await support |
2013-06-19 | Xamarin.iOS 7.0[90] | XCode 5 and iOS 7 support |
2014-09-10 | Xamarin.iOS 8.0[91] | iOS 8 and Xcode 6 support |
2015-09-16 | Xamarin.iOS 9.0[92] | iOS 9 and Xcode 7 support |
2016-09-13 | Xamarin.iOS 10.0[93] | iOS 10 and Xcode 8 support |
2017-09-19 | Xamarin.iOS 11.0[94] | iOS 11 and Xcode 9 support |
2018-09-14 | Xamarin.iOS 12.0[95] | iOS 12 and Xcode 10 support |
2019-09-13 | Xamarin.iOS 13.0[96] | iOS 13 and Xcode 11 support |
2020-09-20 | Xamarin.iOS 14.0[97] | iOS 14 and Xcode 12 support |
Xamarin.iOS (previously named MonoTouch) is a library that allows developers to create C# and .NET based applications that run on the iPhone, iPod and iPad devices. It is based on the Mono framework and developed in conjunction with Novell. Unlike Mono applications, Xamarin.iOS «Apps» are compiled down to machine code targeted specifically at the Apple iPhone and iPad.[98] This is necessary because the iOS kernel prevents just-in-time compilers from executing on the device.
The Xamarin.iOS stack is made up of:
- Compilers
- C# from the Mono Project
- Third-party compilers like RemObject’s Oxygene can target Xamarin.iOS also
- Core .NET libraries
- Development SDK:
- Linker – used to bundle only the code used in the final application
- mtouch – the Native compiler and tool used to deploy to the target device
- Interface Builder integration tools
- Libraries that bind the native CocoaTouch APIs
- Xamarin Studio IDE
Xamarin Studio is used as the primary IDE, however additional links to Xcode and the iOS simulator have been written.
From April to early September 2010, the future of MonoTouch was put in doubt as Apple introduced new terms for iPhone developers that apparently prohibits them from developing in languages other than C, C++ and Objective-C, and the use of a middle layer between the iOS platform and iPhone applications. This made the future of MonoTouch, and other technologies such as Unity, uncertain.[99] Then, in September 2010, Apple rescinded this restriction, stating that they were relaxing the language restrictions that they had put in place earlier that year.[100][101]
Xamarin.Android[edit]
Xamarin.Android (formerly known as Mono for Android), initially developed by Novell and continued by Xamarin, is a proprietary[citation needed][102] implementation of Mono for Android-based smart-phones.[103][104][105] It was first released on April 6, 2011.[106] Mono for Android was developed to allow developers to more easily write cross-platform applications that will run on all mobile platforms.[107] In an interview with H-Online, Miguel de Icaza stated, «Our vision is to allow developers to reuse their engine and business logic code across all mobile platforms and swapping out the user interface code for a platform-specific API.»[108]
In August 2010, a Microsoft spokesman, Tom Hanrahan of Microsoft’s Open Source Technology Centre, stated, in reference to the lawsuit filed by Oracle against Google over Android’s use of Java, that «The type of action Oracle is taking against Google over Java is not going to happen. If a .NET port to Android was through Mono it would fall under the Microsoft Community Promise Agreement.»[109][110]
The Xamarin.Android stack consists of the following components:
- Mono runtime
- An Android UI designer[111]
- Libraries:
- Core .NET class libraries
- Libraries that bind the native Android/Java APIs
- SDK tools to package, deploy and debug
- Xamarin Studio and Visual Studio 2010 integration to design the UI, remotely debug, and deploy.
Mono on macOS[edit]
CocoaSharp[edit]
Cocoa# (also known as CocoaSharp) was a bridge framework for Mac OS X, which allowed applications developed with the Mono runtime to access the Cocoa API. It was initially released on August 12, 2004,[112] and was included with the Mono distribution starting with version 1.0.6, released on February 18, 2005.[citation needed] It has not seen any development since 2008,[citation needed] and is now deprecated.[113]
Monobjc[edit]
Monobjc was CocoaSharp’s replacement. It allows .NET developers to use most of the Mac OS X API, including Cocoa, with no native code, while still achieving a native UI.[citation needed]
Xamarin.Mac[edit]
Xamarin.Mac is a library that allows developers to run .NET and C# apps on the Mac.[114]
License[edit]
Mono is dual licensed by Xamarin, similar to other products such as Qt and the Mozilla Application Suite. Mono’s C# compiler and tools are released under the GNU General Public License (GPLv2 only) (starting with version 2.0 of Mono, the Mono C# compiler source code is also available under the MIT X11 License),[115] the runtime libraries under the GNU Lesser General Public License (LGPLv2 only) and the class libraries under the MIT License. These are all free software and open-source licenses and hence Mono is free and open-source software.
The license of the C# compiler was changed from the GPL to the MIT X11 license[116] to allow the compiler code to be reused in a few instances where the GPL would have prevented such:
- Mono’s Compiler as a Service
- The Mono interactive Shell
- The Mono embeddable C# compiler
- Mono’s implementation of the C# 4.0 dynamic binder.
- MonoDevelop’s built-in parser and AST graph
On March 18, 2016, Microsoft’s acquisition of Xamarin was officially closed.[117]
On March 31, 2016, Microsoft announced at Microsoft Build that they’ll completely re-license Mono under the MIT License even in scenarios where previously a commercial license was necessary,[118] and Microsoft stated that they won’t assert any «applicable patents» against parties that are «using, selling, offering for sale, importing, or distributing Mono.»[119][120] It was also announced that Xamarin had contributed the Mono Project to the .NET Foundation.[119]
Mono and Microsoft’s patents[edit]
Software developed with Mono[edit]
Many programs covering a range of applications have been developed using the Mono application programming interface (API) and C#. Some programs written for the Linux Desktop include Banshee, Beagle, F-Spot, Gbrainy, Docky/GNOME Do, MonoTorrent, Pinta, and Tomboy. The program, Logos 5 Bible Study Software (OS X Version), was written for the MacOS.
A number of video games, such as The Sims 3 and Second Life (for their scripting languages), OpenSimulator virtual world server, or games built with the Unity or MonoGame game engines, also make use of Mono.[121] OpenRA bundles its Apple Disk Image and Linux AppImages with Mono essentially removing almost all dependencies from the game.[122]
See also[edit]
- Common Language Runtime
- .NET Framework
- .NET, an open-source framework and successor to .NET Framework
- Standard Libraries (CLI)
- Base Class Library (BCL)
- Comparison of application virtual machines
- DotGNU – A free software umbrella project which includes Portable.NET
- MonoDevelop – An open-source IDE targeting both Mono and Microsoft .NET Framework platforms
- Moonlight (runtime), an open-source implementation of Microsoft’s Silverlight developed by the Mono Project
- Shared Source Common Language Infrastructure – Microsoft’s shared source implementation of .NET, formerly codenamed Rotor
- mod_mono – A module for the Apache HTTP Server that allows hosting of ASP.NET pages and other assemblies on multiple platforms by use of Mono
References[edit]
Citations[edit]
- ^ https://www.mono-project.com/docs/about-mono/releases/6.12.0.182/.
- ^ «Tags · mono/mono · GitHub». GitHub.
- ^ Introducing Mono on AIX and IBM i
- ^ «FAQ: Licensing». Retrieved 3 July 2020.
- ^ «Microsoft to acquire Xamarin and empower more developers to build apps on any device». Official Microsoft Blog. Retrieved 2016-02-24.
- ^ «Mono Releases». Mono-project.com. Retrieved 2015-04-04.
- ^ «OldReleases». Mono-project.com. Retrieved 2013-07-17.
- ^ «Mono 1.0 Release Notes». Mono-project.com. Retrieved 2013-07-17.
- ^ «Mono 1.1.1: Development Release». Mono-project.com. Retrieved 2013-07-17.
- ^ «Mono 1.2: Release Notes». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.0». Mono-project.com. 2008-10-06. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.2». Mono-project.com. Retrieved 2013-07-17.
- ^ «Linear IR — Mono». Mono-project.com. Retrieved 2013-07-17.
- ^ a b «Mono’s SIMD Support: Making Mono safe for Gaming — Miguel de Icaza». Tirania.org. 2008-11-03. Retrieved 2013-07-17.
- ^ a b «Mono’s C# Compiler as a Service on Windows. — Miguel de Icaza». Tirania.org. 2010-04-27. Retrieved 2013-07-17.
- ^ a b «CsharpRepl — Mono». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.4». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.6». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.8». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.10». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 3.0». Mono-project.com. Retrieved 2013-09-23.
- ^ «Release Notes Mono 3.2». Mono-project.com. Retrieved 2013-09-23.
- ^ «Release Notes Mono 3.4». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.6». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.8». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.10». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.12». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 4.0». Mono-project.com. Retrieved 2015-05-03.
- ^ «Release Notes Mono 5.0». Mono-project.com. Retrieved 2017-05-13.
- ^ «Mono 5.2.0 Release Notes».
- ^ «Mono 5.4.0 Release Notes».
- ^ «Mono 5.8.0 Release Notes».
- ^ «Mono 5.10.0 Release Notes».
- ^ «Mono 5.12.0 Release Notes».
- ^ «Mono 5.14.0 Release Notes».
- ^ «Mono 5.16.0 Release Notes».
- ^ «Mono 5.18.0 Release Notes».
- ^ «Mono 6.0.0 Release Notes».
- ^ «Mono 6.4.0 Release Notes».
- ^ «Mono 6.6.0 Release Notes».
- ^ «Mono 6.8.0 Release Notes».
- ^ «Mono 6.10.0 Release Notes».
- ^ «Mono 6.12.0 Release Notes».
- ^ Bonisteel, Steven (June 23, 2000). «Microsoft sees nothing but .NET ahead». ZDNet. Archived from the original on November 5, 2011. Retrieved April 5, 2011.
- ^ «ECMA-335-Part-I-IV — ECMA-335, 1st edition, December 2001» (PDF).
- ^ Wilcox, Joe; Shankland, Stephen (June 28, 2001). «Microsoft edges into sharing code». ZDNet.
- ^ «[Mono-list] Mono early history». 2003-10-13. Archived from the original on 2011-06-06. Retrieved 2005-03-30.
- ^ «OSS .NET implementation Mono 1.0 released — Ars Technica». ArsTechnica. 30 June 2004. Retrieved 2009-10-23.
- ^ «Supported Platforms». Mono website.
- ^ Koep, Paul (2011-05-02). «Employees say hundreds laid off at Novell’s Provo office». KSL-TV. Retrieved 2011-05-07.
- ^ J. Vaughan-Nichols, Steven (2011-05-04). «Is Mono dead? Is Novell dying?». ZDNet. Retrieved 2011-05-07.
- ^ Clarke, Gavin (2011-05-03). «.NET Android and iOS clones stripped by Attachmate». The Register. Retrieved 2011-05-07.
- ^ «Announcing Xamarin — Miguel de Icaza». Tirania.org. 2011-05-16. Retrieved 2013-07-17.
- ^ «The Death and Rebirth of Mono». infoq.com. 2011-05-17. Retrieved 2011-05-29.
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.
- ^ «SUSE and Xamarin Partner to Accelerate Innovation and Support Mono Customers and Community». Novell. 2011-07-18. Retrieved 2011-07-18.
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.
- ^ de Icaza, Miguel (2011-07-18). «Novell/Xamarin Partnership around Mono». Retrieved 2011-07-18.
- ^ a b de Icaza, Miguel (2011-03-07). «GDC 2011». Retrieved 2011-03-11.
We have no plans on building WPF. We just do not have the man power to build an implementation in any reasonable time-frame(…)For tools that are mostly OpenGL/DirectX based, use Windows.Forms, keeping in mind that some bug fixing or work around on their part might be needed as our Windows.Forms is not actively developed.
- ^ «Mono compatibility list».
- ^ «Mono Project Roadmap — Mono». Mono-project.com. Retrieved 2013-07-17.
- ^ «MoonlightRoadmap». Mono Team. Retrieved 2008-11-08.
- ^ «Releasing Moonlight 2, Roadmap to Moonlight 3 and 4 — Miguel de Icaza». Tirania.org. 2009-12-17. Retrieved 2013-07-17.
- ^ «Moonlight 3.0 Preview 1 — Miguel de Icaza». Tirania.org. 2010-02-03. Retrieved 2013-07-17.
- ^ «Xamarin abandons its Silverlight for Linux technology». ZDNet.
- ^ a b «Ecma-335».
- ^ «Technet.com». Archived from the original on 2013-05-23. Retrieved 2009-07-07.
- ^ «Database Access — Mono».
- ^ «Mono LLVM». Mono.
- ^ a b «Compacting GC». mono-project.com. Retrieved 2008-12-16.
- ^ Boehm, Hans-J. «Advantages and Disadvantages of Conservative Garbage Collection». Xerox PARC. Archived from the original on 2013-07-24. Retrieved 2008-12-16.
- ^ «.NET Framework Architecture». official Mono documentation.
- ^ de Icaza, Miguel. «Static Compilation in Mono».
- ^ «Continuations — Mono».
- ^ de Icaza, Miguel. «Monovation: Assembly Injection into Live Processes».
- ^ «Supported Platforms — Mono».
- ^ Narayanaswamy, Anand (23 Nov 2012). «Build Cross Platform Applications with Xwt». InfoQ. Archived from the original on 2016-04-15. Retrieved 2016-04-15.
- ^ de Icaza, Miguel (22 February 2013). «The Making of Xamarin Studio». InfoQ. Archived from the original on 2016-04-15. Retrieved 2016-04-15.
- ^ «Xwt Read Me». Xwt on GitHub. 15 Jan 2012. Archived from the original on 2016-04-16. Retrieved 2016-04-15.
- ^ «DotGNU Project». Retrieved 2 June 2014.
- ^ «FAQ». os.xamarin.com. 2011-08-01.
MonoTouch is a commercial product based on the open source Mono project and is licensed on a per-developer basis.
- ^ «Mono relicensed MIT». www.mono-project.com. 2016-03-31.
- ^ «Xamarin for Everyone». blog.xamarin.com. 2016-03-31.
we are announcing today our commitment to open source the Xamarin SDKs for Android, iOS, and Mac under the MIT license in the coming months
- ^ de Icaza, Miguel. «MonoTouch 1.0 goes live».
- ^ «MonoTouch 2.0.0». Xamarin.
- ^ «MonoTouch 3.0.0». Xamarin.
- ^ «MonoTouch 4.0.0». Xamarin.
- ^ «MonoTouch 5.0». Xamarin.
- ^ «MonoTouch 6.0». Xamarin.
- ^ «Xamarin.iOS 6.2». Xamarin.
- ^ «Xamarin.iOS 6.4». Xamarin. 8 July 2022.
- ^ «iOS 7 and Xamarin: Ready When You Are». Xamarin Blog. 2013-09-18. Retrieved 2021-03-20.
- ^ «iOS 8 Bigger and Better with Xamarin». Xamarin Blog. 2014-09-10. Retrieved 2021-03-20.
- ^ «Xamarin for iOS 9: Search Deeper». Xamarin Blog. 2015-09-16. Retrieved 2021-03-20.
- ^ «Major Updates: iOS 10, Android Nougat, and Other Tasty Bits». Xamarin Blog. 2016-09-13. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 11.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 12.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 13.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 14.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ «MonoTouch and iPhone 4».
Applications built with MonoTouch are native applications indistinguishable from other native applications.
- ^ «Apple takes aim at Adobe… or Android?». 9 April 2010.
- ^ «Statement by Apple on App Store Review Guidelines».
Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year. In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.
- ^ «Great News for MonoTouch Users».
With these new terms, the ambiguity is gone and C# lovers and enthusiasts can go back to using MonoTouch. Developers that like garbage collection and their strongly typed languages can resume their work.
- ^ «How is Mono for Android licensed?». Mono for Android FAQ. 2011-08-28. Retrieved 2012-03-29.
- ^ «Novell’s Mono project bringing .Net development to Android». NetworkWorld.
- ^ «Novell’s Mono project bringing .Net development to Android». InfoWorld. 16 March 2010.
- ^ «MonoDroid: .NET Support Coming to Android». TechieBuzz. 18 October 2022.
- ^ «Mono for Android brings C# to Android». Heise Online. 2011-04-07. Retrieved 2011-04-07.
- ^ «Novell (Mono/C#) is developing MonoDroid». Android Community. 18 February 2010.
This will make it easier for developers to make cross platform apps as well as bring some of the existing apps that are made using MonoTouch to Android.
- ^ «Mono for Android». H-Online.
Our vision is to allow developers to reuse their engine and business logic code across all mobile platforms and swapping out the user interface code for a platform-specific API.
- ^ «Microsoft won’t stop (Mono) .NET on Android». TechWorld.
The type of action Oracle is taking against Google over Java is not going to happen. If a .NET port to Android was through Mono it would fall under the Microsoft Community Promise Agreement.
- ^ «Microsoft says .NET on Android is safe, no litigation like Oracle». Developer Fusion.
- ^ «Xamarin Designer for Android». Visual Studio Magazine.
On May 14, Xamarin announced Mono for Android 4.2.
- ^ «Cocoa# is Shaping up; First Screenshots Available – OSnews».
- ^ «macOS | Mono». www.mono-project.com. Retrieved 2023-02-04.
- ^ davidortinau. «Xamarin.Mac — Xamarin». learn.microsoft.com. Retrieved 2023-02-04.
- ^ «Mono C# Compiler Under MIT X11 License». Novell Inc. 2008-04-08. Archived from the original on 2008-05-13. Retrieved 2008-04-09.
- ^ de Icaza, Miguel. «Mono C# compiler now also MIT X11 licensed».
- ^ «Xamarin for Everyone». Xamarin Blog. Xamarin. 31 March 2016. Archived from the original on 2016-04-12. Retrieved 2016-04-12.
- ^ Anderson, Tim (31 March 2016). «Microsoft to make Xamarin tools and code free and open-source». The Register.
- ^ a b Ferraira, Bruno (31 March 2016). «Xamarin now comes free with Visual Studio». The Tech Report.
- ^ «Microsoft Patent Promise for Mono». Mono on GitHub. Mono Project. 2016-03-28. Archived from the original on 2016-04-12. Retrieved 2016-04-12.
- ^ «Companies using Mono». Mono-project. Mono-project. Retrieved 30 August 2015.
- ^ Paul Chote: OpenRA: Playtest 20190825, 2019-08-25
Sources[edit]
- This article incorporates text from Mono’s homepage, which was then under the GNU Free Documentation License.
- de Icaza, Miguel (October 13, 2003). «[Mono-list] Mono early history.». Archived from the original (mailing list) on June 6, 2011. Retrieved December 6, 2005.
- Dumbill, Edd (March 11, 2004). «Will Mono Become the Preferred Platform for Linux Development?». ONLamp. Archived from the original on October 19, 2006. Retrieved October 14, 2006.
- Loli-Queru, Eugenia (February 22, 2005). «Mono Applications? Aplenty!». OSNews. Retrieved December 6, 2005.
- Kerner, Sean Michael (November 18, 2005). «Mono Project Goes Virtual». Internet News. Retrieved October 14, 2006.
- Kerner, Sean Michael (November 9, 2006). «Months Late, Novell Ships Mono 1.2». internetnews.com.
- Northcutt, Corey (October 12, 2006). «In the World of mod_mono». Ubiquity. Archived from the original on February 23, 2007. Retrieved October 14, 2006.
- Campbell, Sean (October 8, 2008). «Interview with Joseph Hill — Product Manager — Mono — Novell». HSIB. Retrieved October 8, 2008.
- Smith, Tim (September 9, 2010). «A Brief Introduction to the Java and .NET Patent Issues». InfoQ. Retrieved September 13, 2010.
External links[edit]
- Official website
- MonoTouch Main Page for the port to Apple Inc.’s hand-held products
This article needs to be updated. Please help update this article to reflect recent events or newly available information. (March 2016) |
Diagram of Mono architecture |
|
Original author(s) | Ximian |
---|---|
Developer(s) | .NET Foundation and Xamarin (a Microsoft subsidiary) |
Initial release | June 30, 2004; 18 years ago |
Stable release |
6.12.0.182[1] |
Preview release |
6.12.0.184 |
Repository |
|
Written in | C, C#, XML |
Operating system | Windows, macOS, Linux, IBM AIX, IBM i[3] |
Platform | IA-32, x64, IA-64, ARM, MIPS, PowerPC, SPARC, S390 |
Type | Software framework |
License | MIT License[4] |
Website | www.mono-project.com |
Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft[5] and the .NET Foundation. Mono can be run on many software systems.
History[edit]
Date | Version[7] | Notes |
---|---|---|
2004-06-30 | 1.0[8] | C# 1.0 support |
2004-09-21 | 1.1[9] | |
2006-11-09 | 1.2[10] | C# 2.0 support |
2008-10-06 | 2.0[11] | Mono’s APIs are now in par with .NET 2.0. Introduces the C# 3.0 and Visual Basic 8 compilers. New Mono-specific APIs: Mono.Cecil, Mono.Cairo and Mono.Posix. Gtk# 2.12 is released. The Gendarme verification tool and Mono Linker are introduced. |
2009-01-13 | 2.2[12] | Mono switches its JIT engine to a new internal representation[13] that gives it a performance boost and introduces SIMD support in the Mono.Simd[14] 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[15] and the C# Interactive Shell[16] (C# REPL) |
2009-03-30 | 2.4[17] | 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[18] | 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[19] | 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[20] | |
2012-10-18 | 3.0[21] | C# 5.0 support, async support, Async Base Class Library Upgrade and MVC4 — Partial, no async features support. |
2013-07-24 | 3.2[22] | Default Garbage Collector is now the SGEN, instead of Boehm |
2014-03-31 | 3.4[23] | |
2014-08-12 | 3.6[24] | |
2014-09-04 | 3.8[25] | |
2014-10-04 | 3.10[26] | |
2015-01-13 | 3.12[27] | |
2015-04-29 | 4.0[28] | 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[29] | 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[30] | Support for .NET Standard 2.0, strong assembly names, and experimental default interface members. |
2017-10-05 | 5.4[31] | The JIT Runtime now supports concurrent method compilation and various other Performance Optimisations; Added .NET 4.7 reference assemblies |
2018-02-01 | 5.8[32] | Initial WebAssembly port; Modes for the SGen GC; Includes Roslyn’s csi (C# interactive) REPL tool |
2018-02-26 | 5.10[33] | 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[34] | Port to IBM AIX/i; now includes VB.NET compiler; option to use jemalloc |
2018-08-07 | 5.14[35] | Major Windows.Forms update to improve compatibility with .NET |
2018-10-08 | 5.16[36] | Hybrid suspend garbage collector; Client certificate support; C# 7.3 support |
2018-12-21 | 5.18[37] | .NET 4.7.2 support; more CoreFX code is used |
2019-07-17 | 6.0[38] | C# compiler defaults to version C# 8.0 RC; Various stability improvement in debugger support; Mono Interpreter is feature complete and stable |
2019-09-23 | 6.4[39] | C# compiler support for C# 8 language version; .NET Standard 2.1 support |
2019-12-10 | 6.6[40] | Added .NET 4.8 reference assemblies |
2020-01-15 | 6.8[41] | Various Bugfixes |
2020-05-19 | 6.10[42] | Various Bugfixes |
2020-11-24 | 6.12[43] | Various Bugfixes |
When Microsoft first announced their .NET Framework in June 2000 it was described as «a new platform based on Internet standards»,[44] and in December of that year the underlying Common Language Infrastructure was published as an open standard, «ECMA-335»,[45] opening up the potential for independent implementations.[46] Miguel de Icaza of Ximian believed that .NET had the potential to increase programmer productivity and began investigating whether a Linux version was feasible.[47] 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 of development, Mono 1.0 was released on June 30, 2004.[48] 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.[49]
Novell acquired Ximian in 2003. After Novell was acquired by Attachmate in April 2011, Attachmate announced hundreds of layoffs for the Novell workforce,[50] putting in question the future of Mono.[51][52]
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.[53] 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.[54] 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.[55][56]
Current status and roadmap[edit]
Mono’s current version is 6.0.0 (as of August 2019). This version provides the core API of the .NET Framework and support for Visual Basic.NET and C# 7.0. LINQ to Objects, XML, and SQL are part of the distribution. Windows Forms 2.0 is also supported, but not actively developed, and as such its support on Mono is incomplete.[57] Version 4.0 was the first version that incorporates Microsoft original source code that was released by Microsoft as part of the .NET Core project.
As of January 14, 2021, Mono has full support for all the features in .NET 4.7 except Windows Presentation Foundation (WPF) (which the Mono team do not plan to support due to the amount of work it would need)[57] and Windows Workflow Foundation (WF), and with only limited support for Windows Communication Foundation (WCF) and the ASP.NET async stack. However, System.Web and WCF are candidates for ‘almost immediate’ porting from the .NET reference source back to Mono.[58] Some missing parts of the .NET Framework are under development in an experimental Mono subproject called Olive.[59]
The Mono project has also created a Visual Basic .NET compiler and a runtime designed for running VB.NET applications. It is currently being developed by Rolf Bjarne Kvinge.
Moonlight[edit]
An open-source implementation of Microsoft Silverlight, called Moonlight, has been included since Mono 1.9.[60] Moonlight 1.0, which supports the Silverlight 1.0 APIs, was released January 20, 2009. Moonlight 2.0 supports Silverlight 2.0 and some features of Silverlight 3.0.[61] A preview release of Moonlight 3.0 was announced in February 2010 and contains updates to Silverlight 3 support.[62]
The Moonlight project was abandoned on May 29, 2012.[63] According to Miguel, two factors sealed the fate of the project: Microsoft added «artificial restrictions» that «made it useless for desktop programming», and the technology had not gained enough traction on the Web. In addition, Silverlight itself was deprecated by Microsoft by 2012.
Mono components[edit]
Mono consists of three groups of components:
- Core components
- Mono/Linux/GNOME development stack
- Microsoft compatibility stack
The core components include the C# compiler, the virtual machine for the Common Language Infrastructure and the core class libraries. These components are based on the Ecma-334 and Ecma-335 standards,[64] allowing Mono to provide a standards compliant, free and open-source CLI virtual machine. Microsoft issued a statement that covers both standards under their Community Promise license.[65]
The Mono/Linux/GNOME development stack provide tools for application development while using the existing GNOME and free and open-source libraries. These include: Gtk# for graphical user interface (GUI) development, Mozilla libraries for working with the Gecko rendering engine, Unix integration libraries (Mono.Posix), database connectivity libraries, a security stack, and the XML schema language RelaxNG. Gtk# allows Mono applications to integrate into the Gnome desktop as native applications. The database libraries provide connectivity to the object-relational database db4o, Firebird, Microsoft SQL Server (MSSQL), MySQL, Open Database Connectivity (ODBC), Oracle, PostgreSQL, SQLite, and many others. The Mono project tracks developing database components at its website.[66]
The Microsoft compatibility stack provides a pathway for porting Windows .NET applications to Linux. This group of components include ADO.NET, ASP.NET, and Windows Forms, among others. As these components are not covered by Ecma standards, some of them remain subject to patent fears and concerns.
Framework architecture[edit]
The major components of Mono include:
- Code Execution Engine
- Class Libraries
- Base Class Library
- .NET Compatibility Class Libraries
- Mono specific class libraries:
- Cross platform class libraries for both Mono and .NET (Gtk#, Mono.Cecil, Mono.CSharp, Text.Templating)
- Unix-specific class libraries (POSIX, Filesystem in Userspace (FUSE), curses)
- Platform-specific class libraries (bindings for: Mac, iOS, Android, MeeGo)
- CLI Assemblies
- CLI Metadata
- Mono’s Common Language Runtime
- Compatible with the ECMA Common Language Infrastructure/.NET Common Language Runtime
- Mono-specific enhancements:
- Mono.SIMD support
- Mono co-routines and continuations.
- Mono-specific enhancements
- Native interop services and COM interop
- Security — Transparent Code Framework
Code Execution Engine[edit]
The Mono runtime contains a code execution engine that translates ECMA CIL byte codes into native code and supports a number of processors: ARM, MIPS (in 32-bit mode only), SPARC, PowerPC, S390 (in 64-bit mode), x86, x86-64 and IA-64 for 64-bit modes.
The code generator is exposed in three modes:
- Just-in-time (JIT) compilation: The runtime will turn ECMA CIL byte codes into native code as the code runs.
- Ahead-of-Time (AOT) compilation: this code turns the ECMA CIL byte codes (typically found on a .exe or .dll file) and generates native code stored in an operating system, architecture and CPU specific file (for a foo.exe file, it would produce foo.exe.so on Linux). This mode of operation compiles most of the code that is typically done at runtime. There are some exceptions like trampolines and other administrative code that still require the JIT to function, so AOT images are not fully standalone.
- Full Static Compilation: this mode is only supported on a handful of platforms and takes the Ahead-of-Time compilation process one step further and generates all the trampolines, wrappers and proxies that are required into a static file that can be statically linked into a program and completely eliminates the need for a JIT at runtime. This is used on Apple’s iOS, Sony’s PlayStation 3 and Microsoft’s Xbox 360 operating systems.[citation needed]
Starting with Mono 2.6, it is possible to configure Mono to use the LLVM as the code generation engine instead of Mono’s own code generation engine. This is useful for high performance computing loads and other situations where the execution performance is more important than the startup performance.
Starting with the Mono 2.7 preview, it is no longer necessary to pick one engine over the other at configuration time. The code generation engine can be selected at startup by using the --llvm
or --nollvm
command line arguments, and it defaults to the fast-starting Mono code generation engine.
Starting with Mono 5.18, support for LLVM is a default configuration option. Previous versions required a special LLVM fork, but now mono can fall back to its own code generator when it encounters something not handled by LLVM.[67]
Garbage collector[edit]
As of Mono 2.8, the Mono runtime ships with two garbage collectors: a generational collector and the Boehm-Demers-Weiser Conservative Garbage Collector. The Boehm garbage collector could exhibit memory leaks on certain classes of applications, making it unsuitable for some long-running server applications.[68][69] Mono switched to Simple Generational GC (SGen-GC) as the default collector in version 3.1.1.
The SGen garbage collector has many advantages over a traditional conservative scanner. It uses generational garbage collection where new objects are allocated from a nursery, during the garbage collection cycle, all objects that survived are migrated to an older generation memory pool. The idea being that many objects are transient and can quickly be collected and only a handful of objects are long-term objects that live for the entire life of the application. To improve performance this collector assigns memory pools to each thread to let threads allocate new memory blocks without having to coordinate with other threads. Migration of objects from the nursery to the old generation is done by copying the data from the nursery to the old generation pool and updating any live pointers that point to the data to point to the new location. This can be expensive for large objects, so Mono’s SGen uses a separate pool of memory for large objects (Large Object Section) and uses a mark-and-sweep algorithm for those objects.[68]
Class library[edit]
The class library provides a comprehensive set of facilities for application development. They are primarily written in C#, but due to the Common Language Specification they can be used by any .NET language. The class library is structured into namespaces, and deployed in shared libraries known as assemblies. Speaking of the .NET Framework is primarily referring to this class library.[70]
Namespaces and assemblies[edit]
Namespaces are a mechanism for logically grouping similar classes into a hierarchical structure. This prevents naming conflicts. The structure is implemented using dot-separated words, where the most common top-level namespace is System, such as System.IO and System.Net. There are other top-level namespaces as well, such as Accessibility and Windows. A user can define a namespace by placing elements inside a namespace block.
Assemblies are the physical packaging of the class libraries. These are .dll files, just like (but not to be confused with) Win32 shared libraries. Examples of assemblies are mscorlib.dll, System.dll, System.Data.dll and Accessibility.dll. Namespaces are often distributed among several assemblies and one assembly can be composed of several files.
Common Language Infrastructure and Common Language Specification[edit]
The Common Language Infrastructure (CLI) as implemented by the Common Language Runtime (CLR), is implemented by the Mono executable. The runtime compiles and executes .NET applications. The common language infrastructure is defined by the ECMA standard.[64] To run an application, you must invoke the runtime with the relevant parameters.
The Common Language Specification (CLS) is specified in chapter 6 of ECMA-335 and defines the interface to the CLI, such as conventions like the underlying types for Enum. The Mono compiler generates an image that conforms to the CLS. This is the Common Intermediate Language. The Mono runtime takes this image and runs it. The ECMA standard formally defines a library that conforms to the CLS as a framework.
Managed and unmanaged code[edit]
Within a native .NET/Mono application, all code is managed; that is, it is governed by the CLI’s style of memory management and thread safety. Other .NET or Mono applications can use legacy code, which is referred to as unmanaged, by using the System.Runtime.InteropServices libraries to create C# bindings. Many libraries which ship with Mono use this feature of the CLI, such as Gtk#.
Mono-specific innovations[edit]
Mono has innovated in some areas with new extensions to the core C# and CLI specifications:
- C# Compiler as a Service (Use the C# compiler as a library).[15]
- C# Interactive Shell.[16]
- SIMD support[14] as part of the Mono.SIMD namespace, where method calls to special vector types are directly mapped to the underlying processor CPU SIMD instructions.
- Full static compilation of .NET code[71] (used on Mono/iPhone, Mono/PS3).
- Mono coroutines (used to implement micro-threading code and continuations, mostly for game developers).[72]
- Assembly injection to live processes.[73]
- Use of LLVM as JIT backend.
- Cxxi and CppSharp direct interop with C++ code and libraries.
In addition, Mono is available on a variety of operating systems and architectures.[74]
System requirements[edit]
Windows 7, Windows 8, Windows 8.1, Windows 10, macOS or Linux
[edit]
Several projects extend Mono and allow developers to use it in their development environment. These projects include:
Cross-platform:
- Banshee Media Player (stalled), a cross-platform music media player built with Mono and Gtk# and also a driver of dozens of C#-based libraries and projects for media handling.
- Beagle (unmaintained), a search system for Unix systems.
- Gecko#, bindings for embedding the layout engine used in Mozilla (Gecko).
- Gtk#, C# wrappers around the underlying GTK and GNOME libraries, written in C and available on Linux, MacOS and Windows.
- Mono Migration Analyzer (MoMA), a tool which aids Windows .NET developers in finding areas in their code that might not be cross-platform and therefore not work in Mono on Linux and other Unixes. Not upgraded since Mono 2.8 (2013); use Microsoft’s .NET Portability Analyzer (dotnet-apiport) instead.
- MonoCross, a cross-platform model–view–controller design pattern where the Model and Controller are shared across platforms and the Views are unique for each platform for an optimized User Interface. The framework requires Xamarin.iOS and Xamarin.Android.
- MvvmCross, a cross-platform Model View ViewModel framework utilizing Xamarin.iOS and Xamarin.Android for developing mobile apps.
- MonoDevelop an open-source and cross-platform integrated development environment that supports building applications for ASP.NET, Gtk#, Meego, MonoTouch and Silverlight/Moonlight.
- Moonlight (discontinued), an implementation of Silverlight that uses Mono.
- OpenTK, a managed binding for OpenGL, OpenCL and OpenAL.
- QtSharp, C# bindings for the Qt framework.
- Resco MobileBusiness, a cross-platform developer solution for mobile clients.
- Resco MobileCRM, a cross-platform developer solution for mobile clients synchronized with Microsoft Dynamics CRM.
- ServiceStack a high-performance open-source .NET REST web services framework that simplifies the development of XML, JSON and SOAP web services.
- SparkleShare an open-source client software that provides cloud storage and file synchronization services.
- Tao (superseded by OpenTK), a collection of graphics and gaming bindings (OpenGL, SDL, GLUT, Cg).
- Xwt, a GUI toolkit that maps API calls to native platform calls of the underlying platform, exposing one unified API across different platforms and making possible for the graphical user interfaces to have native look and feel on different platforms. It enables building GUI-based desktop applications that run on multiple platforms, without having to customizing code for different platforms. Xwt API is mapped to a set of native controls on each supported platform. Features that are not available on specific platforms are emulated by using native widgets, which is referred to as hosting in the Xwt context.[75] Xwt was partially used as GUI toolkit (beside GTK#) in the development of the Xamarin Studio.[76] Supported «backend» engines are: WPF engine and Gtk engine (using Gtk#) on Windows, Cocoa engine (using MonoMac) and Gtk engine (using Gtk#) on Mac OS X, and Gtk engine (using Gtk#) on Linux.[77]
macOS:
- Cocoa# – wrappers around the native macOS toolkit (Cocoa) (deprecated).
- Monobjc – a set of bindings for macOS programming.
- MonoMac – newer bindings for macOS programming, based on the MonoTouch API design.
Mobile platforms:
- MonoDroid. Mono for the Android operating system. With bindings for the Android APIs.
- MonoTouch. Mono for the iPhone, iPad and iPod Touches. With bindings to the iOS APIs.
Windows:
- MonoTools for Visual Studio A Visual Studio plugin that allows Windows developers to target Linux and macOS right from Visual Studio and integrates with SUSE Studio.
Other implementations[edit]
Microsoft has a version of .NET 2.0 now available only for Windows XP, called the Shared Source CLI (Rotor). Microsoft’s shared source license may be insufficient for the needs of the community (it explicitly forbids commercial use).
Free Software Foundation’s decommissioned Portable.NET project.[78]
MonoDevelop[edit]
MonoDevelop is a free GNOME integrated development environment primarily designed for C# and other .NET languages such as Nemerle, Boo, and Java (via IKVM.NET), although it also supports languages such as C, C++, Python, and Vala. MonoDevelop was originally a port of SharpDevelop to Gtk#, but it has since evolved to meet the needs of Mono developers. The IDE includes class management, built-in help, code completion, Stetic (a GUI designer), project support, and an integrated debugger.
The MonoDoc browser provides access to API documentation and code samples. The documentation browser uses wiki-style content management, allowing developers to edit and improve the documentation.
Xamarin.iOS and Xamarin.Android[edit]
Xamarin.iOS and Xamarin.Android, both developed by Xamarin, are implementations of Mono for iPhone and Android-based smartphones. Previously available only for commercial licensing,[79] after Microsoft’s acquisition of Xamarin in 2016, the Mono runtime itself was relicensed under MIT license[80] and both Xamarin.iOS and Xamarin.Android are being made free and open-source.[81]
Xamarin.iOS[edit]
Date | Version | Notes |
---|---|---|
2009-09-14 | MonoTouch 1.0[82] | Initial release |
2010-04-05 | MonoTouch 2.0[83] | iPad support |
2010-04-16 | MonoTouch 3.0[84] | iPhone 4 support |
2011-04-06 | MonoTouch 4.0[85] | iOS 4 support |
2011-10-12 | MonoTouch 5.0[86] | iOS 5 support |
2012-09-19 | MonoTouch 6.0[87] | iOS 6 support |
2013-02-20 | Xamarin.iOS 6.2[88] | Visual Studio support |
2013-07-24 | Xamarin.iOS 6.4[89] | .NET 4.5 async/await support |
2013-06-19 | Xamarin.iOS 7.0[90] | XCode 5 and iOS 7 support |
2014-09-10 | Xamarin.iOS 8.0[91] | iOS 8 and Xcode 6 support |
2015-09-16 | Xamarin.iOS 9.0[92] | iOS 9 and Xcode 7 support |
2016-09-13 | Xamarin.iOS 10.0[93] | iOS 10 and Xcode 8 support |
2017-09-19 | Xamarin.iOS 11.0[94] | iOS 11 and Xcode 9 support |
2018-09-14 | Xamarin.iOS 12.0[95] | iOS 12 and Xcode 10 support |
2019-09-13 | Xamarin.iOS 13.0[96] | iOS 13 and Xcode 11 support |
2020-09-20 | Xamarin.iOS 14.0[97] | iOS 14 and Xcode 12 support |
Xamarin.iOS (previously named MonoTouch) is a library that allows developers to create C# and .NET based applications that run on the iPhone, iPod and iPad devices. It is based on the Mono framework and developed in conjunction with Novell. Unlike Mono applications, Xamarin.iOS «Apps» are compiled down to machine code targeted specifically at the Apple iPhone and iPad.[98] This is necessary because the iOS kernel prevents just-in-time compilers from executing on the device.
The Xamarin.iOS stack is made up of:
- Compilers
- C# from the Mono Project
- Third-party compilers like RemObject’s Oxygene can target Xamarin.iOS also
- Core .NET libraries
- Development SDK:
- Linker – used to bundle only the code used in the final application
- mtouch – the Native compiler and tool used to deploy to the target device
- Interface Builder integration tools
- Libraries that bind the native CocoaTouch APIs
- Xamarin Studio IDE
Xamarin Studio is used as the primary IDE, however additional links to Xcode and the iOS simulator have been written.
From April to early September 2010, the future of MonoTouch was put in doubt as Apple introduced new terms for iPhone developers that apparently prohibits them from developing in languages other than C, C++ and Objective-C, and the use of a middle layer between the iOS platform and iPhone applications. This made the future of MonoTouch, and other technologies such as Unity, uncertain.[99] Then, in September 2010, Apple rescinded this restriction, stating that they were relaxing the language restrictions that they had put in place earlier that year.[100][101]
Xamarin.Android[edit]
Xamarin.Android (formerly known as Mono for Android), initially developed by Novell and continued by Xamarin, is a proprietary[citation needed][102] implementation of Mono for Android-based smart-phones.[103][104][105] It was first released on April 6, 2011.[106] Mono for Android was developed to allow developers to more easily write cross-platform applications that will run on all mobile platforms.[107] In an interview with H-Online, Miguel de Icaza stated, «Our vision is to allow developers to reuse their engine and business logic code across all mobile platforms and swapping out the user interface code for a platform-specific API.»[108]
In August 2010, a Microsoft spokesman, Tom Hanrahan of Microsoft’s Open Source Technology Centre, stated, in reference to the lawsuit filed by Oracle against Google over Android’s use of Java, that «The type of action Oracle is taking against Google over Java is not going to happen. If a .NET port to Android was through Mono it would fall under the Microsoft Community Promise Agreement.»[109][110]
The Xamarin.Android stack consists of the following components:
- Mono runtime
- An Android UI designer[111]
- Libraries:
- Core .NET class libraries
- Libraries that bind the native Android/Java APIs
- SDK tools to package, deploy and debug
- Xamarin Studio and Visual Studio 2010 integration to design the UI, remotely debug, and deploy.
Mono on macOS[edit]
CocoaSharp[edit]
Cocoa# (also known as CocoaSharp) was a bridge framework for Mac OS X, which allowed applications developed with the Mono runtime to access the Cocoa API. It was initially released on August 12, 2004,[112] and was included with the Mono distribution starting with version 1.0.6, released on February 18, 2005.[citation needed] It has not seen any development since 2008,[citation needed] and is now deprecated.[113]
Monobjc[edit]
Monobjc was CocoaSharp’s replacement. It allows .NET developers to use most of the Mac OS X API, including Cocoa, with no native code, while still achieving a native UI.[citation needed]
Xamarin.Mac[edit]
Xamarin.Mac is a library that allows developers to run .NET and C# apps on the Mac.[114]
License[edit]
Mono is dual licensed by Xamarin, similar to other products such as Qt and the Mozilla Application Suite. Mono’s C# compiler and tools are released under the GNU General Public License (GPLv2 only) (starting with version 2.0 of Mono, the Mono C# compiler source code is also available under the MIT X11 License),[115] the runtime libraries under the GNU Lesser General Public License (LGPLv2 only) and the class libraries under the MIT License. These are all free software and open-source licenses and hence Mono is free and open-source software.
The license of the C# compiler was changed from the GPL to the MIT X11 license[116] to allow the compiler code to be reused in a few instances where the GPL would have prevented such:
- Mono’s Compiler as a Service
- The Mono interactive Shell
- The Mono embeddable C# compiler
- Mono’s implementation of the C# 4.0 dynamic binder.
- MonoDevelop’s built-in parser and AST graph
On March 18, 2016, Microsoft’s acquisition of Xamarin was officially closed.[117]
On March 31, 2016, Microsoft announced at Microsoft Build that they’ll completely re-license Mono under the MIT License even in scenarios where previously a commercial license was necessary,[118] and Microsoft stated that they won’t assert any «applicable patents» against parties that are «using, selling, offering for sale, importing, or distributing Mono.»[119][120] It was also announced that Xamarin had contributed the Mono Project to the .NET Foundation.[119]
Mono and Microsoft’s patents[edit]
Software developed with Mono[edit]
Many programs covering a range of applications have been developed using the Mono application programming interface (API) and C#. Some programs written for the Linux Desktop include Banshee, Beagle, F-Spot, Gbrainy, Docky/GNOME Do, MonoTorrent, Pinta, and Tomboy. The program, Logos 5 Bible Study Software (OS X Version), was written for the MacOS.
A number of video games, such as The Sims 3 and Second Life (for their scripting languages), OpenSimulator virtual world server, or games built with the Unity or MonoGame game engines, also make use of Mono.[121] OpenRA bundles its Apple Disk Image and Linux AppImages with Mono essentially removing almost all dependencies from the game.[122]
See also[edit]
- Common Language Runtime
- .NET Framework
- .NET, an open-source framework and successor to .NET Framework
- Standard Libraries (CLI)
- Base Class Library (BCL)
- Comparison of application virtual machines
- DotGNU – A free software umbrella project which includes Portable.NET
- MonoDevelop – An open-source IDE targeting both Mono and Microsoft .NET Framework platforms
- Moonlight (runtime), an open-source implementation of Microsoft’s Silverlight developed by the Mono Project
- Shared Source Common Language Infrastructure – Microsoft’s shared source implementation of .NET, formerly codenamed Rotor
- mod_mono – A module for the Apache HTTP Server that allows hosting of ASP.NET pages and other assemblies on multiple platforms by use of Mono
References[edit]
Citations[edit]
- ^ https://www.mono-project.com/docs/about-mono/releases/6.12.0.182/.
- ^ «Tags · mono/mono · GitHub». GitHub.
- ^ Introducing Mono on AIX and IBM i
- ^ «FAQ: Licensing». Retrieved 3 July 2020.
- ^ «Microsoft to acquire Xamarin and empower more developers to build apps on any device». Official Microsoft Blog. Retrieved 2016-02-24.
- ^ «Mono Releases». Mono-project.com. Retrieved 2015-04-04.
- ^ «OldReleases». Mono-project.com. Retrieved 2013-07-17.
- ^ «Mono 1.0 Release Notes». Mono-project.com. Retrieved 2013-07-17.
- ^ «Mono 1.1.1: Development Release». Mono-project.com. Retrieved 2013-07-17.
- ^ «Mono 1.2: Release Notes». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.0». Mono-project.com. 2008-10-06. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.2». Mono-project.com. Retrieved 2013-07-17.
- ^ «Linear IR — Mono». Mono-project.com. Retrieved 2013-07-17.
- ^ a b «Mono’s SIMD Support: Making Mono safe for Gaming — Miguel de Icaza». Tirania.org. 2008-11-03. Retrieved 2013-07-17.
- ^ a b «Mono’s C# Compiler as a Service on Windows. — Miguel de Icaza». Tirania.org. 2010-04-27. Retrieved 2013-07-17.
- ^ a b «CsharpRepl — Mono». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.4». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.6». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.8». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 2.10». Mono-project.com. Retrieved 2013-07-17.
- ^ «Release Notes Mono 3.0». Mono-project.com. Retrieved 2013-09-23.
- ^ «Release Notes Mono 3.2». Mono-project.com. Retrieved 2013-09-23.
- ^ «Release Notes Mono 3.4». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.6». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.8». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.10». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 3.12». Mono-project.com. Retrieved 2015-04-04.
- ^ «Release Notes Mono 4.0». Mono-project.com. Retrieved 2015-05-03.
- ^ «Release Notes Mono 5.0». Mono-project.com. Retrieved 2017-05-13.
- ^ «Mono 5.2.0 Release Notes».
- ^ «Mono 5.4.0 Release Notes».
- ^ «Mono 5.8.0 Release Notes».
- ^ «Mono 5.10.0 Release Notes».
- ^ «Mono 5.12.0 Release Notes».
- ^ «Mono 5.14.0 Release Notes».
- ^ «Mono 5.16.0 Release Notes».
- ^ «Mono 5.18.0 Release Notes».
- ^ «Mono 6.0.0 Release Notes».
- ^ «Mono 6.4.0 Release Notes».
- ^ «Mono 6.6.0 Release Notes».
- ^ «Mono 6.8.0 Release Notes».
- ^ «Mono 6.10.0 Release Notes».
- ^ «Mono 6.12.0 Release Notes».
- ^ Bonisteel, Steven (June 23, 2000). «Microsoft sees nothing but .NET ahead». ZDNet. Archived from the original on November 5, 2011. Retrieved April 5, 2011.
- ^ «ECMA-335-Part-I-IV — ECMA-335, 1st edition, December 2001» (PDF).
- ^ Wilcox, Joe; Shankland, Stephen (June 28, 2001). «Microsoft edges into sharing code». ZDNet.
- ^ «[Mono-list] Mono early history». 2003-10-13. Archived from the original on 2011-06-06. Retrieved 2005-03-30.
- ^ «OSS .NET implementation Mono 1.0 released — Ars Technica». ArsTechnica. 30 June 2004. Retrieved 2009-10-23.
- ^ «Supported Platforms». Mono website.
- ^ Koep, Paul (2011-05-02). «Employees say hundreds laid off at Novell’s Provo office». KSL-TV. Retrieved 2011-05-07.
- ^ J. Vaughan-Nichols, Steven (2011-05-04). «Is Mono dead? Is Novell dying?». ZDNet. Retrieved 2011-05-07.
- ^ Clarke, Gavin (2011-05-03). «.NET Android and iOS clones stripped by Attachmate». The Register. Retrieved 2011-05-07.
- ^ «Announcing Xamarin — Miguel de Icaza». Tirania.org. 2011-05-16. Retrieved 2013-07-17.
- ^ «The Death and Rebirth of Mono». infoq.com. 2011-05-17. Retrieved 2011-05-29.
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.
- ^ «SUSE and Xamarin Partner to Accelerate Innovation and Support Mono Customers and Community». Novell. 2011-07-18. Retrieved 2011-07-18.
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.
- ^ de Icaza, Miguel (2011-07-18). «Novell/Xamarin Partnership around Mono». Retrieved 2011-07-18.
- ^ a b de Icaza, Miguel (2011-03-07). «GDC 2011». Retrieved 2011-03-11.
We have no plans on building WPF. We just do not have the man power to build an implementation in any reasonable time-frame(…)For tools that are mostly OpenGL/DirectX based, use Windows.Forms, keeping in mind that some bug fixing or work around on their part might be needed as our Windows.Forms is not actively developed.
- ^ «Mono compatibility list».
- ^ «Mono Project Roadmap — Mono». Mono-project.com. Retrieved 2013-07-17.
- ^ «MoonlightRoadmap». Mono Team. Retrieved 2008-11-08.
- ^ «Releasing Moonlight 2, Roadmap to Moonlight 3 and 4 — Miguel de Icaza». Tirania.org. 2009-12-17. Retrieved 2013-07-17.
- ^ «Moonlight 3.0 Preview 1 — Miguel de Icaza». Tirania.org. 2010-02-03. Retrieved 2013-07-17.
- ^ «Xamarin abandons its Silverlight for Linux technology». ZDNet.
- ^ a b «Ecma-335».
- ^ «Technet.com». Archived from the original on 2013-05-23. Retrieved 2009-07-07.
- ^ «Database Access — Mono».
- ^ «Mono LLVM». Mono.
- ^ a b «Compacting GC». mono-project.com. Retrieved 2008-12-16.
- ^ Boehm, Hans-J. «Advantages and Disadvantages of Conservative Garbage Collection». Xerox PARC. Archived from the original on 2013-07-24. Retrieved 2008-12-16.
- ^ «.NET Framework Architecture». official Mono documentation.
- ^ de Icaza, Miguel. «Static Compilation in Mono».
- ^ «Continuations — Mono».
- ^ de Icaza, Miguel. «Monovation: Assembly Injection into Live Processes».
- ^ «Supported Platforms — Mono».
- ^ Narayanaswamy, Anand (23 Nov 2012). «Build Cross Platform Applications with Xwt». InfoQ. Archived from the original on 2016-04-15. Retrieved 2016-04-15.
- ^ de Icaza, Miguel (22 February 2013). «The Making of Xamarin Studio». InfoQ. Archived from the original on 2016-04-15. Retrieved 2016-04-15.
- ^ «Xwt Read Me». Xwt on GitHub. 15 Jan 2012. Archived from the original on 2016-04-16. Retrieved 2016-04-15.
- ^ «DotGNU Project». Retrieved 2 June 2014.
- ^ «FAQ». os.xamarin.com. 2011-08-01.
MonoTouch is a commercial product based on the open source Mono project and is licensed on a per-developer basis.
- ^ «Mono relicensed MIT». www.mono-project.com. 2016-03-31.
- ^ «Xamarin for Everyone». blog.xamarin.com. 2016-03-31.
we are announcing today our commitment to open source the Xamarin SDKs for Android, iOS, and Mac under the MIT license in the coming months
- ^ de Icaza, Miguel. «MonoTouch 1.0 goes live».
- ^ «MonoTouch 2.0.0». Xamarin.
- ^ «MonoTouch 3.0.0». Xamarin.
- ^ «MonoTouch 4.0.0». Xamarin.
- ^ «MonoTouch 5.0». Xamarin.
- ^ «MonoTouch 6.0». Xamarin.
- ^ «Xamarin.iOS 6.2». Xamarin.
- ^ «Xamarin.iOS 6.4». Xamarin. 8 July 2022.
- ^ «iOS 7 and Xamarin: Ready When You Are». Xamarin Blog. 2013-09-18. Retrieved 2021-03-20.
- ^ «iOS 8 Bigger and Better with Xamarin». Xamarin Blog. 2014-09-10. Retrieved 2021-03-20.
- ^ «Xamarin for iOS 9: Search Deeper». Xamarin Blog. 2015-09-16. Retrieved 2021-03-20.
- ^ «Major Updates: iOS 10, Android Nougat, and Other Tasty Bits». Xamarin Blog. 2016-09-13. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 11.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 12.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 13.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ spouliot. «Xamarin.iOS 14.0 Release Notes — Xamarin». docs.microsoft.com. Retrieved 2021-03-20.
- ^ «MonoTouch and iPhone 4».
Applications built with MonoTouch are native applications indistinguishable from other native applications.
- ^ «Apple takes aim at Adobe… or Android?». 9 April 2010.
- ^ «Statement by Apple on App Store Review Guidelines».
Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year. In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.
- ^ «Great News for MonoTouch Users».
With these new terms, the ambiguity is gone and C# lovers and enthusiasts can go back to using MonoTouch. Developers that like garbage collection and their strongly typed languages can resume their work.
- ^ «How is Mono for Android licensed?». Mono for Android FAQ. 2011-08-28. Retrieved 2012-03-29.
- ^ «Novell’s Mono project bringing .Net development to Android». NetworkWorld.
- ^ «Novell’s Mono project bringing .Net development to Android». InfoWorld. 16 March 2010.
- ^ «MonoDroid: .NET Support Coming to Android». TechieBuzz. 18 October 2022.
- ^ «Mono for Android brings C# to Android». Heise Online. 2011-04-07. Retrieved 2011-04-07.
- ^ «Novell (Mono/C#) is developing MonoDroid». Android Community. 18 February 2010.
This will make it easier for developers to make cross platform apps as well as bring some of the existing apps that are made using MonoTouch to Android.
- ^ «Mono for Android». H-Online.
Our vision is to allow developers to reuse their engine and business logic code across all mobile platforms and swapping out the user interface code for a platform-specific API.
- ^ «Microsoft won’t stop (Mono) .NET on Android». TechWorld.
The type of action Oracle is taking against Google over Java is not going to happen. If a .NET port to Android was through Mono it would fall under the Microsoft Community Promise Agreement.
- ^ «Microsoft says .NET on Android is safe, no litigation like Oracle». Developer Fusion.
- ^ «Xamarin Designer for Android». Visual Studio Magazine.
On May 14, Xamarin announced Mono for Android 4.2.
- ^ «Cocoa# is Shaping up; First Screenshots Available – OSnews».
- ^ «macOS | Mono». www.mono-project.com. Retrieved 2023-02-04.
- ^ davidortinau. «Xamarin.Mac — Xamarin». learn.microsoft.com. Retrieved 2023-02-04.
- ^ «Mono C# Compiler Under MIT X11 License». Novell Inc. 2008-04-08. Archived from the original on 2008-05-13. Retrieved 2008-04-09.
- ^ de Icaza, Miguel. «Mono C# compiler now also MIT X11 licensed».
- ^ «Xamarin for Everyone». Xamarin Blog. Xamarin. 31 March 2016. Archived from the original on 2016-04-12. Retrieved 2016-04-12.
- ^ Anderson, Tim (31 March 2016). «Microsoft to make Xamarin tools and code free and open-source». The Register.
- ^ a b Ferraira, Bruno (31 March 2016). «Xamarin now comes free with Visual Studio». The Tech Report.
- ^ «Microsoft Patent Promise for Mono». Mono on GitHub. Mono Project. 2016-03-28. Archived from the original on 2016-04-12. Retrieved 2016-04-12.
- ^ «Companies using Mono». Mono-project. Mono-project. Retrieved 30 August 2015.
- ^ Paul Chote: OpenRA: Playtest 20190825, 2019-08-25
Sources[edit]
- This article incorporates text from Mono’s homepage, which was then under the GNU Free Documentation License.
- de Icaza, Miguel (October 13, 2003). «[Mono-list] Mono early history.». Archived from the original (mailing list) on June 6, 2011. Retrieved December 6, 2005.
- Dumbill, Edd (March 11, 2004). «Will Mono Become the Preferred Platform for Linux Development?». ONLamp. Archived from the original on October 19, 2006. Retrieved October 14, 2006.
- Loli-Queru, Eugenia (February 22, 2005). «Mono Applications? Aplenty!». OSNews. Retrieved December 6, 2005.
- Kerner, Sean Michael (November 18, 2005). «Mono Project Goes Virtual». Internet News. Retrieved October 14, 2006.
- Kerner, Sean Michael (November 9, 2006). «Months Late, Novell Ships Mono 1.2». internetnews.com.
- Northcutt, Corey (October 12, 2006). «In the World of mod_mono». Ubiquity. Archived from the original on February 23, 2007. Retrieved October 14, 2006.
- Campbell, Sean (October 8, 2008). «Interview with Joseph Hill — Product Manager — Mono — Novell». HSIB. Retrieved October 8, 2008.
- Smith, Tim (September 9, 2010). «A Brief Introduction to the Java and .NET Patent Issues». InfoQ. Retrieved September 13, 2010.
External links[edit]
- Official website
- MonoTouch Main Page for the port to Apple Inc.’s hand-held products
Содержание
- 1. Что такое MONO.EXE?
- 2. MONO.EXE безопасен, или это вирус или вредоносная программа?
- 3. Могу ли я удалить или удалить MONO.EXE?
- 4. Распространенные сообщения об ошибках в MONO.EXE
- 5. Как исправить MONO.EXE
- 6. Январь 2023 Обновление
- 7. Загрузите или переустановите MONO.EXE
Обновлено 2023 января: Вот три шага к использованию инструмента восстановления для устранения проблем с exe на вашем компьютере: Получите его по адресу эту ссылку
- Скачайте и установите это программное обеспечение.
- Просканируйте свой компьютер на наличие проблем с exe.
- Исправьте ошибки exe с помощью программного инструмента
MONO.EXE это исполняемый файл, который является частью Сеть разработчиков Microsoft разработанный Microsoft, Версия программного обеспечения для Windows: 1.0.0.0 обычно 16043 в байтах, но у вас может отличаться версия.
Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли MONO.EXE Файл на вашем компьютере — это вирус или вредоносная программа, которую вы должны удалить, или, если это действительно допустимый файл операционной системы Windows или надежное приложение.
Рекомендуется: Выявление ошибок, связанных с MONO.EXE
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)
MONO.EXE безопасен, или это вирус или вредоносная программа?
Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, для MONO.EXE его путь будет примерно таким: C: Program Files Microsoft Microsoft Developer Network MONO.EXE
Чтобы определить его путь, откройте диспетчер задач, перейдите в «Просмотр» -> «Выбрать столбцы» и выберите «Имя пути к изображению», чтобы добавить столбец местоположения в диспетчер задач. Если вы обнаружите здесь подозрительный каталог, возможно, стоит дополнительно изучить этот процесс.
Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, — это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры». Теперь перейдите в View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.
Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.
Наиболее важные факты о MONO.EXE:
- Имя: MONO.EXE
- Программного обеспечения: Сеть разработчиков Microsoft
- Издатель: Microsoft
- Ожидаемое местоположение: C: Program Files Microsoft Сеть разработчиков Microsoft подпапке
- Ожидаемый полный путь: C: Program Files Microsoft Сеть разработчиков Microsoft MONO.EXE
- SHA1: 4D100A9E94BB3F162C26A992F4E02B19B1AB4CB9
- SHA256:
- MD5: 6E1A2583BAB1827D8E0D8D8442566B80
- Известно, что до 16043 размер байт в большинстве Windows;
Если у вас возникли какие-либо трудности с этим исполняемым файлом, вы должны определить, заслуживает ли он доверия, прежде чем удалять MONO.EXE. Для этого найдите этот процесс в диспетчере задач.
Найти его местоположение и сравнить размер и т. Д. С приведенными выше фактами
Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус MONO.EXE, необходимо скачайте и установите приложение полной безопасности, как это, Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.
Кроме того, функциональность вируса может сама влиять на удаление MONO.EXE. В этом случае вы должны включить Безопасный режим с загрузкой сетевых драйверов — безопасная среда, которая отключает большинство процессов и загружает только самые необходимые службы и драйверы. Когда вы можете запустить программу безопасности и полный анализ системы.
Могу ли я удалить или удалить MONO.EXE?
Не следует удалять безопасный исполняемый файл без уважительной причины, так как это может повлиять на производительность любых связанных программ, использующих этот файл. Не забывайте регулярно обновлять программное обеспечение и программы, чтобы избежать будущих проблем, вызванных поврежденными файлами. Что касается проблем с функциональностью программного обеспечения, проверяйте обновления драйверов и программного обеспечения чаще, чтобы избежать или вообще не возникало таких проблем.
Лучшая диагностика для этих подозрительных файлов — полный системный анализ с ASR Pro or это антивирус и средство для удаления вредоносных программ, Если файл классифицируется как вредоносный, эти приложения также удаляют MONO.EXE и избавляются от связанных вредоносных программ.
Однако, если это не вирус, и вам нужно удалить MONO.EXE, вы можете удалить Microsoft Developer Network со своего компьютера, используя его деинсталлятор. Если вы не можете найти его деинсталлятор, вам может потребоваться удалить Microsoft Developer Network, чтобы полностью удалить MONO.EXE. Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.
- 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите Панель управления, а затем под Программы:
o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
o Windows XP: нажмите Установка и удаление программ.
- 2. Когда вы найдете программу Сеть разработчиков Microsoftщелкните по нему, а затем:
o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
- 3. Следуйте инструкциям по удалению Сеть разработчиков Microsoft.
Распространенные сообщения об ошибках в MONO.EXE
Наиболее распространенные ошибки MONO.EXE, которые могут возникнуть:
• «Ошибка приложения MONO.EXE».
• «Ошибка MONO.EXE».
• «MONO.EXE столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «MONO.EXE не является допустимым приложением Win32».
• «MONO.EXE не запущен».
• «MONO.EXE не найден».
• «Не удается найти MONO.EXE».
• «Ошибка запуска программы: MONO.EXE.»
• «Неверный путь к приложению: MONO.EXE.»
Эти сообщения об ошибках .exe могут появляться во время установки программы, во время выполнения связанной с ней программы Microsoft Developer Network, во время запуска или завершения работы Windows или даже во время установки операционной системы Windows. Отслеживание момента появления ошибки MONO.EXE является важной информацией при устранении неполадок.
Как исправить MONO.EXE
Аккуратный и опрятный компьютер — это один из лучших способов избежать проблем с MONO.EXE. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr и ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.
Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.
Чтобы помочь вам проанализировать процесс MONO.EXE на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.
Обновлено в январе 2023 г .:
Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:
- Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
- Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
- Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)
Загрузите или переустановите MONO.EXE
Вход в музей Мадам Тюссо не рекомендуется загружать файлы замены exe с любых сайтов загрузки, так как они могут сами содержать вирусы и т. д. Если вам нужно скачать или переустановить MONO.EXE, то мы рекомендуем переустановить основное приложение, связанное с ним. Сеть разработчиков Microsoft.
Что такое сеть разработчиков Microsoft
MSDN Visual Studio Enterprise Стандартная подписка Visual Studio Enterprise с MSDN стоит $ 5,999 в течение первого года и $ 2,569 в год за продления. Клиенты VL получают скидку, конечно. Годовая облачная подписка (с бессрочной лицензией) стоит $ 2,999 в год.
Информация об операционной системе
Ошибки MONO.EXE могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:
- Windows 10
- Windows 8.1
- Windows 7
- Windows Vista
- Windows XP
- Windows ME
- Windows 200
Содержание
- 990x.top
- Простой компьютерный блог для души)
- Папка .mono появилась на диске — что это? (mono.msi)
- Папка .mono — что это такое?
- Папка .mono — можно ли удалить?
- Заключение
- Install Mono on Windows
- Mono in the Windows 10 Bash
- Download
- Mono for macOS is available as a Mac Package (.pkg)
- 1 Add the Mono repository to your system
- Ubuntu 20.04 (amd64, armhf, arm64, ppc64el)
- Ubuntu 18.04 (i386, amd64, armhf, arm64, ppc64el)
- Ubuntu 16.04 (i386, amd64, armhf, arm64, ppc64el)
- 2 Install Mono
- 3 Verify Installation
- Notes
- 1 Add the Mono repository to your system
- Debian 10 (i386, amd64, armhf, arm64, armel, ppc64el)
- Debian 9 (i386, amd64, armhf, arm64, armel, ppc64el)
- 2 Install Mono
- 3 Verify Installation
- Notes
- 1 Add the Mono repository to your system
- Raspbian 10 (armhf)
- Raspbian 9 (armhf)
- 2 Install Mono
- 3 Verify Installation
- Notes
- 1 Add the Mono repository to your system
- CentOS/RHEL 8 (x86_64)
- CentOS/RHEL 7 (x86_64)
- CentOS/RHEL 6 (x86_64, i686)
- 2 Install Mono
- 3 Verify Installation
- 1 Add the Mono repository to your system
- Fedora 29 (x86_64)
- Fedora 28 (x86_64)
- 2 Install Mono
- 3 Verify Installation
- Mono for Windows is available as a Windows Installer file
- Mono is available on Docker Hub
- Available tags
- Release Notes
- MonoDevelop IDE
- Older releases
990x.top
Простой компьютерный блог для души)
Папка .mono появилась на диске — что это? (mono.msi)
Данная статья расскажет о предназначении папки .mono, которую вы можете заметить у себя на локальном диске.
Папка .mono — что это такое?
Папка компонента, связанного с .NET Framework, который необходим для работы некоторых приложений, игр. Папка может появиться например после установки игры Robocraft.
Стандартное расположение папки:
Директория может быть скрытой.
На самом деле Mono — некий проект, который занимается системой, основанной на .NET Framework. Простыми словами это компонент, который используется при создании некоторых программ, игр. Само по себе ПО .NET Framework от Microsoft — платформа, которая необходима для работы многих программ, включая игры.
Каталог .mono, расположенный в директории игры Hearthstone:
Также может быть в директории ProgramData:
Папка .mono — можно ли удалить?
Если папка весит немного — не стоит удалять, лучше оставить, она может понадобиться для работы некоторого ПО. Когда директория имеет большой размер — лучше сперва создать точку восстановления, а потом уже удалять.
Точку восстановления создавать очень желательно (в случае проблем сэкономит время и сохранит нервы):
- Откройте панель управления, можно например так: зажмите Win + R > введите команду control или control panel > кликните ОК.
- Найдите и запустите значок Система.
- Далее кликните слева Защита системы.
- Выберите системный диск (обычно имеет букву C) > нажмите кнопку Создать.
- Назовите точку восстановления, можно просто указать название До удаления папки .mono.
Заключение
- Папка .mono — относится к платформе .NET Framework, необходима для работы софта, например игр, некоторых приложений.
- Если размер директории .mono небольшой — лучше оставить, не удалять.
- При удалении лучше заранее создать точку восстановления.
Install Mono on Windows
Mono runs on Windows, this page describes the various features available for users who want to use Mono on Windows as well as using Mono-based technologies on Windows without Mono (like Gtk#).
- Download the latest Windows installer from the download page.
Run the installer and accept the terms of the license. Mono is now installing:
The installer creates a “Open Mono Command Prompt” shortcut under the Mono program group in the start menu. This shortcut starts a command shell with Mono-relevant path information already configured, which means all the Mono tools “just work”.
At this point, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Gtk# is included as part of the Mono installation, this will allow you to create Gtk# applications on Windows with the Mono runtime which you can later deploy into Linux. See the Gtk# page for more details about the toolkit, or go directly to the Gtk# beginner’s guide.
Alternatively, if you only want to use Gtk# on Windows, without Mono, you can use the Gtk# installer for the .NET Framework.
Mono in the Windows 10 Bash
Windows 10 Anniversary Update and greater come with an experimental, optional Linux subsystem that exposes bash as an alternative shell. This can be used to install the Debian/Ubuntu version of Mono alongside or instead of the Windows version. Note that this feature is in beta and you need to manually enable it. For more information about how to install Mono inside Windows Bash and known problems, refer to this issue.
Download
The latest Stable Mono release is: 6.12.0 Stable (6.12.0.122)
Please choose your operating system to view the available packages. Source code is available on GitHub (viewing only) or as a Tarball.
macOS Linux Windows Docker
Mono for macOS is available as a Mac Package (.pkg)
Please refer to the installation guide for more information about how to install and configure your Mono environment.
Supported on macOS 10.9 and later. Check the uninstall instructions if you want to remove Mono from your Mac.
* We recommend this package if you’re using Visual Studio for Mac since the stability of Visual Studio for Mac is only guaranteed with the Visual Studio channel releases.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands.
Note: the packages should work on newer Ubuntu versions too but we only test the ones listed below.
Ubuntu 20.04 (amd64, armhf, arm64, ppc64el)
Ubuntu 18.04 (i386, amd64, armhf, arm64, ppc64el)
Ubuntu 16.04 (i386, amd64, armhf, arm64, ppc64el)
2 Install Mono
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package mono-dbg should be installed to get debugging symbols for framework libraries — allowing you to get line numbers in stack traces.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Notes
Mono on Linux before 3.12 by default didn’t trust any SSL certificates so you got errors when accessing HTTPS resources. This is not required anymore as 3.12 and later include a new tool that runs on package installation and syncs Mono’s certificate store with the system certificate store (on older versions you had to import Mozilla’s list of trusted certificates by running mozroots —import —sync ). Some systems are configured in a way so that the necessary package isn’t pulled in when Mono is installed, in those cases make sure the ca-certificates-mono package is installed.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands.
Note: the packages should work on newer Debian versions too but we only test the ones listed below.
Debian 10 (i386, amd64, armhf, arm64, armel, ppc64el)
Debian 9 (i386, amd64, armhf, arm64, armel, ppc64el)
2 Install Mono
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package mono-dbg should be installed to get debugging symbols for framework libraries — allowing you to get line numbers in stack traces.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Notes
Mono on Linux before 3.12 by default didn’t trust any SSL certificates so you got errors when accessing HTTPS resources. This is not required anymore as 3.12 and later include a new tool that runs on package installation and syncs Mono’s certificate store with the system certificate store (on older versions you had to import Mozilla’s list of trusted certificates by running mozroots —import —sync ). Some systems are configured in a way so that the necessary package isn’t pulled in when Mono is installed, in those cases make sure the ca-certificates-mono package is installed.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands.
Note: the packages should work on newer Raspbian versions too but we only test the ones listed below.
Raspbian 10 (armhf)
Raspbian 9 (armhf)
2 Install Mono
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package mono-dbg should be installed to get debugging symbols for framework libraries — allowing you to get line numbers in stack traces.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Notes
Mono on Linux before 3.12 by default didn’t trust any SSL certificates so you got errors when accessing HTTPS resources. This is not required anymore as 3.12 and later include a new tool that runs on package installation and syncs Mono’s certificate store with the system certificate store (on older versions you had to import Mozilla’s list of trusted certificates by running mozroots —import —sync ). Some systems are configured in a way so that the necessary package isn’t pulled in when Mono is installed, in those cases make sure the ca-certificates-mono package is installed.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands in a root shell.
Note: the packages should work on newer CentOS/RHEL versions too but we only test the ones listed below.
CentOS/RHEL 8 (x86_64)
CentOS/RHEL 7 (x86_64)
CentOS/RHEL 6 (x86_64, i686)
2 Install Mono
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package xsp should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands in a root shell.
Note: we’re using the CentOS/RHEL repositories on Fedora.
Fedora 29 (x86_64)
Fedora 28 (x86_64)
2 Install Mono
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package xsp should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Mono for Windows is available as a Windows Installer file
Please refer to the installation guide for more information about how to install and configure your Mono environment.
Supported on Windows 7, 8, 10 or later.
GTK# for .NET
Installer for running Gtk#-based applications on Microsoft .NET:
Mono is available on Docker Hub
The simplest way to get started is:
This will download the latest Mono Docker image, create a container and put you into an interactive shell.
Available tags
There are several tags for selecting the desired Mono version:
- latest — Always points to the latest release
- X.X.X.X — points to a specific version, e.g. 5.8.0.108
- X.X.X — points to the latest version in the X.X.X series, e.g. 5.8.0
- X.X — points to the latest version in the X.X series, e.g. 5.8
- X — points to the latest version in the X series, e.g. 5
The latest version, one minor version before that and the last version before a major version bump are periodically rebuilt by Docker Hub to pull in updates from the base Debian image.
All other version tags are still available, but won’t get those updates so you need to keep your images up to date by running apt update yourself. We encourage you to move to latest Mono releases as soon as they’re available.
Starting with Mono 5.2 we provide a slim variant (e.g. latest-slim ) which only contains the bare minimum to run a simple console app. You can use this as a base and add just what you need.
Release Notes
Check out the release notes of all Mono versions here.
MonoDevelop IDE
Please visit the MonoDevelop website for more details about our cross-platform IDE.
Older releases
To access older Mono releases for macOS and Windows, check the archive on the download server. For Linux, please check the «Accessing older releases» section in the installation guide.
Это может быть глупый вопрос…но я просто смотрел в проект Mono, и у них есть раздел об установке Mono на Windows. Но, поскольку Windows, очевидно, уже имеет .NET runtime, может ли кто-нибудь сказать мне, в чем именно смысл иметь Mono для Windows? Это помогает в кросс-платформенной разработке или что-то в этом роде?
12 ответов
поскольку Mono не реализует .Net 100% так же, как MS .Net Framework, хорошо, что вы можете протестировать Mono без необходимости запуска в Linux. Также Mono имеет привязки для создания форм с GTK, которые MS не поддерживает.
есть несколько функций Mono, которые .NET не имеет.
Mono высоки модульно. Вы можете разбить его на мелкие кусочки и только развернуть ровно те части, которые вам нужны. Не нужна система.В XML? Ладно, все кончено.
Mono встраивается. Вы можете разместить его внутри приложения C/C++, чтобы позволить пользователям создавать сценарии из безопасной управляемой изолированной среды. Самый известный пример этого-mod_mono, который размещает Mono внутри Apache веб-сервер, и как ASP.NET реализуется в Mono, например. Эта функция отлично сочетается с упомянутой выше модульностью.
Это уже упоминалось: статическая связь. и идет вместе с modularization.
компилятор как Служба-это еще один. Андерс Хейльсберг уже давно говорит об этом!—3—>долго времени, и может быть, просто, возможно, он будет готов к C# 5.0. Ну, Mono уже есть он и на самом деле имел это в течение многих лет.
Мигель де Икаса, ведущий разработчик Mono также имеет инициативу, которую он называет «объятия и Extend.NET», который расширяет CLI способами, которые (в настоящее время) невозможны с другими реализациями CLI (включая .NET). До сих пор, объятия и Extend.NET имеет три особенности.
Mono.Simd, который дает безопасный и контролируемый доступ к инструкциям SIMD базового процессора (например, SSE на Intel или AltiVec на PowerPC). Использованный для игр и Графика.
64-битные индексы массива, которые разрешены спецификацией ECMA, но Mono-единственная виртуальная машина, которая фактически предоставляет их. Используется в суперкомпьютерах.
и совсем недавно, продолжения. На самом деле это первый раз, когда Mono выходит за рамки спецификации: индексы длинного массива совершенно действительны в соответствии со спецификацией и Mono.Simd также работает на каждой CLI-совместимой реализации (хотя очень S-L-O-W), но моно.Tasklet должен специальная поддержка от виртуальной машины, которая не является частью CLI или .Сеть. Это используется для игровой логики и, например, во второй жизни.
-
Mono does some things the .Net doesn't.
например, mono поддерживает статическую компоновку, чтобы вы могли создавать, компилировать и распространять приложение, не требуя отдельного установщика времени выполнения. Если вы создали приложение, чтобы полагаться на mono, чтобы быть кросс-платформенным, есть несколько различий, и поэтому использование mono в Windows является большей гарантией совместимости. -
.Net does some things that mono doesn't.
в BCL есть несколько мест, которые еще не портированы для mono. Если вы хотите приложение, которое будет работать на mac / linux вы, вероятно, хотите сначала разработать для mono, даже если вы делаете работу в windows.
Если вы хотите разработать кросс-платформенное приложение на C#, то использование реализации Microsoft не самая умная вещь, так как нет полностью совместимой Альтернативы для других платформ.
таким образом, использование Mono в Windows для разработки приложений гарантирует, что у вас будет мало проблем с переносом его на другую ОС (при условии, что вы избегаете других ям, таких как P/Invoke).
из моно технический FAQ:
почему поддержка Windows, когда вы можете запустить реальную вещь?
существуют различные причины:
поддержка Windows помогает нам идентифицировать портативные части Mono
из непереносимых версий,
помогая Mono стать более портативным в
будущее.Это помогает нам, так как мы можем изолировать проблемы в моногородах по
разбиение проблемы (это
проблема времени выполнения или проблема ОС?).около половины участников Mono являются разработчиками Windows. У них есть
много различных причин для
внося вклад в усилия, и мы
очень важно, чтобы эти
разработчики запускают среду выполнения в Windows
не заставляя их использовать новый
операционная система.Mono не сильно изменяет реестр windows, обновляет системные библиотеки DLL,
установка DLL в Windows / System32
путь.Это помогает Разработчики на базе Windows, чтобы проверить свой код под
Mono перед развертыванием в Linux.Mono и применения которые врезают Mono можно раскрыть без
установщик (вы можете «xcopy» развернуть
применение и необходимое Mono
файлы без установки .NET
время выполнения.)
некоторые люди использовали его, потому что им не разрешено устанавливать .Net framework на своих ПК с Windows из-за количества реестра и системных файлов, которые он делает. (В плотно контролируемых средах.)
Mono, с другой стороны, автономно содержится в программных файлах и записывает только раздел реестра с его путем (который не требуется запускать).
Я думаю, что это глупо, но это то, что нам сказали несколько пользователей.
Это в основном там, как помощь в разработке моно приложений для моно конкретных библиотек. Также за помощь в продвижении дела, чтобы разработчики могли работать в своей естественной среде при разработке для Mono.
хотя это не представляет широкого интереса, есть несколько случаев, когда mono имеет улучшения по сравнению со стандартной средой выполнения Microsoft. Мигель выступил с докладом о некоторых из них в PDC в этом году:
см. эти сообщения:
- видео-презентации
- поддержка SIMD и игры
также, Даже если у вас есть программа, динамически связанная с Mono, вы можете скомпилировать ее .exe и Mono runtime на pendrive и goto другой компьютер без .NET / Mono установлен, и запустите эту программу на новом ПК без установки во время выполнения. ie, это приводит к портативным приложениям (особенно полезно в качестве портативных приложений USB pen drive)
Это невозможно .Сеть. У вас должна быть установлена среда выполнения .NET определенным способом установки, т. е. среда выполнения, содержащая папку copy и paste not вероятный.
Я думаю, главная причина они сделали это, чтобы они могли работать .Net приложений на Mono и .Чистый бок о бок, чтобы сравнить их. Кроме того, есть несколько приложений, которые зависят от библиотеки Mono.
чтобы добавить к многочисленным причинам, упомянутым в других ответах, Mono для Windows может потребоваться установить на Wine, чтобы позволить запускать приложения .Net внутри Wine.
Схема архитектуры Mono |
|
Оригинальный автор (ы) | Симиан |
---|---|
Разработчики) | .NET Foundation и Xamarin ( дочерняя компания Microsoft ) |
изначальный выпуск | 30 июня 2004 г.; 18 лет назад |
Стабильный выпуск |
6.12.0.182 [1] |
Предварительный выпуск |
6.12.0.184 / 4 августа 2022 г.; 5 месяцев назад [2] |
Репозиторий |
|
Написано в | С , С# , XML |
Операционная система | Windows , macOS , Linux , IBM AIX , IBM i [3] |
Платформа | IA-32 , x64 , IA-64 , ARM , MIPS , PowerPC , SPARC , S390 |
Тип | Программная среда |
Лицензия | Лицензия Массачусетского технологического института [4] |
Интернет сайт | www.mono-project.com _ _ |
Mono — это бесплатная программная платформа с открытым исходным кодом , совместимая с .NET Framework . Первоначально компания Ximian , позже была приобретена Novell , и сейчас ею руководит Xamarin , дочерняя компания Microsoft [5] и .NET Foundation . Mono может работать на многих программных системах .
История
Дата | Версия [7] | Ноты |
---|---|---|
2004-06-30 | 1,0 [8] | Поддержка С# 1.0 |
21 сентября 2004 г. | 1,1 [9] | |
2006-11-09 | 1,2 [10] | Поддержка С# 2.0 |
2008-10-06 | 2,0 [11] | API-интерфейсы Mono теперь соответствуют .NET 2.0. Знакомит с компиляторами C# 3.0 и Visual Basic 8. Новые API-интерфейсы для Mono: Mono.Cecil, Mono.Cairo и Mono.Posix. Выпущен Gtk# 2.12. Представлен инструмент проверки Gendarme и Mono Linker. |
2009-01-13 | 2,2 [12] | Mono переключает свой JIT-движок на новое внутреннее представление [13] , что повышает его производительность и вводит поддержку SIMD в пространстве имен Mono.Simd [14] Mono.Simd. Mono представляет компиляцию с полным опережением времени , которая позволяет разработчикам создавать полные статические приложения, а также представляет компилятор C# как услугу [15] и интерактивную оболочку C# [16] (C# REPL). |
2009-03-30 | 2,4 [17] | В этом выпуске в основном улучшены все функции, представленные в версии 2.2, и он стал основой для долгосрочной поддержки Mono в SUSE Linux. |
2009-12-15 | 2,6 [18] | Среда выполнения Mono теперь может использовать LLVM в качестве бэкенда для генерации кода, и в этом выпуске представлены сопрограммы Mono, программный отладчик Mono и система безопасности CoreCLR, необходимые для Moonlight и других веб-плагинов. В библиотеке классов System.IO.Packaging, клиент WCF, сервер WCF, дебют LINQ to SQL. Интерактивная оболочка поддерживает автозавершение, а LINQ to SQL поддерживает работу с несколькими базами данных. Представлена система сборки xbuild. |
2010-09-22 | 2,8 [19] | По умолчанию используется профиль .NET 4.0, поддержка C# 4.0 , сборщик мусора нового поколения, включает Parallel Extensions , WCF Routing, CodeContracts , ASP.NET 4.0, отказывается от поддержки профиля 1.0; движок LLVM, настроенный на поддержку 99,9% всего сгенерированного кода, выбираемые во время выполнения llvm и gc; включает Dynamic Language Runtime , MEF, ASP.NET MVC 2, открытый исходный код OData Client от Microsoft;. Станет релизом 3.0 |
2011-02-15 | 2,10 [20] | |
2012-10-18 | 3,0 [21] | Поддержка C# 5.0 , асинхронная поддержка, обновление асинхронной библиотеки базовых классов и MVC4 — частичная поддержка асинхронных функций. |
2013-07-24 | 3,2 [22] | Сборщик мусора по умолчанию теперь называется SGEN, а не Boehm. |
2014-03-31 | 3,4 [23] | |
2014-08-12 | 3,6 [24] | |
2014-09-04 | 3,8 [25] | |
2014-10-04 | 3,10 [26] | |
2015-01-13 | 3,12 [27] | |
2015-04-29 | 4,0 [28] | По умолчанию используется профиль .NET 4.5 и поставляются только сборки .NET 4.5, по умолчанию используется C# 6.0. Первый выпуск для интеграции кода Microsoft .NET Core с открытым исходным кодом. |
2017-05-10 | 5,0 [29] | Доставка компилятора Roslyn C# для обеспечения поддержки C#7; Добавление msbuild и прекращение поддержки xbuild для лучшей совместимости; Включение параллельного сборщика мусора SGen для сокращения времени, затрачиваемого на сборку мусора; Представляем стек AppleTLS в macOS для соединений HTTPS; Продолжение работы по конвергенции библиотеки классов .NET; Обновлен libjpeg в пакете macOS. |
2017-07-14 | 5,2 [30] | Поддержка .NET Standard 2.0, надежных имен сборок и экспериментальных элементов интерфейса по умолчанию. |
2017-10-05 | 5,4 [31] | Среда выполнения JIT теперь поддерживает параллельную компиляцию методов и различные другие оптимизации производительности; Добавлены эталонные сборки .NET 4.7. |
2018-02-01 | 5,8 [32] | Начальный порт WebAssembly ; Моды для SGen GC; Включает инструмент Roslyn csi (C# интерактивный) REPL. |
2018-02-26 | 5.10 [33] | Интерпретатор теперь включен в установку по умолчанию; среда выполнения теперь поддерживает методы интерфейса по умолчанию; WebAssembly теперь считается надежным; Поддержка .NET 4.7.1/C# 7.2/F# 4.1 |
2018-05-08 | 5,12 [34] | Перенос на IBM AIX/i; теперь включает компилятор VB.NET ; возможность использовать jemalloc |
2018-08-07 | 5,14 [35] | Основное обновление Windows.Forms для улучшения совместимости с .NET |
2018-10-08 | 5,16 [36] | Гибридный приостанавливающий сборщик мусора; Поддержка клиентских сертификатов; Поддержка С# 7.3 |
2018-12-21 | 5,18 [37] | поддержка .NET 4.7.2; используется больше кода CoreFX |
2019-07-17 | 6,0 [38] | Компилятор C# по умолчанию использует версию C# 8.0 RC; Различные улучшения стабильности в поддержке отладчика; Mono Interpreter является полным и стабильным. |
2019-09-23 | 6,4 [39] | Поддержка компилятора C# для языковой версии C# 8; Поддержка .NET Standard 2.1 |
2019-12-10 | 6,6 [40] | Добавлены эталонные сборки .NET 4.8. |
2020-01-15 | 6,8 [41] | Различные исправления |
2020-05-19 | 6.10 [42] | Различные исправления |
2020-11-24 | 6,12 [43] | Различные исправления |
Когда Microsoft впервые объявила о своей .NET Framework в июне 2000 г., она была описана как «новая платформа, основанная на интернет-стандартах» [44] , а в декабре того же года лежащая в основе Common Language Infrastructure была опубликована как открытый стандарт «ECMA-335». «, [45] открывая потенциал для независимых реализаций. [46] Мигель де Икаса из Ximian считал, что .NET может повысить производительность труда программистов, и начал исследовать, возможна ли версия для Linux. [47] Понимая, что их небольшая команда не может рассчитывать на создание и поддержку полноценного продукта, они запустили проект с открытым исходным кодом Mono 19 июля 2001 г.Конференция
О’Райли .
После трех лет разработки Mono 1.0 был выпущен 30 июня 2004 г. [48] Mono превратилась из первоначальной платформы для разработчиков настольных приложений Linux в поддержку широкого спектра архитектур и операционных систем, включая встроенные системы. [49]
Novell приобрела Ximian в 2003 году. После того, как Novell была приобретена компанией Attachmate в апреле 2011 года, Attachmate объявила о сотнях увольнений сотрудников Novell, [50] поставив под сомнение будущее Mono. [51] [52]
16 мая Мигель де Икаса объявил в своем блоге, что Mono по-прежнему будет поддерживаться Xamarin — компанией, которую он основал после увольнения из Novell. Первоначальная команда Mono также перешла в новую компанию. Xamarin планировал продолжить работу над Mono и планировал переписать проприетарные стеки .NET для iOS и Android с нуля, поскольку в то время Novell все еще владела MonoTouch и Mono для Android. [53] После этого объявления будущее проекта было поставлено под сомнение, поскольку MonoTouch и Mono для Android составляют прямую конкуренцию существующим коммерческим предложениям, которые теперь принадлежат Attachmate ., и учитывая, что команде Xamarin было бы трудно доказать, что они не использовали технологии, которые они ранее разработали, когда они были наняты Novell для той же работы. [54] Однако в июле 2011 года Novell, теперь дочерняя компания Attachmate и Xamarin, объявила, что предоставила Xamarin бессрочную лицензию для Mono, MonoTouch и Mono для Android, которая официально взяла на себя руководство проектом. [55] [56]
Текущий статус и дорожная карта
Текущая версия Mono — 6.0.0 (по состоянию на август 2019 года ). Эта версия предоставляет основной API .NET Framework и поддержку Visual Basic.NET и C# 7.0. LINQ to Objects , XML и SQL являются частью дистрибутива. Windows Forms 2.0 также поддерживается, но активно не развивается, поэтому его поддержка в Mono неполная. [57] Версия 4.0 была первой версией, включающей оригинальный исходный код Microsoft, выпущенный Microsoft в рамках проекта .NET Core .
По состоянию на 14 января 2021 года Mono полностью поддерживает все функции .NET 4.7, кроме Windows Presentation Foundation (WPF) (которую команда Mono не планирует поддерживать из-за объема работы, который потребуется) [57] и Windows Workflow Foundation (WF) и с ограниченной поддержкой Windows Communication Foundation (WCF) и асинхронного стека ASP.NET. Однако System.Web и WCF являются кандидатами на «почти немедленный» перенос из эталонного источника .NET обратно в Mono. [58] Некоторые отсутствующие части .NET Framework находятся в стадии разработки в рамках экспериментального подпроекта Mono под названием Olive . [59]
Проект Mono также создал компилятор Visual Basic .NET и среду выполнения, предназначенную для запуска приложений VB.NET. В настоящее время он разрабатывается Рольфом Бьярне Квинге.
Лунный свет
Реализация Microsoft Silverlight с открытым исходным кодом под названием Moonlight была включена, начиная с Mono 1.9. [60] Moonlight 1.0, поддерживающий API Silverlight 1.0, был выпущен 20 января 2009 г. Moonlight 2.0 поддерживает Silverlight 2.0 и некоторые функции Silverlight 3.0. [61] Предварительный выпуск Moonlight 3.0 был анонсирован в феврале 2010 г. и содержит обновления поддержки Silverlight 3. [62]
Проект Moonlight был заброшен 29 мая 2012 г. [63] По словам Мигеля, два фактора решили судьбу проекта: Microsoft добавила «искусственные ограничения», которые «сделали его бесполезным для настольного программирования», и технология не получила достаточного развития. тяга в Сети. Кроме того, к 2012 году Microsoft объявила о прекращении поддержки самого Silverlight.
Монокомпоненты
Моно состоит из трех групп компонентов:
- Основные компоненты
- Стек разработки Mono/Linux/GNOME
- Стек совместимости Microsoft
Основные компоненты включают компилятор C#, виртуальную машину для Common Language Infrastructure и основные библиотеки классов. Эти компоненты основаны на стандартах Ecma-334 и Ecma-335 , [64] что позволяет Mono предоставлять соответствующую стандартам, бесплатную виртуальную машину CLI с открытым исходным кодом . Microsoft выпустила заявление, которое распространяется на оба стандарта в соответствии с их лицензией Community Promise . [65]
Стек разработки Mono/Linux/GNOME предоставляет инструменты для разработки приложений с использованием существующих GNOME и бесплатных библиотек с открытым исходным кодом. К ним относятся: Gtk# для разработки графического пользовательского интерфейса (GUI), библиотеки Mozilla для работы с механизмом рендеринга Gecko , библиотеки интеграции Unix (Mono.Posix), библиотеки подключения к базе данных, стек безопасности и язык схемы XML RelaxNG . Gtk# позволяет приложениям Mono интегрироваться в рабочий стол Gnome как собственные приложения. Библиотеки базы данных обеспечивают подключение к объектно-реляционной базе данных db4o , Firebird ,Microsoft SQL Server (MSSQL), MySQL , Open Database Connectivity (ODBC), Oracle , PostgreSQL , SQLite и многие другие. Проект Mono отслеживает разработку компонентов базы данных на своем веб-сайте. [66]
Стек совместимости Microsoft предоставляет путь для переноса приложений Windows .NET в Linux . В эту группу компонентов входят , среди прочего , ADO.NET , ASP.NET и Windows Forms . Поскольку эти компоненты не подпадают под действие стандартов Ecma , некоторые из них остаются предметом патентных опасений и опасений .
Архитектура фреймворка
Основные компоненты Mono включают в себя:
- Механизм выполнения кода
- Библиотеки классов
- Библиотека базовых классов
- Библиотеки классов совместимости .NET
- Библиотеки моно-специфических классов:
- Кроссплатформенные библиотеки классов для Mono и .NET (Gtk#, Mono.Cecil, Mono.CSharp, Text.Templating)
- Библиотеки классов для Unix (POSIX, Filesystem in Userspace (FUSE), curses)
- Библиотеки классов для конкретных платформ (привязки для: Mac, iOS, Android, MeeGo)
- CLI-сборки
- Метаданные интерфейса командной строки
- Общеязыковая среда выполнения Mono
- Совместимость с общеязыковой инфраструктурой ECMA / общеязыковой средой выполнения .NET .
- Моноспецифические улучшения:
- Поддержка моно SIMD
- Моно-сопрограммы и продолжения.
- Моноспецифичные улучшения
- Собственные службы взаимодействия и COM-взаимодействие
- Безопасность — прозрачная структура кода
Механизм выполнения кода
Среда выполнения Mono содержит механизм выполнения кода, который переводит байт-коды ECMA CIL в собственный код и поддерживает ряд процессоров: ARM , MIPS (только в 32-битном режиме), SPARC , PowerPC , S390 (в 64-битном режиме), x86. , x86-64 и IA-64 для 64-битных режимов.
Генератор кода работает в трех режимах:
- Компиляция «точно в срок» (JIT): среда выполнения преобразует байт-коды ECMA CIL в машинный код по мере его выполнения.
- Компиляция с опережением времени (AOT): этот код преобразует байт-коды ECMA CIL (обычно находящиеся в файлах .exe или .dll) и генерирует собственный код, хранящийся в файле операционной системы, архитектуры и процессора (для файла foo. exe, в Linux будет создан файл foo.exe.so). В этом режиме работы компилируется большая часть кода, который обычно выполняется во время выполнения. Есть некоторые исключения, такие как батуты и другой административный код, для работы которых по-прежнему требуется JIT, поэтому образы AOT не являются полностью автономными.
- Полная статическая компиляция: этот режим поддерживается только на нескольких платформах и продвигает процесс компиляции с опережением времени на один шаг вперед и генерирует все необходимые трамплины, обертки и прокси -серверы в статический файл, который может быть статически связан с программа и полностью устраняет необходимость в JIT во время выполнения. Это используется в операционных системах Apple iOS , Sony PlayStation 3 и Microsoft Xbox 360 . [ нужна ссылка ]
Начиная с Mono 2.6, можно настроить Mono для использования LLVM в качестве механизма генерации кода вместо собственного механизма генерации кода Mono. Это полезно для высокопроизводительных вычислительных нагрузок и других ситуаций, когда производительность выполнения более важна, чем производительность при запуске.
Начиная с предварительной версии Mono 2.7, больше нет необходимости выбирать один движок вместо другого во время настройки. Механизм генерации кода можно выбрать при запуске с помощью аргументов командной строки --llvm
или --nollvm
, и по умолчанию используется быстро запускаемый модуль генерации кода Mono.
Начиная с Mono 5.18, поддержка LLVM является параметром конфигурации по умолчанию. Предыдущие версии требовали специального форка LLVM, но теперь mono может вернуться к своему собственному генератору кода, когда сталкивается с чем-то, что не обрабатывается LLVM. [67]
Сборщик мусора
Начиная с Mono 2.8, среда выполнения Mono поставляется с двумя сборщиками мусора : сборщиком поколений и консервативным сборщиком мусора Boehm-Demers-Weiser . Сборщик мусора Boehm может обнаруживать утечки памяти в определенных классах приложений, что делает его непригодным для некоторых долго работающих серверных приложений. [68] [69] Mono переключился на Simple Generational GC (SGen-GC) в качестве сборщика по умолчанию в версии 3.1.1.
Сборщик мусора SGen имеет много преимуществ перед традиционным консервативным сканером. Он использует сборку мусора поколенийкогда новые объекты выделяются из питомника, во время цикла сборки мусора все уцелевшие объекты переносятся в пул памяти более старого поколения. Идея состоит в том, что многие объекты являются временными и могут быть быстро собраны, и только несколько объектов являются долгосрочными объектами, которые живут в течение всей жизни приложения. Для повышения производительности этот сборщик назначает пулы памяти каждому потоку, чтобы позволить потокам выделять новые блоки памяти без необходимости координировать свои действия с другими потоками. Миграция объектов из питомника в старое поколение выполняется путем копирования данных из питомника в пул старого поколения и обновления любых активных указателей, которые указывают на данные, чтобы они указывали на новое местоположение. Это может быть дорого для больших объектов, поэтому Mono’[68]
Библиотека классов
Библиотека классов предоставляет исчерпывающий набор средств для разработки приложений. В основном они написаны на C#, но благодаря Спецификации общего языка их можно использовать на любом языке .NET. Библиотека классов структурирована по пространствам имен и развернута в разделяемых библиотеках, известных как сборки. Говоря о .NET Framework, в первую очередь речь идет об этой библиотеке классов. [70]
Пространства имен и сборки
Пространства имен — это механизм логической группировки похожих классов в иерархическую структуру. Это предотвращает конфликты имен. Структура реализована с использованием слов, разделенных точками, где наиболее распространенным пространством имен верхнего уровня является System, например System.IO и System.Net. Существуют и другие пространства имен верхнего уровня, такие как Accessibility и Windows. Пользователь может определить пространство имен, поместив элементы внутри блока пространства имен.
Сборки — это физическая упаковка библиотек классов. Это файлы .dll, такие же (но не путать с) общие библиотеки Win32. Примерами сборок являются mscorlib.dll, System.dll, System.Data.dll и Accessibility.dll. Пространства имен часто распределяются между несколькими сборками, и одна сборка может состоять из нескольких файлов.
Общеязыковая инфраструктура и общеязыковая спецификация
Инфраструктура общего языка (CLI) , реализованная средой Common Language Runtime (CLR) , реализуется исполняемым файлом Mono. Среда выполнения компилирует и выполняет приложения .NET. Общеязыковая инфраструктура определяется стандартом ECMA. [64] Чтобы запустить приложение, вы должны вызвать среду выполнения с соответствующими параметрами.
Спецификация общего языка (CLS) указана в главе 6 ECMA-335 и определяет интерфейс CLI, такие как соглашения, такие как базовые типы для Enum. Компилятор Mono создает образ, соответствующий CLS. Это общий промежуточный язык. Среда выполнения Mono берет этот образ и запускает его. Стандарт ECMA формально определяет библиотеку, соответствующую CLS, как инфраструктуру.
Управляемый и неуправляемый код
В нативном приложении .NET/Mono весь код управляется ; то есть он регулируется стилем управления памятью и безопасностью потоков CLI. Другие приложения .NET или Mono могут использовать устаревший код, который называется неуправляемым, используя библиотеки System.Runtime.InteropServices для создания привязок C#. Многие библиотеки, поставляемые с Mono, используют эту функцию CLI, например Gtk# .
Моноспецифические инновации
Mono внедрил инновации в некоторых областях с новыми расширениями основных спецификаций C# и CLI:
- Компилятор C# как услуга (используйте компилятор C# как библиотеку). [15]
- Интерактивная оболочка С#. [16]
- Поддержка SIMD [14] как часть пространства имен Mono.SIMD, где вызовы методов для специальных векторных типов напрямую отображаются на SIMD-инструкции базового процессора.
- Полная статическая компиляция кода .NET [71] (используется на Mono/iPhone, Mono/PS3).
- Моно — сопрограммы (используются для реализации кода микропоточности и продолжений , в основном для разработчиков игр). [72]
- Внедрение сборки в живые процессы. [73]
- Использование LLVM в качестве JIT-бэкенда.
- Cxxi и CppSharp напрямую взаимодействуют с кодом и библиотеками C++.
Кроме того, Mono доступен для различных операционных систем и архитектур. [74]
Системные требования
Windows 7, Windows 8, Windows 8.1, Windows 10, macOS или Linux
Несколько проектов расширяют Mono и позволяют разработчикам использовать его в своей среде разработки. Эти проекты включают в себя:
Кроссплатформенность:
- Banshee Media Player (остановлен), кроссплатформенный музыкальный медиаплеер, созданный с помощью Mono и Gtk #, а также драйвер десятков библиотек и проектов на основе C # для обработки мультимедиа.
- Beagle (не поддерживается), поисковая система для систем Unix.
- Gecko#, привязки для встраивания механизма компоновки, используемого в Mozilla ( Gecko ).
- Gtk# , оболочки C# вокруг базовых библиотек GTK и GNOME , написанные на C и доступные в Linux, MacOS и Windows.
- Mono Migration Analyzer (MoMA) , инструмент, который помогает разработчикам Windows .NET находить области в их коде, которые могут быть не кроссплатформенными и, следовательно, не работать в Mono в Linux и других Unix. Не обновлялся с Mono 2.8 (2013 г.); вместо этого используйте анализатор переносимости Microsoft .NET (dotnet-apiport).
- MonoCross , кросс-платформенный шаблон проектирования модель-представление-контроллер , в котором Модель и Контроллер являются общими для разных платформ, а Представления уникальны для каждой платформы для оптимизированного пользовательского интерфейса. Для платформы требуются Xamarin.iOS и Xamarin.Android.
- MvvmCross — кроссплатформенная платформа Model View ViewModel , использующая Xamarin.iOS и Xamarin.Android для разработки мобильных приложений.
- MonoDevelop кроссплатформенная интегрированная среда разработки с открытым исходным кодом, которая поддерживает создание приложений для ASP.NET, Gtk#, Meego, MonoTouch и Silverlight/Moonlight.
- Moonlight (снято с производства), реализация Silverlight , использующая Mono.
- OpenTK , управляемая привязка для OpenGL, OpenCL и OpenAL.
- QtSharp , привязки C# для фреймворка Qt .
- Resco MobileBusiness , кроссплатформенное решение для разработчиков мобильных клиентов.
- Resco MobileCRM — кроссплатформенное решение для разработчиков мобильных клиентов, синхронизированное с Microsoft Dynamics CRM .
- ServiceStack — высокопроизводительная платформа веб-служб .NET REST с открытым исходным кодом, упрощающая разработку веб-служб XML, JSON и SOAP.
- SparkleShare — клиентское программное обеспечение с открытым исходным кодом, предоставляющее услуги облачного хранилища и синхронизации файлов.
- Tao (заменен OpenTK), набор графических и игровых привязок (OpenGL, SDL, GLUT, Cg).
- Xwt , набор инструментов с графическим интерфейсом, который сопоставляет вызовы API с вызовами собственной платформы базовой платформы, предоставляя единый унифицированный API на разных платформах и позволяя графическим пользовательским интерфейсам иметь собственный внешний вид на разных платформах. Это позволяет создавать настольные приложения с графическим интерфейсом, которые работают на нескольких платформах, без необходимости настраивать код для разных платформ. Xwt API сопоставляется с набором собственных элементов управления на каждой поддерживаемой платформе. Функции, недоступные на определенных платформах, эмулируются с помощью собственных виджетов, что в контексте Xwt называется хостингом. [75] Xwt частично использовался в качестве инструментария GUI (помимо GTK#) при разработке Xamarin Studio . [76]Поддерживаемые «внутренние» движки: движок WPF и движок Gtk (с использованием Gtk# ) в Windows , движок Cocoa (с использованием MonoMac) и движок Gtk (с использованием Gtk#) в Mac OS X и движок Gtk (с использованием Gtk#) в Linux . [77]
макОС:
- Cocoa# — обертки вокруг собственного набора инструментов macOS ( Cocoa ) (устарело).
- Monobjc — набор привязок для программирования macOS.
- MonoMac — более новые привязки для программирования macOS, основанные на дизайне MonoTouch API.
Мобильные платформы:
- Монодроид. Моно для операционной системы Android. С привязками для Android API.
- Монотач . Моно для iPhone, iPad и iPod Touch. С привязками к API iOS.
Окна:
- MonoTools для Visual Studio Плагин Visual Studio, который позволяет разработчикам Windows ориентироваться на Linux и macOS прямо из Visual Studio и интегрируется с SUSE Studio .
Другие реализации
У Microsoft есть версия .NET 2.0, которая теперь доступна только для Windows XP и называется Shared Source CLI (Rotor) . Лицензии Microsoft с общим исходным кодом может быть недостаточно для нужд сообщества (она прямо запрещает коммерческое использование).
Выведенный из эксплуатации проект Portable.NET Free Software Foundation . [78]
МоноДевелопмент
MonoDevelop — бесплатная интегрированная среда разработки GNOME, предназначенная в первую очередь для C# и других языков .NET, таких как Nemerle , Boo и Java (через IKVM.NET ), хотя она также поддерживает такие языки, как C , C++ , Python и Vala . Первоначально MonoDevelop был портом SharpDevelop для Gtk#, но с тех пор он эволюционировал, чтобы удовлетворить потребности разработчиков Mono. IDE включает в себя управление классами, встроенную справку, завершение кода, Stetic (дизайнер графического интерфейса), поддержку проектов и встроенный отладчик.
Браузер MonoDoc предоставляет доступ к документации по API и примерам кода. Браузер документации использует управление контентом в стиле вики, что позволяет разработчикам редактировать и улучшать документацию.
Xamarin.iOS и Xamarin.Android
Xamarin.iOS и Xamarin.Android, разработанные Xamarin , являются реализациями Mono для iPhone и смартфонов на базе Android . Ранее доступная только для коммерческого лицензирования [79] , после приобретения Microsoft Xamarin в 2016 году сама среда выполнения Mono была повторно лицензирована по лицензии MIT [80] , и Xamarin.iOS и Xamarin.Android стали бесплатными и с открытым исходным кодом. [81]
Xamarin.iOS
Дата | Версия | Ноты |
---|---|---|
2009-09-14 | МоноТач 1.0 [82] | изначальный выпуск |
2010-04-05 | Монотач 2.0 [83] | поддержка iPad |
2010-04-16 | Монотач 3.0 [84] | поддержка айфон 4 |
2011-04-06 | Монотач 4.0 [85] | поддержка iOS 4 |
2011-10-12 | Монотач 5.0 [86] | поддержка iOS 5 |
2012-09-19 | Монотач 6.0 [87] | поддержка iOS 6 |
20 февраля 2013 г. | Xamarin.iOS 6.2 [88] | Поддержка Visual Studio |
2013-07-24 | Xamarin.iOS 6.4 [89] | .NET 4.5 асинхронная/ожидающая поддержка |
2013-06-19 |
Xamarin.iOS 7.0 [90] | Поддержка XCode 5 и iOS 7. |
2014-09-10 |
Xamarin.iOS 8.0 [91] | Поддержка iOS 8 и Xcode 6. |
2015-09-16 |
Xamarin.iOS 9.0 [92] | Поддержка iOS 9 и Xcode 7 |
2016-09-13 |
Xamarin.iOS 10.0 [93] | Поддержка iOS 10 и Xcode 8 |
2017-09-19 |
Xamarin. iOS 11.0 [94] | Поддержка iOS 11 и Xcode 9 |
2018-09-14 |
Xamarin.iOS 12.0 [95] | Поддержка iOS 12 и Xcode 10. |
2019-09-13 |
Xamarin. iOS 13.0 [96] | Поддержка iOS 13 и Xcode 11. |
20.09.2020 |
Xamarin. iOS 14.0 [97] | Поддержка iOS 14 и Xcode 12. |
Xamarin.iOS (ранее называвшаяся MonoTouch) — это библиотека, позволяющая разработчикам создавать приложения на основе C# и .NET, которые работают на устройствах iPhone, iPod и iPad. Он основан на платформе Mono и разработан совместно с Novell. В отличие от приложений Mono, «приложения» Xamarin.iOS компилируются в машинный код, предназначенный специально для Apple iPhone и iPad . [98] Это необходимо, поскольку ядро iOS предотвращает выполнение JIT-компиляторов на устройстве.
Стек Xamarin.iOS состоит из:
- Компиляторы
- C# из проекта Mono
- Сторонние компиляторы, такие как Oxygene от RemObject, также могут ориентироваться на Xamarin.iOS.
- Основные библиотеки .NET
- SDK для разработки:
- Linker — используется для объединения только кода, используемого в конечном приложении.
- mtouch — собственный компилятор и инструмент, используемый для развертывания на целевом устройстве.
- Инструменты интеграции построителя интерфейсов
- Библиотеки, связывающие собственные API CocoaTouch.
- Xamarin Studio IDE
Xamarin Studio используется в качестве основной IDE, однако были написаны
дополнительные ссылки на Xcode и симулятор iOS.
С апреля по начало сентября 2010 года будущее MonoTouch было поставлено под сомнение, поскольку Apple ввела новые условия для разработчиков iPhone, которые, по-видимому, запрещают им разработку на языках, отличных от C, C++ и Objective-C , и использование промежуточного слоя между Платформа iOS и приложения для iPhone. Это сделало будущее MonoTouch и других технологий, таких как Unity , неопределенным. [99] Затем, в сентябре 2010 года, Apple отменила это ограничение, заявив, что они ослабляют языковые ограничения, введенные ранее в том же году. [100] [101]
Xamarin.Android
Xamarin.Android ( ранее известный как Mono для Android ) , первоначально разработанный Novell и продолженный Xamarin , является проприетарной реализацией Mono для смартфонов на базе Android . [103] [104] [105] Впервые он был выпущен 6 апреля 2011 года. [106] Mono для Android был разработан, чтобы облегчить разработчикам создание кросс-платформенных приложений, которые будут работать на всех мобильных платформах. [107]В интервью H-Online Мигель де Икаса заявил: «Наше видение состоит в том, чтобы позволить разработчикам повторно использовать код своего движка и бизнес-логики на всех мобильных платформах и заменить код пользовательского интерфейса API для конкретной платформы». [108]
В августе 2010 года представитель Microsoft Том Ханрахан из Центра технологий с открытым исходным кодом Microsoft заявил в отношении судебного иска, поданного Oracle против Google в связи с использованием Java в Android, что «Тип действий, которые Oracle предпринимает против Google в отношении Java, не является это произойдет. Если бы перенос .NET на Android был через Mono, он подпадал бы под действие Соглашения об обещаниях сообщества Microsoft ». [109] [110]
Стек Xamarin.Android состоит из следующих компонентов:
- Моно среда выполнения
- Дизайнер пользовательского интерфейса Android [111]
- Библиотеки:
- Основные библиотеки классов .NET
- Библиотеки, связывающие собственные API Android/Java.
- Инструменты SDK для упаковки, развертывания и отладки
- Интеграция Xamarin Studio и Visual Studio 2010 для разработки пользовательского интерфейса, удаленной отладки и развертывания.
Лицензия
Mono имеет двойную лицензию Xamarin, как и другие продукты, такие как Qt и Mozilla Application Suite . Компилятор Mono C# и инструменты выпускаются под Стандартной общественной лицензией GNU (только GPLv2) (начиная с версии 2.0 Mono исходный код компилятора Mono C# также доступен под лицензией MIT X11 ), [112] библиотеки времени выполнения под лицензией GNU Меньшая стандартная общественная лицензия (только LGPLv2) и библиотеки классов под лицензией MIT . Все это бесплатное программное обеспечение и лицензии с открытым исходным кодом, поэтому Mono является бесплатным программным обеспечением с открытым исходным кодом..
Лицензия компилятора C# была изменена с GPL на лицензию MIT X11 [113] , чтобы разрешить повторное использование кода компилятора в некоторых случаях, когда GPL предотвратила бы это:
- Компилятор Mono как услуга
- Интерактивная оболочка Mono
- Встраиваемый компилятор C# Mono
- Реализация Mono динамического связывателя C# 4.0.
- Встроенный парсер MonoDevelop и граф AST
18 марта 2016 г. сделка по приобретению Xamarin компанией Microsoft была официально закрыта. [114]
31 марта 2016 г. Microsoft объявила на Microsoft Build , что они полностью повторно лицензируют Mono в соответствии с лицензией MIT даже в тех случаях, когда ранее была необходима коммерческая лицензия, [115] и Microsoft заявила, что не будет утверждать любые «применимые патенты» против сторон, которые «используют, продают, предлагают для продажи, импортируют или распространяют Mono». [116] [117] Также было объявлено, что Xamarin внес свой вклад в проект Mono для .NET Foundation. [116]
Патенты Mono и Microsoft
Программное обеспечение, разработанное с помощью Mono
Многие программы, охватывающие ряд приложений, были разработаны с использованием интерфейса прикладного программирования (API) Mono и C#. Некоторые программы, написанные для рабочего стола Linux, включают Banshee , Beagle , F-Spot , Gbrainy , Docky / GNOME Do , MonoTorrent , Pinta и Tomboy . Программа Logos 5 Bible Study Software (версия для OS X) была написана для MacOS.
Ряд видеоигр, таких как The Sims 3 и Second Life (для их языков сценариев ), сервер виртуального мира OpenSimulator или игры, созданные с помощью игровых движков Unity или MonoGame , также используют Mono. [118] OpenRA связывает свои образы Apple Disk Image и Linux AppImages с Mono, по существу удаляя почти все зависимости от игры. [119]
Смотрите также
- общеязыковая среда выполнения
- .NET Framework
- .NET , платформа с открытым исходным кодом и преемник .NET Framework.
- Стандартные библиотеки (CLI)
- Библиотека базовых классов (BCL)
- Сравнение виртуальных машин приложений
- DotGNU — зонтичный проект бесплатного программного обеспечения, который включает Portable.NET.
- MonoDevelop — IDE с открытым исходным кодом , предназначенная как для платформ Mono, так и для платформ Microsoft .NET Framework .
- Moonlight (среда выполнения) , реализация Microsoft Silverlight с открытым исходным кодом , разработанная Mono Project.
- Общеязыковая инфраструктура с общим исходным кодом — реализация .NET с общим исходным кодом Microsoft, ранее носившая кодовое название Rotor.
- mod_mono — модуль для HTTP-сервера Apache , который позволяет размещать страницы ASP.NET и другие сборки на нескольких платформах с помощью Mono.
Ссылки
Цитаты
- ^ https://www.mono-project.com/docs/about-mono/releases/6.12.0.182/ .
- ^ «Теги · моно / моно · GitHub» . Гитхаб .
- ^ Знакомство с Mono в AIX и IBM i
- ^ «Часто задаваемые вопросы: Лицензирование» . Проверено 3 июля 2020 г. .
- ^ «Microsoft приобретет Xamarin и предоставит большему количеству разработчиков возможность создавать приложения на любом устройстве» . Официальный блог Майкрософт . Проверено 24 февраля 2016 г. .
- ^ «Моно-релизы» . Mono-project.com . Проверено 4 апреля 2015 г. .
- ^ «Старые выпуски» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Mono 1.0» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Моно 1.1.1: Разрабатываемый выпуск» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Моно 1.2: Примечания к выпуску» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 2.0» . Mono-project.com. 2008-10-06 . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 2.2» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Линейный ИК-моно» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ a b «Поддержка SIMD в Mono: обеспечение безопасности Mono для игр — Мигель де Икаса» . Тирания.org. 2008-11-03 . Проверено 17 июля 2013 г. .
- ^ a b «Компилятор C # Mono как услуга в Windows. — Мигель де Икаса» . Тирания.org. 27 апреля 2010 г. . Проверено 17 июля 2013 г. .
- ^ а б «CsharpRepl — Моно» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 2.4» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 2.6» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 2.8» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 2.10» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Примечания к выпуску Моно 3.0» . Mono-project.com . Проверено 23 сентября 2013 г. .
- ^ «Примечания к выпуску Моно 3.2» . Mono-project.com . Проверено 23 сентября 2013 г. .
- ^ «Примечания к выпуску Моно 3.4» . Mono-project.com . Проверено 4 апреля 2015 г. .
- ^ «Примечания к выпуску Моно 3.6» . Mono-project.com . Проверено 4 апреля 2015 г. .
- ^ «Примечания к выпуску Моно 3.8» . Mono-project.com . Проверено 4 апреля 2015 г. .
- ^ «Примечания к выпуску Моно 3.10» . Mono-project.com . Проверено 4 апреля 2015 г. .
- ^ «Примечания к выпуску Моно 3.12» . Mono-project.com . Проверено 4 апреля 2015 г. .
- ^ «Примечания к выпуску Моно 4.0» . Mono-project.com . Проверено 3 мая 2015 г. .
- ^ «Примечания к выпуску Моно 5.0» . Mono-project.com . Проверено 13 мая 2017 г. .
- ^ «Примечания к выпуску Mono 5.2.0» .
- ^ «Примечания к выпуску Mono 5.4.0» .
- ^ «Примечания к выпуску Mono 5.8.0» .
- ^ «Примечания к выпуску Mono 5.10.0» .
- ^ «Примечания к выпуску Mono 5.12.0» .
- ^ «Примечания к выпуску Mono 5.14.0» .
- ^ «Примечания к выпуску Mono 5.16.0» .
- ^ «Примечания к выпуску Mono 5.18.0» .
- ^ «Примечания к выпуску Mono 6.0.0» .
- ^ «Примечания к выпуску Mono 6.4.0» .
- ^ «Примечания к выпуску Mono 6.6.0» .
- ^ «Примечания к выпуску Mono 6.8.0» .
- ^ «Примечания к выпуску Mono 6.10.0» .
- ^ «Примечания к выпуску Mono 6.12.0» .
- ^ Бонистил, Стивен (23 июня 2000 г.). «Microsoft не видит впереди ничего, кроме .NET» . ZDNet. Архивировано из оригинала 5 ноября 2011 года . Проверено 5 апреля 2011 г.
- ^ «ECMA-335-Part-I-IV — ECMA-335, 1-е издание, декабрь 2001 г.» (PDF) .
- ^ Уилкокс, Джо; Шенкленд, Стивен (28 июня 2001 г.). «Microsoft стремится делиться кодом» . ZDNet.
- ^ «[Моно-список] Ранняя история моно» . 2003-10-13. Архивировано из оригинала 06.06.2011 . Проверено 30 марта 2005 г. .
- ^ «Выпущена реализация OSS .NET Mono 1.0 — Ars Technica» . АрсТехника . 30 июня 2004 г. . Проверено 23 октября 2009 г. .
- ^ «Поддерживаемые платформы» . Моно сайт.
- ^ Кеп, Пол (2011-05-02). «Сотрудники говорят, что сотни уволены в офисе Novell в Прово» . КСЛ-ТВ . Проверено 7 мая 2011 г. .
- ^ Дж. Воан-Николс, Стивен (04 мая 2011 г.). «Моно мертв? Novell умирает?» . ЗДНет . Проверено 7 мая 2011 г. .
- ↑ Кларк, Гэвин (03 мая 2011 г.). «Клоны .NET Android и iOS, удаленные с помощью Attachmate» . Регистр . Проверено 7 мая 2011 г. .
- ^ «Объявление Xamarin — Мигель де Икаса» . Тирания.org. 2011-05-16 . Проверено 17 июля 2013 г. .
- ^ «Смерть и возрождение Моно» . infoq.com. 2011-05-17 . Проверено 29 мая 2011 г. .
Даже если они его не поддерживают, у них есть продукт, который напрямую конкурирует с будущими предложениями Xamarin.
Без какой-либо юридической договоренности между Attachmate и Xamarin последний столкнулся бы с пугающей перспективой доказать, что их новая разработка не использует никаких технологий, которые использовались в старой.
Учитывая, что на самом деле это всего лишь оболочка для нативного API, было бы трудно доказать, что у вас была чистая реализация даже для команды, которая не была хорошо знакома с кодом Attachmate.
- ^ «Партнерство SUSE и Xamarin для ускорения инноваций и поддержки клиентов и сообщества Mono» . Новелл . 2011-07-18 . Проверено 18 июля 2011 г. .
Соглашение предоставляет Xamarin широкую бессрочную лицензию на всю интеллектуальную собственность, охватывающую Mono, MonoTouch, Mono для Android и Mono Tools для Visual Studio.
Xamarin также будет оказывать техническую поддержку клиентам SUSE, использующим продукты на основе Mono, и возьмет на себя управление проектом сообщества Mono с открытым исходным кодом.
- ^ де Икаса, Мигель (18 июля 2011 г.). «Партнерство Novell/Xamarin вокруг Mono» . Проверено 18 июля 2011 г. .
- ^ a b де Икаса, Мигель (2011-03-07). «ГДС 2011» . Проверено 11 марта 2011 г. .
У нас нет планов по созданию WPF.
У нас просто нет рабочей силы для создания реализации в разумные сроки (…) Для инструментов, которые в основном основаны на OpenGL/DirectX, используйте Windows.Forms, имея в виду, что некоторые исправления ошибок или обходные пути на их часть может понадобиться, так как наша Windows.Forms активно не развивается.
- ^ «Список моносовместимости» .
- ^ «Дорожная карта проекта Mono — Mono» . Mono-project.com . Проверено 17 июля 2013 г. .
- ^ «Дорожная карта лунного света» . Команда Моно . Проверено 8 ноября 2008 г. .
- ^ «Выпуск Moonlight 2, Дорожная карта Moonlight 3 и 4 — Мигель де Икаса» . Тирания.org. 2009-12-17 . Проверено 17 июля 2013 г. .
- ^ «Moonlight 3.0 Preview 1 — Мигель де Икаса» . Тирания.org. 2010-02-03 . Проверено 17 июля 2013 г. .
- ^ «Xamarin отказывается от своей технологии Silverlight для Linux» . ЗДНет .
- ^ а б «Экма-335» .
- ^ «Технет.com» . Архивировано из оригинала 23 мая 2013 г. Проверено 7 июля 2009 г. .
- Викискладе есть медиафайлы по теме доступа к базе данных .
- ^ «Моно LLVM» . Моно .
- ^ a b «Уплотнение GC» . mono-project.com . Проверено 16 декабря 2008 г. .
- ^ Бём, Ханс-Дж. «Преимущества и недостатки консервативной сборки мусора» . Ксерокс ПАРК . Архивировано из оригинала 24 июля 2013 г. Проверено 16 декабря 2008 г. .
- ^ «Архитектура .NET Framework» . официальная документация по моно.
- ^ де Икаса, Мигель. «Статическая компиляция в моно» .
- ^ «Продолжения — Моно» .
- ^ де Икаса, Мигель. «Monovation: внедрение сборки в живые процессы» .
- ^ «Поддерживаемые платформы — моно» .
- ^ Нараянасвами, Ананд (23 ноября 2012 г.). «Создание кроссплатформенных приложений с помощью Xwt» . Информация . Архивировано из оригинала 15 апреля 2016 г. Проверено 15 апреля 2016 г. .
- ↑ де Икаса, Мигель (22 февраля 2013 г.). «Создание Xamarin Studio» . Информация . Архивировано из оригинала 15 апреля 2016 г. Проверено 15 апреля 2016 г. .
- Викискладе есть медиафайлы по теме Xwt . Xwt на GitHub . 15 января 2012 г. Архивировано из оригинала 16 апреля 2016 г .. Проверено 15 апреля 2016 г. .
- ^ «Проект DotGNU» . Проверено 2 июня 2014 г.
- ^ «Часто задаваемые вопросы» . os.xamarin.com. 01.08.2011.
MonoTouch — это коммерческий продукт, основанный на проекте Mono с открытым исходным кодом и лицензируемый для каждого разработчика.
- ^ «Моно перелицензировано MIT» . www.mono-project.com. 2016-03-31.
- ^ «Xamarin для всех» . blog.xamarin.com. 2016-03-31.
сегодня мы объявляем о своем намерении открыть исходный код Xamarin SDK для Android, iOS и Mac под лицензией MIT в ближайшие месяцы.
- ^ де Икаса, Мигель. «MonoTouch 1.0 выходит в эфир» .
- ^ «Монотач 2.0.0» . Ксамарин .
- ^ «Монотач 3.0.0» . Ксамарин .
- ^ «Монотач 4.0.0» . Ксамарин .
- ^ «Монотач 5.0» . Ксамарин .
- Викискладе есть медиафайлы по теме MonoTouch 6.0 . Ксамарин .
- ^ «Xamarin.iOS 6.2» . Ксамарин .
- ^ «Xamarin.iOS 6.4» . Ксамарин . 8 июля 2022 г.
- ^ «iOS 7 и Xamarin: готовы, когда вы готовы» . Блог Xamarin . 2013-09-18 . Проверено 20 марта 2021 г. .
- ^ «iOS 8 больше и лучше с Xamarin» . Блог Xamarin . 2014-09-10 . Проверено 20 марта 2021 г. .
- ^ «Xamarin для iOS 9: более глубокий поиск» . Блог Xamarin . 2015-09-16 . Проверено 20 марта 2021 г. .
- ^ «Основные обновления: iOS 10, Android Nougat и другие вкусности» . Блог Xamarin . 2016-09-13 . Проверено 20 марта 2021 г. .
- ^ спулиот. «Примечания к выпуску Xamarin.iOS 11.0 — Xamarin» . docs.microsoft.com . Проверено 20 марта 2021 г. .
- ^ спулиот. «Примечания к выпуску Xamarin.iOS 12.0 — Xamarin» . docs.microsoft.com . Проверено 20 марта 2021 г. .
- ^ спулиот. «Примечания к выпуску Xamarin.iOS 13.0 — Xamarin» . docs.microsoft.com . Проверено 20 марта 2021 г. .
- ^ спулиот. «Примечания к выпуску Xamarin.iOS 14.0 — Xamarin» . docs.microsoft.com . Проверено 20 марта 2021 г. .
- Викискладе есть медиафайлы по теме MonoTouch и iPhone 4 .
Приложения, созданные с помощью MonoTouch, являются собственными приложениями, неотличимыми от других собственных приложений.
- ^ «Apple нацеливается на Adobe… или Android?» . 9 апреля 2010 г.
- ^ «Заявление Apple о правилах обзора App Store» .
Основываясь на их отзывах, сегодня мы вносим важные изменения в нашу лицензию на Программу для разработчиков iOS в разделах 3.3.1, 3.3.2 и 3.3.9, чтобы ослабить некоторые ограничения, введенные ранее в этом году.
В частности, мы ослабляем все ограничения на инструменты разработки, используемые для создания приложений iOS, при условии, что полученные приложения не загружают какой-либо код.
Это должно дать разработчикам гибкость, которую они хотят, сохраняя при этом необходимую нам безопасность.
- ^ «Отличные новости для пользователей MonoTouch» .
Благодаря этим новым терминам двусмысленность исчезла, и любители и энтузиасты C# могут вернуться к использованию MonoTouch.
Разработчики, которым нравится сборка мусора и их строго типизированные языки, могут возобновить свою работу.
- ^ «Как лицензируется Mono для Android?» . Часто задаваемые вопросы о моно для Android. 2011-08-28 . Проверено 29 марта 2012 г. .
- ^ «Проект Novell Mono, переносящий разработку .Net на Android» . Сетевой мир.
- ^ «Проект Novell Mono, переносящий разработку .Net на Android» . ИнфоМир. 16 марта 2010 г.
- ^ «MonoDroid: поддержка .NET появится на Android» . ТечиБазз. 18 октября 2022 г.
- ^ «Mono для Android переносит C # на Android» . Хейз Онлайн . 2011-04-07 . Проверено 7 апреля 2011 г. .
- ^ «Novell (Mono/C#) разрабатывает MonoDroid» . Android-сообщество. 18 февраля 2010
г. Это облегчит разработчикам создание кроссплатформенных приложений, а также перенос некоторых существующих приложений, созданных с использованием MonoTouch, на Android.
- ^ «Моно для Android» . H-онлайн.
Наше видение состоит в том, чтобы позволить разработчикам повторно использовать свой код движка и бизнес-логики на всех мобильных платформах и заменить код пользовательского интерфейса API для конкретной платформы.
- ^ «Microsoft не остановит (Mono) .NET на Android» . ТехМир.
Действия, которые Oracle предпринимает против Google из-за Java, не произойдут.
Если бы перенос .NET на Android осуществлялся через Mono, он подпадал бы под действие Соглашения Microsoft Community Promise.
- ^ «Microsoft говорит, что .NET на Android безопасен, никаких судебных разбирательств, как у Oracle» . Разработчик Fusion.
- ^ «Конструктор Xamarin для Android» . Журнал Visual Studio.
14 мая Xamarin анонсировала Mono для Android 4.2.
- ^ «Компилятор Mono C # под лицензией MIT X11» . Novell Inc., 08 апреля 2008 г. Архивировано из оригинала 13 мая 2008 г. Проверено 9 апреля 2008 г. .
- ^ де Икаса, Мигель. «Компилятор Mono C# теперь также имеет лицензию MIT X11» .
- ^ «Xamarin для всех» . Блог Xamarin . Ксамарин. 31 марта 2016 г. Архивировано из оригинала 12 апреля 2016 г .. Проверено 12 апреля 2016 г. .
- ↑ Андерсон, Тим (31 марта 2016 г.). «Microsoft сделает инструменты и код Xamarin бесплатными с открытым исходным кодом» . Регистр .
- ↑ a b Феррайра , Бруно (31 марта 2016 г.). «Xamarin теперь поставляется бесплатно с Visual Studio» . Технический отчет .
- ^ «Патентное обещание Microsoft для моно» . Моно на GitHub . Моно проект. 2016-03-28. Архивировано из оригинала 12 апреля 2016 г. Проверено 12 апреля 2016 г. .
- ^ «Компании, использующие Mono» . Монопроект . Монопроект . Проверено 30 августа 2015 г.
- ↑ Пол Чот: OpenRA : Playtest 20190825 , 25 августа 2019 г.
Источники
- Эта статья включает текст с домашней страницы Mono , которая тогда находилась под лицензией GNU Free Documentation License .
- де Икаса, Мигель (13 октября 2003 г.). «[Моно-список] Ранняя история Моно». . Архивировано из оригинала (списка рассылки) 6 июня 2011 года . Проверено 6 декабря 2005 г.
- Дамбилл, Эдд (11 марта 2004 г.). «Станет ли Mono предпочтительной платформой для разработки под Linux?» . ONLamp. Архивировано из оригинала 19 октября 2006 года . Проверено 14 октября 2006 г.
- Лоли-Керу, Юджиния (22 февраля 2005 г.). «Моноприложения? Много!» . ОСНовости . Проверено 6 декабря 2005 г.
- Кернер, Шон Майкл (18 ноября 2005 г.). «Монопроект становится виртуальным» . Новости Интернета . Проверено 14 октября 2006 г.
- Кернер, Шон Майкл (9 ноября 2006 г.). «С опозданием на несколько месяцев Novell выпускает Mono 1.2» . Internetnews.com.
- Норткатт, Кори (12 октября 2006 г.). «В мире mod_mono» . вездесущность. Архивировано из оригинала 23 февраля 2007 года . Проверено 14 октября 2006 г.
- Кэмпбелл, Шон (8 октября 2008 г.). «Интервью с Джозефом Хиллом — менеджером по продукции — Mono — Novell» . HSIB . Проверено 8 октября 2008 г.
- Смит, Тим (9 сентября 2010 г.). «Краткое введение в вопросы патентов Java и .NET» . Информация . Проверено 13 сентября 2010 г.
Внешние ссылки
- Официальный сайт
- Главная страница MonoTouch для переноса на портативные устройства Apple Inc.