PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dotGNU oder Mono?


Ganon
2005-06-15, 17:27:30
Hi.

Ich möchte mir mal die ganze .NET-Geschichte angucken.

Jetzt stellt sich die Frage, welches von beiden Projekten nun "besser" (bzw. weiter) ist.

Hier und in allen Medien wird ja immer Mono genannt, bzw. als besser dargestellt.

Jetzt habe ich aber von mehreren Seiten gehört das dotGNU weiter, schneller und portabler ist und dazu von M$ noch unterstützt wird. D.h. die Zukunftsaussichten seien bei dotGNU viel besser.

Nunja. Nun wollte ich mal fragen, was nun stimmt?

Danke. :)

ScottManDeath
2005-06-15, 21:44:07
Mhmm ich würde die .NET Implementation von Microsoft nutzen, da sie im Gegensatz zu dotGNU und Mono featurecomplete ist. Das .NET SDK ist frei verfügbar, SharpDevelop kannst Du als freie IDE für C# verwenden, falls Du keinen Zugriff auf Visual C# hast.

Wenn Du damit einige Erfahrung gesammelt hast, würde ich dann das ganze unter Mono testen.

Ganon
2005-06-15, 22:00:17
Mhmm ich würde die .NET Implementation von Microsoft nutzen...

Die läuft nur so schlecht unter OS X. ;)

Coda
2005-06-15, 22:28:51
Spielt das denn eine Rolle? Beide sollten sich an den MS Standard halten soweit es schon implementiert wird, also entsprechend Programme die die Schnittmenge der Features aller drei VMs verwenden sollten überall lauffähig sein.

Ich hätte jetzt auch Mono gesagt, weil man einfach mehr davon hört und das Projekt anscheinend schneller fortschreitet, but as always your mileage may vary ;)

Exxtreme
2005-06-16, 08:40:06
Mhmm ich würde die .NET Implementation von Microsoft nutzen, da sie im Gegensatz zu dotGNU und Mono featurecomplete ist. Das .NET SDK ist frei verfügbar, SharpDevelop kannst Du als freie IDE für C# verwenden, falls Du keinen Zugriff auf Visual C# hast.

Wenn Du damit einige Erfahrung gesammelt hast, würde ich dann das ganze unter Mono testen.
Das Problem ist, daß die .NET-Runtime von MS recht viel windowsspezifisches Zeugs verwendet. Und ich gehe davon aus, daß Ganon .NET-Anwendungen eben nicht unbedingt für Windows schreiben/verwenden will.

grakaman
2005-06-16, 08:53:28
Spielt das denn eine Rolle? Beide sollten sich an den MS Standard halten soweit es schon implementiert wird, also entsprechend Programme die die Schnittmenge der Features aller drei VMs verwenden sollten überall lauffähig sein.


Die Frage ist imo nur, ob solche Fremdimplementierungen ebenfalls so effizient/ineffizient umgesetzt wurden.

Demirug
2005-06-16, 08:57:03
Das Problem ist, daß die .NET-Runtime von MS recht viel windowsspezifisches Zeugs verwendet. Und ich gehe davon aus, daß Ganon .NET-Anwendungen eben nicht unbedingt für Windows schreiben/verwenden will.

Die Runtime entspricht den Standard. Du meinst sicher das zu .Net eine Reihe von Windows Spezifischen Klassen gehören welche nicht im Standard festgelegt sind.

grakaman
2005-06-16, 09:05:54
Das Problem ist, daß die .NET-Runtime von MS recht viel windowsspezifisches Zeugs verwendet. Und ich gehe davon aus, daß Ganon .NET-Anwendungen eben nicht unbedingt für Windows schreiben/verwenden will.

Na klar enthält sie viel windowsspezifisches Zeugs, ist ja schließlich auch für Windows. Die .NET Frameworklibraries für Mono werden dann eben verstärkt auf irgendwelche Unix libs zugreifen. Und gerade bei .NET Windows Forms ist es so, wenn sie etwas komplexer werden, dass du auch schon recht oft Win32 Aufrufe machen musst. Damit ist dann eben deine Portabilität hin, bis irgendwann mal genau diese Anforderungen mit einer neuen Framework Version vielleicht in .NET Zwischencode gepackt werden und jede Runtime Frameworklibary seinen spezifischen Plattformcode dann drunter verstecken kann.

Exxtreme
2005-06-16, 09:06:05
Die Runtime entspricht den Standard. Du meinst sicher das zu .Net eine Reihe von Windows Spezifischen Klassen gehören welche nicht im Standard festgelegt sind.
Genau das meine ich. Sorry, wenn es unmissverständlich war. Wobei die Klassen an sich schon zum Gesamtpaket gehören.

Exxtreme
2005-06-16, 09:11:50
Die .NET Frameworklibraries für Mono werden dann eben verstärkt auf irgendwelche Unix libs zugreifen.
Mono gibt's auch für Windows inkl. der GTK#-Libs.

http://www.mono-project.com/Downloads

grakaman
2005-06-16, 09:26:12
Mono gibt's auch für Windows inkl. der GTK#-Libs.

http://www.mono-project.com/Downloads

So wie ich das verstanden habe, ist GTK# lediglich ein Language Binding (Wrapper) um die Windows Version von GTK+, die wiederum auf die Win32 API zugreift. Mir ist nicht ganz klar, wie du sonst vernünftige Window GUIs machen willst, ohne auf die entsprechenden Plattform APIs in irgend einer Art und Weise zuzugreifen.

Exxtreme
2005-06-16, 09:40:08
So wie ich das verstanden habe, ist GTK# lediglich ein Language Binding (Wrapper) um die Windows Version von GTK+, die wiederum auf die Win32 API zugreift. Mir ist nicht ganz klar, wie du sonst vernünftige Window GUIs machen willst, ohne auf die entsprechenden Plattform APIs in irgend einer Art und Weise zuzugreifen.
Die GTK-Controls entsprechen nicht ganz den Win32-Controls. Ich glaube, daß das GTK-Framework alles selbst rendert. Vielleicht werden die Drawing-Funktionen von Windows benutzt. Wenn man sich die Menüs oder die Datei-öffnen-Dialoge von Windows-GTK-Anwendungen anschaut (z.B. Gimp) dann sieht man das.

Hier mal ein Datei-speichern-Dialog von Gimp:

grakaman
2005-06-16, 09:53:23
Vielleicht werden die Drawing-Funktionen von Windows benutzt.

Na aber ganz genau darum ging es mir doch ;)

Ganon
2005-06-16, 10:00:54
Also ich habe jetzt das gemacht, was ich eigentlich nicht wollte. ;) Ich habe beide installiert. ;) dotGNU hat einen Wrapper um auf Mono-Klassen zugreifen zu können.

Vom Vergleich her den ich gefunden habe. Im Wiki von dotGNU:
dotGNU ist schneller beim Interpreter als Mono, aber Mono hat den besseren JIT. Dafür läuft Mono nicht auf allzu vielen Plattformen. Wer wie weit ist, weiß wohl keiner. Angeblich ist Mono schon mehr in Richtung .NET2, dafür ist dotGNU besser in .NET1.1, oder so. Außerdem scheint dotGNU beliebter bei der FSF zu sein.

Nunja. Es fehlt mir jetzt noch an einer IDE. Leider bezieht sich Mono (bzw. Monodevelop) stark auf gtk#. Das ist aber ziemlich blöd unter OS X, da man dann das halbe GNome installieren muss, bevor es läuft. "Nur" zum lernen von .NET will ich mir das nicht antun. Hat jemand einen Vorschlag für eine halbwegs gute IDE mit Code-Vervollständigung (macht sich gut beim Lernen) für C# die unter Mono/dotGNU läuft, ohne gtk#?

OK. Wenn alles nichts hilft dann muss ich wohl oder übel doch VirtualPC anschmeißen... aber erst mal warten. ;)

grakaman
2005-06-16, 11:45:02
Laut Google gibts wohl für Eclipse ein C# Plugin. Aber das alleine wird wohl bestimmt nicht ausreichen, um von Komfort zu sprechen.

Ganon
2005-06-16, 11:53:04
Mal gucken. Ich gucks mir mal an, wenn ich wieder zu Hause bin.

Solange Code-Verfollständigung funzt und ein bisschen Syntax-Einfärbung, reicht mir das. Ich will es mir ja erst mal nur grob ausprobieren.

Ganon
2005-06-16, 17:36:52
Na toll. :|

Das C# PlugIn funzt laut Eclipse nur unter Windows und Linux... suuuper.

Man ist das ein guter Start in eine neue Programmiersprache.... :|