Gestern habe ich zwei sehr interessante Artikel von Ralf Westphal entdeckt, in denen er auf Komponenten-orientierung, Contract-First-Design und Microkernel eingeht.
Da wäre zum einen “Dynamic component binding made easier“ in dem auch ein Beispiel Projekt gezeigt wird und zum anderen “Training students to use Software Cells, Contract-First-Design and a Microkernel“ wo es um einen Workshop an einer Uni zu diesem Thema geht.
Bisher war mir nicht bewusst was ein Microkernel beim Komponenten basierten erstellen von Software leisten kann: Nämlich saubere Trennung der einzelnen Komponenten über vorher definierte Interfaces (Contract-First). So lassen sich die einzelnen Komponenten unabhängig voneinander entwickeln und eben auch vollkommen unabhängig voneinander testen.
Also mein Tip: Unbedingt die beiden Artikel von Ralf lesen! Es lohnt sich wirklich! Hätte ich das alles etwas eher entdeckt, würde unser Diplomarbeitsprojekt jetzt sicher auch etwas anders aussehen… ;-)
Nützliche Tools für das ganze:
- Eine Microkernel Implementierung, z.b. die von Ralf (siehe Downloadlink am Ende des Artikels) oder das Castle Project, etc.
- NUnit - Das bekannte Unit Testframework für .NET zum Testen der einzelnen Komponenten.
- NMock - Ein Mock Object Framework. Damit lassen sich Dummy-Objekte für die Unit Tests bauen.