I Dynamic Data Control e il relativo modello di sviluppo incluso nella service pack 1 del .NET Framework 3.5 consentono di realizzare applicazioni web per la pubblicazione e la gestione dei dati presenti in un database in modo pressochè automatico tramite un meccanismo di templating denominato "scaffolding".
Sfruttando il meccanismo di routing incluso in ASP.NET 3.5 SP1, il nuovo modello di sviluppo permette infatti di creare in modo dinamico le pagine web necessarie per la visualizzazione, l'inserimento, la modifica e la cancellazione dei dati a partire da un oggetto DataContext (per esempio, LINQ to SQL o LINQ to Entity).
Le pagine vengono generate in funzione di un insieme di template facilmente personalizzabili che internamente utilizzano i Dynamic Data Control. Le nuove classi e i controlli sono contenuti nell'assembly System.Web.DynamicData.
Per poter utilizzare il modello Dynamic Data occorre creare in Visual Studio 2008 SP1 un nuovo Web Site utilizzando il template di progetto "Dynamic Data Web Site". Il sito generato include una serie di file specifici presenti nella cartella "DynamicData", contenente in particolare i template delle pagine e dei campi e altre risorse.
Per poter attivare il meccanismo di generazione automatica delle pagine occorre disporre di un modello di dati sottostante. A tale scopo va creato un DataContext a partire dallo schema contenente i dati da visualizzare e gestire nel sito.
Nel file Global.asax, nell'event-handler dell'evento OnStart dell'applicazione web, occorre associare il DataContext all'engine Dynamic Data, impostando il parametro ScaffoldAllTables al valore true se si desidera che le pagine di visualizzazione e gestione dei dati vengano generate automaticamente per ciascuna tabella mappata nel DataContext. Nell'event-handler vanno infine definite le eventuali regole aggiuntive di routing valide per gli URL.
public static void RegisterRoutes(RouteCollection routes) { MetaModel model = new MetaModel(); model.RegisterContext(typeof(NorthwindDataContext), new ContextConfiguration() { ScaffoldAllTables = true }); routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") { Action = PageAction.List, ViewName = "ListDetails", Model = model }); routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") { Action = PageAction.Details, ViewName = "ListDetails", Model = model }); } void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); }
A questo punto il gioco è fatto!
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare il binding di date in Blazor
Load test di ASP.NET Core con k6
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Implementare il throttling in ASP.NET Core
Short-circuiting della Pipeline in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes