Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

17 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
lunes, 17 de enero de 2011
A finales de la semana pasada, coincidiendo con el lanzamiento del producto, se ha publicado mi curso de ASP.NET MVC 3 en CampusMVP. Todo un récord, teniendo en cuenta el ritmo que llevan los de Redmond ;-D

El material es una revisión del curso de MVC 2, que tanto éxito de crítica y público ha tenido durante el pasado año, adaptado por completo a las novedades presentes en la nueva versión del marco de trabajo:
  • Introducción a ASP.NET MVC, donde realizamos un primer acercamiento al framework MVC, y sentamos las bases sobre las que continuar el aprendizaje.
  • El siguiente módulo, la  primera aplicación ASP.NET MVC, crearemos nuestra primera aplicación partiendo de las plantillas por defecto de Visual Studio, que nos será de utilidad para comprender la estructura de este tipo de proyectos y el funcionamiento del marco de trabajo.
  • Continuaremos añadiendo funcionalidades a esta aplicación, donde introduciremos nuevas características partiendo desde cero, aprovechando la ocasión para profundizar en la creación de modelos, vistas y controladores.
  • Seguidamente estudiaremos la capa Modelo a fondo, viendo distintas formas de implementar sus componentes.
  • A continuación, nos sumergimos en la capa Controlador, detallando minuciosamente la creación de controladores, las posibilidades que nos ofrecen, y el conjunto de herramientas que nos facilita el framework para ellos, como el sistema de routing, el binding, filtros, o resultados de acciones.
  • También trataremos con gran detalle la creación de la capa Vista, donde describiremos sus tipos, implementación y mecanismos del marco de trabajo que nos facilitan la tarea, como los helpers estándar, plantillas, validadores, o los nuevos helpers de Webpages, entre otros, utilizando los motores de vistas Webforms (ASPX) y el nuevo Razor.
  • En Ajax con ASP.NET MVC realizaremos un recorrido por las distintas alternativas para la introducción de Ajax en nuestros sistemas, y mostraremos la solución a escenarios comunes.
  • También trataremos cómo organizar los proyectos en Áreas, y los cambios que implican en cuanto a la estructura y funcionamiento de las aplicaciones.
  • Y por último, dedicaremos un capítulo a temas adicionales, básicamente para tratar otros aspectos no incluidos en los módulos anteriores, como la realización de pruebas unitarias y las nuevas facilidades para la resolución de dependencias, internacionalización, el despliegue de aplicaciones, o el gestor de paquetes NuGet.
El temario está salpicado por más de dos horas de vídeos demostrativos, aplicaciones de ejemplo, recursos adicionales, y consejos del día a día, que seguro harán de MVC vuestro marco de trabajo favorito ;-)

El curso se imparte totalmente online, a través de la plataforma CampusMVP, sin horarios y a vuestro propio ritmo. La duración total del curso está estimada en 12 semanas (con una dedicación media de 5 o 6 horas por semana, dependiendo del nivel de partida), y durante las cuales, dado que soy el tutor, contaréis con mi asistencia para resolver vuestras dudas e inquietudes, y ayudaros a lo largo del proceso formativo.

Si estáis interesados, sólo tenéis que ir a la tienda online de CampusMVP y apuntaros directamente. Tened en cuenta que si trabajáis en España los cursos pueden salirle gratis a la empresa gracias a la formación bonificada.

¡Espero veros por allí! ;-)

Y recordad:

Curso de ASP.NET MVC 3

Publicado en: Variable not found.
martes, 11 de enero de 2011
Uno de los libros que recuerdo haber leído con más entusiasmo en los últimos años fue el primero de Krasis Press sobre Entity Framework (bueno, y de hecho era el primero a nivel mundial por entonces en tratar este tema). Ya entonces comenté por aquí lo que me pareció, una lectura de lo más recomendable para sumergirse en esta tecnología.

ADO.NET Entity Framework 4.0. Aplicaciones y servicios centrados en datosPor esta razón esperaba impaciente la actualización del mismo a la versión 4 de Entity Framework, que durante estas navidades he tenido oportunidad de devorar. Y de nuevo de la mano de un figura como Unai Zorrilla y sus colaboradores (Yamil Herández, César de la Torre y Pablo Peláez), he disfrutado de lo lindo.

Lo primero que me ha llamado la atención es que, aunque se podía esperar lo contrario, se trata de un libro nuevo. Es decir, no es el anterior con ligeras indicaciones sobre los cambios introducidos en la última versión del marco de entidades, sino que ha sido reescrito integrando en sus contenidos las novedades, lo que hace su lectura más natural, y sobre todo para los que aún no han trabajado con esta tecnología o no leyeron el libro anterior.

Eso sí, como introduce José Manuel Alarcón (director de Krasis y MVP en ASP.NET) en su prólogo, “no se trata de un libro de recetillas”; en él encontraremos desde trucos y aspectos eminentemente prácticos hasta fundamentos del funcionamiento interno de la tecnología que nos permitirán tener un mayor control sobre ella.

Tampoco es un libro para principiantes: tanto la temática como la forma de tratarla hacen necesario que el lector disponga de ciertos conocimientos sobre bases de datos, programación orientada a objetos, arquitecturas y lenguajes de programación para la plataforma .NET.

El contenido está estructurado en cinco capítulos principales:
  • El primer capítulo nos introduce en el concepto de modelos de dominio, y presenta Entity Framework y sus distintos componentes.
  • A continuación se profundiza en el Entity Data Model y el diseño de modelos, desde mapeos básicos hasta conceptos algo más avanzados, como la herencia, table splitting, o las model defined functions.
  • El tercer capítulo nos presentará Entity Client, el proveedor de datos ADO.NET específico para trabajar con modelos conceptuales, y nos mostrará cómo trabajar directamente con él para consultar información.
  • Seguidamente, ascendemos un nivel más en las capas de abstracciones que Entity Framework establece sobre el almacén de datos, pasando a estudiar Object Services y LINQ to Entities, que de forma conjunta nos ofrecen ya las funcionalidades que nos permiten trabajar directamente con objetos del modelo, abstrayéndonos del motor subyacente a la hora de consultar y actualizar información. En este capítulo se describen además temas tan interesantes como las entidades self-tracking (STE) y POCO.
  • En el capítulo 5, llamado “EF 4.0 en el mundo real”, los autores desarrollan un completo escenario donde demuestran las posibilidades de uso de este marco de trabajo en sistemas n-layer, describiendo paso a paso cómo crear los distintos componentes que entran en juego.
Y adicionalmente se incluyen otros tantos anexos:
  • Fundamentos de LINQ, que nos permite conocer y familiarizarnos con el lenguaje integrado de consultas.
  • Referencia de eSQL (Entity SQL), el lenguaje de consultas de Entity Client.
  • Notas sobre el rendimiento de Entity Framework, con consejos y recomendaciones para hacer el acceso a datos de nuestras aplicaciones más eficiente.
  • Plantillas T4, donde se realiza una introducción a la creación de plantillas de este tipo.
  • Referencia de uso de la herramienta de línea de comandos edmgen.exe.
En definitiva se trata de un libro completo, que toca prácticamente todos los puntos necesarios para introducirnos de lleno en el mundo de Entity Framework 4, tanto si anteriormente hemos trabajado con esta tecnología como si lo que pretendemos es iniciarnos en ella.

El libro puede adquirirse directamente en la tienda online de Krasis, en formato papel y PDF. Además, desde esa misma página es posible descargar el código de los ejemplos del libro, y acceder al índice y primer capítulo en Scribd, por si queréis echarle un vistazo.

Ah, y como interesante complemento si queréis estar a la última, no os perdáis la serie de posts del autor, Unai, sobre Code-First, una extensión de Entity Framework (actualmente aún en pruebas) que permite crear bases de datos a partir del código, sin necesidad de usar los diseñadores de Visual Studio.

Publicado en: Variable not found.
lunes, 10 de enero de 2011
Inauguramos también los enlaces interesantes de este año, con los publicados en Variable not found en Facebook y Twitter desde el lunes, 20 de diciembre de 2010 hasta el domingo, 09 de enero de 2011.
Y no olvides que puedes seguir esta información en vivo y en directo desde Variable not found en Facebook, o a través de Twitter.

Publicado en: Variable not found
domingo, 9 de enero de 2011
Top posts 2010 en Variable not foundPrimero, ya que este post inaugura el recién estrenado 2011 en Variablenotfound.com, aprovechar estas líneas para desearos a todos un feliz año nuevo. Espero que se cumplan vuestros sueños, con salud, y en buena compañía.

Y ahora, tal y como manda la tradición, comentaré los posts más vistos durante el año que acabamos de cerrar, distinguiendo entre los que han sido publicados en 2010, y los que forman ya parte del archivo histórico del sitio y que siguen teniendo gran aceptación.

Cosecha de 2010

Encabezando la lista, además con bastante diferencia sobre el siguiente, el post ASP.NET MVC 2: Quince cuestiones que deberías conocer, un megapost que ya va por su tercera versión (y probablemente pronto podamos tener la cuarta ;-)), en la que se responden preguntas muy básicas sobre ASP.NET MVC. Supongo que de alguna forma, demuestra que el interés de la comunidad de desarrolladores por este framework va creciendo a buen ritmo :-)

Justo detrás en las más visitadas, encontramos dos entradas clasificadas en la categoría de “humor”, lo cual ya dice bastante sobre el tipo de fauna que pulula por aquí ;-D… La primera, muy reciente, es 32 Síntomas que indican que estás afectado por el desarrollo, una particular colección de extrañezas conductuales en las que los desarrolladores parece que coincidimos bastante, mientras que la segunda es un post de hace ya varios meses, Consejos imprescindibles por si algo falla, donde recogía una lista de recomendaciones y buenas prácticas a tener en cuenta cuando nuestras aplicaciones pretenden dejarnos en mal lugar.

En cuarto puesto tenemos el artículo llamado Edición elegante de fechas con jQuery Datepicker y MVC, paso a paso, en el que mostraba cómo combinar templated helpers de ASP.NET MVC con jQuery para crear editores de propiedades de tipo fecha muy profesionales.

Curiosamente, el quinto puesto lo ocupa un post de esos que escribes cuando descubres algo que probablemente todo el mundo conocía menos tú, pero resulta que no, que es útil para más gente: Acceder al contenido de un .vhd desde Windows XP/Vista.

En el sexto lugar, encontramos la serie Leyes epónimas relacionadas con el desarrollo de software, donde se recogían un buen número de leyes que llevan el nombre de su creador, con alguna o mucha relación con nuestra profesión.

En séptimo, un post que mostraba cómo utilizar JSON para el intercambio de datos entre cliente y servidor, sobre tecnología ASP (sin el .NET de detrás): Ajax con ASP: intercambio de datos JSON.

Los puestos octavo y noveno son para artículos muy técnicos y centrados en ASP.NET MVC: Validación de rangos decimales en cliente y servidor para ASP.NET MVC 2, y Formularios con autoguardado en ASP.NET MVC.

Y por último, en el décimo, se ha colado en el último momento el post Llega la Programación Gestual: Visual Studio Kinect Edition, la inocentada del pasado 28 de diciembre que, como todos los años, tanto me divierte escribir.

Cosecha de años anteriores

A continuación cito los artículos escritos años anteriores, pero que siguen estando entre los más visitados del blog.

Como siempre, en cabeza no podía faltar la eterna serie de citas célebres del mundo de la informática, tres posts algo viejunos que recogían más de 300 frases imprescindibles de nuestro mundillo, y que siguen atrayendo visitas de forma impresionante.

A continuación, y no a demasiada distancia de los anterior, jqGrid: Grids espectaculares para ASP.NET MVC, paso a paso, un artículo que describía paso a paso cómo utilizar el plugin jqGrid para implementar rejillas de datos en aplicaciones ASP.NET MVC.

Seguidamente, un clásico del año 2007: Bordes redondeados en webs (sin esfuerzo) con Nifty Corners Cube, que pone de manifiesto la pesadilla que sigue siendo la creación de esquinas redondas en elementos de bloque HTML. Menos mal que CSS3 viene al rescate pronto…

En sexto lugar, más de la cosecha de 2007, Llamar a métodos estáticos con ASP.NET Ajax, un artículo que describía la utilización de PageMethods como mecanismo de comunicación cliente-servidor utilizando Ajax. Aunque se refería a la versión 2.0 de ASP.NET, parece ser que todavía la información es útil.

Sin duda el 2007 fue un gran año, pues justo detrás tenemos el post Evitar el postback al pulsar un botón en ASP.Net, donde se mostraban diversos escenarios en los que podría ser interesante la cancelación del postback al pulsar un botón en formularios web ASP.NET.

Prácticamente igualado con el anterior, 32 técnicas de producción de ideas, un resumen de técnicas para la generación de ideas publicadas allá por 2008 en Neuronilla (ahora hay más), que sigue atrayendo muchos visitantes.

Por último otro gran clásico, 13 Consejos para comentar tu código, que recoge una serie de recomendaciones y buenas prácticas para comentar el código fuente y hacerlo más legible. Como curiosidad, este artículo ha sido traducido y publicado en varios idiomas (inglés, chino, y otros que soy incapaz de identificar), e incluso ha aparecido publicado en una revista India.

Y hasta aquí el tradicional resumen anual, espero que os sea interesante para descubrir entradas que en su día os perdisteis, o simplemente, por la curiosidad de conocer los temas que más interesan de este sitio.

Espero seguir viéndoos por aquí en 2011, no me faltéis, eh? Guiño

Publicado en: Variable not found.
martes, 28 de diciembre de 2010
Los desarrolladores, antes o después, acabamos sufriendo problemas físicos debido a nuestro trabajo. El hecho de estar sentados todo el día aporreando teclas como posesos lleva asociado una serie de males de espalda, manos, muñecas, brazos, hombros, cervicales… vaya, que a veces parece que sería mejor estar cargando bultos en el muelle ;-)

Tecnología GDMEsto han debido pensar  los equipos de trabajo de Kinect y Visual Studio en Microsoft, en conjunción con laboratorios MS Research, que se han unido para brindarnos lo que será la próxima revolución en el mundo del desarrollo de software, y que han decidido llamar “Gesvelopment” (Gestual Development, o tecnología GDM).

Visual Studio Kinect Edition es el primer producto de la casa que incorporará este nuevo paradigma. Básicamente, consiste en un sensor Kinect unido al PC de trabajo, en el que se instalará un Visual Studio tuneado con complementos capaces de interpretar movimientos y voz del desarrollador y trasladarlos a acciones en el editor y el propio entorno.

La tecnología GDM permitirá programar mediante movimientos, voz, posiciones y gestos del cuerpo, es decir, sin necesidad de tocar una tecla o el ratón para nada. Esto irá combinado con una serie de ayudas específicas permitirán aumentar nuestra productividad y, al mismo tiempo, mantenernos en una forma física envidiable.

Los interfaces de usuario podremos crearlos utilizando una herramienta al más puro estilo Minority Report: arrastrando virtualmente los elementos sobre la pantalla, redimensionándolos, abriendo sus propiedades, etc., siempre mediante movimientos de brazos, manos y piernas perfectamente sincronizados con lo que aparece en pantalla.
Activar formato cursiva (em) en HTMLEl código lo editaremos mediante un conjunto de movimientos y gestos preestablecidos, similares a los usados en el lenguaje de signos. Esto no implica, sin embargo, la aparición de un nuevo lenguaje para .NET. GDM monta una capa de abstracción sobre los lenguajes usados (C#, VB.NET, HTML, etc.), de forma que el mismo movimiento puede ser transformado a instrucciones del lenguaje activo, sea cual sea éste, siempre que se disponga de los drivers oportunos.

Así, por ejemplo, en lenguajes de programación clásicos, un movimiento circular con el brazo será interpretado como bucle, y será introducido en el código traducido al lenguaje actual, o un salto del programador será convertido en un jump, goto, o la estructura más cercana. O por ejemplo, en HTML podremos enfatizar texto (<em>) inclinándonos hacia la derecha (véase la imagen lateral), mientras que cerrar el puño con fuerza será útil para formatear en negrita (<strong>). La variedad de gestos y movimientos permitidos es enorme.

GDM también incluye un sistema de reconocimiento de voz con el que se podrán matizar y definir, por ejemplo, nombres de variables o instrucciones cuyos movimientos serían difíciles de ejecutar.

GDM: Cut textLas operaciones con el entorno (compilar, ejecutar, copiar, pegar, etc.) las realizaremos también con movimientos corporales explícitos. En el ejemplo de la derecha, podemos ver el gesto mediante el cual podemos cortar y enviar al portapapeles el texto seleccionado; podemos compilar apretando una mano contra otra, o ejecutar aplicaciones haciendo un gesto de decapitación con la mano derecha sobre nuestro cuello. Esto último denota algo de humor negro, sin duda, por parte de los desarrolladores del invento.

Dos desarrolladores trabajando con Visual StudioOtro aspecto realmente curioso e interesante es que dado que algunos dispositivos como Kinect son capaces de detectar y seguir los movimientos de más de una persona al mismo tiempo, será posible trabajar de forma colaborativa (pair programming), como se aprecia en la fotografía de la derecha, donde aparecen dos desarrolladores trabajando sobre una vista MVC.

Los afortunados poseedores del sensor Kinect podrán probar una edición limitada de GDM al instalar Visual Studio 2010 Beta 2, aunque el producto será distribuido oficialmente con Visual Studio 2012 (codename NutCracker), en una edición especial del producto.

Sin embargo, Microsoft no se ha centrado exclusivamente en sus tecnologías, jugando con abstracciones que hacen posible independizarse del dispositivo de detección de movimientos y reconocimiento de voz, e incluso del entorno de Eclipsedesarrollo. Así, aunque algo más tarde, también será posible desarrollar aplicaciones utilizando el mando de la Wii, y Move, el sensor de las consolas Playstation. También se están ya implementando drivers para todo tipo de entornos de desarrollo profesionales como Eclipse, Netbeans, o el block de notas.

Esto es posible gracias a su arquitectura modular, en la que se han previsto componentes que aíslan el software del hardware, y éstos a su vez del IDE y lenguaje utilizado:

GDM Technology Architecture

Está claro que antes de que se implante de forma generalizada deberán cambiar algunos aspectos en nuestro entorno y cultura empresarial, como:
  • el espacio de trabajo deberá ampliarse para cada desarrollador. Será necesario un espacio de al menos tres metros cuadrados diáfanos por desarrollador para poder ejercitar su trabajo de forma eficiente y sin interferir con el compañero.
  • las instalaciones deberá adecuarse. Las empresas deberán instalar zonas de duchas, e incorporar fisioterapeutas o médicos deportivos a sus plantillas.
  • la ropa de trabajo deberá ser cómoda y apropiada para una actividad física, quizás chándal y zapatos deportivos puedan ser una buena opción.
  • el tamaño de los monitores deberá ampliarse al menos a 50 pulgadas, para que el desarrollador pueda leer textos a cierta distancia, y mientras está en movimiento.
  • habrá que cambiar ciertos hábitos: menos café y más Gatorade, dietas altas en proteína para desayunos y almuerzos, etc.
En fin, aunque es una idea realmente atractiva, habrá que ver si las empresas son capaces de evolucionar hacia esta nueva organización, en la que las salas de desarrollo parecerán más bien de aerobic. No será fácil cambiar una mentalidad tan arraigada, donde los desarrolladores somos seres inertes, estáticos, y casi parte del mobiliario, pero sin duda aquellas que lo consigan se habrán puesto radicalmente por delante de su competencia en muchos aspectos.

Ya sabéis, id calentando, que GDM está cerca…

Publicado en: Variable not found.

[Actualizado 29/12]
Nota para despistados: obviamente la noticia no es real, se trata simplemente de una broma del Día de los Inocentes, así que tendremos que seguir siendo inertes, estáticos, parte del mobiliario, con dolores por todas partes y ganando peso. Bonito panorama para 2011, eh? ;-D