Modulentwicklung
Aus DeDi-Help
(Unterschied zwischen Versionen)
| Version vom 15:35, 31. Aug. 2004 (bearbeiten) Bjoern (Diskussion | Beiträge) ← Zum vorherigen Versionsunterschied |
Version vom 12:47, 21. Sep. 2004 (bearbeiten) (Entfernen) Haps (Diskussion | Beiträge) K (Korrektur in der Rechtschreibung) Zum nächsten Versionsunterschied → |
||
| Zeile 1: | Zeile 1: | ||
| - | Module sind und bleiben das Herzstck von DeDi, dahingehend wurden Module um einiges an Funktionalitt erweitert und die Einbindung in DeDi verbessert. | + | Module sind und bleiben das Herzstck von DeDi, dahingehend wurden Module um Einiges an Funktionalitt erweitert und die Einbindung in DeDi verbessert. |
| - | Vorweg einiges an Begrifflichkeit. | ||
| + | == Vorneweg Einiges an Begrifflichkeit == | ||
| - | Der Modulname, Kennzeichnet das Modul und ist in jedem Fall eindeutig. | + | Der Modulname, kennzeichnet das Modul und ist in jedem Fall eindeutig. |
| - | Grundstzlich haben wir zwei zustnde von Modulen: gespeichert und installiert | + | Grundstzlich haben wir zwei Zustnde von Modulen: gespeichert und installiert, wobei ein installiertes Modul immer auch ein gespeichertes Modul ist. |
| - | Wobei ein installiertes Modul immer auch ein gespeichertes Modul ist . | + | |
| - | Installierte Module knnen natrlich auch deinstalliert werden, was abhngig vom Speicherort einer lschung gleichkommt! | + | Installierte Module knnen natrlich auch deinstalliert werden, was abhngig vom Speicherort einer Lschung gleichkommt! |
| - | Wir definieren auch zwei Speicherorte: Client (Projekt) und Store (Datenbank) | + | Wir definieren auch zwei Speicherorte: Client (Projekt) und Store (Datenbank). |
| Module im Store sind nicht installiert sondern nur gespeichert. Module in einem Client sind immer installiert! | Module im Store sind nicht installiert sondern nur gespeichert. Module in einem Client sind immer installiert! | ||
| Zeile 36: | Zeile 35: | ||
| In einem Client wird das nicht so restriktiv behandelt, ein gelschtes Parent bergibt sein Verhltnis (wenn es mehrere Childs gibt) einfach an das nchste Child. | In einem Client wird das nicht so restriktiv behandelt, ein gelschtes Parent bergibt sein Verhltnis (wenn es mehrere Childs gibt) einfach an das nchste Child. | ||
| - | Ein Modul kann innerhalb einer abhngigkeit nur einmal existieren! Eine jede Modulinstanz ist ein eigenstndiges Modul, welches auch so behandelt werden kann, nur im Rahmen der abhngigkeiten werden Einschrnkungen getroffen die fr ein Modul als solches einmalig sein sollen und so nur fr ein Parent zugelassen sind! | + | Ein Modul kann innerhalb einer Abhngigkeit nur einmal existieren! Eine jede Modulinstanz ist ein eigenstndiges Modul, welches auch so behandelt werden kann, nur im Rahmen der Abhngigkeiten werden Einschrnkungen getroffen die fr ein Modul als solches einmalig sein sollen und so nur fr ein Parent zugelassen sind! |
| Das hat den Vorteil das ein Modul auch innerhalb eines Clients vererben kann und so mehrere Versionen/Konfigurationen eines Moduls existieren knnen. | Das hat den Vorteil das ein Modul auch innerhalb eines Clients vererben kann und so mehrere Versionen/Konfigurationen eines Moduls existieren knnen. | ||
| Diese Abhngigkeiten sind auch notwendig um das nchste Feature zu ermglichen. | Diese Abhngigkeiten sind auch notwendig um das nchste Feature zu ermglichen. | ||
| - | SQL-installation/-deinstallation und Update. | ||
| + | == SQL-Installation/-Deinstallation und Update == | ||
| Ein Modul kann SQL-Statements mitbringen die von DeDi zu bestimmten Aktionen ausgefhrt werden. | Ein Modul kann SQL-Statements mitbringen die von DeDi zu bestimmten Aktionen ausgefhrt werden. | ||
| - | Beim installieren eines Moduls oder importieren in einen Client wird 'Install' ausgefhrt. | + | Beim Installieren eines Moduls oder Importieren in einen Client wird 'Install' ausgefhrt. |
| - | Beim lschen eines Moduls aus einem Client wird 'Uninstall' ausgefhrt. | + | Beim Lschen eines Moduls aus einem Client wird 'Uninstall' ausgefhrt. |
| - | Beim hochladen eines Moduls das neuer ist als ein vorhandenes, beim Online-Update ber das Repository oder nach dem direkten ndern eines Parents (Version wird gendert) wird ein Update bei allen von diesem Modul direkt abhngigen Modulen angeboten indem eine 'gelbe Lampe' zu sehen ist! | + | Beim Hochladen eines Moduls das neuer ist als ein vorhandenes, beim Online-Update ber das Repository oder nach dem direkten ndern eines Parents (Version wird gendert) wird ein Update bei allen von diesem Modul direkt abhngigen Modulen angeboten indem eine 'gelbe Lampe' zu sehen ist! |
| Zeile 65: | Zeile 64: | ||
| - | Sinn macht das ganze deshalb, weil es mit sicherheit Module geben wird die eigene Tabellen/Langstrings oder Values mitbringen. | + | Sinn macht das ganze deshalb, weil es mit Sicherheit Module geben wird die eigene Tabellen/Langstrings oder Values mitbringen. |
| Um diese Funktionalitt aus dem eigentlichen Modulcode rauszuhalten ist dieses Feature gedacht. | Um diese Funktionalitt aus dem eigentlichen Modulcode rauszuhalten ist dieses Feature gedacht. | ||
| - | Syntaxprfung Modulcode | ||
| + | == Syntaxprfung Modulcode == | ||
| Beim abspeichern und whrend anderer Aktionen im Client wird ein Modul auf Funktion geprft. | Beim abspeichern und whrend anderer Aktionen im Client wird ein Modul auf Funktion geprft. | ||
| Dazu wird das Modul in eine Sandbox gesteckt und nur mit den wichtigsten DeDi-Variablen gefttert ($db, $perm, $catside usw.) bergabeparameter aus den GET/POST oder aus der Modulkonfiguration werden nicht weitergegeben. | Dazu wird das Modul in eine Sandbox gesteckt und nur mit den wichtigsten DeDi-Variablen gefttert ($db, $perm, $catside usw.) bergabeparameter aus den GET/POST oder aus der Modulkonfiguration werden nicht weitergegeben. | ||
| Der Sinn dahinter ist ganz einfach, je sicherer ein Modul geschrieben ist um so sicherer wird auch der Umgang damit sein. | Der Sinn dahinter ist ganz einfach, je sicherer ein Modul geschrieben ist um so sicherer wird auch der Umgang damit sein. | ||
| - | Vorhandene Syntaxfehler oder Fehlfunktionen werden erkannt und angezeigt (mit einer orangenen hervorhebung !). | + | Vorhandene Syntaxfehler oder Fehlfunktionen werden erkannt und angezeigt (mit einer orangenen Hervorhebung!). |
| Wir wollen die User nicht gngeln, diese Feature dient einzig und allein dazu entsprechende Hilfestellung zu geben (dazu wird es noch weiter ausgebaut). | Wir wollen die User nicht gngeln, diese Feature dient einzig und allein dazu entsprechende Hilfestellung zu geben (dazu wird es noch weiter ausgebaut). | ||
| - | Im Grundegenommen sollten wir uns an einen gewissen Standart bei der Entwicklung von Modulen halten. | + | Im Grundegenommen sollten wir uns an einen gewissen Standard bei der Entwicklung von Modulen halten. |
| - | Einige Punkte sind im Forum schon fters aufgetaucht oder gemeinhin sowieso bekannt. Doch Neuanfngern wollen wir das ganze ja nicht zu sehr verbauen und auch nicht das Entwickeln neuer Module verhindern | + | Einige Punkte sind im Forum schon fters aufgetaucht oder gemeinhin sowieso bekannt. Doch Neuanfngern wollen wir das Ganze ja nicht zu sehr verbauen und auch nicht das Entwickeln neuer Module verhindern. |
| Zu nennen wren: | Zu nennen wren: | ||
| *Eingangsverarbeitung/Aufbereitung | *Eingangsverarbeitung/Aufbereitung | ||
| - | *kappseln von Funktionen/Klassen | + | *Kapseln von Funktionen/Klassen |
| *Aufrumen der verwendeten Variablen | *Aufrumen der verwendeten Variablen | ||
| *Eindeutige Namensgebung | *Eindeutige Namensgebung | ||
| - | *einhalten von Konventionen | + | *Einhalten von Konventionen |
| - | Pre-Konfiguration eines Moduls | ||
| + | == Pre-Konfiguration eines Moduls == | ||
| - | Ein Modul kann vorkonfiguriert werden und so gewisse Einstelllungen des Moduls schon bei der installation bernommen werden. | + | Ein Modul kann vorkonfiguriert werden und so gewisse Einstellungen des Moduls schon bei der Installation bernommen werden. |
| - | In der Modulkonfiguration, zu erreichen unter Design->Module->Modul konfigurieren, kann das Modul einmal voreingestellt werden und die Einstellungen knnen in jedem Container bernommen werden. | + | In der Modulkonfiguration, zu erreichen unter Design->Module->Modul konfigurieren, kann das Modul einmal voreingestellt und die Einstellungen knnen dann in jedem Container bernommen werden. |
| Die Darstellung des Schraubenschlssels als Menpunkt wechselt die Farbe von schwarz auf Rot wenn ein Modul vorkonfiguriert ist. | Die Darstellung des Schraubenschlssels als Menpunkt wechselt die Farbe von schwarz auf Rot wenn ein Modul vorkonfiguriert ist. | ||
| - | Das ganze wird dadurch abgerundet das ein Modul diese Features/Einstellungen auch mit sich bringt. Das heisst ein Modul kann mit sammt allen Einstellungen mittels der modulname.dedimod Datei gespeichert und weitergegeben werden! | + | Das ganze wird dadurch abgerundet das ein Modul diese Features/Einstellungen auch mit sich bringt. Das heisst ein Modul kann mit samt allen Einstellungen mittels der modulname.dedimod Datei gespeichert und weitergegeben werden! |
| - | .................... | + | ---- |
| nderungen/Erweiterungen sind vorbehalten. Das ist nur eine vorlufige Dokumentation! | nderungen/Erweiterungen sind vorbehalten. Das ist nur eine vorlufige Dokumentation! | ||
| - | Die gesammte Entwicklung/Erweiterung ist eigentlich abgeschlossen und befindet sich in der jetzigen Beta im Test, abweichungen sind BUGS! | + | Die gesamte Entwicklung/Erweiterung ist eigentlich abgeschlossen und befindet sich in der jetzigen Beta im Test, Abweichungen sind BUGS! |
| Einige Teilbereiche werden aber erst zur folgenden Beta/Final freigeschaltet und sind somit noch nicht zugnglich (Stichwort: Online-Repository). | Einige Teilbereiche werden aber erst zur folgenden Beta/Final freigeschaltet und sind somit noch nicht zugnglich (Stichwort: Online-Repository). | ||

