www.planet-xaml.net
  •  

    TDD

    Testdriven Development

    • [ArchitectureTDD]

      Unity, na endlich

      by Florian Krüsch, February 14, 2008

      Seit vorgestern ist unter dem Namen Unity eine CTP Version des "Dependency Injection Application Block" der Patterns & Practices verfügbar. Es ist zwar sicher noch zu früh, Castle Windsor dafür in die Ecke zu legen, aber es ist wie auch ASP.net MVC ein Zeichen dafür, dass die Technologie in eine gute Richtung geht. Inversion of Control bedeutet losere Kopplung, bessere Testbarkeit und Wartbarkeit.

      Interessant wird es insbesondere im Zusammenhang mit Prism, dem "WPF Composite Application Block" und der neuen Enterprise Library, die alle auf auf IoC aufsetzen. Pattern wie Model View Presenter lassen sich damit wesentlich eleganter in Anwendungen integrieren.

      cheers,
      Florian


      no comments
    •  ^
    • [ASP.NETTDD]

      System.Web.Mvc

      by Florian Krüsch, October 15, 2007

      Scott Hanselmann hat die gute Nachricht schon vor ein paar Tagen verkündet, Scott Guthrie macht es jetzt offiziell: es wird ein Model-View-Controller Framework für ASP.net geben.

      Warum MVC?

      Ruby on Rails

      Der Shooting Star unter den Web-Frameworks ist elegant und überzeugt durch eine sehr saubere MVC Implementierung und integrierte Unterstützung für Unit Tests. Es ist das Lieblingsspielzeug der Agile Community. Microsoft selbst hat da im Moment nicht viel zu bieten. Klar, es gibt die Web Client Software Factory aber die ist doch um einiges schwergewichtiger und auf spezielle Enterprise-Bedürfnisse ausgerichtet.
      Mit Monorail gibt es an sich schon eine nette Adaption von RoR für ASP.net. Ein MVC Framework von Microsoft mit vollem Support als "First class citizen" in ASP.net ist aber trotzdem eine ganz andere Nummer.

      Nicht jeder mag Webforms

      Der ganze Postback/ViewState Hokuspokus in ASP.net 1/2 kann leider doch nicht zu 100% die Illusion von Statefullness erzeugen. Und wenn man Wert auf sauberes XHTML legt, sind die ID Attribute und ViewState Felder doch ziemlich störend, vor allem in Fällen in denen man sie an sich gar nicht benötigt - ein Datagrid auf das Webform gezogen und nicht aufgepasst, schon "wiegt" die HTML Seite 100k...
      Klar, man kann EnableViewState auf false setzen und die IDs irgendwie rausfiltern, aber wenn man es von Anfang an gar nicht braucht, ist das irgendwie durchs Knie ins Auge.

      Testability

      Controller lassen sich prima über Unit-Tests abklopfen. Die fehlenden Interfaces für HttpContext, HttpRequest usw. werden endlich nachgeliefert und die Abhängigkeit von System.Web an den richtigen Stellen unterbrochen.

      Bei meiner eignen Blog Engine für Planet-xaml (basierend auf Model-View-Presenter) hatte ich mich gründlich über diese Dinge geärgert, die jetzt endlich behoben werden - fehlende Interfaces z.B. für die Klassen HttpRequest/HttpResponse, um Mock Objekte für Unit-Tests zu erzeugen.

      Plugability

      Was mir an dem was ich bisher über System.Web.Mvc gehört habe gefällt ist neben dem Programmiermodell die immer wieder angesprochene offene Architektur - d.h. die Möglichkeit, eigene IoC Container oder ViewEngines einzubinden usw. Ein Monorail Clone von Microsoft wäre bei der ALT.net Crowd auch sicher nicht besonders gut angekommen.

      Da das Framework auf ASP.net basiert wird es sicherlich ohne die Unzulänglichkeiten auskommen, mit denen Rails bei aller Eleganz zu kämpfen hat (wer will schon auf C zurückgreifen, um eine Webanwendungen flott zu machen?).

      cheers
      Florian


      no comments
    •  ^
     

Language | Sprache

All[e]  |  english  |  deutsch
Tags
 

Profile

Florian Kruesch

I am working as a freelance software architect, developer and consultant in Düsseldorf, Germany.

My focus is on Microsoft technologies and .NET 3.0, especially WPF, ASP.net and SQL Server.

I've been a lead programmer on the WPF development of the OTTO Vista Store at SinnerSchrader Studios.

My client list includes DHL, LG and Ogilvy Interactive.