Grundlagen


Grundlagen

Was ist eine ASP.net Applikation?
Ein Vergleich dazu gibs in der Unixwelt kaum. Grob beschrieben ist eine ASP.net Applikation eine Ansammlung von Dateien in einem Verzeichnis (Applikationsverzeichnis). Diese Dateien haben alle einen bestimmten Zweck in diesem „Applikationsverzeichnis“. Da wären z.B. das /bin
Verzeichnis, die web.config und global.asax (Der Zweck dieser Elemente in einer Applikation wird auf den nächsten Seiten verdeutlicht).

Dann gibs in dieser Applikation noch die aspx Dateien, diese stellen die „Oberfläche“ der Applikation dar. Sie geben den generierten HTML Code an den User aus und greifen dabei auf Programmcode zu der sich in einer .dll Dateien im Bin Verzeichnis befindet. Im Ganzen ist eine Applikation aber anzusehen wie ein Programm, welches über eigene Applikationsvariablen, Sessionvariablen und Ereignisse verfügt, all dies wird in einer solchen Applikation gekapselt.

Das alles und noch mehr (für uns erstmal nicht relevante Elemente) ergeben zusammen eine ASP.net Applikation. Auf den nächsten Seiten wird die Struktur im Filesystem zum leicherteren Verständnis nochmal aufgeführt.

Wie Funktionierts?
Die Technik oder auch die Programmierung unter ASP.net ist nicht mehr vergleichbar mit den alt bekannten Technologien wie z.B. PHP oder ASP 3.0. Bei beiden wurde der Code nur geparsed und dann seinem Schicksal überlassen, anders bei ASP.net. Um das Prinzip zu verstehen, sollte man die wichtigsten Komponenten kennen. Die wohl wichtigste Komponente ist die Runtime (Common Language Runtime -> CLR) welche den Code der verschiedenen .net Sprachen wie VB.net, C# oder managed C++ in eine Zwischensprache kompiliert, die Rechteanforderungen des Codes überprüft und dann
ähnlich wie Java, in einer eigenen Umgebung (Runtime) ablaufen lässt. Dabei kümmert sich die Runtime auch um das Speichermanagement in Form des GarbageCollectors, der einfach ausgedrückt alles im Speicher killt, was nicht mehr benötigt wird. Bei C++ usw.. wäre das noch Aufgabe des Code Autors gewesen.

Eine weitere, wichtige Komponente ist die Framework Class Library, kurz FCL. Diese stellt tausende von Klassen, Funktionen, Typen, Interfaces usw.… bereit, sozusagen der Werkzeugkasten eines Programmierers. Unterteilt wird die FCL in so genannte Namespaces, in welche sich die einzelnen Klassen organisieren. Jeder Namespace wurde zu einem bestimmten Zweck geschaffen. So ist z.B. der Namespace System.IO für .net sowas wie die FSO Komponente für das klassische ASP, also zuständig für Dateibasierte Operationen wie kopieren, löschen usw. Kenntnisse der anderen .net Komponenten sind für diese Dokumentation nicht erforderlich.


Was bedeutet Managed und Unmanaged?
Managed ist alles, was von der .net Laufzeitumgebung (CLR) ausgeführt und verwaltet wird. Klassischer nativer Code wie z.B. com Komponenten sind unmanaged. Diese läuft nicht innerhalb der .net Runtime und basieren auf nativen Code. Auf unmanged Code kann laus der Runtime heraus zugegriffen werden, was aber in den meisten Sharedhosting Angeboten durch Thrustlevel verhindert wird.


Was ist eine Assembly?
Eine Assembly ist die Grundeinheit einer .net Anwendung und liegt im Falle von ASP.net in einer .dll im bin Verzeichnis der Applikation vor. Diese enthält den größten Teil des Applikationsprogrammcodes im MSIL (Microsoft Intermediate Language). Außerdem enthält eine Assembly selbst beschreibende Metadaten über Name, Version und Rechte Anforderungen und ist somit im Deployment besser zu handhaben als com. Leider tritt hier auch eines der größten Irrtümer auf. Eine com .dll Datei ist nicht gleichzusetzen mit einer .net dll. Eine .net Assembly .dll Datei kann ohne weiteres zutun unserseits verwendet werden. Com, also auch unmanaged .dlls wiederum erfordern händisches Sysadmin eingreifen und haben mit einer managed .net Assembly nichts zu tun, trotz der gleichen Dateiendung.

 


  • 21.02.2018 14:59:46