Sonntag, 19. Juli 2009

Was sind Patterns

Was wäre der Softwareentwickler oder –architekt ohne seine Patterns!? Na zumindest kein besonders gutes Exemplar seiner Zunft wenn ihr mich fragt … denn Entwurfsmuster sollten - aus diversen Gründen - ein integraler Bestandteil Ihres Handwerkszeugs sein. Warum das so ist wird hoffentlich am Ende dieses kleinen Artikels deutlich.
Naja … zumindest sollte das Interesse der Leute geweckt sein, sich doch etwas näher mit dem Thema auseinander zu setzen. :)

Grundsätzlich gibt es eine Vielzahl von Mustern (Patterns) im Umfeld der Softwareentwicklung, die alle eine mehr oder weniger relevante Rolle spielen. Man unterscheidet
  • Analysemuster
  • Architekturmuster
  • Entwurfsmuster
  • Antimuster

wobei Entwurfsmuster (und Architekturmuster) den eigentlichen Kern unserer Betrachtungen bilden.

Entwurfsmuster oder auch Patterns oder auch Design Patterns … egal wie man sie bezeichnet, sie erfüllen ein und denselben Zweck, sie bilden bewährte Lösungsansätze für wiederkehrende Entwurfsprobleme und typische Aufgaben im Umfeld des Softwareentwicklungsprozesses.
Dabei gibt es häufig eine grundlegende Kategorisierung der Entwurfsmuster anhand Ihres Problemlösungsansatzes:

  • Erzeugende Muster (creational patterns) - Kontrolle über Objekterzeugung, Objekterzeugungsmechanismen
  • Strukturelle Muster (structural patterns) - Kombination von Klassen und Objekten zur Bildung größerer Strukturen
  • Verhaltensmustern (behavioral patterns) - Definition von Kommunikation zwischen Objekten und Kommunikationsfluss
  • sonstige Muster

Wer bestimmt nun was ein Design Pattern ist und was nicht bzw. welche wesentlichen Merkmale machen ein Entwurfsmuster zu einem Solchen!?
Die Frage nach dem „Wer“ ist wohl eher zweitrangig, denn mit dem Erfolg bzw. den offensichtlichen Vorteilen eines Entwurfsmusters kommt auch dessen Verbreitung durch die Community.
Die positiven Merkmale eines Patterns sind das was es ausmacht, jedoch sind diese auch immer abhängig von der Problemstellung und den Randbedingungen. Es lassen sich schnell einige Merkmale aufzählen, welche die Lösungen von Aufgaben mit Hilfe von Design Patterns prägen:

  • gute Wiederverwendbarkeit
  • besondere Performance
  • gute Skalierbarkeit
  • schnell lösbar

Das sollte erst einmal einen ganz guten (Kurz-)Überblick geben was Patterns sind, wie man sie unterscheidet und wofür sie gut sind. Ich möchte aber auch darauf aufmerksam machen, dass man mit solchen Entwurfsmustern auch vorsichtig umgehen sollte … denn nicht immer ist man mit der Anwendung von Pattern gut beraten. Wie in vielen Bereichen des Lebens gilt auch hier: „Nicht immer gleich mit Kanonen auf Spatzen feuern!“ - Overengineering hat erfahrungsgemäß selten positive Ergebnisse gebracht.

Wer mehr über Entwurfsmuster/Patterns wissen möchte, der kann sich gerne weiter mit einigen der Quellen beschäftigen, die ich zu meiner Vorbereitung genutzt habe:

Anmerkung:
Gut … ich weiß dass ich mit der obigen Verallgemeinerung bereits eine Steilvorlage für die Leute gebe, die sich intensiver mit dem Thema befassen und sicher auch ein viel tieferes Wissen als ich besitzen … aber ich denke zum grundlegenden Verständnis sollte das erst einmal reichen.

Patterns – Problemlösung nach Anleitung

Eigentlich wollte ich ja mittlerweile mal mein erstes Tutorial hier in meinem Blog präsentiert haben … aber naja, es hat mich mit den gegebenen Mitteln doch leider etwas Nerven gekostet daran zu arbeiten und ich bin nicht so voran gekommen wir ich eigentlich gerne wollte. Da ich wohl noch ein wenig länger brauche um das angedachte Tutorial vernünftig aufzubereiten werde ich mich parallel mal einem mir sehr wichtigen Thema widmen.

Nun weiß ich ja dass sich im Web, in Büchern und in jeder Menge anderer Medien bereits ausführlich mit dem Thema „Patterns & Best Practices“ beschäftigt wird … aber ich denke einfach dass eine große Menge an Publikationen und die unterschiedliche Aufbereitung die Chancen erhöhen, dass mehr Leute dieses Mittel nutzen.

Ich will versuchen auf meine Art das Thema „Patterns & Best Practices“ aufzubereiten und neben einem grundlegenden Einblick auch einige der bekanntesten und beliebtesten Beispiele mal etwas näher beleuchten. Meine Quellen und Inspirationen gibt’s dann immer on top :)

Agenda
  1. Was sind Patterns
  2. Das MVC Pattern - Teil 1
  3. Das MVC Pattern - Teil 2 (Comin' soon ...)
  4. Das Singleton Pattern (Comin' soon ...)
  5. Das Factory Pattern (Comin' soon ...)
  6. Das Facade Pattern (Comin' soon ...)
  7. ...

Freitag, 10. Juli 2009

Silverlight 3 ist endlich da!

So ... nun ist es endlich geschafft :) ... Silverlight 3 ist ja nun offiziell verfügbar und bring ein paar sehr leckere neue Features mit!
Bevor ich jetzt anfange als x-ter Blogger dieses Thema auszuweiden mache ich es mir einfach und verweise auf einen meiner Favorites an BLOGs der die wesentlichsten Features recht gut beleuchtet ... also schaut euch mal Scott Guthrie's Blog zu dem Thema an!

Wem das nicht reicht oder wer net so auf Englisch steht, der kann auch einfach mal bei heise vorbei schauen ... auch wenn es da nicht ganz so ausführlich zur Sache geht ;)

Eine Sache die im Zusammenhang taucht immer wieder auf ... IIS Smooth Streaming bzw. allgemein die IIS Media Services! Für alle die schon immer über On-Demand und Live Streaming nachgedacht haben - es aber aufgrund mangelnder Hardware nie angegangen sind - damit "Werden Sie geholfen!"

Ich werd zu dem Thema mal demnächst nen Post aufmachen ... nur schon soviel vorab ... es ist einfach, es macht Spass ... ES LOHNT SICH! :)

Prozessoptimierung mal anders

Die beiden Jungs haben sich da echt was geniales ausgedacht ... wenn das Leben doch immer so "simpel" wäre :)

Donnerstag, 9. Juli 2009

Prototyping leicht gemacht!

Mit seiner neusten Version von Expression Blend (Version 3) liefert Microsoft ein neues cooles Feature um ein schnelles Prototyping für Web Sites zu ermöglichen ... es nennt sich SketchFlow.

Hierbei können kleine Storyboards mit Hilfe der SketchFlow Map erstellt werden und später per Player präsentiert und diskutiert werden.
Es gibt weiterhin Möglichkeiten um während der Präsentation neue Ideen und Anregungen in den bestehenden "SketchFlow" einfließen zu lassen.

Auf den ersten Blick sieht das doch recht lohnenswert aus, aber seht selbst!


Expression SketchFlow

Wer mehr Infos möchte, der findet rechts in der Blog Liste Zugang zum coolen "The Silverligth Blog" ... der versorgt euch dann sicher mit mehr Infos!

Enjoy it!

Verdientes Lob ...

haben sich einige der cleveren Jungs und Mädels abgeholt, die Windows 7 zu verantworten haben ... naja fast alle. Warum wer wie die Leiter raufgefallen ist kann ich zwar teilweise nicht nachvollziehen, aber ich finde Windows 7 bisher klasse!
Mehr Infos dazu bekommt ihr HIER

Ich habe auf meinem Entwicklerrechner privat den Windows 7 RC am laufen und es ist einfach nur genial! :D
Einige werden sich fragen wie man so schwärmen kann ... aber quält euch mal mit einem LATITUDE E6500 mit 64 Bit Windows Vista rum und dann testet mal Windows 7 ... dann versteht ihr was ich meine! ;)

Mittwoch, 8. Juli 2009

Silverlight 2 Tutorial

Auf meiner letzten Suche nach einem guten Einstieg/Umstieg hab ich ein nettes TUTORIAL zum Thema Silverlight 2.0 gefunden. Vorgestellt wird das Ganze von Carsten Humm und Philipp Bauknecht. Es geht hier um einen fiktiven CarShop ... nicht zu verwechseln mit dem IE8-Sample! Es soll das Erstellen von Rich-Internet-Applications (RIAs) mit Silverlight an einem konkreten Beispiel erläutern.

Die Videos der LiftOff Serie sind - wie ich finde - relativ gut verständlich ... auch für Leute die nicht wirklich tief in der Materie stecken.
Als Werkzeuge benötigt man lediglich ein Visual Studio + Add Ons für Silverlight und Expression Blend.

Das einzige was es vielleicht zu bemängeln gibt sind die kleinen Sprünge, wenn plötzlich Code bzw. Controls exisiteren die in der vorherigen Folge noch nicht da waren ... aber man wächst ja mit seinen Aufgaben ;)

Viel Spass!

Dienstag, 7. Juli 2009

Praxisbuch Web 2.0 ...

... ist der Titel des aktuellsten Buches mit dem ich mich momentan u.a. auseinander setze.

Bisher bin ich recht begeistert davon, da das Buzz-Word "Web 2.0" endlich mal ein Gesicht bekommt.

<-- So sieht das gute Stück aus und es hat sogar eine eigene Seite! :D
Wenn ich lustig bin und die Zeit finde, dann schreibe ich auch mal eine persönliche Rezession zu diesem Buch ... gesetz dem Fall dass ich damit jemals durch komme :)