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

  • image_thumb.png
    NuGet Package Restore & Build Server wie z.B. AppVeyor

    NuGet ist ja mittlerweile weit verbreitet, aber eine Frage stellt sich natürlich immer noch: Checkt man die NuGet Packages ein oder nicht? In meinem kleinen Side-Projekt, welches auf GitHub liegt und ich über AppVeyor auch bauen lasse nutze ich das Package Restore Feature von NuGet, d.h. in meinem Repository befindet sich kein NuGet Package mehr, […]

  • image.png
    Microsoft Account Login via ASP.NET Identity

    Der Microsoft Account ist die zentrale Identifikationsstelle in der “Consumer-Microsoft-Welt”, allerdings ist das Einbinden eben dieser in die eigene Applikation eher schwierig. Das “Live SDK” ist nun unter dem OneDrive Dev Center zu finden und ganz professionell wurden auch alle Links zum alten Live SDK damit unbrauchbar gemacht. Beim Microsoft Account ist es auch unmöglich […]

  • image.png
    Zeitgesteuerte Azure WebJobs – so einfach kann Azure sein

    Das noch in Entwicklung befindliche Azure WebJob SDK bietet einige coole Features zum Verarbeiten und Bereitstellen von Daten. Bekanntes Beispiel ist das Sample welches auf eine Azure Queue lauscht und sobald ein Item da vorhanden ist anfängt dies zu verarbeiten. Szenario: Zeitgesteuerte Aktivitäten – ohne Queue und co. Mein Szenario war allerdings wesentlich trivialer: Ich […]

  • image.png
    Get Involved in OSS! Ja, aber wie geht das denn mit GitHub?

    Auch im .NET Lager gibt es Bewegung im OSS Bereich und es gibt verschiedene Arten wie man bei einem Open Source Projekt “Contributed”. Was zählt alles zu “Contribution”? Unter “Contribution” läuft eigentlich alles – ob es Fragen/Probleme zu dem Projekt via Issues ist oder Dokumentation nachreicht oder ob man darüber bloggt oder das Projekt vorstellt. […]

  • HowTo: Web.config samt eigener ConfigSection zur Laufzeit ändern

    In dem HowTo geht es darum wie man die Web.config zur Laufzeit ändert und was es dabei zu beachten gilt. Das ganze klappt auch mit komplexeren ConfigSections. Eigene ConfigSection? Vor einer ganzen Weile habe ich mal über das Erstellen einer eigenen ConfigSection geschrieben – im Grunde nutzen wir jetzt fast dieselbe Config. Zur Laufzeit? Startet […]

Support us!