DOMAIN-DRIVEN DESIGN
                               Modernes Softwaredesign

                                                                MUNICH




                                                 12.09.2010


                                 Patrick Lobacher (GF typovision*)

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010
ÜBER TYPOVISION
•   Patrick Lobacher
•   Geschäftsführer typovision*
•   Premium Online Business Solutions - mit TYPO3
•   Gegründet vor 16 Jahren (net-o-graphic / typofaktum)
•   Über 800 abgeschlossene Projekte, >100 mit TYPO3
•   Kunden: Vodafone, Finanzscout 24, AGIP, Contraco, Siemens, Arbeitsamt
    München, Langenscheidt, Motorola, Integralis, u.v.a.m
•   Aktiv in der Community: TYPO3camp, Certification und Documentation Team
•   Autor zahlreicher Fachbücher und Artikel:




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   2
WAS IST DDD?
                                             Eine Definition



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   3
DIE „ERFINDER“




                         JIMMY NILSSON            ERIC EVANS           MARTIN FOWLER




                               Easy setup of a TYPO3 demo site



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   4
DDD DEFINITION




    Domain Driven Design ist ein von Eric Evans geprägter
        Begriff für eine Anwendungsdomänen-getriebene
             Herangehensweise an das Design komplexer
                              objektorientierter Software.




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   5
BASIS ANNAHME

      Domain Driven Design basiert auf zwei Annahmen:


       • Der Schwerpunkt des Softwaredesigns liegt auf der Fachlichkeit
         und der Fachlogik.

       • Der Entwurf komplexer fachlicher Zusammenhänge sollte auf
         einem Fachmodell basieren.


         => Explizit machen von impliziten Zusammenhängen


(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   6
TYPISCHE PROJEKTE?
                                 Eine kurze Zusammenfassung



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   7
TYPISCHE PROJEKTE ?




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   8
TYPISCHE PROJEKTE ?




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   9
TYPISCHE PROJEKTE ?



•    Unterschiedliches Verständnis von
     domänenspezifischen Konzepten als einen wichtigen
     Grund für die divergierenden Vorstellung der beiden
     Gruppen Benutzer (Kunde) und Anwendungsentwickler
     (Dienstleister)




    (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   10
DOMAIN MODEL
                         Die Domäne und das zugehörige Modell



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   11
DOMÄNE


•    Was ist eine Domäne?


     Ein abgrenzbares Problemfeld, Fachgebiet,
     Geschäftsfeld bzw. Einsatzbereich


     NICHT!!!!: Infrastruktur, wie Persistenz, Templating,
     Eingabe, ...


    (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   12
DOMÄNE / MODELL


•    Um also ein einheitliches Verständnis zwischen diesen
     Gruppen (Domänenexperte und Applikationsentwickler)
     zu schaffen, wird ein Modell der Domäne etabliert

•    Ein Model ist eine auf bestimmte Zwecke ausgerichtete
     vereinfachende Beschreibung der Wirklichkeit



    (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   13
BEISPIEL MODELL




•    Quelle: http://www.holz-solar-haus.de/

    (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   14
MODELLIERUNG


•   Wichtigster Prozess!!!

•   Domänenexperte (Kunde) + Dienstleister (PM oder
    Programmierer)

•   Interativer, agiler Prozess

•   Ergebnis => Modell



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   15
UBIQUITOUS LANGUAGE
                             Den Turmbau von Babel verhindern



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   16
UBIQUITOUS LANGUAGE

•   Zentrales, wichtigstes Element beim Modellieren ist eine
    gemeinsame Sprache => Ubiquitous language
    („Allgegenwärtige Sprache“)

•   Gesprochen von allen (!) Team-Mitgliedern (inkl. Kunde)

•   Basis für alle Aktivitäten im Projekt

•   Namensraum für alle Artefakte im Modell


(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   17
UBIQUITOUS LANGUAGE

•   Wichtig für die Etablierung eines einheitlichen Domänen-
    Modells

•   Ubiquitous Language => Modell => Implementierung (!)

•   Änderungen in einem der drei -> Änderung in Allen

•   Prinzipiell multilingual => besser englisch

•   Consultingprozess


(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   18
UL / MODELLIERUNG


•   In der Regel entsteht während dieser
    Modellierungs-Gespräche ein (UML)
    Diagramm, das die Eigenschaften,
    Funktionalitäten und Beziehungen
    der relevanten Bestandteile des
    Problemfeldes in Objekte verpackt
    und deren Relationen darstellt.



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   19
BAUSTEINE FÜR DDD
                                        Das Model aufbauen



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   20
DOMAIN OBJEKT




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   21
DOMAIN OBJEKT
•   Die wichtigste Unterscheidung die Evans zwischen
    Modellelementen macht, ist ob ein Element eine Identität hat oder
    nicht.
•   Objekte müssen beispielsweise identifizierbar sein, um sie von
    einander unterscheiden zu können oder zu einem späteren
    Zeitpunkt wieder zu finden um weitere Operationen mit diesen
    durchführen zu können (Personen, Events, Konto, ...)
•   Andere Objekte stellen nur die Repräsentation einer Eigenschaft
    dar (Farben, Tags, ...). Diese sind definiert durch alle
    Eigenschaften.

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   22
DOMAIN OBJEKT

•   Value Objects

    •   Nicht identifizierbare Objekte,
        ohne eigene Identität


    •   Beispiel: Adresse bei einem Kunden


•   Entities

    •   Identifizierbare Objekte, mit Identität


    •   Beispiel: Kunde selbst



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   23
DOMAIN OBJEKT


•   Services

    •   Nicht an das Objekt gebundene Funktionen oder
        Handling von mehreren Objekten

    •   Beispiel:
        Geokoordinaten-Ermittlung für Adresse oder
        Überweisung zwischen zwei Konten



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   24
OBJEKT LEBENSZYKLUS

                      Richtiges Leben                                     Domain-driven Design




    Quelle: Rau/Kurfürst - Extbase & FLuid, O‘Reilly


(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   25
REPOSITORIES

•   Technische Details
    (der Persistenz) sollen
    nicht in die UL
    eindringen

•   Dafür wurden
    Repositories
    erschaffen




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   26
AGGREGATE




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   27
AGGREGATE




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   28
ZUSAMMENFASSUNG




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   29
MVC




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   30
VORTEILE VON DDD
                    Warum kompliziert, wenn es auch einfach geht



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   31
VORTEILE
•   Besseres Verständnis der Domäne

•   Saubere Strukturierung des Codes

•   Eleganter, schöner Code

•   Code „sozusagen“ von jedem verständlich

•   Hohe Komplexität erst so wirklich handhabbar

•   Zuständigkeiten klar getrennt

•   Leicht zu erweitern

•   schnellere Time-to-market (TTM)

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   32
DDD IN TYPO3
                                           FLOW3 / Extbase



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   33
FLOW3
•   Die Architektur von
    FLOW3 basiert auf DDD

•   Erstes PHP-Framework
    mit ganzheitlicher
    DDD Umsetzung




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   34
TYPO3

•   Extbase & Fluid

•   Seit TYPO3 4.3 gehört die Systemextension
    „Extbase“ (von Jochen Rau)
    zum Core

•   Zusammen mit Fluid (Sebastian Kurfürst) downport von
    FLOW3 DDD Konzepten

•   Zukunftssicher durch Aufwärtskompatibilität nach FLOW3

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   35
EXTBASE KICKSTARTER




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   36
QUELLEN
                                       Weitere Informationen



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   37
QUELLEN - BÜCHER




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   38
QUELLEN - BÜCHER




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   39
QUELLEN - DDD

•   Domain-Driven Design Community
    domaindrivendesign.org

•   Domain Driven Design Quickly (PDF)
    www.infoq.com/minibooks/domain-driven-design-quickly

•   DDD Step By Step (PDF)
    thinkddd.com/assets/2/Domain_Driven_Design_-_Step_by_Step.pdf




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   40
VIELEN DANK!
                                       FRAGEN?

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   41
ÜBER TYPOVISION

•   Adresse:

    typovision* - agentur für multimediale kommunikation

    Belfortstr. 8
    81667 München
    Deutschland

    Telefon          +49-89-18 92 08 70
    Fax              +49-89-18 92 08 69
    Email            info@typovision.de
    Web              http://www.typovision.de

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   42
ÜBER TYPOVISION



• Geschäftsbereiche
   • TYPO3     Konzeption, Entwicklung, Programmierung, Integration
     (inkl. Extbase / Fluid / FLOW3)
   • Consulting und Projektmanagement
   • Schulung (inkl. komplettes TYPO3-Curriculum von Anfänger bis
     Fortgeschrittene und Spezialschulungen sowie Firmen- und
     Individualschulungen)
   • iPhone / iPad Webentwicklung (HTML5, CSS3, WebKit)




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   43

Domain-driven design - eine Einführung

  • 1.
    DOMAIN-DRIVEN DESIGN Modernes Softwaredesign MUNICH 12.09.2010 Patrick Lobacher (GF typovision*) (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010
  • 2.
    ÜBER TYPOVISION • Patrick Lobacher • Geschäftsführer typovision* • Premium Online Business Solutions - mit TYPO3 • Gegründet vor 16 Jahren (net-o-graphic / typofaktum) • Über 800 abgeschlossene Projekte, >100 mit TYPO3 • Kunden: Vodafone, Finanzscout 24, AGIP, Contraco, Siemens, Arbeitsamt München, Langenscheidt, Motorola, Integralis, u.v.a.m • Aktiv in der Community: TYPO3camp, Certification und Documentation Team • Autor zahlreicher Fachbücher und Artikel: (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 2
  • 3.
    WAS IST DDD? Eine Definition (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 3
  • 4.
    DIE „ERFINDER“ JIMMY NILSSON ERIC EVANS MARTIN FOWLER Easy setup of a TYPO3 demo site (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 4
  • 5.
    DDD DEFINITION Domain Driven Design ist ein von Eric Evans geprägter Begriff für eine Anwendungsdomänen-getriebene Herangehensweise an das Design komplexer objektorientierter Software. (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 5
  • 6.
    BASIS ANNAHME Domain Driven Design basiert auf zwei Annahmen: • Der Schwerpunkt des Softwaredesigns liegt auf der Fachlichkeit und der Fachlogik. • Der Entwurf komplexer fachlicher Zusammenhänge sollte auf einem Fachmodell basieren. => Explizit machen von impliziten Zusammenhängen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 6
  • 7.
    TYPISCHE PROJEKTE? Eine kurze Zusammenfassung (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 7
  • 8.
    TYPISCHE PROJEKTE ? (c)2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 8
  • 9.
    TYPISCHE PROJEKTE ? (c)2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 9
  • 10.
    TYPISCHE PROJEKTE ? • Unterschiedliches Verständnis von domänenspezifischen Konzepten als einen wichtigen Grund für die divergierenden Vorstellung der beiden Gruppen Benutzer (Kunde) und Anwendungsentwickler (Dienstleister) (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 10
  • 11.
    DOMAIN MODEL Die Domäne und das zugehörige Modell (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 11
  • 12.
    DOMÄNE • Was ist eine Domäne? Ein abgrenzbares Problemfeld, Fachgebiet, Geschäftsfeld bzw. Einsatzbereich NICHT!!!!: Infrastruktur, wie Persistenz, Templating, Eingabe, ... (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 12
  • 13.
    DOMÄNE / MODELL • Um also ein einheitliches Verständnis zwischen diesen Gruppen (Domänenexperte und Applikationsentwickler) zu schaffen, wird ein Modell der Domäne etabliert • Ein Model ist eine auf bestimmte Zwecke ausgerichtete vereinfachende Beschreibung der Wirklichkeit (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 13
  • 14.
    BEISPIEL MODELL • Quelle: http://www.holz-solar-haus.de/ (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 14
  • 15.
    MODELLIERUNG • Wichtigster Prozess!!! • Domänenexperte (Kunde) + Dienstleister (PM oder Programmierer) • Interativer, agiler Prozess • Ergebnis => Modell (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 15
  • 16.
    UBIQUITOUS LANGUAGE Den Turmbau von Babel verhindern (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 16
  • 17.
    UBIQUITOUS LANGUAGE • Zentrales, wichtigstes Element beim Modellieren ist eine gemeinsame Sprache => Ubiquitous language („Allgegenwärtige Sprache“) • Gesprochen von allen (!) Team-Mitgliedern (inkl. Kunde) • Basis für alle Aktivitäten im Projekt • Namensraum für alle Artefakte im Modell (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 17
  • 18.
    UBIQUITOUS LANGUAGE • Wichtig für die Etablierung eines einheitlichen Domänen- Modells • Ubiquitous Language => Modell => Implementierung (!) • Änderungen in einem der drei -> Änderung in Allen • Prinzipiell multilingual => besser englisch • Consultingprozess (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 18
  • 19.
    UL / MODELLIERUNG • In der Regel entsteht während dieser Modellierungs-Gespräche ein (UML) Diagramm, das die Eigenschaften, Funktionalitäten und Beziehungen der relevanten Bestandteile des Problemfeldes in Objekte verpackt und deren Relationen darstellt. (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 19
  • 20.
    BAUSTEINE FÜR DDD Das Model aufbauen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 20
  • 21.
    DOMAIN OBJEKT (c) 2010- typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 21
  • 22.
    DOMAIN OBJEKT • Die wichtigste Unterscheidung die Evans zwischen Modellelementen macht, ist ob ein Element eine Identität hat oder nicht. • Objekte müssen beispielsweise identifizierbar sein, um sie von einander unterscheiden zu können oder zu einem späteren Zeitpunkt wieder zu finden um weitere Operationen mit diesen durchführen zu können (Personen, Events, Konto, ...) • Andere Objekte stellen nur die Repräsentation einer Eigenschaft dar (Farben, Tags, ...). Diese sind definiert durch alle Eigenschaften. (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 22
  • 23.
    DOMAIN OBJEKT • Value Objects • Nicht identifizierbare Objekte, ohne eigene Identität • Beispiel: Adresse bei einem Kunden • Entities • Identifizierbare Objekte, mit Identität • Beispiel: Kunde selbst (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 23
  • 24.
    DOMAIN OBJEKT • Services • Nicht an das Objekt gebundene Funktionen oder Handling von mehreren Objekten • Beispiel: Geokoordinaten-Ermittlung für Adresse oder Überweisung zwischen zwei Konten (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 24
  • 25.
    OBJEKT LEBENSZYKLUS Richtiges Leben Domain-driven Design Quelle: Rau/Kurfürst - Extbase & FLuid, O‘Reilly (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 25
  • 26.
    REPOSITORIES • Technische Details (der Persistenz) sollen nicht in die UL eindringen • Dafür wurden Repositories erschaffen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 26
  • 27.
    AGGREGATE (c) 2010 -typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 27
  • 28.
    AGGREGATE (c) 2010 -typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 28
  • 29.
    ZUSAMMENFASSUNG (c) 2010 -typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 29
  • 30.
    MVC (c) 2010 -typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 30
  • 31.
    VORTEILE VON DDD Warum kompliziert, wenn es auch einfach geht (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 31
  • 32.
    VORTEILE • Besseres Verständnis der Domäne • Saubere Strukturierung des Codes • Eleganter, schöner Code • Code „sozusagen“ von jedem verständlich • Hohe Komplexität erst so wirklich handhabbar • Zuständigkeiten klar getrennt • Leicht zu erweitern • schnellere Time-to-market (TTM) (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 32
  • 33.
    DDD IN TYPO3 FLOW3 / Extbase (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 33
  • 34.
    FLOW3 • Die Architektur von FLOW3 basiert auf DDD • Erstes PHP-Framework mit ganzheitlicher DDD Umsetzung (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 34
  • 35.
    TYPO3 • Extbase & Fluid • Seit TYPO3 4.3 gehört die Systemextension „Extbase“ (von Jochen Rau) zum Core • Zusammen mit Fluid (Sebastian Kurfürst) downport von FLOW3 DDD Konzepten • Zukunftssicher durch Aufwärtskompatibilität nach FLOW3 (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 35
  • 36.
    EXTBASE KICKSTARTER (c) 2010- typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 36
  • 37.
    QUELLEN Weitere Informationen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 37
  • 38.
    QUELLEN - BÜCHER (c)2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 38
  • 39.
    QUELLEN - BÜCHER (c)2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 39
  • 40.
    QUELLEN - DDD • Domain-Driven Design Community domaindrivendesign.org • Domain Driven Design Quickly (PDF) www.infoq.com/minibooks/domain-driven-design-quickly • DDD Step By Step (PDF) thinkddd.com/assets/2/Domain_Driven_Design_-_Step_by_Step.pdf (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 40
  • 41.
    VIELEN DANK! FRAGEN? (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 41
  • 42.
    ÜBER TYPOVISION • Adresse: typovision* - agentur für multimediale kommunikation Belfortstr. 8 81667 München Deutschland Telefon +49-89-18 92 08 70 Fax +49-89-18 92 08 69 Email info@typovision.de Web http://www.typovision.de (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 42
  • 43.
    ÜBER TYPOVISION • Geschäftsbereiche • TYPO3 Konzeption, Entwicklung, Programmierung, Integration (inkl. Extbase / Fluid / FLOW3) • Consulting und Projektmanagement • Schulung (inkl. komplettes TYPO3-Curriculum von Anfänger bis Fortgeschrittene und Spezialschulungen sowie Firmen- und Individualschulungen) • iPhone / iPad Webentwicklung (HTML5, CSS3, WebKit) (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 43