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 ASPX-Dateien in dem Sondernordner App_Shared.

Projektvorlage: Projektvorlage Dynamic Data Web Application

Namensraum: System.Web.DynamicData

Steuerelemente:
DynamicGridView
DynamicFormView
DynamicFilterRepeater
DynamicField
DynamicListView
DynamicValidator
u.a.

Weitere Klassen:
DynamicDatabase
DynamicMetaTable
DynamicControlParameter
RangeAttribute
RenderHintAttribute
u.a.