HowTo: Microsoft Patterns & Practices Software Factories verstehen

Patterns Practices

In dieser HowTo-Serie geht es um Software Factories.
In dem ersten Teil geht es erstmal primär um das Verstehen, was Software Factories sind und was man grob mit ihnen anfangen kann – und was sie uns bringen.

Was ist denn eine Software Factory und warum sollte ich eine benutzen?

Wenn man sich grob mal das ganze Thema Software Factories anschaut und sich die unterschiedlichen Tools etc. installiert, ist man doch erstmal erschlagen. Der gemeine Hobbyentwickler gibt eigentlich an dieser Stelle auf. “Echte” Entwickler sollten sich aber durchkämpfen.

Ein kurzer Abriss in den Ablauf der Softwareentwicklung: Es gibt ein bestimmtes Problem und man hat bereits einen Lösungsansatz. Man bindet z.B. einen Webservice ein oder fragt eine Datenbank ab, als Programm soll dann ein Windows Programm dienen.
In der Regel fängt dannach der Entwickler an eine neue Solution zu erstellen und bastelt alles von Grund auf neu. Der Vorteil: Man ist Herr über seinen eigenen Code und denkt sich dabei was.
Das Problem: Nicht jeder ist Experte und hinterher ärgert man sich über bestimmte Codestellen oder fragt sich, wie man am besten, dies und jenes implementieren könnte – nun ist das Produkt vielleicht fertig, aber wartungsfreundlich ist es nicht und es gibt auch keine guten allg. Lösungsansätze, da es ja eine ganz individuelle Entwicklung war.
Nun wäre es doch schön, würde man bestimmte Standardsachen einfach schon erstellen können um ein gutes Grundgerüst zu bekommen.
An dieser Stelle setzen Software Factories an.

Wenn man rubuste Software schreiben möchte, welche mit bewährten Techniken ein Grundgerüst gestellt bekommen – der sollte die Software Factories mal anschauen.

Woher bekomme ich diese Software Factories und was gibts für welche?

Das Logo oben ist von Microsofts “patterns & practices” Team und ich beziehe mich bei dieser HowTo Serie nur auf das p&p Team von Microsoft mit ihren Software Factories – es gibt wahrscheinlich noch mehr, aber das würde den Rahmen sprengen und mehr Zeit kosten.

Es gibt momentan 4 Factories:

Was benötige ich für die Software Factories und wie ist der Ablauf von den Factories?

Um die Software Factories zu nutzen benötigt man die Guidance Automation Extensions. Software Architekten (oder die, die es werden wollen) können diese Pakete auch editieren mit dem Guidance Automation Toolkit.
Alle Software Factories sind in einzelne Pakete gegliedert und integrieren sich vollständig ins Visual Studio 2005 oder Visual Studio 2008 (Beta 2)).
Den direkten Ablauf werde ich dann im nächsten HowTo zeigen.

Soviel erstmal zum Ablauf:
Es wird ein Grundgerüst erstellt (direkte C# Projekte in einer Solution) und man hat zu jedem einzelnen Projekt (je nach zugewiesener Responsibility) Kontextmenüs oder zusätzliche Optionen welche man einstellen muss oder kann. Dadurch “klickt” man sich quasi die Software zusammen. Anpassungen können natürlich trotzdem genommen werden - es ist nur ein Grundgerüst, dass man nutzen kann, aber nicht muss.
Wenn man sich natürlich zu sehr davon entfernt wäre es günstiger direkt die Pakete zu bearbeiten oder sich eine andere Methode auszudenken ;)


Irgendwie kommt mir manches aus der Software Factory XY bekannt vor?

Die Service Factories bauen intern auf die Enterprise Library und auf einigen Application Blocks auf – beides einen Blick wert.

Gibts sonst noch gute Informationen oder Downloadlinks?

Die Links auf die jeweilige Software Factory in der MSDN Library (siehe oben) zeigen eigentlich schon viele Links, Samples und Dokumente etc.
Ansonsten verweisen die MSDN Library Seiten auch öfters auf Codeplex, wo das p&p Team (und die Community) einiges zum Download bereit hält.

In späteren HowTos werden wir das dann natürlich noch mehr Besprechen und wie die einzelnen Teile alle zusammenhängen.

Links:
Microsoft patterns&pratices Site @ MSDN
Microsoft patterns&pratices Site @ MSDN Library
Mobile Client Software Factory
Smart Client Software Factory (Codename Acropolis & Codename Acropolis Blog)
Web Client Software Factory
Web Service Software Factory
Guidance Automation Extensions & Toolkit Site
Guidance Automation Extensions Download
Guidance Automation Toolkit Download
Enterprise Library
Applications Blocks

Letzte Posts

  • Carriage Return / Neue Zeile in Textareas

    Eine kleine Aufgabe: Jede neue Textzeile (Carriage Return/Wenn man Enter drückt ) in einer Textarea soll ein Element in einer Auflistung sein – wie mach ich das jetzt am einfachsten? Eigentlich ein grundlegendes Element im Web und der Nutzer macht bewusst Absätze – daher wäre es nur gerecht, wenn man das auch entsprechend würdigt. Kleine ...

  • image.png
    Doom, Quake, Wolfenstein & co. Source Code auf GitHub

    id Software, die Macher von Doom, Quake, Wolfenstein & co., stellen regelmäßig ihre älteren Spieltitle als Open Source zur Verfügung. Das Ganze runterzuladen fand ich bisher immer recht mühselig, allerdings gibt es seit kurzer Zeit die Sourcen auch auf GitHub. Darunter Spiele wie Doom 3, Quake 3, Wolfenstein für iOS. Wer also schon immer mal ...

  • image.png
    Twitter Bootstrap 2.0 released & “Release Präsentation”

    Wie bereits vom Twitter Bootstrap Team angekündigt wurde offiziel die Version 2.0 des UI Toolskits “Twitter Bootstrap” veröffentlich. Zudem wurden die Slides, welche bei der Release Party gezeigt wurden auch veröffentlicht: Downloads finden sich auf der Twitter Bootstrap Seite auf GitHub.

  • image.png
    Javascript zu Dart Translator

    Dart, Google Javascript Alternative, wurde vor ein paar Monaten vorgestellt und die Webentwickler Szene ist noch etwas gespalten, ob Dart nun überflüssig ist oder einfach nur cool und längst überfällig ist. Um die Sprache näher zu erläutern hat Google die grundlegenden Javascript Basics nach Dart übersetzt. Das Ergebnis ist der “Translator”. Der Name mag momentan ...

  • Twitter Bootstrap 2.0–“Beta”

    Twitter Bootstrap, ein UI-Toolkit für Web-Applikationen von Twitter, erscheint (wie bereits berichtet) demnächst in der Version 2.0. Der offizielle Release ist am 31. Januar, allerdings beginnt jetzt laut Mark Otto (einer der Hauptentwickler von Twitter Bootstrap) die intensive Test-Phase. Das heisst, das es nun offiziel auch die 2.0 Dokumentation online gibt. Im Vergleich zur aktuellen ...