Posts mit dem Label MVC 2 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label MVC 2 werden angezeigt. Alle Posts anzeigen

Dienstag, 16. März 2010

Final release of ASP.NET MVC 2

Der endgültige Release von ASP.NET MVC 2 ist jetzt für VS 2008/Visual Web Developer 2008 Express mit ASP.NET 3.5 verfügbar. ASP.NET MVC 2 kann mit folgenden Links installiert werden:

Die endgültige Version von VS 2010 wird ASP.NET MVC 2 übrigens schon integriert haben.

Mehr Informationen zu ASP.NET MVC 2 sind über ASP.NET MVC 2 Released - ScottGu's Blog verfügbar.

Hinweis: Zur Installation müssen alte Vorabversionen von ASP.NET MVC 2 zunächst deinstalliert werden.

Dienstag, 9. Februar 2010

ASP.NET MVC 2 – Design Pattern and Framework

Model View Controller (MVC, ‚Modell/Präsentation/Steuerung‘) ist ein Architekturmuster zur Strukturierung der Software-Entwicklung in die drei Einheiten Datenmodell (engl. model), Präsentation (engl. view) und Programmsteuerung (engl. controller). Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht.
Implementiert wird dieses Entwurfsmuster von Microsoft durch das ASP.NET MVC Framework. Dies wurde Mitte 2008 von Microsoft released und liegt jetzt in einer zweiten Version als Release Candidate 2 vor. Im folgenden möchte ich kurz aufzeigen, welche entscheidenden Neuerungen es in dieser zweiten Version geben wird. Seit April 2009 ist das ASP.NET MVC unter der Microsoft Public License (MS-PL) released worden.

Neue typgebundene HTML Helper Methoden

Neue typgebundene HTML Helper Methoden sind nun in ASP.NET MVC zu finden. Diese Methoden benutzen eine "Html.HelperNameFor()” Namenskonvention. Zum Beispiel: Html.TextBoxFor(), Html.CheckBoxFor(), Html.TextAreaFor(), usw.  Diese unterstützen nun die bekannten Lamda-Ausdrücke um sowohl den Wert als auch die ID des Controls zu referenzieren:
image


Hierüber wird sowohl der Wert gebunden, als auch der Textbox die ID “FirstName” gegeben. Bei der Auswahl der gebundenen Properties wird darüber hinaus Intellisense angeboten!
HTML Element Helpers:
  • Html.TextBoxFor()
  • Html.TextAreaFor()
  • Html.DropDownListFor()
  • Html.CheckboxFor()
  • Html.RadioButtonFor()
  • Html.ListBoxFor()
  • Html.PasswordFor()
  • Html.HiddenFor()
  • Html.LabelFor()
Other Helpers:
  • Html.EditorFor()
  • Html.DisplayFor()
  • Html.DisplayTextFor()
  • Html.ValidationMessageFor()
Typgebundene HTML Helpers in den Templates
Die neuen typgebundenen HTML Helpers Methoden werden auch durch die Templates bei der View-Generierung unterstützt. Hier kann man dann im Add/View-Dialog die Möglichkeit der Auswahl der typgebundenen oder normalen Variante.

ASP.NET MVC 2 Validierungen

ASP.NET MVC 2 unterstützt jetzt DataAnnotations im Modell, wodurch man Validierungsregeln direkt im Modell hinterlegen kann. Das ganze sieht dann so aus:
image
Hier werden also bereits im Modell die üblichen Validierungen, wie Pflichtfeld, Begrenzungen und Bereiche festgelegt. Darüber hinaus sind auch reguläre Ausdrücke (habe ich im Beispiel aus Platzgründen weggelassen) möglich. Durch “DisplayName” lässt sich übrigens im Modell die Default-Beschriftung eines Feldes festlegen. Dies ist dann anwendungsübergreifend und kann natürlich auch aus einem Ressource-File referenziert werden (näheres siehe here.).
Wichtig ist die Nutzung von: using System.ComponentModel;
Clientseitige Validierung mit AJAX
Möchte man statt der serverseitigen Validierung einen clientseitige Prüfung verwenden, so ist dies ohne viel Aufwand über einen Dreizeiler mit AJAX möglich (Definition im Viewer – aspx-Seite):
image
Eigene Customvalidierungen
Für eigene Customvalidierungen kann man sich einfach eine eigene Validierungsklasse – z.B. in der Model-Klasse -nach folgendem Muster definieren:
image

DataAnnotations bei LINQ to SQL oder ADO.NET EF Designer

Aber was macht man, wenn man die Zugriffsklassen und das Mapping zu den Daten nicht selbst machen möchte, sondern z.B. den LINQ to SQL oder ADO.NET Entity Designer verwenden will?
Hier kommen die sogenannten “Buddy classes” ins Spiel. Zuerst legt man eine separate Klasse mit seinen Meta-Daten und Validierungen an und verlinkt diese dann zu der vom Designer generierten Klasse über das “MetadataType” Attribut zu einer partiellen Klasse (partial class) der generierten Klasse. Diese werden dann vom Compiler wieder zusammengefügt, man hat aber im Code eine strikte Trennung.
Beispiel:
image

ASP.NET MVC 2 (RC 2) now available

Jetzt wurde der Release Candidate 2 des ASP.NET MVC 2 für VS 2008/.NET 3.5 freigegeben und kann hier herunter geladen werden.
Das RC2 Release von ASP.NET MVC 2 enthält neben einigen Bug fixes auch Performanceverbesserungen und einige endgültige Änderungen im Bereich des Standardverhaltens bei den Hinzufüge- bzw. Änderungsfunktionen. Einige der Änderungen zwischen RC1 und RC2 sind in ScottGu’s Blog aufgeführt (release notes für mehr Infos).