57 Stimmen

Was genau ist "verwalteter" Code?

Ich schreibe seit fast zwanzig Jahren C/C++-Code und kenne mich auch mit Perl, Python, PHP und etwas Java aus, und ich bringe mir gerade JavaScript bei. Aber ich habe noch nie etwas mit .NET, VB oder C# gemacht. Was genau bedeutet verwaltet Code bedeuten?

Wikipedia beschreibt es einfach als

Code, der unter der Verwaltung einer virtuellen Maschine ausgeführt wird

und er sagt ausdrücklich, dass Java (normalerweise) verwalteter Code ist, also

  • warum scheint der Begriff nur für C# / .NET zu gelten?
  • Können Sie C# in eine Exe-Datei kompilieren, die auch die VM enthält, oder müssen Sie es verpacken und an eine andere Exe-Datei übergeben (a la Java)?

In ähnlicher Weise,

  • ist .NET ein Sprache oder eine Rahmenwerk und was genau bedeutet "Rahmen" hier?

OK, das ist also mehr als eine Frage, aber für jemanden, der schon so lange in der Branche ist wie ich, fühle ich mich im Moment eher wie ein N00B...

1voto

Glenn Slaven Punkte 32691

Die Rahmenfrage kann ich beantworten. .NET ist ein Framework, C#, VB.NET usw. sind Sprachen. Grundsätzlich bietet .NET eine gemeinsame Plattform von Bibliotheken zum Aufrufen (alle System.... dlls), die jede Sprache, die .NET verwendet, aufrufen kann. Alle .NET-Sprachen werden in MSIL (Microsoft Intermediate Language, besser bekannt als IL) kompiliert, das dann auf jedem PC mit dem entsprechenden .NET-Framework ausgeführt werden kann.

0voto

GEOCHET Punkte 20824

.NET ist ein Rahmenwerk. Es kann von vielen Sprachen aus verwendet werden (VB.NET, C#, IronPython, boo, etc)

.NET wird immer interpretiert ausgeführt, und nein, Sie können die "VM" nicht in die .exe-Datei aufnehmen. Jeder Benutzer, der Ihre .NET-Anwendung ausführen möchte, muss das Framework installiert haben.

0voto

Er kann sich auf jeden Code beziehen, der von einer virtuellen Maschine und nicht direkt von der CPU ausgeführt wird.

Ich denke, dies ermöglicht Dinge wie Garbage Collection und Array Bounds Checking.

0voto

benjismith Punkte 16223

Ich persönlich halte das Wort "Rahmen" für eine etwas unpassende Bezeichnung.

.NET ist eine "Plattform", die aus einer Ausführungsumgebung (der virtuellen Maschine CLR) und einer Reihe von Bibliotheken besteht. Es ist genau vergleichbar mit Java oder Perl oder Python (von denen keines jemals als "Framework" bezeichnet wird).

In den meisten Fällen wird der Begriff "Framework" für Projekte wie Spring, Struts oder QT verwendet, die wie eine Bibliothek auf einer Plattform aufsetzen (d. h. keine eigene Ausführungsumgebung bieten).

Im Gegensatz zu einer "Bibliothek" zielt ein Framework jedoch darauf ab, die grundlegenden Operationen der zugrunde liegenden Plattform neu zu definieren. (Spring's Dependency Injection widersetzt sich der Logik der Konstruktoraufrufe von gewöhnlichem Java-Code. Die Signals-and-Slots-Implementierung von QT widersetzt sich gewöhnlichem C++-Code).

Ich weiß, ich bin nur ein pedantischer Bastard, aber für mich ist .NET kein Framework. Es ist eine Plattform.

-1voto

Abhi Punkte 685

Managed Code--MSIL und IL und Managed Code sind gleich.Wenn wir unsere Anwendung die .dll oder .exe-Dateien werden in der Bin-Ordner generiert.Diese Dateien werden als Managed Code.Später werden diese Dateien an CLR gegeben, um native Code, der von OS verstanden werden würde, zu generieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X