Nuevo y mejorado, el concepto UN solo ASP.NET.

Hola que tal, ha sido una semana llena de excelentes anuncios en el //build/ , realmente increíbles las novedades con un solido Windows 8.1 que me ha dejado asombrado, además de un Internet Explorer 11, cada vez mejorando la experiencia de usuario, Visual Studio 2013 y  muchísimas cosas más, realmente abrumador. En esta oportunidad quiero referirme al nuevo enfoque, y necesario a mi gusto, de ASP.NET, ahora existe el concepto de un 1 solo ASP.NET y indiferenciando si vas a utilizar WebForms, Web Pages, SPA, MVC, Web API o SignalR. Quizás los desarrolladores de WebForms erán los que  de alguna manera , se sentían más excluidos a las nuevas características, pero esta vez, es todo lo contrario, hay motivo para celebrar, ya que los desarrollos hechos con WebForms van a permitir incluir las librerías de MVC y Web API de una manera muy sencilla.  Es así como tu aplicación webform podrá tener, por ejemplo la misma cara de siempre, con WebControls y por otro lado aprovechar las ventajas de Web API para servicios Rest Ful, y esto es, entre otras cosas, utilizar controladores dentro de tu app WebForm.

Veamos un poco el esquema del concepto:

image

Algunos preguntarán , donde quedó WebServices que no lo veo en Services!, y calma, esta todo bien,  WebServices sigue firme en lo que es WebForms, y lo podrás seguir utilizando para conectarse desde tecnología del cliente o del servidor.

Ahora vamos a crear un proyecto, basado en la charla de Scott Hanselman del Build, asi que si ya la viste, este ejemplo te será familiar, la idea es crear una aplicación ASP.NET WebForms para luego  utilizar Scaffolding de una clase , este Scaffolding o “Andamiaje”creará todo lo necesario para que podamos hacer un CRUD.

Lo primero que vamos a hacer es crear un nuevo proyecto con Visual Studio 2013 Preview.

PD: Si no lo tienes, puedes descargarlo por acá.

Ahora verás que existe la opción “Aplicación Web ASP.NET” que ya nos da luces sobre el nuevo esquema “un solo ASP.NET”, de todos modos, vas a ver un submenú que dice “Visual Studio 2012” en donde vas a encontrar la organización separada de los proyectos tal cual vs2012.

image

Ahora podemos elegir que es lo que queremos integrar en nuestra aplicación de ASP.NET, por ejemplo yo voy a elegir Web Foms y voy a incluir las referencias y carpetas de MVC y Web API:

image

Luego en nuestro proyecto, en la carpeta Models vamos agregar una nueva Clase, en este caso es la Clase Persona:image

El código de la clase Persona va a ser el siguiente:

  public class Persona

    {

        [ScaffoldColumn(false)]

        public int PersonaId { get; set; }

        public string Nombre { get; set; }

        public string Apellido { get; set; }

        public int Edad { get; set; }

 

    }

Para utilizar el atributo de columna ScaffoldColum debes agregar la referencia, esto es simplemente para que no se haga el

image

Ahora vamos agregar el “Andamiaje…” en la carpeta de Controladores:

image

Visual Studio 2013 nos ofrece a través del administrador de Paquetes NuGet el Scaffold, vamos a seleccionar:image

Esto nos permitirá contar con las operaciones clásicas de un CRUD. Luego se nos consultará por el nuevo contexto de datos:

image

Luego se nos consultará sobre la clase asociada, el contexto, en este caso es un nuevo contexto, en mi caso, seleccioné la posibilidad de contar con vistas móviles y las de escritorio:

image

y ahora ya me ha creado las páginas aspx e incluyendo la vista móvil que seleccioné anteriormente:

image

Ahora al ejecutar la pagina (/Personas/Insert) tenemos las siguientes vistas para móvil (que utiliza jquerymobile) y la vista de escritorio (que también utiliza CSS3 media queries por defecto):

imageimage

Otro punto interesante es que por defecto se utiliza FriendyURL de manera que la integración Webform , MVC y Web Api sea aún más natural.

El concepto de ModelBinding que teníamos en MVC ahora también está en WebForms, Scott Hanselman remarcó en su charla, que el concepto de ModelBinding ahora es único para todo ASP.NET, independiente de la tecnología Sonrisa

Ahora pasaremos a punto 2 en donde vamos a integrar ASP.NET Web APi, para eso vamos a los controladores y agregamos nuevamente un Andamiaje:

image

Esta vez seleccionaremos Controlador de Web API 5 con acciones de L/E que utilizan EF, de manera tener esta API con las acciones necesarias para un CRUD.

image

Luego se nos consulta como se llamará el controlador , cual es el modelo de dato y el contexto asociado:

image

Veremos a continuación que ya se nos generó el controlador y estamos listos para utilizarlo:image

Ahora simplemente hacemos referencia a Api/Persona y tenemos los datos que ingresamos por el formulario WebForm:

image

Como puedes ver, la integración es total, me parece muy acertado el concepto de un solo ASP.NET, esto permitirá una nueva etapa en la que podremos expandir las posibilidades de nuestros desarrollos fácilmente Sonrisa.

Si quieres ver la charla de Shanselman, está acá:
http://channel9.msdn.com/Events/Build/2013/2-546

Más adelante comentaré otros nuevas características, Enjoy!!!

Saludos,
@chalalo

Deja un comentario

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