70 likes | 206 Views
.NET Arkitektur. Multi-language, Virtual Machine Driven …. C#. C++. VB. J#. …. Din applikation. .NET Framework Class Library (FxCL). Common Language Runtime (CLR). Operativsystem. Hardware. .NET Kodeafviklingsmodellen. CLR. Traditionelt Windows program. VC++ Windows program.
E N D
.NET Arkitektur • Multi-language, Virtual Machine Driven … C# C++ VB J# … Din applikation .NET FrameworkClass Library (FxCL) Common Language Runtime (CLR) Operativsystem Hardware
.NET Kodeafviklingsmodellen CLR Traditionelt Windows program VC++Windows program .NET Windowsprogram .NET FxCL MFC WIN 32 API Windows operativsystem
.NET Kodeafviklingsmodellen .EXE OS Proces CLR Andre FxCL komponenter JIT kompiler Basis FxCL Obj. kode Underliggende OS og HW
Hvor er .NET installeret? • CLR er en normal Windows DLL • FxCL er placeret i GAC’en • GAC = Global Assembly Cache • se mappen "C:\Windows\Assembly" • Bemærkninger: • Nogle assemblies er blevet præ-JIT-kompileret ("native image") • Assemblies indeholder digitale signaturer • GAC is versions-specifik— hver komponent kan optræde i flere versioner • Anvender .NET en CLASSPATH ligesom Java? • NEJ! • .NET søger først i GAC’en, dernæst i den samme mappe som .EXE’en • Søgninger kan skræddersys vha. .config-filen
Konsekvenser • CLR & FxCL er nødvendige for at afvikle .NET applikationer • Kan findes på Redistributable .NET Framework(20MB download) • Kan afvikles på Windows 98 og nyere versioner
Konsekvenser • .NET applikationer er versions-specifikke: • Applikationen er afhængig af den .NET-version, som den kompileres op imod • Applikationen vil IKKE kunne afvikles, medmindre den specifikke version af .NET er installeret … • Kompileret med SDK 1.0 / VS .NET 2002? => .NET v1.0 skal være installeret • Kompileret med SDK 1.1 / VS .NET 2003? =>.NET v1.1 skal være installeret • Kompileret med SDK 2.0 / VS .NET 2005? =>.NET v2.0 skal være installeret
Konsekvenser • Ligesom Java, så er .NET’s kodeafviklingsmodel en trade-off: • "Managed execution"(mere sikkerhed, beskyttelse af hukommelse, osv.) • portabilitet • langsommere afviklingshastighed (10%?)