2008-08-05 19 views
32

Ich fing an zu versuchen, mit Mono zu spielen, hauptsächlich zum Spaß im Moment. Ich habe zuerst versucht, das Visual Studio-Plugin zu verwenden, das ein csproj in ein Makefile konvertiert, aber es schien keine Version für Visual Studio 2005 zu geben. Ich las auch über die MonoDevelop-IDE, die nett klang. Leider gibt es dafür kein vorgefertigtes Windows-Paket. Ich habe versucht, einige Anweisungen zu befolgen, um es zu erstellen, indem Abhängigkeiten von anderen semi-related-Installationen kombiniert werden. Es hat nicht funktioniert, aber das liegt wahrscheinlich daran, dass ich ein Windows-orientierter Typ bin und kaum Makefile buchstabieren kann.Was ist das beste Setup für die Mono-Entwicklung unter Windows?

Also meine Frage ist: Was ist der energieärmste Weg, um eine Mono-basierte Entwicklung unter Windows zu starten?

Antwort

15

Ich würde empfehlen, VMWare Player und die kostenlose Mono-Entwicklungsplattform Bild, das auf der Website zur Verfügung gestellt wird.

Download Mono

Rüstzeit für diese minimal sein, und es können auch Sie Ihren Code bekommen in .NET arbeiten und dann konzentrieren sich auf Themen ohne massiven Aufwand von Schaltmaschinen und dergleichen zu portieren. Mit den VMWare Player-Tools können Sie die Dateien einfach per Drag & Drop verschieben, um sie zu kopieren.

Ich bin auf der Suche nach ein paar meiner .NET-Anwendungen und machen sie Mono-konform, und das ist der Weg, den ich hier in Kürze nehmen werde.

9

@Chris Ich habe festgestellt, dass Visual Studio die beste IDE für die Entwicklung gegen .NET ist - ich denke, der beste Weg Mono zu zielen ist nur Visual Studio unter Windows zu entwickeln und zu bauen, dann einfach diese Binaries direkt laufen zu lassen Linux (oder welche andere Mono-Plattform Sie auch verwenden). Es gibt kostenlose Versionen von Visual Studio, wenn die Lizenzierung ein Problem darstellt. Wenn Sie unter Linux entwickeln, ist die beste Software wahrscheinlich Eclipse mit einem Mono-Plugin (siehe The Mono Handbook - Eclipse für Installationsanweisungen), aber bedenken Sie, dass es nicht annähernd die Menge an Funktionen oder Sprachintegration von Visual Studio hat.

@modesty Mono ist eine Open-Source-Implementierung des .NET-Frameworks von Drittanbietern, mit der Sie .NET-Anwendungen auf anderen Plattformen als Windows ausführen können.

3

Mein erster Instinkt wäre das eher nicht hilfreiche "Install Linux". Du bist etwas swimming against the current zu versuchen und in Mono unter Windows zu entwickeln. Die Installation von GTK und alles ist ein bisschen lästig in meiner Erfahrung.

Wenn Sie mit Linux das Gefühl haben, dann könnten Sie Try Ubuntu

Ansonsten:

Es gibt einige Informationen hier: http://www.mono-project.com/Mono:Windows und es scheint, die cygwin Werkzeugkette könnte Ihre beste Wette. Ich glaube nicht, dass Sie in der Lage sein werden, Makefiles zu vermeiden, leider. Ich fand ein etwas expliziteres Tutorial von O'Reilly.

@modesty:

Mono bietet die notwendige Software zur Entwicklung und Ausführung von .NET Client- und Serveranwendungen unter Linux, Solaris, Mac OS X, Windows und Unix. Das Open-Source-Projekt Mono wird von Novell ( http://www.novell.com) gesponsert und hat eine aktive und enthusiastische Community, die sich als führende Wahl für die Entwicklung von Linux-Anwendungen positioniert.
- Von der Mono-Site.

1

Ich mochte die Idee, MonoDevelop hauptsächlich zu verwenden, um sicherzustellen, dass meine Sachen gegen die Mono-Laufzeiten funktionieren würden. Ich denke, es wäre auch möglich, mit msbuild verrückt zu werden und einige benutzerdefinierte Ziele zu schreiben, die versuchen, gegen Mono zu bauen, aber das emuliert im Grunde die Funktionalität des jetzt nicht mehr existierenden Plugins, von der ich annahm, dass sie nicht einfach zu erstellen war. Ich habe kleine Erfahrung mit Cygwin, und ich bin glücklich, den ganzen Tag "configure" und "make" zu tippen, aber wenn ein Problem in diesem Prozess auftritt, bin ich praktisch geschraubt. Ich werde wahrscheinlich versuchen, mit all dem wieder zu spielen, aber wenn ich mehr als ein paar Stunden brauche, um einen Weg zu finden, bequem gegen die Mono-Laufzeiten zu bauen, werde ich wahrscheinlich einfach bailen.

Ich werde die Eclipse-Idee versuchen. Ich benutze das für Java, also könnte ich die C# Sachen zum Funktionieren bringen. Wir werden sehen ...

6

Eines der besten Dinge, die Sie tun können, wenn Sie mit Visual Studio for Mono arbeiten, ist MoMA http://www.mono-project.com/MoMA. Dies überprüft eine beliebige Anzahl von Baugruppen, die Sie erstellen, und generiert einen Bericht, der mögliche Mono-Probleme anzeigt (z. B. Methoden, die nicht in der Monobibliothek implementiert sind). Es kann von einer GUI oder der Befehlszeile zur Verwendung in automatisierten Builds ausgeführt werden.

3

Eclipse-Plugin für Mono ist tot. Unter Linux verwenden Sie MonoDevelop oder X-Develop, wenn Sie eine gute kommerzielle Unterstützung mögen (obwohl MonoDevelop die Funktionen schnell beendet). Unter Windows verfügt SharpDevelop über benutzerdefinierte MSBuild-Ziele zum Kompilieren des Codes gegen Mono.

Da sich Mono und MonoDevelop schnell ändern, sollten Sie die neuesten Versionen verwenden, auch wenn sie noch nicht als stabil markiert sind (z. B. sind die mit dem Ubuntu-Lager gelieferten Versionen schrecklich veraltet).

Das VMWare-Image ist eine gute Möglichkeit, Windows-Code unter Linux zu testen. Berühren Sie Cygwin nicht, es sei denn, Sie sind bereits sehr anpassungsfähig.

4

Miguel hatte einen Beitrag zum Debuggen von Mono unter Linux mit Remote-Debugging auf Visual Studio. Das könnte etwas sein, was Sie untersuchen möchten ... Using Visual Studio to debug Mono. Es gibt auch ein neues Projekt mit dem Namen CloverLeaf, dessen Ziel es ist, das Debuggen von Mono unter Windows in Visual Studio zu ermöglichen.

4

Es gibt einfach keinen Grund zu bauen Ihre App mit Mono; Der springende Punkt der .NET CLR ist, dass die kompilierte Ausgabe plattformübergreifend ist.

So können Sie es einfach mit Ihrer Lieblings-IDE bauen (und wenn Sie IDEs mögen, Microsoft ist die beste zu verwenden) und dann Test es auf Mono. Selbst wenn Sie Mono unter Windows arbeiten, wäre dies kein sehr guter Test für die Portabilität Ihrer App: Was ist, wenn Ihre App dumme Sachen macht wie die Annahme, dass Dateinamen umgekehrte Schrägstriche enthalten oder dass ein spezieller Ordner Programm heißt? Die beste Möglichkeit, Portabilitätstests durchzuführen, besteht darin, Ihre App auf der Zielplattform zu testen.

Und das ist ziemlich einfach mit einem Linux-VMware-Player wie dem bei http://www.go-mono.com/mono-downloads/download.html zu tun.

4

Persönlich kompiliere ich nur in Visual Studio 2008, als ob es für .NET 2.0 und dann in Mono (VS2008 unter Windows in einer VirtualBox, Mono unter OSX) ausgeführt wurde. Alle Probleme treten sowieso zur Laufzeit auf, so dass das System einwandfrei funktioniert.

Ich habe gerade dieses very new link gefunden, das ist erstaunlich und zeigt Ihnen, wie Sie Visual Studio 2008 für Mono einrichten.

Gleichzeitig ist die Einrichtung Mono on OpenSuse or Ubuntu inside a VirtualBox (Suns Produkt) einfach, schmerzlos und zwingt Sie nicht, die Plattform, auf der Sie normalerweise leben, zu verlassen.

Dies ist nicht relevant für Ihre Frage, aber ich könnte feststellen, dass ich gerade in Mono und ich bin erstaunt, wie viel von. NET ist, einschließlich viel der Winforms Zeug.

11

Ein Jahr später und die Antwort darauf hat sich stark verändert. Sie können jetzt MonoDevelop unter Windows verwenden, oder wenn Sie in Visual Studio komfortabler sind, können Sie Visual Studio Tools verwenden, um alles zu schreiben und anschließend in der VM zu debuggen, um sicherzustellen, dass es unter Linux funktioniert.