C# Portabel

...komplette Frage anzeigen

2 Antworten

Jede Programmiersprache benötigt eine Laufzeitumgebung. Bei Java ist es die Java Virtual Maschine, bei C# ist es das .NET-Framework und bei C ist es das Betriebssystem selbst.

Die JVM gibt es für fast alle Plattformen, daher kann fast jedes Gerät Java. In Android ist es sogar die Haupt-Programmiersprache. D.h. Java-Programme sind SEHR portabel.

Bei C# sieht das anders aus. .NET ist eine Microsoft-Technologie und nur für MS-Betriebssysteme verfügbar. Den vollen Umfang von C# wird nur von Microsoft Windows (x86-Architektur) unterstützt. C#-Klassen die als "Portable Klassenbibliothek" gekennzeichnet sind laufen unter allen MS-Plattformen (Windows, Windows RT, XBox, Phone), Klassen die als ".NET für Windows Store-Apps" gekennzeichnet sind laufen für Windows Store Apps (also auch unter RT).

Andere Betriebssysteme werden NICHT unterstützt. Zumindest nicht offiziell. Es gibt das sog. "Mono-Projekt". Damit kann man .NET-Programme auch unter Linux laufen lassen. Allerdings sind da viele Dinge nicht verfügbar. WinForms ja, aber z.B. das ganze WPF-Zeugs gibts da nicht (und wird es auch in Zukunft nicht geben). Cross-Compiler, die aus C#-Programmen Java-Programme (oder sonstwas) machen, halte ich für SEHR bedenklich wenn du wirklich was produktiv coden willst. Die können das gar nicht 100%ig konvertieren, allein schon weil viele Funktions-Bibliotheken in anderen Sprachen so nicht verfügbar sind. Das Ergebnis solcher Konvertierungen sind Programme die ständig abstürzen (wenn sie sich überhaupt konvertieren lassen)! Darauf würde ich nicht vertrauen. Ein paar Zahlen addieren und auf Konsole ausgeben mag ja funktionieren, aber wenn man mehr will kann man das vergessen.

Wenn du für IOS was programmieren willst, setz dich mit Objective-C auseinander. Viele andere Optionen hast du da nicht.

Und wenns was für Android sein soll, befass dich mit Java.

Je nachdem was du vorhast gibts allerdings noch die Möglichkeit eine WebApp zu schreiben (also JavaScript/HTML-basiert. Die hat den Vorteil, dass sie überall läuft, da jedes System einen Browser hat. Dann kannst du aber die Telefon-spezifischen Funktionen nicht nutzen (Zugriff auf SD-Karte, Display, Einstellungen, etc).

Android = Java

iOS = Objective-C

Windows/Windows Phone = C# (letzteres ohne Gewähr...)

Was möchtest Du wissen?