Wie plattformunabhängig ist .Net?

8

Kann das .NET Framework unter Linux, Unix, MAC etc. Betriebssystemen installiert werden?

    
Ravi 20.02.2011, 10:04
quelle

6 Antworten

1

.Net kann als zwei separate Teile betrachtet werden. Einer ist der ECMA standardisierte CLI und der andere ist CLR . CLR ist Microsofts Implementierung von CLI.

CLI kann auf vielen Geräten wie Windows (x86, x64, ia64 und jetzt ARM), XBox, Zune, Mobiltelefonen und sogar eingebettete Geräte (kleine Chips) . Mono / Mondschein sind Implementierungen von CLI und sogar Teile von CLR teilweise von Microsoft über Novell finanziert. Microsoft unterstützt diese Arbeit und gibt Quellcode zur Unterstützung frei. Über Mono können Sie die meisten Betriebssysteme und CPU-Typen erreichen.

Es gibt auch Compiler, die .NET-Code direkt in plattformunabhängigen Code kompilieren können, der direkt von der CPU ausgeführt werden kann. Schön, wenn Sie Ihr eigenes Betriebssystem in C # schreiben wollen. (Ich erinnere mich nicht an Namen, aber ich kann einige Links googlen, wenn Sie interessiert sind.)

CLI ist plattform- und sprachunabhängig . Es läuft gut auf den meisten Betriebssystemen und CPUs durch verschiedene Implementierungen. In der Praxis bedeutet das, dass es zum Beispiel Sprachmerkmale unterstützt, wie zB Groß- und Kleinschreibung (+ muuuch more) und es hat einen Befehlssatz, der mit den meisten CPUs kompatibel ist (der CLI-Maschinencode ähnelt den Anweisungen der meisten CPUs). p>

Implementierungen von .Net (Übersicht, um Ihre Frage zu beantworten):

Tedd Hansen 20.02.2011, 10:29
quelle
7

Sie sollten sich das Mono-Projekt ansehen.

Mono ist

  

Eine Open-Source-Plattform, plattformübergreifend   Implementierung von C # und der CLR das   ist binär kompatibel mit   Microsoft.NET

    
Nick Haslam 20.02.2011 10:06
quelle
5

.Net per-se , wie die meisten Microsoft-Software, ist zu 100% plattform- abhängig . It only funktioniert in einer von Microsoft bereitgestellten Umgebung (wie Windows und seine verschiedenen Varianten). Theres kein offizielles .Net für irgendetwas anderes (Mac, Linux, usw.)

ABER ...

Einige Platformen versuchen, Alternativen, Emulatoren usw. zu entwickeln, um zu versuchen, MS-Software auszuführen. Mono , wie Nick geschrieben hat, ist ein Linux-Projekt, das .NET-Code unter Linux unterstützt.

Aber Mono ist NICHT .Net. Es ist eine andere Software, geschrieben von verschiedenen Leuten, die versucht, 100% kompatibel mit .Net zu sein (und es ist wirklich verdammt genial). Aber es wird nicht von Microsoft bereitgestellt oder unterstützt.

Und Mono, als Open-Source-Software, ist plattformunabhängig, da es auf jede Plattform portiert werden kann (derzeit unterstützt es bereits mehrere, nicht nur Linux)

>

Also, technisch gesprochen, wäre die richtige Antwort:

  

.Net-Framework, wie von Microsoft bereitgestellt, ist überhaupt nicht plattform-unabhängig. Sie können es nicht unter Linux oder Mac installieren

     

Aber Mono, eine unabhängige, kompatible .Net-Implementierung, wird unterstützt und ist für die Installation in Linux und Mac unter verschiedenen anderen Platforms verfügbar. Und Sie verwenden es, um in .Net

geschriebenen Code auszuführen
    
MestreLion 20.02.2011 10:13
quelle
2

Linux hat die Mono , die eine .NET-Laufzeitumgebung für Linux ist. Ich weiß nichts über andere Betriebssysteme.
Wie auch immer, was es plattformunabhängig macht, ist die Tatsache, dass es nach MSIL kompiliert wird, so dass jede Plattform die Laufzeit implementieren und unterstützen kann.

Es gibt auch eine Implementierung für kleine eingebettete Geräte namens .Net Micro Framework .

    
Itay Karo 20.02.2011 10:08
quelle
1

Die Antwort auf Ihre sehr präzise Frage ist NEIN. Die Antwort auf die Frage "Kann ein .net-Programm auf diesen Betriebssystemen ausgeführt werden" ist anders. Und es ist vielleicht. Wie von anderen geschrieben, suchen Sie nach Mono.

Nachtrag (dies ist eine spätere Bearbeitung)

Ich denke jetzt, meine Antwort war nicht vollständig. Ich hätte antworten sollen: "Ja. Sie installieren Wein und installieren dann das .net-Framework". Hier ein Link zu einem Beispiel (für ubuntu und .net 2.0): Ссылка

Ja, ich weiß, das ist nicht die Antwort auf das, was das OP wahrscheinlich wissen wollte, aber es ist zumindest eine teilweise Antwort auf das, was er fragte.

    
xanatos 20.02.2011 10:10
quelle
0

Sie müssen die kostenlose und Open Source-alternative .NET-Implementierung namens Mono

verwenden

Auf wikipedia

Hauptseite

    
quelle

Tags und Links