hi,
Selbst ohne Zeitdruck, darf angezweifelt werden, ob du gleich beim ersten Wurf ein "sauberes" Ergebnis erzeugen kannst. Üblicherweise fängt man ja nicht erst dann zu programmieren an, wenn man sich "komplett" in ein neues System eingearbeitet hat. Dafür juckt es dann doch in den Fingern, und Theorie will durch Praxis bestätigt werden. Dazu erst ein Testprojekt aufsetzen, wenn man doch vielleicht gleich auf das Ergebnis des Lernprozesses für die eigentlich gplante Anwendung aufbauen kann ...?
Selbstverständlich werde ich mich vor dem eigentlichen Programmierbeginn ein bisschen in mein Framework "einfühlen". Ich hab mir aber gedacht, dass ich das Konzept zuerst auf dem "Reisnagelbrett" designen will, damit ich gleich etwas ähnliches - natürlich vereinfacht - ausprobieren kann. Erfahrungsgemäß stoße ich dann oft auf Probleme in der Architektur, die ich dann in der "echten" Anwendung vermeiden/umgehen kann.
*1 CURIEs (ein Prefix für interne Links, ein Prefix für externe Links)
Davon lese ich gerade zum ersten Mal. Du meinst sicher W3Cs CURIE-Syntax.
Der sind hinter meinen lieben CURIEs ist, will ich mit Hilfe eines Beispiels erläutern - sollte die Verwendung für meine Zwecke als sinnlos eingestuft werden, dann bitte ich um Aufklärung ;-)
Ich verlinke auf eine Seite einer Universität - MEHRFACH - von meiner Seite aus. Universitäten werden ja (zumindest in Österreich) ständig umstrukturiert, somit kann es schnell sein, dass ein Institut zu einer Abteilung wird => Seite hat eine neue URI. Jetzt geht's ans Überarbeiten aller href-Attribute - Freude kommt auf :-)
Jetzt will ich nur so etwas wie <a xmlns:extern="http://www.example.com/" href="extern:unigraz"></a>
(http://www.example.com/ [ja, ich weiß, dass es von diese Seite neuerdings auf http://www.iana.org/domains/example/ umleitet ;-)] wäre in diesem Beispiel der Namensraum für CURIEs für externe Sites) schreiben, an einer zentralen Stelle wäre dann aufgelistet, welche CURIE für welche URL eines externen Links steht. So ähnlich würde ich das dann auch mit den internen Links machen.
Aber abgesehen von meiner Unkenntnis diesbezüglich kann vermutlich auch kein anderer bewerten, was du dir dabei gedacht hast, wenn du die Anforderungen an das Projekt nicht beschreibst.
Naja, es ist ein Projekt mit Anforderungen der Marke "nichts besonderes". Damit meine ich:
* Muss einfach zu warten sein.
* Muss keine besondere Performance haben, da nur ca. 120 visitors daily.
* Ich habe "lebenslange Haftung" für diese Seite und muss die Site gegebenfalls erweitern, reparieren oder umstrukturieren, d.h. eine unsaubere, halb funktionstüchtige Site produzieren und flüchten gibt's nicht ;-)
* Die meisten Inhalte der Seite sind textuell (also normales HTML), sonst gibt's noch:
- Mitarbeiter-Personalien, also E-Mail, Telefon und Fax der einzelnen Mitarbeiter
- Auflistung von Publikationsangaben zu Publikationen der einzelnen Unternehmensmitarbeiter
- Eine Auflistung von Produkten (d.h. Büchern), die vom Unternehmen stammen
- Ein paar Formulare zum Ausdrucken (als PDF)
- Eine Seite mit den aktuellsten News - die News bestehen aus Text und (optional) weiterführenden Links
- Häufig am Fuß der einzelnen (textuellen) Inhalten: "Weiterführende Links", das sind Links (können intern oder extern sein) zu Seiten, auf denen man ähnliche bzw. weiterführende Infos findet - kannst du dir so vorstellen wie das "Weblinks"-Kapitel am Ende fast jedes Wikipedia-Artikels.
- Ein paar Bilder sind auch zu finden; z.B. Fotos der einzelnen Mitarbeiter
*2 Visitenkarten (werden automatisch in die xHTML-Mitarbeiterseite eingefügt - halt um Info und [HTML]-Formatierung zu trennen)
Dazu gibt's sonst nicht mehr viel zu sagen: Daten wie Emailadresse, Fax und Tel werden halt nicht direkt in HTML auf den einzelnen Mitarbeiterseiten angeführt, sondern (ich weiß eben nicht, wohin am Besten, deshalb ja meine Frage) in Datenbank, XML oder ähnlichem gespeichert - eben als M des MVCs. Dann werden die Daten automatisch in das HTML der Seite eingegliedert, d.h. ansprechend präsentiert.
Dadurch will ich erreichen, dass ich die HTML-Präsentation und Emailadressen etc. unabhängig von einander ändern kann. Außerdem muss ich das HTML nicht in jeder Mitarbeiterseite extra "reinkopieren" und gegebenfalls bei Änderungen anpassen, sondern schreibe das HTML einmal. Das HTML wird halt mit richtiger Emailadresse etc. aufgefüllt und in die richtige Mitarbeiterseite eingebunden. Also mit einem (langen) Wort: Präsentation-Struktur-Trennung.
*3 Links
Welche Aufgabenstellung soll damit erfüllt werden?
Das sind die "weiterführenden Links", genaueres dazu habe ich schon weiter oben geschrieben. Jedenfalls können die wie die "Weblinks" am Ende von Wikipedia-Artikeln auch bei mir am Ende von einzelnen Seiten stehen, um auf weiterführende Infos zu referenzieren.
Wie ihr ja sicher schon bei *2 bemerkt habt, tu' ich mir schwer: Ich halte es für unmöglich bzw. schaffe es nicht ;-), M und V eines MVC - oder hMVC, wie's jetzt in Kohana3 heißt ;-) - richtig zu trennen - ich meine, in Prinzip ist doch jeder Text in einer Webseite eine Information, d.h. es würde dann folglich zumindest theoretisch in das M gehören
Handelt es sich um statischen Text für das Seitengerüst oder um Inhalte, die aus einer Datenhaltung geholt werden? Manche Texte können auch gleich im von der View verwendeten Template stehen. Das musst du mit Erfahrung und unter Beachtung der Aufgabenstellung abschätzen, was wohin gehört. Um diese Erfahrung zu sammeln, wirst du hauptsächlich aus deinen Fehlern und Erfolgen lernen müssen. Selbst wenn du anderswo etwas abschaust, das sich dort bewehrt hat, heißt das noch lange nicht, dass das auch auf deinen Fall zutrifft.
- anderseits muss ich ja den Text - gleich dort wo er gespeichert ist, sonst wird es unübersichtlich ;-) - formatieren (<b> [oder <strong> , wie es in "NeuHTMLisch" heißt ;-)], <p>), was meines Erachtens ein klarer V-Fall ist - also wohin damit?
Auch <b> ist mittlerweile wieder neuHTMLisch, aber sei's drum. Die Frage ist, ob es für dich zum Inhalt zählt oder zur Struktur.
Lasst mich flennen ;-)
Texte in einem CMS sind Inhalt und mitunter auf irgendeine Weise vorformatiert, vielleicht mit HTML-Elementen, vielleicht mit einer anderen Syntax (z.B. Wiki), die erst noch geparst und umgesetzt werden muss.
Bei mir ist die Wahl auf HTML gefallen, weil mein Admin das halt schon beherrscht und jetzt nicht groß eine neue Sprache lernen will.
Ich denke, das es wohl das Sinnvollste ist, Texte und andere menschenbestimmte semi- bis unstruktierten Daten in den View "auszulagern", weil die ja eh nur für die Präsentation (auch nur für Menschen) brauchbar sind, und nur strukturierten Einzug ins M zu gewähren. Was uns zur Frage bringt: Ab wann sind Daten strukturiert?
Egal ob strukturiert oder nicht, veränderliche Daten sind die, die man üblicherweise mit einem M abfragt.
Naja, alles ist veränderlich, ja auch die Präsentation, sogar die HTML-Tags in der Präsentation. Aber würdest du jetzt z.B. einen Lebenslauf (mit <b>
und <i>
, sonst Text) als V oder M ansehen. Allgemeiner gefragt, wo gehören alle die HTML-formatierten Texte hin, die es so massenhaft auf meiner Site gibt? Wenn das alles auch ins M kommt, bleibt ja aber für den V überhaupt nichts mehr. Allerdings werden ja vieler solcher Texte wie Lebenslauf und Publikationsangaben-Auflistungen häufig editiert - andere HTML-formatierte Texte wie Unternehmensprofil wieder weniger.
Dein Ziel hast du nicht beschrieben, du philosophierst gerade nur über den Weg.
Mein Ziel ist eine erweiterbare, durchdachte und vorallem leicht aktualisierbare Website.
lg.
PS: Sollten noch weitere Gegenfragen auftauchen, nur her damit. Danke für alle die sich die Mühe machen, sich mit meinem Problem zu befassen.