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.png
    Source Code veröffentlichen – aber bitte mit Lizenz

    Seit es den Blog gibt wird auch meist der gesamte Demo Source Code mit veröffentlicht. Das Ganze hatte ich am Anfang noch als .zip verteilt, später lag es mal auf Google Code und nun liegen alle Samples und sonstige Sachen auf GitHub. Beim letzten User Group Treffen in Zürich mit dem Titel “Open Source: Get […]

  • Fix: Cannot convert from ‘CConnectProxy::_ComMapClass *’ to ‘AddInDesignerObjects::IDTExtensibility2 *’

    Mal einen etwas esoterischer Blogpost, welcher auftaucht wenn man zu viel mit Office Addins rumspielt. Der Fehler passiert beim Bauen von C++ Projekten, welchen diesen Typ benötigen. Lösung (auf 64bit Systemen): C:\Program Files (x86)\Common Files\DESIGNER>regsvr32 MSADDNDR.DLL And Rebuild. Meine lieben Kollegen hatte mir dies schon mehrfach gesagt, allerdings hatte ich es immer wieder vergessen Das […]

  • Gegen das Gesetz verstoßen: X Jahre Haft. Gegen die Terms of Use verstoßen: Bann auf Lebenszeit. Danke Google & co.

    Bei fast allen Diensten die man im Internet nutzen kann muss man den “Terms of use” zustimmen. Völlig logisch dass da natürlich drin steht was erlaubt und was nicht. Wenn man gegen diese Regelungen verstößt hat das Unternehmen natürlich das Recht etwas dagegen zu unternehmen. In der heutigen Welt beherrschen einige wenige Unternehmen die digitale […]

  • image.png
    RSS Feed samt Kommentaranzahl und andere nicht Standard Elemente mit dem SyndicationFeed auslesen

    Jetzt mal ein Blogpost ohne ein fancy NuGet Package: Seit .NET 3.5 gibt es die SyndicationFeed Klasse. Eine schon etwas ältere API, reicht aber aus um Atom bzw. RSS Feeds zu lesen. In diversen RSS Feeds gibt es aber Erweiterungen, welche man natürlich auch auslesen möchte. So gibt WordPress z.B. auch die Anzahl der geposteten […]

  • image.png
    ASP.NET Bundling & Fontawesome

    Vor einer halben Ewigkeit hatte ich mal geschrieben wie man Fontawesome in ASP.NET nutzen kann. Aufgrund des Alters des Post und einem Kommentar ob man denn Fontawesome auch in das ASP.NET Bundling Framework integrieren kann möchte ich nur ein kurzes Update schreiben. TL;DR: NuGet Package “Fontawesome” runterladen und Pfad in der Bundleconfig angeben. Kurze Schritte […]

Support us!