C# auch für Linux geeignet ?



  • Hallo zusammen...
    in meinem Studium programmiere ich jetzt seit 2 Jahren mit erfolg Java. Doch stößt man da irgenwann auch Grenzen und man will mal was neues probieren.
    Da ich auch viel mit Linux mache und meine Programme gern plattformunabhängig einsetze stellt sich mir die Frage ob C# hierfür geeignet ist.
    Unter Linux gibt es ja das "Mono Projekt" mit dem man C# Programme auch mit Linux ausführen kann. Nur wüsst ich jetzt gern ob es da grobe Unterschiede gibt:

    Kann ich mehr oder weniger problemlos in Windows meine C#-Programme schreiben und diese dann "ohne Spezialumbauten" mit Mono auch unter Linux nutzen?
    Welche freie IDE kann man für den Einstieg in C# empfehlen ?
    Wie sieht es mit freien Compilern aus ?
    Gibt es mit C# ähnliche Grenzen wie in Java was das ansprechen von Hardware etc. angeht ?

    Gut, ich hab noch nicht so intensiv gegoogelt, werd mich aber gleich mal dran machen.

    gruss
    Alex



  • ok, hab gegoogelt...

    SharpDevelop is ne freie IDE. Und es gibt ein Plugin für Eclipse. Compiler gibts sowohl Mono als auch das standard .NEt 1.1 Framework.

    Fehlen nur noch die anderen noch offenen ragen.

    - Alex



  • Ok, doch noch ne weitere Frage:

    Für Java habe ich Anfangs bis ich mich eingearbeitet hatte "Guido Krügers Handuchder Javaprogrammierung" genutzt das es als HTML-Version zum runterladen gibt. War immer ein prima Nachschlagewerk für die allgemeine Javaüprogrammierung.

    Gibts sowas auch für C# oder komme ich um einen Buchkauf nicht drum rum ? Arbeite lieber mit HTML oder PDF-Büchern...

    - Alex



  • Es gibt auch noch "monodevelop". Das ist dabei, wenn du mono installierst. Bei mir zumindest.

    Ich glaub bei Galileo gibt's auch ein Openbook zum Thema C#.

    Musst halt beim Programmieren mit C# dann eher auf GTK# als auf die Window.Forms setzen.



  • Ich schau immer bei der Seite nach:
    http://www.codeproject.com/

    Ist zwar kein Nachlschalgewerk, aber es werden viele Themen besprochen.



  • solange du nicht das .NET Framework verwendetest müssten C# Programme ohne Probleme auch auf anderen Plattformen als Windows lauffähig sein. C# ist ja wie Java und C++ nur eine Sprache.



  • Hallo,

    zu deinen Fragen:

    Da ich auch viel mit Linux mache und meine Programme gern plattformunabhängig einsetze stellt sich mir die Frage ob C# hierfür geeignet ist.

    Nein, ist es noch nicht.
    Die CLR Implementierung von Mono ist im moment sehr lückenhaft, bei
    allzuvielen Funktionen steht leider nur "not implemented".
    Komplett fehlend sind die Forms Funktionen sowie alles aus dem Namespace
    Data (Datenbankzugriff).
    Wenn du allerdings in Sharpdevelop Mono als Compiler einrichtest, so
    kannst du sehr wohl gut plattformunabhängig programmieren, das Problem
    dabei: Kleinster gemeinsamer Nenner. Vieles fehlt einfach.
    Alternativ dazu habe ich eben ein Programm gefunden, welches
    den .NET Bytecode in Java Bytecode konvertiert.

    Welche freie IDE kann man für den Einstieg in C# empfehlen ?

    Sharpdevelop in Windows, Monodevelop in Linux.

    Wie sieht es mit freien Compilern aus ?

    Mono

    Gibt es mit C# ähnliche Grenzen wie in Java was das ansprechen von Hardware etc.
    angeht ?

    Solange du nur die Funktionen der CLR verwendest: Ja
    Unter Windows kannst du jedoch direkt auf die Winapi zugreifen, ob das
    aber so sinnvoll ist, ist eine andere Frage.
    Such mal in Google, zumindest eine USB Librarie für C# habe ich gefunden.

    Ich hoffe das beantwortet deine Fragen soweit.
    Eine andere Frage ist, ob C# soviel neues für dich bietet wenn du
    Java gewohnt bist, die Sprachen sind doch vom Prinzip recht ähnlich.

    Viele Grüße!



  • Headhunter schrieb:

    Da ich auch viel mit Linux mache und meine Programme gern plattformunabhängig einsetze stellt sich mir die Frage ob C# hierfür geeignet ist.

    Nein, ist es noch nicht.
    Die CLR Implementierung von Mono ist im moment sehr lückenhaft, bei
    allzuvielen Funktionen steht leider nur "not implemented".
    Komplett fehlend sind die Forms Funktionen sowie alles aus dem Namespace
    Data (Datenbankzugriff).

    Also das ist so nicht korrekt:
    Der Data-Namespace ist (fast) vollstaendig implementiert. ZB funktionieren SQLServer-, MySQL-, ODBC-Provider, uvm schon zu 100%.
    Desweiteren ist ein grosser Teil der Windows-Forms ebenfalls schon implementiert und auch nutzbar. Der komplette Namespace soll in Mono 1.2 implementiert sein.
    Allerdings sollte man sich ueberlegen bei Mono nicht eher GTK# fuer die Forms zu nutzen



  • Also das ist so nicht korrekt:
    Der Data-Namespace ist (fast) vollstaendig implementiert. ZB funktionieren SQLServer-, MySQL-, ODBC-Provider, uvm schon zu 100%.
    Desweiteren ist ein grosser Teil der Windows-Forms ebenfalls schon implementiert und auch nutzbar. Der komplette Namespace soll in Mono 1.2 implementiert sein.
    Allerdings sollte man sich ueberlegen bei Mono nicht eher GTK# fuer die Forms zu nutzen

    Zumindest in der bei mir installierten Mono 1.1.8.3 Version ist im Data
    und Windows Namespace fast nix.
    Dass Datenbankprovider funktionieren ist wunderbar, leider kein ADO .NET.

    Warum sollte man bevorzugt in GTK# programmieren? Läuft das auf Windows?
    Die bisherigen GTK Toolkits fand ich bisher immer sehr unangenehm zu benutzen.



  • Headhunter schrieb:

    Zumindest in der bei mir installierten Mono 1.1.8.3 Version ist im Data und Windows Namespace fast nix.

    Also bei mir ist dort eine ganze Menge drin. Uebrigens bei derselben Version.
    Ich verweise hier einfach mal auf die Provider-Liste der mono-Seite:
    http://www.mono-project.com/Database_Access

    Headhunter schrieb:

    Dass Datenbankprovider funktionieren ist wunderbar, leider kein ADO .NET.

    Wie definiertst du ADO.NET?
    Nach meinem Verstaendnis ist ADO (und war es auch schon immer) eine Sammlung von DB-Zugriffs-Klassen. Die Implementierung und Anwendung in Mono ist analog zu der im MS-Framework.
    Ich zumindest kann dort bei den bereits vorhandenen Klassen, Interfaces, etc. keinen Unterschied zum .NET-Framework erkennen.
    (Bzw. findet sich dort sogar schon .NET 2.0 Klassen, wie zB die im Common-Namespace)

    Headhunter schrieb:

    Warum sollte man bevorzugt in GTK# programmieren? Läuft das auf Windows?
    Die bisherigen GTK Toolkits fand ich bisher immer sehr unangenehm zu benutzen.

    Stimmt GTK-Programmierung ist (noch?) recht umstaendlich. Dafuer ist eine bessere kompatibilitaet zu Linux gegeben, als mit den Windows-Forms; Afaik, leider konnte ich dass noch nicht testen.
    GTK# laeuft unter Windows.

    //EDIT:
    Habe gerade nochmal nachgeschaut: Hast du vieleicht statt auf System.Data auf Mono.Data verwiesen?



  • Also ich denke nicht das man C# machen sollte wenn man plattformunabhängig sein will und was anderes als Java haben will. Die Unterschiede zwischen den Sprachen sind in der Benutzung meiner Meinung nach recht klein, C# ist quasi ein bequemeres Java in meinen Augen... Vor allem was Events angeht... Ich würde mir eher C++ oder Python anschauen als C#, denn das bietet nicht wirklich etwas Neues...

    (Für reine Windows Applikationen ist C# allerdings Zucker find ich 😉 )


Anmelden zum Antworten