Individualschulungen
Entwicklung
Aktuelle Themen
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Benutzeroberflächen / User Experience
Softwareengineering
KI in der Softwareentwicklung
Plattformen & Systeme
KI
Web & Cloud
Apps / Mobilplattformen
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Scripting
Windows & Office für Anwender
Soft Skills & IT-Recht
Das bieten nur wir
Umfangreicher Themenkatalog
Wählen Sie aus 1055 Themen
Weiterbildungsphilosophie
Individuelle Anpassung an Ihre Anforderungen
Didaktische Konzepte
Ganz nach Ihren Wünschen
Vorteile individueller Firmenseminare
Im Vergleich zu offenen Seminaren
Vor Ort oder online
Alles ist in Ihrem Hause oder online möglich
Top-Trainer
Die besten und renommiertesten Experten
Teilnehmerfeedback
Das sagen 9311 von insgesamt über 75000 Teilnehmern
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
1055 Themen, die frei anpassbar und kombinierbar sind
Gesamter Themenkatalog →
Offene Schulungen
Online-Trainings
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI, Uno & Avalonia
Blazor
ASP.NET Core WebAPI
Entity Framework Core
Unit Testing / TDD
PowerShell
Alle Seminartermine
INFOTAGE
INFOTAG ".NET 12.0"
am 22.06.2027
INFOTAG "KI" 2027
am 15.09.2027
Das bieten nur wir
Renommierte Top-Trainer
Die besten und bekanntesten Experten schulen Sie!
Teilnehmerfeedback
Das sagen 9311 von insgesamt über 75000 Teilnehmern
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
Nicht das passende Thema dabei? Stellen Sie Ihre individuelle Firmenschulung aus 1055 Modulen zusammen!
Individualschulungen →
Beratung, Support & Entwicklung
Alle unsere Leistungen
Beratung
Beratung zu vielen technischen und methodischen Themen
Coaching
Projektbegleitende Unterstützung
Softwareentwicklung
Wir entwickeln einzelne Module oder ganze Anwendungen für Sie
Technischer Support
Support für einzelne technische Fragen
Individualschulungen
1055 Themen, die frei anpassbar und kombinierbar sind
Offene Seminare
Ausgewählte Themen bieten wir auch als öffentliche Online-Schulungen an.
Beratungsthemen
Anwendungsarchitektur
Datenbankzugriff/Data Access
DevOps
Frontend, GUI, UX
IT-Infrastruktur
Leistung/Performance
Machbarkeit und Prototyping
Methodik, Prozesse, Teamarbeit
Migration und Versionsumstieg
Mobilanwendungen
Reviews und Qualitätssicherung
Sicherheit/Security
Verteilte Systeme und Services
Webtechniken
Werkzeugauswahl
Weitere Themen
Auch alle Schulungsthemen sind als Beratung möglich!
Das bieten nur wir
Renommierte Top-Berater
Durch Vorträge und Veröffentlichungen sehr bekannte Experten
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
Referenzprojekte
Zahlreiche Referenzprojekte
Beratung vor Ort oder remote – flexibel nach Bedarf.
Zu den Beratungsthemen →
Wissen
Publikationen & Vorträge
Fachbücher
Fachartikel
Konferenzvorträge
Weblog
Spickzettel/Cheat Sheets
Lexikon/Glossar
Programmcodebibliothek
Fallbeispiele
Newsletter
Downloads
Themenportale
Übersicht
.NET/C#/Visual Studio
.NET 11.0
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Versionshistorie
Konferenzen/Events
Community-/Leserportal
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Schulungen, Beratung, Support, Coaching, Softwareentwicklung
Unsere kommerziellen Leistungen →
Über uns
Unternehmen
Zahlen
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Unsere Top-Experten
Leitung & Kundenteam
Partner
Weitere Websites
Referenzen
Referenzkunden
Kundenaussagen
Referenzprojekte
Kontakt & Rechtliches
Kontakt
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Impressum, Datenschutz und Barrierefreiheit unter Kontakt & Rechtliches.
Rechtliches →
Erklärung des Begriffs: ASP.NET Dynamic Data Website (DDS)
Begriff
ASP.NET Dynamic Data Website
Abkürzung
DDS
Eintrag zuletzt aktualisiert am
31.12.2012
Zur Stichwortliste unseres Lexikons
Was ist
ASP.NET Dynamic Data Website
?
Dynamische Datenwebsites (Dynamic Data Sites - DDS, alias DynData) sind ein neues Konzept zum
Rapid Application Development
(
RAD
) von datengetriebenen Websites in
ASP.NET
ab Version 3.5
Service Pack
1. Man erstellt mit
LINQ-to-SQL
oder dem
ADO.NET Entity Framework
ein
Objekt
modell seiner
Datenbank
. Durch Vorlagen und Konventionen entsteht dann ohne weiteres Zutun des Entwicklers eine komplette Website zur Ansicht der Daten (inkl. Navigation zwischen den in Beziehung stehenden Tabellen) sowie Pflege der Daten. Anschließend kann der Entwickler dieses Grundgerüst an spezielle Bedürfnisse anpassen.
Codename: Jasper
Vorgestellt auf der
MIX
2007
erschienen 2008 mit dem
Service Pack
1 des
.NET Framework 3.5
Grundkonzept
Mit dem
Service Pack
1 des
.NET Framework 3.5
hat Microsoft einen neuen Ansatz für datengetriebene
ASP.NET
-Websites vorgestellt, der das Prinzip des
RAD
noch viel weiter treibt als das SqlDataSource-
Steuerelement
. Bisher musste der Webentwickler für jede einzelne Tabelle (oder Klasse) die Datenmaske zur Anzeige und Eingabe einzeln anlegen. Dynamische Datenwebsites (Dynamic Data Web Sites) hingegen erzeugen eine Standarddarstellung für ein
Objekt
modell, das mit Hilfe von
LINQ-to-SQL
oder dem
ADO.NET Entity Framework
auf Basis einer
Datenbank
definiert wurde. Die Datenwebsite enthält Vorlagen für Seitentypen und Spaltentypen, die dann auf allen
Datenbank
tabellen angewendet werden. Statt mehreren Seiten pro Tabelle gibt es nur wenige Vorlagen. Sonderfälle erschlägt man dann durch eigene Vorlagen.
Die durch Vorlagen generierte Oberfläche bietet die Datenanzeige inklusive Filterung, die Navigation zwischen in Beziehung stehenden
Objekt
en sowie die Änderung dieser Daten inklusive Validierung der Eingaben. Auch das Hinzufügen und Löschen von
Objekt
en ist möglich. Dazu liest
ASP.NET
zur Laufzeit das Schema des
Objekt
modells aus und verbindet es mit einer Reihe vordefinierter Seiten- und Feldvorlagen. Anpassungen der Darstellung sind aber durch
Annotation
en des Modells möglich, der Veränderung der Vorlagen bzw. der Erstellung eigener Vorlagen.
Gegenüber der SqlDataSource unterscheidet sich der Ansatz dadurch, dass der Entwickler in
Visual Studio
keine spezifischen Seiten für einzelne Klassen erzeugt, die man bei einer Änderung im Modell nur schwerlich synchronisieren kann. Vielmehr kommt eine Reihe von universellen Standardvorlagen zum Einsatz, die sich automatisch an das Modell anpassen. Microsoft spricht davon, ein Grundgerüst (engl. Scaffolding) zu erstellen, das man anpassen kann. Den Begriff "Scaffolding" kennt man schon aus
Ruby on Rails
, meint aber hier nicht die Codegenerierung zur Entwicklungszeit, sondern die dynamische Erzeugung von Webseiten zur Laufzeit auf Basis vorhandener
Metadaten
.
Anlegen einer dynamischen Datenwebsite
Für die obigen Administrationsseiten auf Basis einer dynamischen Datenwebsite muss ein Entwickler kaum etwas tun. Würde man die dynamische Datenwebsite getrennt von der eigentlichen Anwendung erstellen und betreiben, wäre sie in drei Handgriffen fertig. Es macht mehr Arbeit, eine dynamische Datenwebsite in eine bestehende Webanwendung einzubauen. Genau das soll hier aber gezeigt werden.
Eine Dynamische Datenwebsite besteht aus verschiedenen Grundelementen, die man nicht von Hand anlegen sollte und möchte. Daher ist der beste Ansatz, auf Basis der Projektvorlage "Dynamic Data Entities Website" ein neues Projekt zusätzlich anzulegen und dann aus diesem Projekt die notwendigen Elemente in das bestehende Projekt zu kopieren.
Anpassen der Ansicht durch
Annotation
en
Die einfachste Möglichkeit zur Anpassung einer Datenwebsite ist die Anreicherung des
Objekt
modells mit speziellen
Annotation
en, die Microsoft im neuen Namensraum
System.ComponentModel
.Data
Annotation
s hinterlegt hat. Beispiele für solche
Annotation
en sind:
[ScaffoldTable] zum Ausblenden von Tabellen bzw. Klassen
[DisplayFormat] zur Formatierung von Ausgaben
[DisplayColumn] zur Beschriftung des Hyperlinks bei verknüpften Daten
[Required] zur Festlegung von Pflichtfeldern bei der Dateneingabe
[Range], [StringLength] und [RegularExpression] zur Definition der erlaubten Eingaben
Da man den generierten Programmcode für die Entitätsklassen nicht verändern sollte (beim nächsten Neugenerieren würden alle Änderungen verloren gehen), nutzt man die Möglichkeiten der partiellen Klassen, um die
Annotation
en zu platzieren. Die meisten dieser
Annotation
en wirken auf
Attribut
ebene und leider kann man in
.NET 3.5
für bereits deklarierte
Attribut
e keine zusätzlichen
Annotation
en vergeben. Zu jeder Entitätsklasse ist daher als unhübsche Krücke eine weitere Klasse (genannt
Metadaten
klasse) zu implementieren, in der der Entwickler die
Attribut
e nochmals definieren und dort mit
Annotation
en versehen muss. Die
Annotation
MetadataType auf der partiellen Klasse verweist dabei auf die
Metadaten
klasse.
Namespace DownloadModel
{
//
Partielle Klasse
zur generierten Entitätsklasse
[MetadataType(typeof(DA
DownloadAngebot
MetaData))]
public partial class DA_DownloadAngebot
{
partial void OnDA_DatumEndeChanging(DateTime? Value)
{
if (value < DateTime.Now) throw new Application
Exception
("Endedatum muss in der Zukunft liegen!");
}
}
//
Metadaten
klasse zur Entitätsklasse
public partial class DA
DownloadAngebot
MetaData
{
[StringLength(10)]
public string DA_Titel;
[StringLength(20)]
public string DA_Text;
[
System.ComponentModel
.Data
Annotation
s.UIHint("Key")]
public string DA_ID;
}
//
Partielle Klasse
zur generierten Entitätsklasse
[MetadataType(typeof(DD
DownloadDatei
MetaData))]
public partial class DD_DownloadDatei
{
}
//
Metadaten
klasse zur Entitätsklasse
public partial class DD
DownloadDatei
MetaData
{
[Range(0,Double.MaxValue)]
public string DD_AnzahlDownloads;
}
}
Listing 1: Durch
Annotation
en im
Objekt
modell steuert man das Verhalten der Website
Anpassungen durch Vorlagen
Mit
Annotation
en und
Methode
n kann man nur in einem eng abgesteckten Rahmen das Verhalten der generierten Seiten beeinflussen. Wer eine individuellere Darstellung will, muss durch Vorlagen ganze Seiten oder einzelne Felder anpassen. Beim Erstellen des Projekts liegen die Standardvorlagen in den Ordnern /DynamicData/
Field
Template
s und /DynamicData/Page
Template
s. Es gibt vier Seitenvorlagen für die verschiedenen Ansichtstypen: List.aspx (Tabellendarstellung), Details.aspx (Einzelansicht mit Ändern und Löschen), Insert.aspx (Einzelansicht zum Anfügen von Daten) und ListDetails.aspx (Tabellenansicht mit Einzelansicht der gewählten Zeile darunter, mit Ändern, Anfügen und Löschen). Die Feldvorlagen sind hingegen datentypbezogen und als
ASP.NET
User Control
s realisiert, z.B. Boolean.ascx, DateTime.ascx und Text.ascx aber auch ForeignKey.ascx. Jeweils eine Variante mit "_Edit" im Namen definiert die Darstellung bei einer Dateneingabe.
Kritik
Kritisch an diesem Ansatz ist auch die Untermischung von "oberflächlichen" Informationen in das
Objekt
modell zu sehen; eine andere Oberfläche für die gleichen Daten erfordert somit ein neues
Objekt
modell.
Leider muss man die Datenwebsite-
Annotation
en auf Klassenebene einsetzen und nicht auf Ebene der
Attribut
e, da bei generierten Klassen, die als partiell gekennzeichnet sind, man zwar
Attribut
e hinzufügen kann, nicht aber
Annotation
en zu bestehenden
Attribut
en hinzufügen kann.
Geschichte
Codename war:
Oryx
Früherer Name:
Dynamic Data Controls
Erste Erwähnung:
MIX
07 (Mai 2007)
Erscheinungstermin: Dynamic Data Websites sind im Rahmen von
.NET 3.5
Service Pack
1 im August 2008 erschienen.
Details
Namensraum:
System.Web
.DynamicData
Besondere
Steuerelement
e:
DynamicControl
DynamicDataManager
Dynamic
Validator
Dynamic
Field
u.a.
Querverweise zu anderen Begriffen im Lexikon
Rapid Application Development (RAD)
ADO.NET Entity Framework (EF)
Dynamic Data Controls (DDD)
System.ComponentModel
.NET Framework 3.5 (.NET 3.5)
Partielle Klasse
Visual Studio (VS)
Steuerelement
Ruby on Rails (Rails)
Service Pack (SP)
User Control
LINQ-to-SQL (LTS)
Annotation
System.Web
Metadaten
Validator
Exception
Datenbank (DB)
Template
.NET 3.5
Attribut
Methode
Objekt
Field
Oryx
MIX
Active Server Pages .NET (ASP.NET)
Rapid Application Development (RAD)
Beratung & Support
Anfrage für Beratung/Consulting zu ASP.NET DYNAMIC DATA WEBSITE DDS
Gesamter Beratungsthemenkatalog
Technischer Support zum Thema ASP.NET DYNAMIC DATA WEBSITE DDS
Schulungen
ASP.NET Dynamic Data Websites - das "Ruby on Rails" von .NET
Java 15-Update (Neuerungen in Java 15 gegenüber Version 14)
Anfrage für eine individuelle Schulung zum Thema ASP.NET DYNAMIC DATA WEBSITE DDS
Gesamter Schulungsthemenkatalog
Fachbücher
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr