Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9-16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Kernkompetenzen
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Scripting
Softwareengineering
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Windows & Office für Anwender
Soft Skills & IT-Recht
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1026 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor Ort oder online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: Managed Code
Zur Stichwortliste unseres Lexikons
Was ist
Managed Code
?
Programmcode, der im
.NET Framework
unter der .NET-Laufzeitumgebung abläuft, wird als Managed Code bezeichnet. Im Gegensatz dazu wird herkömmlicher Code als
Unmanaged Code
oder
Classic Code
bezeichnet.
Das Kompilat von C#,
Visual Basic .NET
und
JScript
.NET ist immer Managed Code.
Visual C++
7.0 kann durch eine Compiler-Option Managed Code erzeugen.
Visual FoxPro
kann keinen Managed Code erzeugen. Es gibt zahlreiche weitere Sprachen, die Managed Code erzeugen können.
Ein
.NET-Modul
ist eine Einheit aus kompiliertem Programmcode im
MSIL
-Format und den zugehörigen
Metadaten
, die die im Code definierten Typen beschreiben. Ein
.NET-Modul
ist Teil einer .EXE- oder .
DLL
-Datei oder aber eine separate Datei mit der Dateiextension .NETMODULE. Die Datei liegt in beiden Fällen im
Portable Executable
(PE) File Format vor.
Übersetzung und Ablauf von .NET-Anwendungen
Sowohl die
Programmiersprache
Java
als auch das
.NET Framework
basieren auf dem Konzept
Write Once Run Anywhere
(
WORA
). Das
.NET Framework
arbeitet – genau wie
Java
– mit einem
Intermediation
skonzept auf Basis einer Zwischensprache. Ein Compiler einer
.NET-Sprache
erzeugt also nicht einen pro-zessorspezifischen Maschinencode, sondern einen plattformunabhängigenZwischencode. Dieser Zwischencode wird Micro-soft Intermediate Language (
MSIL
) oder – im
ECMA
- und
ISO
-Standard -
Common Intermediate Language
(
CIL
) genannt. Code in
MSIL
wird auch als verwalteter Code (Managed Code) be-zeichnet. Im Gegensatz dazu wird prozessorspezifischer Maschienencode als nicht-verwalteter (
Unmanaged Code
) oder
Native Code
bezeichnet.
Erst zur Laufzeit wird der
MSIL
-Code dann in einen prozessor-spezifischen Maschinencode (
Native Code
) umgewandelt.
MSIL
-Code wird nicht interpretiert, sondern von einem sogenannten
Just-in-Time-Compiler
Stückchenweise umgewandelt und dann ausgeführt. Dabei berücksichtigt der
Just-in-Time-Compiler
prozessorspezifische Optimierungsmöglichkeiten. Dadurch, dass nicht interpretiert, sondern vor der Ausführung kompiliert wird und der
Just-in-Time-Compiler
sehr schnell ist, ist der Performance-Verlust durch die
Intermediation
sehr gering. Im Zweifel gibt es auch die Möglichkeit, die das Ergebnis der Kompilierung von
MSIL
zu Maschinencode zu speichern und später auszufüh-ren. Dies nennt man ein
Native Image
. Ein
Native Image
ist jedoch nicht mehr plattformunabhängig. Es ist nicht verboten, dass Sprachcompiler auch wahlweise auch direkt
Native Code
erzeugen, der nicht unter der Kontrolle der .NET-Laufzeitumgebung abläuft.
Der
Just-in-Time-Compiler
ist Teil der .NET-Laufzeitumgebung, die
Common Language Runtime
(
CLR
) genannt wird. Das In-termediationskonzept ist die Basis für die Plattformunabhängig-keit der Anwendungen. Managed Code kann auf jedem Betriebs-system ausgeführt werden, für das eine Implementierung der
Common Language Runtime
verfügbar ist.
Natürlich ist Managed Code langsamer als
Native Code
, wobei der Geschwindigkeitsunterschied sehr viel geringer ist als man vermuten kann. Wenn jedoch die optimale Geschwindigkeit notwendig ist, besteht die Möglichkeit, eine Managed Code-Datei einmalig in eine
Native Code
-Datei umzuwandeln. Dazu dient das Werkzeug ngen.exe. Der Vorgang wird als "Pre-Jitting" bezeichnet. Das Result von ngen.exe nennt man ein
Native Image
. Ngen.exe wurde in
.NET 2.0
stark vereinfacht (z.B. wer-den nun alle referenzierten
Komponente
n automatisch mit über-setzt).
Grundsätzlich kann zwar ein
Native Image
bereits während der Entwicklung erzeugt werden, aufgrund der plattformspezifischen Übersetzung bietet es sich jedoch an, das
Native Image
erst bei der Installation einer .NET-Anwendung zu erzeugen (Install Time Compilation). Das
Native Image
ist spezifisch für eine bestimmte Version der .NET-Laufzeitumgebung. Auch benötigen
DOS
- und NT-basierte Windows-Systeme verschiedene
Native Image
s. Auch eine .NET-Anwendung, die in einem
Native Image
gespeichert ist, benötigt die .NET-Laufzeitumgebung, um ausge-führt werden zu können.
Querverweise zu anderen Begriffen im Lexikon
Common Intermediate Language (CIL)
Common Language Runtime (CLR)
Write Once Run Anywhere (WORA)
Just-in-Time-Compiler
Portable Executable (PE)
Programmiersprache
Visual Basic .NET (VB.NET)
Intermediation
Unmanaged Code
.NET Framework
Visual FoxPro (VFP)
Native Image
.NET-Sprache
Classic Code
Native Code
.NET-Modul
Komponente
Visual C++ (VCPP)
Metadaten
JScript
Java
.NET Framework 2005 (.NET 2.0)
European Computer Manufacturers Association (ECMA )
Write Once Run Anywhere (WORA)
Microsoft Intermediate Language (MSIL)
Dynamic Link Library (DLL)
International Standardization Organization (ISO)
Disc Operating System (DOS)
Common Intermediate Language (CIL)
Common Language Runtime (CLR)
Beratung & Support
Anfrage für Beratung/Consulting zu MANAGED CODE
Gesamter Beratungsthemenkatalog
Technischer Support zum MANAGED CODE
Schulungen
.NET-Aufbauwissen
.NET-Basiswissen
.NET-Programmierung im SQL Server (SQLCLR) - Common Language Runtime (CLR)-Integration in SQL Server
.NET-Sicherheit (.NET Security)
C++/CLI ("Managed C++"): C++ mit .NET programmieren
Microsoft SQL Server 2005 - Die Neuerungen im Überblick
Microsoft SQL Server für .NET-Softwareentwickler (SQL Server für Developer inkl. Transact SQL)
Moderne Softwarearchitekturen und Entwicklungstechniken im Überblick
Visual Studio 2005 (Visual Studio 8.0 "Whidbey")
Windows Installer (MSI), Windows Installer-XML (WiX) und MSIX - Erstellen von Installationspaketen / Verteilen von Windows-Anwendungen / Deployment
Anfrage für eine individuelle Schulung zum Thema MANAGED CODE
Gesamter Schulungsthemenkatalog
Fachbücher
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
C# 14.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
C++20: Get the Details
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
C++ Core Guidelines Explained: Best Practices for Modern C++
App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
Vue.js 3 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
C# 10.0 Crashkurs
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr