ASP.NET Dynamic Data: Scaffolding!

En este post y en los siguientes os vamos a presentar una de las grandes novedades de .NET Framework 3.5 SP1 y Visual Studio 2008 SP1: ASP.NET Dynamic Data. Esta tecnología nos proporciona toda la infraestructura necesaria para crear aplicaciones web dinámicas basadas en un modelo de datos de ADO.NET Entity Framework (ADO.NET EF) o de LINQ To SQL (Nota: Proporciona scaffolding sobre el modelo). En nuestro caso, utilizaremos un EDM de ADO.NET EF. Empecemos.

Primeros pasos con ASP.NET Dynamic Data

Para probar la funcionalidad de ASP.NET Dynamic Data seguiremos los siguientes pasos:

  • Creamos en primer lugar un proyecto Web de Visual Studio 2008 de tipo Dynamic Data Entities Web Application (Nota: Para LINQ To SQL elegiríamos Dynamic Data Web Application).
  • Tras pulsar OK, veremos que se nos crea toda la infraestructura necesaria para generar interfaces de usuario dinámicas a partir del modelo (de datos o de entidades) que definamos. Se trata de una aplicación web centrada en datos formada por una serie de plantillas de páginas y campos que aportan el carácter dinámico de una aplicación ASP.NET Dynamic Data.
  • Una vez creado el proyecto de ASP.NET Dynamic Data, tenemos que crear el modelo en el que se apoya. Como se ha comentado, se trata de un EDM de ADO.NET EF. Vamos a crear un modelo basado en la base de datos (BD) AdventureWorksLT. Añadimos un nuevo elemento a nuestro proyecto de tipo ADO.NET Entity Data Model.
image image image

Para crear el EDM seguimos los siguientes pasos:

  • Creamos la cadena de conexión a la BD AdventureWorksLT.
  • Especificamos un nombre para la cadena de conexión: AdventureWorksContext.
  • Elegimos todas las tablas de AdventureWorksLT exceptuando la tabla BuildVersion:
image image image

Una vez creado el EDM, tenemos que conectarlo con la aplicación Dynamic Data que hemos creado. Para ello, abrimos el archivo Global.asax del proyecto y descomentamos y actualizamos la línea siguiente:

            model.RegisterContext(typeof(AdventureWorksContext),

                new ContextConfiguration() { ScaffoldAllTables = true });

De esta forma:

  • Estamos registrando nuestro EDM en nuestra aplicación ASP.NET Dynamic Data.
  • Especificamos que el atributo ScaffoldAllTables tenga el valor True, de manera que permitimos que todas las tablas de nuestro modelo tengan una plantilla asociada. Si quisiéramos tener sólo plantillas para ciertas tablas del modelo, tendríamos que crear una clase parcial para estas tablas y aplicar el atributo [Scaffold(true)] en su definición.

Sin más, ejecutamos la aplicación para ver que obtenemos:

  • En primer lugar, se muestra una página principal en la que se listan todas las tablas del EDM subyacente.
  • De nuevo en la página de detalle de la categoría tenemos soporte completo para operaciones CRUD sin necesidad de tener que escribir ningún tipo de código de acceso a datos.
  • Una duda que surge en torno a ASP.NET Dynamic Data es relativa a sí se está usando generación de código o no. La respuesta es que no, puesto que se están usando una serie de plantillas ASP.NET que renderizan de manera dinámica las páginas para cada entidad del modelo. Lógicamente, tendremos una plantilla para cada estado posible de un registro, y esto es lo que da el soporte CRUD comentado.
image image image

Además de las plantillas de páginas, tenemos una serie de plantillas a nivel de campo que permiten renderizar campos individuales en cada página. Hay una serie de plantillas para distintos estados (edición, inserción), que son user controls, preparadas para renderizar un cierto tipo de datos. Además, tendremos plantillas que no mapean tipos CLR, sino que se utilizan para los campos de tipo Foreing Key.

 

image 

Y hasta aquí llega este primer post sobre ASP.NET Dynamic Data. Espero que os haya resultado interesante.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “ASP.NET Dynamic Data: Scaffolding!”

  1. В прошлом месяце со своей женой наконец-то закончили ремонт и подумали о приобретении новой мебели для спальни, например, такого важного предмета мебели и интерьера как [url=http://shkafy.com/photo/]шкафы купе фото[/url]. Поразмыслили насчет нового приобретения и осознали, что не можем дать ответ на некоторые вопросы, вызванные нашим решением. Без опыта (пусть даже и чужого), как говорится, никуда! помогите советом! Как нам выбрать шкаф, и какие параметры лучше учитывать при покупке? На что надо ориентироваться, покупая шкаф в магазине? Или, может, его все-таки заказать? какие комплектующие и материалы предпочесть? Для меня эти все и многие другие нюансы являются неразрешимой загадкой. помимо этого интересны [url=http://shkafy.com/]шкафы купе[/url]. в каком случае выбор шкафа купе будет намного разумнее, чем выбор простого шкафа? мы хотели бы услышать рекомендации людей, которые купили шкаф и могли бы дать какой-то совет. Буду очень благодарен за ваши рекомендации.благодарю!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *