tutorials.de Buch-Aktion 05/2012
RSS-Feed anzeigen

Dem Dennis sein Blogdingen da...

Ja dat geht dotNET!

Bewerten
von Dennis Wronka am 06.03.09 um 19:01 (816 Hits)
Ja, der PHP-Junkie wagt einen Blick ueber den Tellerrand.

Viele von Euch moegen es nicht wissen, aber ich habe nicht mit PHP laufen gelernt.
Meine ersten Programmiererfahrungen habe ich durch das abtippen einen Monopoly-Clones in Basic auf einem Schneider gemacht.
Anschliessend QBasic unter MS-DOS, dann Pascal, zwischendurch was Assembler, weil die Grafik-Funktionen von Pascal so ar...lahm waren, Delphi und sogar was C/C++.

All das bevor ich ueberhaupt zu PHP kam, was heutzutage die Programmiersprache ist die ich hauptsaechlich nutze.

Vor diesem Hintergrund ist es wahrscheinlich weniger verwunderlich dass ich nun mal einen Blick auf .NET, genauer C# mit Mono, werfe.
Als IDE nutze ich dabei, als Linuxer, natuerlich MonoDevelop. Unter Windows hab ich aber auch mal Visual C# Express und auch SharpDevelop installiert.

Erste Experimente haben interessantes zutage gefoerdert. So kann ich, scheinbar recht problemlos, unter Windows erstellte .NET-Binaries (nichts wildes, nur eine WinForm mit Button) unter Linux mittels Mono ausfuehren, andersrum ist dies aber problematischer. So braucht man dann auch gleich die Windows-Version von Mono, GTK# und so weiter.

Auch scheint es als waere es nicht moeglich ein Visual C#-Projekt mit Mono zu kompilieren, wenngleich das Binary, wie gesagt, einwandfrei funktioniert.
Wie es mit SharpDevelop-Projekten aussieht hab ich noch nicht getestet. Also das Kompilieren. Ausfuehren geht, das hab ich getestet.

Den Namespace System.Windows.Forms zu verwenden scheint auch ein Problem darzustellen. Wenngleich nichts im Code wirklich darauf zugreift, so reicht doch ein
Code :
1
using System.Windows.Forms
den Build-Vorgang zu vereiteln.

Entsprechend ist es mit der Interoperabilitaet von .NET wohl doch noch nicht so ganz so wie man es sich eigentlich wuenschen wuerde.
Welcher Windows-User wird sich mit Mono ein weiteres .NET-Framework installieren wollen nur um ein oder zwei Tools nutzen zu koennen die nunmal eben ein Linux-User programmiert hat?
Wie gesagt, andersherum ist es da leichter. Unter Windows erstellte, z.B. mittels Visual C# oder eben SharpDevelop, Programme funktionieren mit Mono scheinbar ganz gut.
Wie gesagt, ich hab jetzt nicht viel getestet, aber Mono ist, seit Version 2.0, auch recht aktuell. Nach allem was ich gelesen habe soll es wohl zumindest auf dem Stand von .NET 3.0 sein, was ja wohl fuer die meisten Projekte ausreichen sollte.

Entsprechend scheint der Stand der Dinge nun wohl so zu sein dass wenn man unter Linux mit .NET entwickelt auch fuer Linux entwickelt. Wer platformuebergreifende .NET-Entwicklung will scheint Windows als Entwicklungsumgebung zu benoetigen. Finde ich etwas schade.

Ich werde auf jeden Fall in den kommenden Tagen noch etwas mehr rumspielen, und auch mal ein paar einfache Test-Projekte (z.B. sowas wie einen Datei-Browser/Bild-Betrachter) in Visual C# Express und in SharpDevelop umsetzen und dann unter Linux testen.

Ergebnisse werde ich dann natuerlich, wie ueblich, hier in meinem Blog kundtun.

Abschliessend will ich noch loswerden dass es doch irgendwie erfrischend ist mal wieder was anderes als PHP- oder Bash-Scripts zu coden. Und bei der Verwandtschaft von C# zu C/C++ fuehl ich mich auch nicht gaenzlich verloren.

"Ja dat geht dotNET!" bei Twitter speichern "Ja dat geht dotNET!" bei Facebook speichern

Kategorien
Programming

Kommentare

  1. Avatar von Dennis Wronka
    Also ein paar Tests und Hilfe aus unserem IRC haben mich weitergebracht.
    Ich kann nun auch, wenngleich ohne den Designer, Windows-Forms-Anwendungen erstellen welche unter Windows sogar ueber das normale .NET-Framework laufen ohne dass Mono zum Einsatz kommen muss.

    Das ist doch schonmal was. Fuer Leute die den Designer also eh nicht verwenden scheint Mono somit nun auch eine Moeglichkeit darzustellen unter Linux Anwendungen zu entwickeln die auch auf Windows laufen. Also ohne Mono, da dies ja eine zusaetzliche Huerde fuer den User darstellt.