Home   Cover Cover Cover Cover
 

Übungsaufgaben zu Kapitel 3. Die .NET-Architektur

  1. Virtuelle Maschine. Welche Vorteile sprechen für die Verwendung einer virtuellen Maschine?


  2. CLR vs. JVM. Eignet sich die .NET Common Language Runtime oder die Java Virtual Machine eher als Zielplattform für verschiedene Programmiersprachen? Begründen Sie Ihre Antwort.


  3. Common Type System (CTS)

  4. Wert- und Referenztypen. Worin besteht der grundlegende Unterschied zwischen Wert- und Referenztypen? Wie wirkt sich das auf die Laufzeit aus?


  5. Boxing. Trotz des Unterschiedes zwischen Wert- und Referenztypen sind in .NET alle Objekte zum obersten Basistyp System.Object kompatibel. Wie erreicht man diese Kompatibilität für Werttypen?


  6. Common Language Specification (CLS)

  7. Attribut CLSCompliant. Betrachten Sie die folgenden C#-Codebeispiele und stellen Sie fest, für welche Elemente (Klassen, Felder, Methoden) der C#-Compiler tatsächlich die CLS-Konformität prüft. (In allen Fällen liefert der C#-Compiler keine Fehlermeldung).
    Begründen Sie Ihre Antworten kurz.
    a)
    public class A {
      public int F1;
      public void M1 (int p1) { }
    }

    b)
    [assembly: System.CLSCompliant(true)]

    public class B {
      public int F1;
      public void M1 (int p1) { }
    }

    c)
    [assembly: System.CLSCompliant(true)]

    public class C {
      public int F1;
      M1 (sbyte p1) { }
    }


  8. Common Intermediate Language (CIL)

    Metadaten

  9. Metadatenarten. Welche Arten von Metadaten kann man unter .NET unterscheiden? Was beschreiben sie?


  10. Assemblies und Module

  11. Assembly vs. Module. Beschreiben Sie kurz, wodurch sich Modul und Assembly voneinander unterscheiden?


  12. Starke Namen. Aus welchen Teilen setzt sich ein starker Name zusammen?


  13. Starke Namen. Wozu oder wann benötigt ein Assembly einen starken Namen?


  14. Versionsnummern. Wann wurde ein Assembly mit der automatisch generierten Versionsnummer ([assembly: AssemblyVersion("1.2.*")]) 1.2.1088.3792 erzeugt?


  15. Virtual Execution System (VES)

  16. Applikationsdomänen. Implementierien Sie (in C#) eine Kommandozeilen-Applikation AppLauncher, die es ermöglicht, andere Applikation zu starten und gleichzeitig laufen zu lassen. Jede dieser von AppLauncher gestarteten Applikationen soll in einer eigenen Applikationdomäne laufen (kein eigener Prozess!).


  17. Probing. Bei der Ausführung von MyApp aus dem lokalen Verzeichnis c:\Programme\MyAppDir\ wird das private Assembly Utils benötigt. In welchen Pfaden wird standardmäßig danach gesucht?


  18. Sicherheit

  19. Rechtevergabe. Die Sicherheitspolitik wird unter .NET auf vier Ebenen definiert: Enterprise, Machine, User, AppDomain. Angenommen auf Enterprise-, User- und AppDomain-Ebene erhalten alle Assembly alle Rechte (FullTrust). Auf Machine-Ebene wird die folgende Politik festgelegt:



    Welche Rechte erhält das Assembly MSApp, dass von Microsoft produziert (und signiert) und von http://dotnet.jku.at/pub/apps/ geladen wurde? Zu welchen Codegruppen der Machine-Ebene gehört es?