230 likes | 365 Views
Mit 3 Schichte zum Erfolg. Thomas Schissler TSchissler@artiso.com. Agenda. Einführung Begriffsdefinition 3 Schichten, was bedeutet das? Wo liegen die Vorteile Architekturkonzepte 3-Schicht-Architektur aufbauen Komponentenorientierte Architektur Service-Orientierung. Vorstellung.
E N D
Mit 3 Schichte zum Erfolg Thomas Schissler TSchissler@artiso.com
Agenda • Einführung • Begriffsdefinition • 3 Schichten, was bedeutet das? • Wo liegen die Vorteile • Architekturkonzepte • 3-Schicht-Architektur aufbauen • Komponentenorientierte Architektur • Service-Orientierung
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
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
Begriffsdefinition Client Tier Server Tier Presentation Layer Business Layer Data Layer
Unterschiede • 2-Schicht-Architektur Frontend Data-Layer
Unterschiede • 3-Schicht-Architektur Presentation Layer Business-Layer Data-Layer
Unterschiede private voidbtnCalculate_Click(objectsender, EventArgs e) { LabelResult.Text = Double.Parse(txtAmount.Text) * Double.Parse(txtPrice.Text); } private voidbtnCalculate_Click(objectsender, EventArgs e) { LabelResult.Text = Calculator.GetTotal( Double.Parse(txtAmount.Text), Double.Parse(txtPrice.Text)); }
Unterschiede Button Label Button Label Button Label Button Label Amount * Price Amount * Price
Vorteile • Vorteile der 3-Schicht-Architektur • Bessere Wiederverwendbarkeit • Bessere Strukturierung • Bessere Entwicklung im Team • Bessere Testbarkeit • Grundlage für verteilte Systeme
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
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
Komponenten-orientierung • Was bedeutet Komponentenorientierung? • Schichten werden als unabhängige Assemblies (Komponenten) implementiert • Kommunikation zwischen Kompontenten wird durch Contracts beschrieben
Komponenten-orientierung • Vorteile: • Bessere Wiederverwendbarkeit • Bessere Strukturierung • Bessere Entwicklung im Team • Bessere Testbarkeit • Grundlage für verteilte Systeme
Vorgehensweise 1. Funktionsbaum erstellen • Sammeln aller Funktionsanforderungen • Hierarchische Organisation der Funktionen • Fehlende Funktionen ergänze Demo Funktionsbaum erstellen
Vorgehensweise 2. Komponentenmodell erstellen • Zusammenfassen der Funktionen zu logischen Gruppen • Je Funktionsgruppe eine Komponente definieren • Abhängigkeiten der Komponenten definieren Demo Komponentenmodell erstellen
Vorgehensweise 3. Contracts definieren • DataContracts beschreiben die Daten, die zwischen Komponenten ausgetauscht werden • FunctionContracts definieren den Funktionsumfang einer Komponente Demo Contracts definieren
Vorgehensweise 4. Komponenten implementieren • Erstellen der Komponenten durch Ableitung • Implementierung der Methoden einer Komponente • Instanzen als Singleton bereitstellen Demo Komponenten implementieren
Vorgehensweise 5. Zur Service-Orientierung erweitern • Service-Fassade erstellen Demo Service-Fassade
Best Practice • Was ist bei der komponentenorientierten Architektur zu beachten? • Zyklische Abhängigkeiten vermeiden • Optimal sind „zustandslose Komponenten“ • Immer gegen das Interface implementieren
NochFragen? ? • Jetztist die Zeitdafür! • …oderFrage per E-Mail an TSchissler@artiso.com
Sessionvoting • Ichfreuemich auf Ihr Feedback DANKE!
Wirsehenunswieder: 18.-19. Juni 2008 Burghausen www.ASP-konferenz.de 13.-14. Oktober 2008 www.ADC08.de