![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 27.04.2008
Ort: Berlin
Beiträge: 3
|
Hallo,
mir qualmt gerade der Kopf, da ich nicht weiß, an welcher Stelle in der Anwendung ich die Möglichkeit zur Administration von dieser integrieren soll. Es gibt verschiedene Möglichkeiten und alle haben ihre Vor- und Nachteile. Die Situation: Es gibt eine bestehende Anwendung, welche aufgrund neuer Anforderungen angepasst werden soll. Da mir einige Sachen dabei nicht so gefallen, werde ich die Anwendung wohl mehr oder weniger von Grund auf neu schreiben. Daher habe ich jetzt auch die Möglichkeit einige Entscheidungen noch einmal zu überdenken und bestimmte Sachen besser zu lösen. Ein solcher Punkt ist die Verwaltung der Software (Systemeinstellungen, Verwaltung der Inhalte, usw.) Probiert habe ich bisher die beiden Lösungen die Anwendung komplett auf der Anwendung heraus zu administrieren (Frontend) und die Anwendung in zwei Bereiche (Frontend und Backend) aufzuteilen. In dem einen bewegen sich die Nutzer und in dem anderen wird die Anwendung verwaltet. Verwaltung im Backend Bei der Lösung mit dem abgetrennten Frontend und Backend sind sehr durchwachsen. Auf der einen Seite ist alles ordentlich getrennt und die Anwendung kann zentral an einer Stelle verwaltet werden. Die Oberfläche kann speziell auf diese Bedürfnisse abgestimmt werden. Allerdings ist hier die Implementierung von neuen Funktionen sehr komplex und aufwendig. Schließlich muss die Funktion im FE (für die Nutzer) implementiert werden, aber auch im Backend, damit diese verwaltet werden kann – doppelter Code, höhere Fehleranfälligkeit, usw. Ein Beispiel dazu: Ich wollte nachträglich der Anwendung einen Kleinanzeigen-Markt spendieren. Als erstes habe ich die Verwaltung dessen entwickelt. Bei der Entwicklung des Frontends haben sich aber einige neue Wünsche ergeben und so hat sich die Datenbankstruktur noch einmal geändert. Dies hatte natürlich zur Folge, dass nun die Sache nicht mehr administriert werden konnte, obwohl die Oberfläche schon entwickelt wurde. Diese musste zum Schluss also noch einmal angepasst werden (doppelte Arbeit). Verwaltung im Frontend Die Erfahrungen mit der ersten Lösung (Verwaltung im Frontend) war bisher sehr gut. Der Programmcode war überschaubar und nicht an zwei Stellen verankert. Auf Funktionen aus der Entwicklung für das Frontend konnte auch bei der Verwaltung zurückgegriffen werden (Beispielsweise auf Formulare, die auch die Nutzer ausfüllen können). Problematisch war dabei aber die Integration von Systemfunktionen (Wo sollte ich diese am besten im Frontend unterbringen?) Der Code ist dabei immer sehr überschaubar gewesen. Außerdem haben die User, die die Anwendung/Inhalte verwaltet dabei, gleichzeitig die Anwendung auf Funktionstüchtigkeit geprüft. Schließlich haben sie das gleiche wie die "normalen" Benutzer gesehen, nur um ein paar Funktionen zur Verwaltung ergänzt. Das Problem: Wie gesagt, bisher bin ich mit der Lösung alles ins Frontend zu integrieren nicht schlecht gefahren. Allerdings haben sich jetzt bei dieser Anwendung neue Anforderungen ergeben, die diese Konzept mehr oder weniger über den Haufen werfen. Ab sofort soll es nämlich nicht mehr eine zentrale Oberfläche im Frontend geben, sondern mehrere unterschiedliche. Je nach dem wo die Anwendung aufgerufen wird, werden unterschiedliche Templates ausgegeben. Teilweise unterscheiden sich auch die Funktionen (nicht in jeder Oberfläche sollen alle Funktionen enthalten sein – das ist Standortabhängig). Die Verwaltung in einer zentralen Oberfläche ist damit hinfällig. Spricht also alles wieder für die Auftrennung in Frontend und Backend. Allerdings habe ich ja die Probleme, die ich oben angesprochen habe. Derzeit fallen mir drei Problemlösungen für die neue Anforderung ein:
Ich hoffe mein Problem, meine Lösungsansätze und die Argumente sind in diesem langen Beitrag deutlich geworden. Welche Lösung würdet ihr bevorzugen (Warum?) oder habt ihr noch einen anderen Lösungsansatz? Vielen Dank für eure Tipps, Christian |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 751
|
Hallo Christian.
Für deine Entscheidung ist sicher wichtig, wie der Rest deiner Architektur aussieht. Ich habe ein Web-CMS entwickelt, das im Moment noch ohne Backend auskommt, es aber auch eigentlich Wurscht ist, ob du das nun Front- oder Backend nennst. Jedes Modul kennt seine eigenen Formulare, mit der die Benutzer mit unterschiedlichen Rechten die Daten manipulieren können. Wo die nun eingebunden werden, davon weiß das Modul selbst ja gar nichts. Ein Backend ist also nichts anderes, als vor allem ein Rahmen mit bestimmten Navigationselementen, um diese Module kompakter präsentieren zu können, also z.B. im Falle eines CMS eine Liste aller Seiten auf einer Ebene mit den Buttons „bearbeiten“ und „löschen“ und Optionen, die Seite zu verschieben. Es wird also keine Arbeit doppelt gemacht, sondern lediglich die Zugänge zu den Modul-Formularen werden den jeweiligen Anforderungen entsprechend umgesetzt. Hier wäre also die Frage, ob du sowas, wie eine gemeinsame Basis für alle Komponenten entwickeln kannst, ganz gleich, wo und wie sie eingebunden werden. Falls es sich um eine Web-Applikation handelt, schau dir doch z.B. mal eZ Publish an. Hier gibt es verschiedene Zugänge auf eine Site und für diese kannst du jeweils einzelne Templates überschreiben, die in dem System sehr mächtig sind. Du kannst also auch wieder dein Modul programmieren und dann je nach Access Point landest du in einem Template, das den gleichen Zugriff auf den Inhaltsknoten hat, wie das entsprechende Template eines anderen Zugangs. Das ist in einer Web-Applikation nicht problematisch umzusetzen. Musst eigentlich nur verschiedene Themes (oder nenn es, wie du willst) anlegen und je Zugriffspunkt eine Reihenfolge festlegen, in welchen Themes nach dem Template gesucht werden muss. Beispiel: Modul Kleinanzeigen, View „edit“, drei Zugänge: frontend, backend1 und backend2, 4 Themes: base, frontend, backend1, backend2, folgende Theme-Reihenfolge für die Zugänge: Code:
frontend: frontend, base backend1: backend1, frontend, base backend2: backend2, frontend, base Code:
themes/backend2/components/classifieds/edit themes/frontend/components/classifieds/edit themes/base/components/classifieds/edit Basti Geändert von Basti (28.04.2008 um 10:38 Uhr). |
|
|
|
|
|
Nach oben #3 |
|
Neuer Benutzer
Registriert seit: 27.04.2008
Ort: Berlin
Beiträge: 3
|
Ja, es handelt sich um eine Web-Applikation.
So richtig habe ich deinen Gedankengang mit den verschiedenen Templates und Interfaces noch nicht verstanden. Ich versuche das mal so wiederzugeben, wie ich das aufgefasst habe. Alle Formulare und Methoden zur Verwaltung sollen in die jeweiligen Modul integriert werden. Soweit war dies auch geplant, da die Anwendung auch unabhängig von einzelnen Module funktionieren soll. Die beiden Einheiten Controller und Modell wären somit gleich. Alle Ausgabe-Templates sollen in einem Ordner "views" liegen, welcher wiederum Unterordner mit der Bezeichnung der Controller enthält. Pro Aktion im Controller gibt es eine Template-Datei (so ist es bisher). Für die einzelnen Oberflächen muss es aber jetzt mehrere dieser Dateien geben, die zwar immer das gleiche ausgeben aber halt immer mit einer anderen HTML-Struktur. Jetzt gibt es aber das "Problem" das sich die Oberflächen teilweise erheblich voneinander unterscheiden. Die eine Oberfläche soll hauptsächlich über Terminal-Systeme aufgerufen werden. Daher werden hier für komplexe Formulare Assistenten eingesetzt, die durch die einzelnen Schritte führen. Bei einer anderen Oberfläche ist mehr Platz und da soll die Navigation durch Reiter erfolgen. Hier unterscheidet sich also nicht nur das Template, sondern auch die Verarbeitung der Formulare voneinander. Das würde ja eigentlich bedeuten, dass ich bei der Verarbeitung im Controller und Modell schon Rücksicht auf die auszugebene Oberfläche nehmen muss und auch hier die verschiedenen Ausgabe-Möglichkeiten implementieren und fest an eine Oberfläche binden muss. Ändert sich dann aber an den Oberflächen etwas (eine neue wird hinzugefügt etc.) würde dies ja auch Auswirkungen auf diesen Bereich haben. Irgendwie ist das auch nicht so richtig prickelnd oder habe ich etwas falsch verstanden? Wie wäre bei deiner Methode denn das URL-Design? Grüße, Christian |
|
|
|
|
|
Nach oben #4 | |||
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 751
|
Zitat:
Zitat:
Zitat:
Basti |
|||
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Anwendung zur Verwaltung von Einnahmen und Ausgaben | Ben | Gesuche | 4 | 25.05.2006 17:39 |