Einträge mit dem ‘MvcContrib’ Tag

ASP.NET MVC Bücher

Dienstag, 1. Dezember 2009

ASP.NET MVC in ActionMein bei Manning bestelltes Buch ist nach langer Wartezeit endlich auch in Papierform eingetroffen. ASP.NET MVC in Action ist meiner Meinung nach das zurzeit beste Buch zu diesem Thema. Auf knapp 400 Seiten wird alles Wesentliche zum MVC Framework beleuchtet.
Dabei werden nicht nur einfach alle zu einem typischen MVC Projekt gehörenden Komponenten vorgestellt (sofern es soetwas überhaupt gibt). Die Autoren, welche sich unter anderem auch für das MvcContrib Projekt verantwortlich zeichnen, legen vor allem auch Wert auf die Modell- und Test-getriebene Entwicklung (DDD / TDD).
Besonders gut gefallen haben mir auch die Best Practices Kapitel am Ende, sowie einige Hinweise zum Projekt Aufbau und der Architektur mit NHibernate.
Erfreulich ist auch, dass Manning das Buch nachträglich auch in Formaten für eBook Reader anbietet.

Pro ASP.NET MVC FrameworkMeine zweite Empfehlung, um sich in das Thema einzuarbeiten, ist Pro ASP.NET MVC Framework von Steve Sanderson, dem Autor von xVal.
Im ersten Teil werden anhand eines Beispielprojekts alle relevanten Komponenten des ASP.NET MVC Frameworks vorgestellt. Im zweiten Buchteil werden das Routing, Controller, Views und die Dateneingabe im Detail erklärt. Gerade die Eingabe und die Verarbeitung von Daten aus Formularen benötigt besondere Beachtung, das im Vergleich zu regulären ASP.NET Projekten einiges anders gelöst wird.

etcetera.Mvc: Meine MVC Library

Freitag, 23. Oktober 2009

Ich mag das ASP.NET MVC Framework. Wenn ich die Wahl habe, ziehe ich ein MVC Projekt mittlerweile einem WebForms basierten vor. Die offene Architektur, Flexibilität, Testbarkeit und vor allem die Erweiterbarkeit machen es zu einer Freude Webprojekte zu entwickeln.
Wer mit dem MVC Framework beginnt, wird unweigerlich auf das MvcContrib Projekt stossen. Dieses erweitert das Framework an allen Ecken und Enden.
Gerade zu Beginn wird man die ASP.NET Server Controls vermissen. Die mitgelieferten HTML Helper sind zwar sehr komfortabel, decken aber nur das allernötigste ab. Unterstützung für komplexere GUI Elemente wie ein Grid sucht man vergebens.
Das MvcContrib Projekt enthält nebst vielen nützlichen Dingen wie alternativen ViewEngines, Controller Factories und Routing Unterstützung auch einen grossen Satz HTML Helper. Die mächtigste UI Komponente ist in meinen Augen das Grid.

In meinen MVC Projekten habe ich nach anfänglichen Rumspielen mit jQuery Plugins für tabellarische Daten ausschliesslich das MvcContrib Grid verwendet, habe aber bald begonnen, dieses so zu erweitern, dass auch AJAX basiertes Paging und ein Sortieren der Spalten in einem HTML Helper gekapselt wurden.
Das ganze hat sich zu einer kleinen Library gemausert, die ich nun auf CodePlex als Open Source Projekt veröffentlicht habe. Das Projekt nennt sich etcetera.Mvc und ist in einer ersten Version 0.1 verfügbar.

Momentan sind drei UI Komponenten enthalten:

Grid

etcetera.Mvc Grid

etcetera.Mvc Grid

Das Grid basiert auf demjenigen von MvcContrib. Dazu gehört eine separate und flexibel konfigurierbare Toolbar, welche für das Paging eingesetzt werden kann. Das Grid verwendet den selben Syntax wie MvcContrib undfügt folgendes hinzu:

  • Effizientes asynchrones Paging via AJAX ohne eine einzige Zeile eigenem JavaScript
  • Falls der Client kein JavaScript unterstützt, werden regulare Seiten Requests ausgeführt.
  • Sortierbare Spalten
  • Optionaler Grid Header welcher das Grid ein- und ausfahren kann
  • Toolbar für das Paging, mit Anzeige und direkter Wahl der Seitennummer
  • Die Toolbar kann einfach und beliebig auch mit eigenen Buttons erweitert werden
  • Konfigurierbarer Export der Grid Daten nach Excel
  • Alle Labels und Tooltips können selber definiert werden

Das Grid enthält ein jQuery Plugin, die Beispiel Icons und Stylesheets des Screenshots.

Kalender

etcetera.Mvc Calendar

etcetera.Mvc Calendar

Der Kalender zeigt eine Monatsansicht und unterstützt die Anzeige von Einträgen wie Meetings. Die Kalender Datenstrukturen sind komplett unabhängig von eigenen Projekten. Der Kalender unterstützt folgende Einstellungen:

  • Den Wochentag, an dem die Woche beginnt. In den USA ist dies z.B. der Sonntag.
  • Anzeige der Tage des Vor- und Folgemonats
  • Highlighting des aktuellen Tags
  • Komplette Kontrolle über die Links zu Einträgen oder Daten

Wie die anderen UI Komponenten lässt sich das Aussehen komplett über Stylesheets definieren.

Progressbar

etcetera.Mvc Progressbar

etcetera.Mvc Progressbar

Die Progressbar ist ein sehr simples Element. Ich habe es hauptsächlich dafür benötigt, um die Progressbar von jQuery-UI zu ersetzen.

Weitere Komponenten und Framework Erweiterungen werden folgen.