Mit 3 Schichte zum Erfolg Advanced Developers Conference 10.-11. Oktober 2004 Mit 3 Schichte zum Erfolg Thomas Schissler TSchissler@artiso.com Dein Name – Dein Vortragstitel
Agenda Einführung Architekturkonzepte Begriffsdefinition 3 Schichten, was bedeutet das? Wo liegen die Vorteile Architekturkonzepte 3-Schicht-Architektur aufbauen Komponentenorientierte Architektur Service-Orientierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorstellung Thomas Schissler Software-Architekt und Projektleiter artiso AG Schwerpunkte sind Team Foundation Server Entwicklungsprozesse Software-Architektur und Software Design Leiter der .net Developergroup Ulm (www.dotnet-ulm.de) Blog : http://www.artiso.com/problog Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Begriffsdefinition Layer sind Anwendungsschichten Z.B. Presentation-Layer, Business-Layer, Data-Access-Layer Tiers sind physikalische Instanzen Z.B. Datenbankserver, Client-PC, Application Server Eine Anwendung kann nicht mehr Tiers als Layer haben Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Begriffsdefinition Client Tier Server Tier Presentation Layer Business Layer Data Layer Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Unterschiede 2-Schicht-Architektur Frontend Data-Layer Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Unterschiede 3-Schicht-Architektur Presentation Layer Business-Layer Data-Layer Thomas Schissler - XML-Serialisierung
Unterschiede private void btnCalculate_Click(object sender, EventArgs e) { LabelResult.Text = Double.Parse(txtAmount.Text) * Double.Parse(txtPrice.Text); } private void btnCalculate_Click(object sender, EventArgs e) { LabelResult.Text = Calculator.GetTotal( Double.Parse(txtAmount.Text), Double.Parse(txtPrice.Text)); }
Advanced Developers Conference 10.-11. Oktober 2004 Unterschiede Button Label Button Label Button Label Button Label Amount * Price Amount * Price Wiederverwendbarkeit innerhalb der Anwendung Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorteile Vorteile der 3-Schicht-Architektur Bessere Wiederverwendbarkeit Bessere Strukturierung Bessere Entwicklung im Team Bessere Testbarkeit Grundlage für verteilte Systeme Thomas Schissler - XML-Serialisierung
Aufbau einer 3-Schicht-Architektur Advanced Developers Conference 10.-11. Oktober 2004 Aufbau einer 3-Schicht-Architektur Beispielszenario Architektur für eine Zeiterfassung Liste mit Projekten abrufen Stunden für ein bestimmtes Datum auf ein Projekt buchen Plausibilitätsprüfung Demo Architektur Zeiterfassung Thomas Schissler - XML-Serialisierung
Komponenten-orientierung Advanced Developers Conference 10.-11. Oktober 2004 Komponenten-orientierung Der nächste logische Schritt: Warum nur 3 Schichten? n-Schicht-Architektur Herausforderungen: Wie werden diese Schichten organisiert? Wie stellt man sicher, dass diese Sichten sauber zusammenarbeiten Komponentenorientierte Architektur Thomas Schissler - XML-Serialisierung
Komponenten-orientierung Advanced Developers Conference 10.-11. Oktober 2004 Komponenten-orientierung Was bedeutet Komponentenorientierung? Schichten werden als unabhängige Assemblies (Komponenten) implementiert Kommunikation zwischen Kompontenten wird durch Contracts beschrieben Thomas Schissler - XML-Serialisierung
Komponenten-orientierung Advanced Developers Conference 10.-11. Oktober 2004 Komponenten-orientierung Vorteile: Bessere Wiederverwendbarkeit Bessere Strukturierung Bessere Entwicklung im Team Bessere Testbarkeit Grundlage für verteilte Systeme Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorgehensweise 1. Funktionsbaum erstellen Sammeln aller Funktionsanforderungen Hierarchische Organisation der Funktionen Fehlende Funktionen ergänze Demo Funktionsbaum erstellen Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorgehensweise 2. Komponentenmodell erstellen Zusammenfassen der Funktionen zu logischen Gruppen Je Funktionsgruppe eine Komponente definieren Abhängigkeiten der Komponenten definieren Demo Komponentenmodell erstellen Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorgehensweise 3. Contracts definieren DataContracts beschreiben die Daten, die zwischen Komponenten ausgetauscht werden FunctionContracts definieren den Funktionsumfang einer Komponente Demo Contracts definieren Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorgehensweise 4. Komponenten implementieren Erstellen der Komponenten durch Ableitung Implementierung der Methoden einer Komponente Instanzen als Singleton bereitstellen Demo Komponenten implementieren Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Vorgehensweise 5. Zur Service-Orientierung erweitern Service-Fassade erstellen Demo Service-Fassade Thomas Schissler - XML-Serialisierung
Advanced Developers Conference 10.-11. Oktober 2004 Best Practice Was ist bei der komponentenorientierten Architektur zu beachten? Zyklische Abhängigkeiten vermeiden Optimal sind „zustandslose Komponenten“ Immer gegen das Interface implementieren Thomas Schissler - XML-Serialisierung
? Noch Fragen? Jetzt ist die Zeit dafür! …oder Frage per E-Mail an TSchissler@artiso.com ?
Sessionvoting Ich freue mich auf Ihr Feedback DANKE!
Wir sehen uns wieder: 18.-19. Juni 2008 Burghausen www.ASP-konferenz.de 13.-14. Oktober 2008 www.ADC08.de