41
Applikationsentwic Applikationsentwic klung klung mit dem mit dem Microkernel Microkernel von Andreas Bräsen von Andreas Bräsen .NET User Group Karlsruhe .NET User Group Karlsruhe 23-Feb-2006 23-Feb-2006

Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Embed Size (px)

Citation preview

Page 1: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Applikationsentwicklung Applikationsentwicklung mit dem Microkernelmit dem Microkernel

von Andreas Bräsenvon Andreas Bräsen

.NET User Group Karlsruhe.NET User Group Karlsruhe

23-Feb-200623-Feb-2006

Page 2: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Ziel des VortragesZiel des Vortrages

Relativ kurz zu beschreiben, wie ich von Relativ kurz zu beschreiben, wie ich von der Anforderung an eine zu der Anforderung an eine zu implementierende Applikation zur implementierende Applikation zur Benutzung des Microkernels gekommen Benutzung des Microkernels gekommen bin.bin.

Page 3: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Zu meiner Person...Zu meiner Person...

Andreas BräsenAndreas Bräsen

Dipl. Ing. der technischen Informatik (FH)Dipl. Ing. der technischen Informatik (FH)

Freiberuflicher Software Entwickler mit Freiberuflicher Software Entwickler mit Schwerpunkt auf .NET basierter Software Schwerpunkt auf .NET basierter Software EntwicklungEntwicklung

Beschäftigung mit dem Microkernel seit Beschäftigung mit dem Microkernel seit dem September 2005dem September 2005

Page 4: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Die Applikation...Die Applikation...

Es soll eine Software erstellt werden, Es soll eine Software erstellt werden, welche Homöopatische Heilmittel ermittelt, welche Homöopatische Heilmittel ermittelt, basierend auf einen Frage/Antwort basierend auf einen Frage/Antwort Verfahren. Diese Application soll auf Verfahren. Diese Application soll auf verschiedenen Endgeräten und mit verschiedenen Endgeräten und mit verschiedenen Datenbanken laufen.verschiedenen Datenbanken laufen.

Page 5: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Die Anforderungen ein wenig Die Anforderungen ein wenig genauer...genauer...

1.1. Die Applikation muß unter .NET laufen.Die Applikation muß unter .NET laufen.

2.2. Die Applikation muß unter Windows laufen.Die Applikation muß unter Windows laufen.

3.3. Die Applikation muß auf einem PDA laufen.Die Applikation muß auf einem PDA laufen.

4.4. Als Datenbank muß SQL-Server, SQL-Server Als Datenbank muß SQL-Server, SQL-Server CE und Access unterstützt werden.CE und Access unterstützt werden.

5.5. Der verwendete Algorithmus zum Finden der Der verwendete Algorithmus zum Finden der Heilmittel muß austauschbar sein.Heilmittel muß austauschbar sein.

6.6. Parallele Entwicklung aller Komponenten.Parallele Entwicklung aller Komponenten.

7.7. Hohe Testabdeckung (Regression Tests).Hohe Testabdeckung (Regression Tests).

Page 6: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Hmm, wie könnte man das Problem Hmm, wie könnte man das Problem lösen ?lösen ?

Page 7: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Das Schichtenmodell - Eine Lösung ?Das Schichtenmodell - Eine Lösung ?

Page 8: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Nicht so richtig !Nicht so richtig !

1.1. Die Applikation muß unter .NET laufen.Die Applikation muß unter .NET laufen.

2.2. Die Applikation muß unter Windows laufen.Die Applikation muß unter Windows laufen.

3.3. Die Applikation muß auf einem PDA laufen.Die Applikation muß auf einem PDA laufen.

4.4. Als Datenbank muß SQL-Server, SQL-Server Als Datenbank muß SQL-Server, SQL-Server CE und Access unterstützt werden.CE und Access unterstützt werden.

5.5. Der verwendete Algorithmus muß Der verwendete Algorithmus muß austauschbar sein.austauschbar sein.

6.6. Parallele Entwicklung aller Komponenten.Parallele Entwicklung aller Komponenten.

7.7. Hohe Testabdeckung (Regression Tests).Hohe Testabdeckung (Regression Tests).

Page 9: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Das Schichtenmodell – Die Zweite..Das Schichtenmodell – Die Zweite..

Page 10: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Die Anforderungen...Die Anforderungen...

1.1. Die Applikation muß unter .NET laufen.Die Applikation muß unter .NET laufen.

2.2. Die Applikation muß unter Windows laufen.Die Applikation muß unter Windows laufen.

3.3. Die Applikation muß auf einem PDA laufen.Die Applikation muß auf einem PDA laufen.

4.4. Als Datenbank muß SQL-Server, SQL-Server Als Datenbank muß SQL-Server, SQL-Server CE und Access unterstützt werden.CE und Access unterstützt werden.

5.5. Der verwendete Algorithmus muß Der verwendete Algorithmus muß austauschbar sein.austauschbar sein.

6.6. Parallele Entwicklung aller Komponenten.Parallele Entwicklung aller Komponenten.

7.7. Hohe Testabdeckung (Regression Tests).Hohe Testabdeckung (Regression Tests).

Page 11: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Das Schichtenmodell – Die Fragen...Das Schichtenmodell – Die Fragen...

Wer instanziert wen ?Wer instanziert wen ?Wer steckt das Ganze zusammen ?Wer steckt das Ganze zusammen ?Muß ich die Interfaces durch Schichten Muß ich die Interfaces durch Schichten durchreichen ?durchreichen ?Wie tausche ich Schichten/Bestandteile aus, Wie tausche ich Schichten/Bestandteile aus, so daß ich das Ganze testen kann ?so daß ich das Ganze testen kann ?Wie entwickle ich parallel ?Wie entwickle ich parallel ?Wann definiere ich die Interfaces ?Wann definiere ich die Interfaces ?Wie kann ich Bestandteile einfach Wie kann ich Bestandteile einfach austauschen ?austauschen ?

Page 12: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Basta September 2005Basta September 2005

Ralf WestphalRalf WestphalPragmatische AnwendungsarchitekturPragmatische Anwendungsarchitektur Zellen statt SchichtenZellen statt Schichten

Dort erwähnte er den MicrokernelDort erwähnte er den Microkernel Ein Microkernel lokalisiert und instanziert Ein Microkernel lokalisiert und instanziert

Komponenten.Komponenten.

In seinem Vortrag sprach er von Zellen, die von In seinem Vortrag sprach er von Zellen, die von einander nur die Schnittstellen kennen und die einander nur die Schnittstellen kennen und die über einen Microkernel zusammengesteckt über einen Microkernel zusammengesteckt werden können.werden können.

Page 13: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Wie sieht so eine Zelle aus ?Wie sieht so eine Zelle aus ?

Resource AdapterApplication Adapter

User Portal

CoreApplication Portal

Page 14: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

BegriffserklärungBegriffserklärung

Core – Logik der Zelle (Verarbeitung)Core – Logik der Zelle (Verarbeitung)

Portal – API steuert die Logik.Portal – API steuert die Logik.

Adapter – Die Logik steuert ein API.Adapter – Die Logik steuert ein API.

Zelle = Komponente ?Zelle = Komponente ?

Page 15: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Zellen (Komponenten) werden Zellen (Komponenten) werden zusammengesteckt zusammengesteckt

GUI

Business

Data Access

Data TypesUtilities

Page 16: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Zellen...(SOA läßt grüßen)Zellen...(SOA läßt grüßen)

Grenzen zwischen Zellen (Komponenten) Grenzen zwischen Zellen (Komponenten) sind explizit.sind explizit.

Zellen (Komponenten) sind möglichst in Zellen (Komponenten) sind möglichst in sich geschlossen.sich geschlossen.

Zellen (Komponenten) kennen Zellen (Komponenten) kennen voneinander nur ihre Verträge, nicht aber voneinander nur ihre Verträge, nicht aber ihre Implementierungen.ihre Implementierungen.

SOA = Service Oriented Architecture

Page 17: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Zellen (Komponenten) werden Zellen (Komponenten) werden zusammengesteckt zusammengesteckt

GUI

Business

Data Access

Data TypesUtilities

Page 18: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Das Schichtenmodell – Die Zweite..Das Schichtenmodell – Die Zweite..

Page 19: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Ich Glaube mir fehlt noch etwas..Ich Glaube mir fehlt noch etwas..

Wenn Zellen (Komponenten) nur die Wenn Zellen (Komponenten) nur die Interfaces der anderen Zellen Interfaces der anderen Zellen (Komponenten) kennen, wie kann ich den (Komponenten) kennen, wie kann ich den überhaupt jemals eine Instanz einer überhaupt jemals eine Instanz einer anderen Zelle bekommen bzw, wie füge anderen Zelle bekommen bzw, wie füge ich das alles zusammen ? Wo ist der ich das alles zusammen ? Wo ist der Anfang ? Wo ist das Main ?Anfang ? Wo ist das Main ?

Page 20: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Jetzt kommt der Microkernel ins Jetzt kommt der Microkernel ins Spiel ! Spiel !

Der Microkernel weiß zu welchem welche Der Microkernel weiß zu welchem welche Klasse welches Interface implementiert.Klasse welches Interface implementiert.Das weiß er über eine Konfiguration (z.B. Das weiß er über eine Konfiguration (z.B. aus der App Config)aus der App Config)Wenn man jetzt eine Instanz eines Wenn man jetzt eine Instanz eines Interfaces benötigt, dann fragt man Interfaces benötigt, dann fragt man einfach nur den Microkernel und man einfach nur den Microkernel und man bekommt eine Instanz zu dem geforderten bekommt eine Instanz zu dem geforderten Interface.Interface.

Page 21: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Das Schichtenmodell – Die Fragen...Das Schichtenmodell – Die Fragen...

Wer instanziert wen ?Wer instanziert wen ?Wer steckt das Ganze zusammen ?Wer steckt das Ganze zusammen ?Muß ich die Interfaces durch Schichten Muß ich die Interfaces durch Schichten durchreichen ?durchreichen ?Wie tausche ich Schichten/Bestandteile aus, Wie tausche ich Schichten/Bestandteile aus, so daß ich das Ganze testen kann ?so daß ich das Ganze testen kann ?Wie entwickle ich parallel ?Wie entwickle ich parallel ?Wann definiere ich die Interfaces ?Wann definiere ich die Interfaces ?Wie kann ich Bestandteile einfach Wie kann ich Bestandteile einfach austauschen ?austauschen ?

Page 22: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Die Lösung reppelte sich von ganz Die Lösung reppelte sich von ganz alleine auf:alleine auf:

Wer instanziert wen ?Wer instanziert wen ? Ok, es muß immer noch einen Host Ok, es muß immer noch einen Host

geben mit einem Main, dieser holt sich geben mit einem Main, dieser holt sich über den Microkernel die Business über den Microkernel die Business Logik Komponente und startet diese. Logik Komponente und startet diese. Die Business Logik benötigt ein Portal Die Business Logik benötigt ein Portal und mehrere Adapter. Diese werden und mehrere Adapter. Diese werden ebenfalls über den Microkernel ebenfalls über den Microkernel instanziert und so fort. So baut sich die instanziert und so fort. So baut sich die Application auf und alles ohne new*.Application auf und alles ohne new*.

*Nur standard Datentypen werden mit new erzeugt. DataSets gehören auch dazu.

Page 23: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Weitere Antworten...Weitere Antworten...

Wer steckt das Ganze zusammen ?Wer steckt das Ganze zusammen ? Die Application selber fängt an sich Die Application selber fängt an sich

zusammenzubauen.zusammenzubauen.

Muß ich die Interfaces durch Muß ich die Interfaces durch Schichten durchreichen ?Schichten durchreichen ? Nein, über den Microkernel komme ich Nein, über den Microkernel komme ich

immer an Instanz eines Interfaces immer an Instanz eines Interfaces heran.heran.

Page 24: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Weitere AntwortenWeitere Antworten

Wie tausche ich Wie tausche ich Schichten/Bestandteile aus, so daß Schichten/Bestandteile aus, so daß ich das Ganze testen kann ?ich das Ganze testen kann ? Ich kann anstatt der realen Ich kann anstatt der realen

Implementierung mir Instanzen über Implementierung mir Instanzen über den Microkernel geben lassen, die das den Microkernel geben lassen, die das geforderte Interface implementieren, geforderte Interface implementieren, aber nur zu Testzwecken da sind. aber nur zu Testzwecken da sind.

Page 25: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Weitere Antworten...Weitere Antworten...

Wie entwickle ich parallel ?Wie entwickle ich parallel ? Wenn man jetzt noch den Contract Wenn man jetzt noch den Contract

First Design Ansatz fährt, sich also First Design Ansatz fährt, sich also über die Schnittstellen vor der über die Schnittstellen vor der Implementierung Gedanken macht, Implementierung Gedanken macht, dann können Entwickler dann können Entwickler unabhängig gegen die jeweiligen unabhängig gegen die jeweiligen Interfaces entwickeln. Interfaces entwickeln.

Page 26: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Weitere Antworten...Weitere Antworten...

Wann definiere ich die Interfaces ?Wann definiere ich die Interfaces ? Die Frage ist schon durch das Contract Die Frage ist schon durch das Contract

First Design beantwortet worden. Zuerst First Design beantwortet worden. Zuerst das Interface, dann die Implemetierung.das Interface, dann die Implemetierung.

Wie kann ich Bestandteile einfach Wie kann ich Bestandteile einfach austauschen ?austauschen ? Der Microkernel hat ein konfigurierbares Der Microkernel hat ein konfigurierbares

Mapping zwischen Interface(s) und Mapping zwischen Interface(s) und implementierender Klasse, die on the fly implementierender Klasse, die on the fly ausgetauscht werden kann.ausgetauscht werden kann.

Page 27: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

App-Config 1/2App-Config 1/2<configuration><configuration> <configSections><configSections> <section name=„microkernel“ <section name=„microkernel“ type=„dnp.microkernel.ConfigSectionHandler, dnp.microkernel“ />type=„dnp.microkernel.ConfigSectionHandler, dnp.microkernel“ /> </configSections></configSections> ...... <microkernel><microkernel> <references><references> <local keyType=„<local keyType=„MyInterfaces.IBerichtswesenMyInterfaces.IBerichtswesen““ assembly=„assembly=„MyImplementationMyImplementation““ implementationType=„implementationType=„MyImplementation.BerichtswesenEinfachMyImplementation.BerichtswesenEinfach“>“> </local></local> ...... </references></references> </microkernel></microkernel></configuration></configuration>

Page 28: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

App Config 2/2App Config 2/2......<microkernel><microkernel> <references><references> <local keyType=„MyInterfaces.IBerichtswesen“<local keyType=„MyInterfaces.IBerichtswesen“ assembly=„MyImplementation“assembly=„MyImplementation“ implementationType=„implementationType=„MyImplementation.BerichtswesenEinfachMyImplementation.BerichtswesenEinfach“>“> <roleAllowed><roleAllowed> <role name=„<role name=„Abteilungsserver\SachbearbeiterAbteilungsserver\Sachbearbeiter“ />“ /> </roleAllowed></roleAllowed> </local></local> <local keyType=„MyInterfaces.IBerichtswesen“<local keyType=„MyInterfaces.IBerichtswesen“ assembly=„MyImplementation“assembly=„MyImplementation“ implementationType=„implementationType=„MyImplementation.BerichtswesenDetailiertMyImplementation.BerichtswesenDetailiert“>“> <roleAllowed><roleAllowed> <role name=„<role name=„Abteilungsserver\AbteilungsleiterAbteilungsserver\Abteilungsleiter“ />“ /> </roleAllowed></roleAllowed> </local></local> </references></references> </microkernel></microkernel></configuration></configuration>

Page 29: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Benutzung des MicrokernelsBenutzung des Microkernels

HerkömmlichHerkömmlich IClass1 _class;IClass1 _class; _class = new Class1() as IClass1;_class = new Class1() as IClass1;

Mit MicrokernelMit Microkernel IClass1 _class1;IClass1 _class1; _class = dnp.microkernel.ObjectFactory_class = dnp.microkernel.ObjectFactory

.CreateInstance( typeof( IClass1 ) ) .CreateInstance( typeof( IClass1 ) ) as IClass1; as IClass1;

Page 30: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Die Anforderungen...Die Anforderungen...

1.1. Die Applikation muß unter .NET laufen.Die Applikation muß unter .NET laufen.

2.2. Die Applikation muß unter Windows laufen.Die Applikation muß unter Windows laufen.

3.3. Die Applikation muß auf einem PDA laufen.Die Applikation muß auf einem PDA laufen.

4.4. Als Datenbank muß SQL-Server, SQL-Server Als Datenbank muß SQL-Server, SQL-Server CE und Access unterstützt werden.CE und Access unterstützt werden.

5.5. Der verwendete Algorithmus muß Der verwendete Algorithmus muß austauschbar sein.austauschbar sein.

6.6. Parallele Entwicklung aller Komponenten.Parallele Entwicklung aller Komponenten.

7.7. Hohe Testabdeckung (Regression Tests).Hohe Testabdeckung (Regression Tests).

Page 31: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Ist das alles ?Ist das alles ?

Nein, mann kann das soweit treiben, daß jede Klasse ein Nein, mann kann das soweit treiben, daß jede Klasse ein Interface bekommt.Interface bekommt.Dadurch kann jede Klasse durch Testklassen Dadurch kann jede Klasse durch Testklassen ausgetauscht werden und die Applikation kann zu einem ausgetauscht werden und die Applikation kann zu einem hohen Maße testbar gemacht werden.hohen Maße testbar gemacht werden.Der Microkernel kann Singletons verwalten, was auch zu Der Microkernel kann Singletons verwalten, was auch zu einer besseren Testbarkeit führt, da der Feind des einer besseren Testbarkeit führt, da der Feind des Regression Tests an einer Stelle die Existenz entzogen Regression Tests an einer Stelle die Existenz entzogen werden kann.werden kann.Über den Microkernel können auch Objekte geliefert Über den Microkernel können auch Objekte geliefert werden, die sich in einem anderen Prozess oder werden, die sich in einem anderen Prozess oder Rechner befinden. Der Anfordernde weiß nichts davon.Rechner befinden. Der Anfordernde weiß nichts davon.

Page 32: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Wo Licht ist, ist auch Schatten !Wo Licht ist, ist auch Schatten !

Ein Nachteil ist eventuell die etwas Ein Nachteil ist eventuell die etwas längere Zeit bei der Instanzierung der längere Zeit bei der Instanzierung der Klassen, weil für das angeforderte Klassen, weil für das angeforderte Interface erst in der Mapping Tabelle die Interface erst in der Mapping Tabelle die implementierende Klasse gesucht werden implementierende Klasse gesucht werden muß. Diese wird dann über Reflection muß. Diese wird dann über Reflection instanziert. instanziert.

Die Projektstruktur ändert sich.Die Projektstruktur ändert sich.

Page 33: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Mögliche Projekt-StrukturenMögliche Projekt-Strukturen

Interfaces

GUI

Business

Data Access

Utilties

Microkernel

Host

Data Types

Page 34: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Mögliche Projekt-StrukturenMögliche Projekt-Strukturen

Es gibt ein oder mehrere Assemblies, Es gibt ein oder mehrere Assemblies, welche die Interfaces beinhaltet.welche die Interfaces beinhaltet.

Die anderen Projekte referenzieren diese Die anderen Projekte referenzieren diese Interface-Assemblies und sonst kein Interface-Assemblies und sonst kein anderes Assembly von den Projekten. anderes Assembly von den Projekten. Dadurch wird auch deutlich, das eine Dadurch wird auch deutlich, das eine keine Kopplung zwischen den einzelnen keine Kopplung zwischen den einzelnen Bestandteilen vorliegt.Bestandteilen vorliegt.

Page 35: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Zur entwickelten ApplicationZur entwickelten Application

Page 36: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Demo der ApplicationDemo der Application

Page 37: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Resüme...Resüme...

Der Microkernel bringt mehr Vorteile als Der Microkernel bringt mehr Vorteile als alles andere womit ich bisher Software alles andere womit ich bisher Software entwickelt habe. entwickelt habe. Es bedarf zwar ein wenig der Gewöhnung Es bedarf zwar ein wenig der Gewöhnung an die veränderte Denk- und Arbeitsweise, an die veränderte Denk- und Arbeitsweise, aber das Resultat ist bemerkenswert.aber das Resultat ist bemerkenswert.Der nächste Evolutionsschritt in der Der nächste Evolutionsschritt in der Entwicklung von Software nach dem Entwicklung von Software nach dem Schichtenmodell .....?Schichtenmodell .....?

Page 38: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Resourcen 1/2Resourcen 1/2

1.1. Die Evolution von Mehrschichtarchitekturen -ViDie Evolution von Mehrschichtarchitekturen -Virtuos und flexibel – Torsten Zimmermann - dotrtuos und flexibel – Torsten Zimmermann - dotnetpro 4-2005netpro 4-2005

2.2. Contract First Design und Microkernel-FramewContract First Design und Microkernel-Framework – Am Anfang war der Vertrag – Ralp Westpork – Am Anfang war der Vertrag – Ralp Westphal - dotnetpro 6-2005hal - dotnetpro 6-2005

3.3. Contract First Design und Microkernel-FramewContract First Design und Microkernel-Framework – Spicken nicht erlaubt – Ralf Westphal - dork – Spicken nicht erlaubt – Ralf Westphal - dotnetpro 9-2005otnetpro 9-2005

Page 39: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Resourcen 2/2Resourcen 2/2

4.4. Software einfacher entwickeln – Das Software Software einfacher entwickeln – Das Software Universum – Ralf Westphal – dotnetpro 2-2006Universum – Ralf Westphal – dotnetpro 2-2006

5.5. Software strukturieren mit SoftwarezellenKeine Software strukturieren mit SoftwarezellenKeine Frage der Schichten – Ralf Westphal – dotnetpFrage der Schichten – Ralf Westphal – dotnetpro 3-2006ro 3-2006

6.6. Dot Net TV Folge 10 – MicrokernelDot Net TV Folge 10 – Microkernel

7.7. Basta 2005 – Slideset Pragmatische AnwenduBasta 2005 – Slideset Pragmatische Anwendungsarchitektur – Zellen statt Schichtenngsarchitektur – Zellen statt Schichten

Page 40: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

Fragen ...Fragen ...

Page 41: Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006

KontaktKontakt

www.bruke.dewww.bruke.de

Andreas BräsenAndreas Bräsen

Software EntwicklungSoftware Entwicklung

E-Mail: E-Mail: [email protected]@bruke.de

Tel. 07243-765158Tel. 07243-765158