Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 19 reacties
Bron: Mono-project, submitter: Wennekes

Mono logo (75 pix) De ontwikkelaars achter Mono hebben hebben maandag de belangrijke mijlpaal van versie 2.0 bereikt. Mono is een opensource implementatie van het .Net Framework. Door gebruik te maken van Mono kunnen ontwikkelaars crossplatform applicaties schrijven die niet alleen onder Windows zullen werken, maar ook op bijvoorbeeld Mac OS X en Linux. De software bevat onder andere een c#-compiler, een .Net compatible runtime en twee verschillende sets api's. De eerstgenoemde verzorgt compatibiliteit met Microsofts .Net Framework (inclusief ondersteuning voor asp.net, ado.net en een aantal andere componenten) en de andere biedt allerlei Linux- en Unix-specifieke functies. Hieronder kunnen de belangrijkste veranderingen uit de 2.0-release worden gevonden:

Microsoft Compatible APIs
  • ADO.NET 2.0 API for accessing databases.
  • ASP.NET 2.0 API for developing Web-based applications.
  • Windows.Forms 2.0 API to create desktop applications.
  • System.XML 2.0: An API to manipulate XML documents.
  • System.Core: Provides support for the Language Integrated Query (LINQ).
  • System.Xml.Linq: Provides a LINQ provider for XML.
  • System.Drawing 2.0 API: A portable graphics rendering API.
Mono APIs
  • Gtk# 2.12: A binding to the Gtk+ 2.12 and GNOME libraries for creating desktop applications on Linux, Windows and MacOS X.
  • Mono.Cecil: A library to manipulate ECMA CLI files (the native format used for executables and libraries).
  • Mono.Cairo: A binding to the Cairo Graphics library to produce 2D graphics and render them into a variety of forms (images, windows, postscript and PDF).
  • Mono's SQLite support: a library to create and consume databases created with SQLite.
  • Mono.Posix: a library to access Linux and Unix specific functionality from your managed application. With both a low-level interface as well as higher level interfaces.
Third Party APIs bundled with Mono
  • Extensive support for databases: PostgreSQL, DB2, Oracle, Sybase, SQL server, SQLite and Firebird.
  • C5 Generics Library: we are bundling the C5 generics collection class library as part of Mono.
Compilers
  • C# 3.0 compiler implementation, with full support for LINQ.
  • Visual Basic 8 compiler.
  • IL assembler and disassembler and the development toolchain required to create libraries and applications.
Tools
  • Debugger: this is the first release when we support a debugger for managed code.
  • Gendarme: is an extensible rule-based tool to find problems in .NET applications and libraries. Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET) and looks for common problems with the code, problems that compiler do not typically check or have not historically checked.
  • Mono Linker: a linker that allows developers to reduce the size of their executables and libraries by removing features from libraries using an XML definition of the desired public API.
  • Mono Tuner: a tool to apply arbitrary user-defined transformations to assemblies. Mono uses this library to produce the Silverlight core libraries from the main system libraries.
  • Mono Documentation Tools: the Mono Documentation framework has been upgraded to support documenting generics and extension methods. The tools can be used to produce online and offline documentation for any any APIs, and are used by the project to document our own APIs.
[break]
Mono 2.0 (481 pix)
Versienummer:2.0
Releasestatus:Final
Besturingssystemen:Windows 2000, Linux, BSD, Windows XP, macOS, Solaris, Windows Server 2003, Windows Vista, Windows Server 2008
Website:Mono-project
Download:http://www.go-mono.com/mono-downloads
Licentietype:Voorwaarden (GNU/BSD/etc.)
Moderatie-faq Wijzig weergave

Reacties (19)

Beetje verwarrend dit, ik stel voor: :+
Mono = 1.0
Stereo = 2.0
ff afmaken :P :

Surround 4.0
Dolby Digital/DTS 5.1
Dolby Digital Masters/DTS EX 7.1

etc. etc.
Mono is Spaans voor AAP
Association of American Publishers?
Tutorials daar wordt regelmatig de vergelijking tussen linux/windows programmeren onder de loep genomen
Was het hele idee niet juist een VM te maken zodat apps ongemodficeerd (en zonder opnieuw te compilen) konden draaien op andere platforms?

(Nou ja, ik weet niet of dit wel het doel was van MS, maar dat is toch wel het generale idee van een VM, naast enige hardwareabstractie).
Ja inderdaad, maar programmeurs kunnen in C# nog steeds externe, platformspecifieke libraries aanroepen door een systeem wat P/Invokes heet. Om zulke software te draaien heb je dan nog weer Wine nodig.

Dat is ook één van de redenen waarom bijvoorbeeld de populaire IDE SharpDevelop niet onder Linux draait; het aanroepen van de Debugger e.d. gebruikt erg veel systeemaanroepen (gelukkig is er een platformonafhankelijke branch van; MonoDevelop).
Nu heb ik nooit met C# gewerkt (en dat zal ik voorlopig ook niet doen), maar hoe jij het omschrijft begin ik gelijk een soort parallel te trekken tussen P/Invokes en Java rmi... Smerig (maar helaas soms nodig) dus.
Ik las een tijd geleden dat Mono ook op Server Core 2008 zou moeten gaan werken (link helaas kwijt). Zou erg mooi zijn, want Server Core ondersteunt geen .NET Framework en dus geen IIS met aspx mogelijkheden.

Ga nog even googelen voor de juiste link...
.Net voor Core komt er wel gewoon, probleem is alleen dat de huidige .Net veel grafische elementen in zich heeft zitten, welke op Core niet beschikbaar zijn.
.Net moet dus behoorlijk aangepast worden. Maar wat ik er van weet, word daar wel aan gewerkt.

Zonder .Net op Core ook geen powershell op Core, en die komt er ook aan.
Iemand ervaring met het gebruik onder Windows? Is het bijvoorbeeld sneller dan het .Net framework? Of begrijp ik de werking niet helemaal goed?
Mono is bedoeld voor Linux/Unix/OSX, zodat die besturingssystemen gebruik kunnen maken van software die op het .NET Framework draait. Het is geen vervanger van het .NET Framwork op Windows.
Ah ok... Ik was in de war door de zin "Mono is een opensource implementatie van het .Net Framework." en het feit dat Windows als besturingssysteem gemeld wordt.
Dat klopt niet helemaal. Je kunt Mono ook gewoon gebruiken als .NET vervanger onder Windows. Inderdaad dus die "opensource implementatie van het .NET Framework" en als zodanig naast .NET te gebruiken.
Omdat onder Windows .NET vaak al geïnstalleerd is, is het dan wel zo makkelijk om .NET te gebruiken.
En dat maakt de vraag
Is het bijvoorbeeld sneller dan het [originele] .Net framework?
Erg interessant/relevant....

Iemand ervaring mee?
Ik heb geen ervaring, maar wel even gegoogled op benchmarks. Het meeste was vrij oud en gezien de snelle ontwikkeling van Mono niet al te relevant meer. Algemene toon is wel dat Mono langzamer is.
De meest recente benchmark die ik zo gauw kon vinden was deze:
John Walker's FBENCH: Mono vs .NET
Ook behoorlijk wat langzamer, maar slechts één benchmark.
Ik denk dat de focus meer ligt op het completer maken van de support voor de .net API dan voor de snelheid. Over het algemeen wil je eerste zorgen dat het uberhaupt werkt voor je je druk gaat maken over de snelheid...
Erg goed van het team van Novell, hoewel ze zelf aangeven dat de GUI een groot probleem is.
Ben zelf al een beetje bezig geweest om te kijk of de Cocoa# bidings kan koppelen aan de windows.form.
Op die manier zal een windows .net app de zelfde look krijgen van Mac os. Maar helaas dat was niet zo makkelijk, toch nog even goed kijken WxWidgets.
Het lijkt dat zodra ze de XAML interface hebben gepoort het OS afhankelijk maken makkelijk zou gaan. Kijk b.v naar silverlight dat het zowel op windows als Mac werkt en Moonlight voor linux.
Als dat punt nog wordt getakkeld zou het echt geweldig zijn.
en de andere biedt allerlei Linux- en Unix-specifieke functies
Moet ik me hierbij zoiets voorstellen als de Microsoft.Win32 namespace in .Net 2.0? En ook niet onbelangrijk, welke gedeeltes van de Microsoft.Win32 namespace werken in Mono eigenlijk? Of loopt dat via Wine ofzo?
En hoe zit het met P/Invoke naar native win32/win64 libraries die vaak door programmeurs gedaan worden?

[Reactie gewijzigd door _Thanatos_ op 7 oktober 2008 09:50]

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True