From Wikipedia, the free encyclopedia
Mono és el nom d'un projecte de codi obert impulsat per Novell per crear un grup d'eines lliures, basades en GNU/Linux i compatibles amb .NET segons l'especificat pel ECMA.
| |
Tipus | entorn de treball |
---|---|
Versió inicial | 30 juny 2004 |
Versió estable | |
Llicència | llicència MIT llicència BSD de 3 clàusules Llicència Apache, versió 2.0 |
Característiques tècniques | |
Sistema operatiu | Linux, Microsoft Windows i macOS |
Escrit en | C, C# i Extensible Markup Language |
Equip | |
Creador/s | Miguel de Icaza |
Desenvolupador(s) | Xamarin, Ximian i Novell |
Més informació | |
Lloc web | mono-project.com (anglès) |
Seguiment d'errors | Seguiment d'errors |
Free Software Directory | Mono |
| |
Mono posseïx importants components útils per a desenvolupar programari:
Existeix un projecte similar, anomenat Portable.NET, que és part del projecte dotGNU.
Tan bon punt Microsoft publica els documents que parlen de l'arquitectura .NET al desembre de 2000, Miguel de Icaza (Co-fundador de l'empresa Ximian, fundador i president de la GNOME Foundation) comença a interessar-se en ells.
GNOME sempre havia lluitat per proporcionar facilitats al programador i una de les característiques més conegudes és que existeixen multitud de "bindings" (connectors) per a poder utilitzar qualsevol llenguatge per a desenvolupar aplicacions. Però l'elaboració de d'aquests connectors era tremendament laboriosa i cada vegada que es realitzava un canvi a la interfície original, era necessari canviar tots i cadascun dels connectors.
Per a intentar millorar i facilitar la reutilització del codi es va realitzar una implementació de components utilitzant CORBA dita Bonobo. Però tampoc va tenir èxit, ja que era necessari que tot el món utilitzés aquesta característica i això no va ser així. Per tant, amb .NET s'obre una nova porta per aconseguir fer de GNOME, en un futur, un escriptori millor i més atractiu. Tant per als usuaris com per als programadors. Amb aquesta tecnologia per fi s'aconsegueix el que el projecte GNOME sempre havia cercat, independència del llenguatge per a programar en aquest escriptori.
Miguel d'Icaza, després d'analitzar l'intèrpret del byte code, adverteix que no existeixen especificacions. Al febrer de 2001 comença a indagar per aquesta informació a les llistes de correu de .NET i al mateix temps comença a treballar en un compilador C# amb la cooperació amb Rhys Weatherley i Jay Freeman. El compilador també va ser programat en C# com un exercici per a demostrar la seva potència.
A l'abril de 2001, l'ECMA publica el format d'arxius que faltava i a la GUADEC (6 al 8 d'abril de 2001) Icaza demostra les habilitats del seu compilador. Després d'una minuciosa anàlisi, on clarament es conclou que és possible construir aquesta tecnologia, Ximian reasigna recursos humans d'altres projectes i crea l'equip Mono. Aspirant a tenir una eina que anés un substituint per complet la tecnologia .NET, van formar "The Mono Open Source Project", el qual va ser anunciat al juliol de 2001 a la conferència d'O’Reilly.
Van passar 3 anys fins que el 30 de juny de 2004 Mono 1.0 finalment va ser llançat.
Les biblioteques de classe ens proporcionen un conjunt de facilitats que ajuden al desenvolupament d'aplicacions. Són escrites primerament en C#, però gràcies al llenguatge comú d'especificació (CLS), poden ser invocades en qualsevol altre llenguatge de .NET. Les biblioteques de classe estan estructurades en Namespaces i posades en producció en biblioteques compartides denominades Assemblies. Quan parlem del framework de .NET, ens estem referint primerament a les llibreries de classe.
Els Namespaces són un mecanisme que permet agrupar lògicament classes similars en una estructura jeràrquica evitant conflictes de noms. L'estructura s'implementa utilitzant paraules separades per punts, on la paraula de primer nivell més comú és System, com System.IO o System.Net.
Els Assemblies són el paquet físic de les llibreries de classe. Són arxius .dll, com per exemple les llibreries de Windows. Exemples de llibreries són mscorlib.dll, System.dll, System.Data.dll.
Els Namespaces en general estan composts per molts assemblies i un assembly pot estar compost de diversos arxius.
El llenguatge comú d'infraestructura o més comunament anomenat Common Language Runtime (CLR) és implementat per l'executable de Mono. El runtime és utilitzat per executar aplicacions compilades en .NET. Aquest llenguatge comú d'infraestructura està definit en els estàndards ECMA i ECMA-335. Per a executar una aplicació s'haurà d'invocar el runtime amb els paràmetres adequats.
Es troba especificat a l'estàndard ECMA-335 i defineix la interfase amb el CLR. Per exemple, convencions sobre el tipus de dades que s'utilitzarà per implementar els enumerats. El compilador de Mono genera una imatge que compleix amb el CLS, aquesta imatge està codificada en el denominat Common Intermediate Language (CIL) o Llenguatge Intermedi Comú. El runtime de Mono pren aquesta imatge i l'executa.
MonoDevelop és un Entorn Integrat de Desenvolupament lliure de dissenyat primordialment per a C# i altres llenguatges .NET com Nemerle, Boo, i Java (via IKVM.NET). MonoDevelop originalment va ser una adaptació de SharpDevelop para Gtk#, però des de llavors s'ha desenvolupat per a les necessitats dels desenvolupadors de Mono. L'IDE inclou organitzador de classes, ajuda incorporada, completació de codi, Stetic (dissenyador de GUI), suport per a projectes, i un depurador integrat.
La implementació de Mono d'aquests components de .NET no sotmesos a ECMA per a la seva estandardització ha aixecat algunes preocupacions de la violació de patents.
Els programes següents fan servir l'API de Mono i C#.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.