## page was renamed from Projekte/MinimalesFramework ## page was renamed from Treffen/MinimalesFramework = Überlegungen zur Architektur eines minimalen Webframeworks = Wurde beim [[Treffen/2011-02|Februar 2011-Treffen]] von Wilhelm vorgestellt. == Hintergrund == Bei der Konstruktion eines Webframworks (in folge FW genannt) wurden Überlegungen gemacht, welche die minimale Funktionalitäte beschreiben. Diese Überlegungen sind unabhängig von Programmiersprachen und Datenbereitstellungsmechnismen (z. B. Webserver). Die Programmiersprache muss in der Lage sein, die unten angeführten Prozesse handzuhaben. Der Bereitstellungsmechnismus muss in der Lage sein, Nachrichten des Anzeigeagenten (Browser) zu empfangen. Als Schnittstelle zwischem dem Bereitstellungsmechnismus und dem Anzeigeagenten wird CGI DeWikiPedia:Common_Gateway_Interface angenommen. == Architektur == Die Architektur wird in einer mehrschichtigen Bauform beschrieben. Neben den '''M'''odell '''C'''ontroller '''V'''iewer (MVC) Schichten, in denen die Geschäftsprozesse abgehandelt werden wird noch die FW-Schicht betrachtet. {{http://nagy.zoff.cc/pymframe/nanofw-docu/nanofw.jpg}} Als Metasprache wurde BPMN verwendet (DeWikiPedia:Business_Process_Modeling_Notation) [[attachment:nanodms|Download Grafik nanodms]] ==== framework ==== Jeder Aufruf wir von einer einzigen Startprozedur behandelt (start). Dieser Prozess regelt die grundlegenden Einstellungen und leitet den Aufrauf an das FW weiter. Dieses entscheidet über den weiteren Verlauf. * Authentifizierung<
>Die Authentifizierung prüft, ob der Nutzer eingeloggt ist oder ob die angeforderte Seite ohne Zugriffsberechtigungsprüfung angezeigt werden darf.<
>Ist der Benutzer noch nicht angemeldet und eine Anmeldung notwendig wird die Anmeldeseite angezeigt und die Anmeldung vorgenommen. Dies geschieht mit den Mitteln des Frameworks * Aufruf Controller<
>Das Framework ermittelt aus den Aufrufparametern (URI) welcher Controller angestoßen werden soll. Es überprüft, ob der Controller vorhanden und entscheidet, was geschehen soll wenn der Controller nicht vorhanden ist.<
>Ist der Controller vorhanden wird dieser aufgerufen und der Output des Controllers gesammelt. * Template laden<
>Das FW läd das Templatefile. Das Templatefile stellt den äußersten Rahmen der Ausgabe dar. Es enhält eine Marke(Tag), welche dem Framework als Platzhalter für den Output des Controller dient. Diese Marke wird durch den Output ersetzt. * Ausgabe der fertig gerenderten HTML Seite. ==== controller ==== Der Controller dient dazu die Geschäftslogik zu beschreiben. Er stellt die Daten zusammen (optional aus einer Datenbank) und übergibt diese dem Viewer zur Bearbeitung. ==== viewer ==== Der Viewer ist für das äußere Erscheinungsbild zuständig. Er wird vom Controller aufgerufen. ==== modell ==== Das Model stellt die Daten für den Controller und den Viewer zu Verfügung. Es müssen nicht zwangsläufig Daten aus einer Datenbank sein. Zum Beispiel können die Daten auch über eine WEB Ressource (JSON, CSV, XML oder dergleichen) zur Datengewinnung herangezogen werden. Als Datenschnittstelle werden Domains herangezogen. Die Domains sind Datenobjekte, welche als Schittstelle zum Datenanbieter darstellen und geeignete Methoden zur Datengewinnung haben.