Antwort
 
Themen-Optionen Thema durchsuchen
Alt 17.09.2008, 11:29 Nach oben    #41
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Hallo Basti,

Zitat:
Zitat von Basti
Wenns soweit ist, lass ich mein CMS mal von dir zerpflücken. Wird wohl noch ein paar Monate dauern, bis es veröffentlichungswürdig ist.
Ich freue mich auf die Diskussion darüber!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.09.2008, 22:00 Nach oben    #42
Benutzer
 
Registriert seit: 16.09.2007
Beiträge: 65
Standard

Huhu,

Ich hab da immer noch paar Verständis probleme, der verschiedenen Pattern, die hier genannt werden. Da ich ein perfektionist bin, würde ich die gerne beseitigen um gleich was vernüftiges produzieren, was sauber und strukturiert geschrieben ist.

Ersten zur 3-Schichten-Architectur , wie kann man sowas eigentlich bei einer Webapplication implementieren. Ich hab da mal im netz nach geschaut und hab öfters gefunden, dass das so aufgebaut ist.
  • Datenbankserver
  • Applikationserver
  • Webserver
Sowas habe ich bei mir auch in den Studienunterlagen nach lesen können, aber sowas wäre dann ja nicht wirklich implementierbar bei einer webapplication. Und das MVC-Pattern aggiert dann zwischen den 3-Schichten bzw auch gelesen das MVC auch eine 2-Schichten-Architectur ist. Und das MVC die Presentation Schicht ist, was ja auch schon gesagt wurde. Was ist genau gemeint mit Busines-Schicht gemeint,Geschäfts-Logik und Datenschicht bzw was die beinhalten. Und was genau muss ein FrontController beinhalten, hab das bisher nur verstanden das er einfach den richtigen Controller raussucht der gebraucht wird und ihn dann zurverfügung stellt, gehört da noch was rein? Und als letztes Controller und Model, View. Der Controller sollte doch nix anderes machen als die geforderte action zu behandeln,aber keinerlei logik wie berechnungen usw?
Die View stellt das ganze dann dar entweder als gui oder als html seite, da gehören dann sachen wie Darstellungslogik mit rein oder nicht? Und was mir am meisten Probleme macht ist das Model. Ich hatte das so gelernt gehabt das dort Datengespeichert werden bzw verwaltet und semtliche berechnung dort stattfinden. Und wenn ich das richtig verstanden habe sind Daten-Objekte nichts anderes, wie eine Datenbank, nur das es Objekte sind und man unabhängig ist welche Datenbank nutzt.

Am besten wären vlt konkrete beispiele.
Ich hoffe das macht euch keine Umstände.

Gruß
Vic
Victorious ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.09.2008, 11:21 Nach oben    #43
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Hallo Victorious,

sorry, dass ich noch nicht geantwortet habe, Gründe kennst du aus der PN. Ich werde versuchen Anfang der nächsten Woche näher auf deine Fragen einzugehen, da ich das in dieser Woche nicht mehr schaffe.

So long,
Dr.E.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.09.2008, 12:54 Nach oben    #44
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Hallo Victorious,

grundsätzlich würde ich dir raten, ein Buch über Pattern und vor allem über die Koexistenz und Kooperation von Pattern zu konsumieren. Das hilft dir sicher!

Nun zu deinen Fragen:

1. 3-Schicht-Architektur:
3-Schicht-Architektur bedeutet kurz zusammengefasst die Trennung einer Applikation in die Schichten

* Datenschicht
* Businessschicht
* Präsentationsschicht

Diese Art der Trennung ist auch für eine Webanwendung möglich und oft auch sehr sinnvoll. Die Unterscheidung zwischen Datenbankserver, Applikationserver und Webserver ist eher eine infrastrukturelle Gliederung, weniger eine auf Software-Ebene.

2. MVC
Das MVC-Pattern beschreibt die Trennung von Anzeige-Logik, Anzeige-Darstellung und Applikationsinformationen. Zu letzterem können im einfachsten Fall auch daten einer Applikation gezählt werden. Da der Großteil der Bereiche zur Präsentationsschicht zählen, ist in der Kooperation der beiden Pattern in der Präsentationsschicht einzusortieren. Ziehst du das M in die Business-Schicht und stellst diese allgemein verwendbar zur Verfügung, zerteilst deine Präsentationsschicht in kleinere MVC-Einheiten, kandest du beim HMVC, oder beim APF-MVC, wie es das Adventure PHP-Framework implementiert. MVC hat jedoch separat betrachtet nichts mit 2- oder 3-Schicht-Architektur zu tun.


3. Geschäftslogik
Die Geschäftslogik in eine eigene Schicht (im Sinne des 3-Schicht-Musters) zu packen kommt aus dem Gedanken der Wiederverwendbarkeit. Lagere ich Funktionen aus, kann ich diese beispielsweise in Front- und Backend-Komponenten wiederverwenden. Die beiden Komponenten unterscheiden sich dann lediglich in der GUI. Inhalte der Biz-Schicht sind die Koordination der Applikation, Speicherung und Aufbereitung der Benutzereingaben etc. Die Sicht trennt sich jedoch in einer 3-Schicht-Architektur deutlich von der Datenschicht. Letztere ist für das Laden und Speichern von Objekten zuständig.


4. FrontController
Zitat:
Und was genau muss ein FrontController beinhalten, hab das bisher nur verstanden das er einfach den richtigen Controller raussucht der gebraucht wird und ihn dann zurverfügung stellt, gehört da noch was rein? Und als letztes Controller und Model, View. Der Controller sollte doch nix anderes machen als die geforderte action zu behandeln,aber keinerlei logik wie berechnungen usw?
Der FrontController ist vor Allem bei Web-Anwendungen interessant. Die Problematik ist, dass Webanwendungen per se keine immerzu existente Business-Schicht besitzen, da HTTP statuslos ist (Sessions mal ausser Betracht gelassen). Mit dem FrontController hingegen wird dieses Problem insofern gelöst, als dass dieser vor dem Laden und Erzeugen der Präsentationsschicht, die Business-Schicht mit dem Model der applikation aufbauen kann. Damit steuert - wie eigentlich sinnvoll - die Biz die Pres und nicht umgekehrt.

5. Diverses
Zitat:
Die View stellt das ganze dann dar entweder als gui oder als html seite, da gehören dann sachen wie Darstellungslogik mit rein oder nicht?
Richtig, der View sollte so logikarm wie möglich gehalten werden. Frameworks in denen PHP als Template-Sprache verwendet wird und nicht XML / HTML / XSL ist das IMHO nicht so sauber, da bei den genannten Tolls eine weitaus größere Gefahr besteht, den View mit zu viel Logik zu versehen und somit die Wiederverwendbarkeit zu gefährden. Ist die Logik jedoch sauber ausgegliedert, kann für einen beliebigen Controller ein anderer View geladen werden, der eine Ausgabe anderer Art und mit gleichen Inhalten erzeugen kann.

Zitat:
Und was mir am meisten Probleme macht ist das Model. Ich hatte das so gelernt gehabt das dort Datengespeichert werden bzw verwaltet und semtliche berechnung dort stattfinden. Und wenn ich das richtig verstanden habe sind Daten-Objekte nichts anderes, wie eine Datenbank, nur das es Objekte sind und man unabhängig ist welche Datenbank nutzt.
Da bin ich etwas anderer Meinung. Man sollte hier das reine Model (Statusinformationen der Applikation) und die Businesslogik aufspalten. Kennt die Businessschicht das Model, oder ist es ein und die selbe Komponente, so läufst du Gefahr, dass die Applikation nicht wiederverwendbar ist, da die Abhängigkeiten zu stark sind. Aus diesem Grund behandle ich das Model als eigenständige Status-Informationskomponente, auf Basis derer Daten über eine Business-Klasse (oft Manager genannt) bezogen werden können. Im Beispiel würde das bedeuten, dass dein (MVC-)Controller per Informationen im Model (z.B. "Welches Gästebuch bin ich gerade?") von einer Manager-Instanz per getPagedList() bezieht. Die Business-Schicht kümmert sich dann um das Paging und das Beziehen der Daten aus der Datenschicht. Letztere wiederum kennt die Datenbank und die zugehörige Datenstruktur. Auch Aufgabe der Datenschicht ist es in komplexeren Strukturen, die aus der Datenbank ausgelesenen Daten in ein Format zu bringen, mit dem die Anwendung (=Business- und Präsentationsschicht) umgehen können. Dies wird auch oft mit Mapping, bzw. OR-Mapping beschrieben. In diesem Zusammenhang kann auch das Domain-Object-Pattern interessant für dich sein.

Zitat:
Am besten wären vlt konkrete beispiele.
Ich hoffe das macht euch keine Umstände.
Nein, Beispiele habe ich schon zur Genüge fertig. Die beiden besten sind

* http://adventure-php-framework.org/S...ktion-Tutorial
* http://adventure-php-framework.org/S...ebuch-Tutorial

Solltest du dazu Fragen haben, dann her damit!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.09.2008, 19:53 Nach oben    #45
Benutzer
 
Registriert seit: 16.09.2007
Beiträge: 65
Standard

Hallo Dr. E.,

erstmal danke für die genaueren Beschreibung, werde mir aber aufjedenfall Bücher darüber besorgen, sowie deine tutorials durch arbeiten/lesen, dass ganze wird nur bissel dauern da ich momentan sehr viel andere dinge zu tun habe.^^ Sobald ich fragen werde ich mich wieder an dich wenden.
Victorious ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
welches CMS für Schülerzeitung? NerKnal Gesuche 14 03.02.2008 11:39
CMS für Kunden aufsetzen Basti Gesuche 1 11.01.2008 17:48
Developers-guide.net Projekt sucht willige Java Programmierer beny_mcde Projekte unserer Mitglieder 11 10.08.2006 13:03
[Grundlagen] Entwicklung eines Projektkonzeptes WarrenFaith Tutorials 1 21.11.2005 01:42


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45