Dynamic Data Controls (DDD)
Eintrag zuletzt aktualisiert am: 02.06.2009
Dynamic Data Controls sind eine Art von
Rapid Application Development für ein Web-
GUI, wobei im Untergrund eine mehrschichtige Architektur verwendet werden kann.
Die Dynamic Data Controls sind ein ganz anderer Ansatz, der die serverseitige
Datenbindung auf das nächste Abstraktionsniveau hieft. Bisher musste der Webentwickler für jede einzelne Klasse (oder Tabelle) Datenmasken händisch zusammenstellen. Dynamic Data Controls hingegen sind
ASP.NET-
Serversteuerelemente, die auf Basis einer Analyse des Datenschemas in einem
LINQ-to-SQL- oder EF-
Objektmodell eine Benutzeroberfläche zur Anzeige der Daten selbst zur Laufzeit erstellen. Die generierte Oberfläche bietet die Datenanzeige, die Navigation zwischen in Beziehung stehenden
Objekten sowie die Änderung dieser Daten inklusive Validierung. Gegenüber anderen Ansätzen des
Rapid Application Development (
RAD) unterscheidet sich der Ansatz dadurch, dass keine modellspezischen Seiten generiert werden, die man bei einer Änderung im Modell nur schwerlich mit dem neuen Modell synchronisieren kann, sondern eine Reihe von universellen Standardvorlagen zum Einsatz kommen. Die Datenwebsite enthält Vorlagen für Seitentypen und Spaltentypen, die dann auf allen
Datenbanktabellen angewendet werden. Statt mehreren Seiten pro Tabelle gibt es nur wenige Vorlagen. Sonderfälle erschlägt man dann durch eigene Vorlagen.
Die Anzeige kann dann entweder durch
Annotationen in den Datenklassen (z.B. [DisplayFormat], [Description], [Range] und [RenderHint]), durch Spaltenvorlagen (Dynamic Data
Fields) oder durch Seitenvorlagen (Dynamic Data Pages) beeinflusst werden. Eine eigene Vorlage ist aber die
Ausnahme, nicht die Regel, sodass beim Hinzukommen eines Feldes das neue Feld seinen Platz auf dem Bildschirm auch ohne Veränderung der Oberfläche findet.
Kritik
Leider muss man diese
Annotationen auf Klassenebene einsetzen und nicht auf Ebene der
Attribute, da bei generierten Klassen, die als partiell gekennzeichnet sind, man zwar
Attribute hinzufügen kann, nicht aber
Annotationen zu bestehenden
Attributen hinzufügen kann.
Kritisch an diesem Ansatz ist auch die Untermischung von "oberflächlichen" Informationen in das
Objektmodell zu sehen; eine andere Oberfläche für die gleiche Daten erfordert somit ein neues
Objektmodell.
Geschichte
Codename war:
Oryx
Erste Erwähnug:
MIX07 (Mai 2007)
Erscheinungstermin: Dynamic Data Controls sind im Rahmen von
.NET 3.5 Service Pack 1 im August 2008 erschienen.
Details
Die Anbindung ist möglich an
LINQ-to-SQL-Datenkontexte oder
ADO.NET Entity Framework-Datenkontexte.
Das
GUI wird beeinflusst durch die Änderungen der ASCX- und A
SPX-Dateien in dem Sondernordner App_Shared.
Projektvorlage: Projektvorlage Dynamic Data Web Application
Namensraum:
System.Web.DynamicData
Steuerelemente:
Dynamic
GridView
Dynamic
FormView
DynamicFilter
Repeater
Dynamic
Field
Dynamic
ListView
Dynamic
Validator
u.a.
Weitere Klassen:
DynamicDatabase
DynamicMetaTable
DynamicControlParameter
Range
Attribute
RenderHint
Attribute
u.a.