O Proxecto Mono foi fundado polo creador de Gnome para crear compatibilidade entre sistemas GNU/Linux e .NET, deste xeito por poñer un exemplo, poderíamos desenvolver unha aplicación en C# desde Ubuntu.
Mono foi impulsado pola empresa Novell (despois da adquisición de Ximian), onde traballa Miguel de Icaza, fundador de Gnome.
Principais características do proxecto:
Proxecto independente da plataforma, funciona en GNU/Linux, Windows, UNIX, Mac OS X, Solaris, OpenBSD e FreeBSD.
Linguaxes que usa: C#, Visual Basic, Java e Python.
Unha Infraestrutura de Linguaxe Común (CLI), un compilador en tempo de execución (JIT), bibliotecas de clases que traballen baixo o Common Language Runtime (CLR).
Respaldado por Microsoft
Creación de ferramentas compatibles con .NET segundo as normas ECMA.
.NET framework é o entorno de desenvolvemento de Microsoft para crear todo tipo de aplicacións baixo diferentes linguaxes, entre elas, as máis destacadas son: C#, F#, ou Visual Basic entre outras. Isto amosa as grandes posibilidades das que dispón hoxe en día plataforma .NET
As partes de .NET: CLR, CLS, CTS, BCL e CIL
Trataremos de facer un acercamento breve a estas siglas, noutro artigo ampliaremos o seu contido.
CLR (Common Language Runtime): trátase do entorno de execución de .NET, digamos que é o motor de todo o sistema .NET, necesitará doutras ferramentas para apoiarse nas especificacións e normas.
CLS (Common Language Specification): é a especificación que deben cumprir tódalas linguaxes de .NET para poder correr baixo a mesma plataforma. Para entendelo mellor, podemos crear unha clase en C# e recibir a herencia usando Visual Basic xa que o código compilado non pasa directamente a código executable, senón a un intermedio coñecido como IL.
CTS (Common Type System): define como son creados, administrados e usados os tipos (clases, estruturas…) en CLR.
BCL(Base Class Library): conxunto de librerías e API’s.
CIL (Common Intermedia Language): antes chamado Microsoft Intermediate Language ou MSIL, é unha linguaxe intermedia que usa a plataforma .NET(.exe e .dll)
.NET Framework, .NET Core e Xamarin
Diferencias entre .NET Core e .NET Standard
A plataforma esta divida en .NET Core e .NET Standard ou Framework, polo que debemos ter claro a que nos referimos, xa que aínda que ámbalas dúas veñen de .NET teñen usos diferentes.
.NET Framework ou Standard: permite crear aplicacións pensadas para correr baixo Windows. Podemos usar os Windows Forms ou WPF para aplicacións de escritorio e ASP.NET para a web.
.NET Core: é open source e multiplataforma e modular. Pensada para funcionar baixo GNU/Linux, Windows e Mac.
.NET en GNU/Linux: proxecto Mono
Mono\Ximian: Trátase da versión de .NET pensada para correr baixo plataformas GNU/Linux, deste xeito unha aplicación feita en C# pode correr nun sistema con Linux.