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!
Mostrando entradas con la etiqueta autobombo. Mostrar todas las entradas
Mostrando entradas con la etiqueta autobombo. Mostrar todas las entradas
lunes, 6 de julio de 2015
MVP 2015

Estimados amigos:

Tengo la inmensa satisfacción de informaros de que, de nuevo este año, he sido distinguido como MVP (Most Valuable Professional) de Microsoft por las contribuciones realizadas a la comunidad técnica durante el pasado año en temas relacionados con ASP.NET/IIS.

Cinco años consecutivos recibiendo este galardón, y sintiéndome cada vez más afortunado y feliz por seguir perteneciendo a este grupo en el que, además de unas personas maravillosas, podemos encontrar auténticos gurús de las tecnologías de Microsoft que se esfuerzan día a día en compartir sus conocimientos con la comunidad.

Muchas gracias a todos los que seguís haciendo este sueño posible, comenzando por vosotros, queridos amigos de Variable not found. Muchas gracias también a Cristina González y el equipo del programa MVP en Microsoft, y a todos los compañeros con los que he tenido la fortuna de coincidir en esta aventura y con los disfruto aprendiendo cada vez que tenemos oportunidad de vernos, muchas veces en la otra parte del mundo ;)

Ah, y por supuesto aprovecho para enviar un abrazo y muchas felicidades a los recién nombrados MVP de julio, tanto nuevos como reincidentes, entre los que puedo presumir de tener muy buenos amigos :)

Nos seguimos viendo por aquí ;)

martes, 16 de junio de 2015
Programación con ASP.NET SignalR 2.0
Me complace informaros de que, por fin, tenemos disponible en nuestro idioma mi libro sobre SignalR 2.0 que ya lleva algún tiempo en el mercado publicado en inglés por Microsoft Press, como libro “oficial” de esta tecnología.

Tras las traducciones al japonés y al chino, finalmente lo tenemos en español gracias al interés que desde un principio habéis mostrado todos, y al equipo de CampusMVP/Krasis Press, que han sido los encargados de sacarlo adelante. Un gran periplo desde su creación hasta devolverlo a su idioma original, que explica fantásticamente José Manuel Alarcón en su entrada "SignalR: la vuelta al mundo de un libro", y que os recomiendo que no os perdáis para conocer cómo empezó esta aventura y las cosas increíbles que han ocurrido desde entonces :)
martes, 19 de mayo de 2015
9 años de variable not foundPues sí, parece mentira, pero han pasado ya nueve años desde Variable not found comenzó tímidamente su andadura intentando hacerse un pequeño hueco en este océano de información en que se había convertido internet.

Sinceramente, y ya lo he comentado en alguna otra retrospectiva anual, nunca pensé que esta aventura duraría tanto tiempo y me traería tantas satisfacciones. Y aunque he de reconocer que no es una tarea sencilla, el hecho de estar todavía aquí con ganas de seguir aprendiendo y compartiendo todo lo que puedo es para mí una compensación más que suficiente a la dedicación que esto requiere :)

Como manda la tradición, voy a comentar algunos detalles objetivos sobre la salud blog y sus visitantes, porque alguna vez me habéis comentado que os resultan interesantes estos datos.
lunes, 12 de enero de 2015
imageComo de costumbre, aprovecho estas primeras palabras del año para desearos de todo corazón un 2015 fabuloso en todos los aspectos. A ver si el oráculo empieza a tener razón, las cosas mejoran un poco y podemos acabar este año recién estrenado siendo un poco más felices.

Y también como parte de la tradición, dedicaremos este post a repasar qué entradas fueron las diez más visitadas en el pasado año, que más o menos da una idea de los intereses que nos han movido a todos durante la pasada temporada.

martes, 1 de julio de 2014
Microsoft MVPEstimados amigos,

esta vez no os voy a castigar con temas técnicos o frikadas diversas ;-), sólo quería compartir con todos vosotros la tremenda alegría que supone el recibir el famoso mail de Microsoft, todavía calentito en mi bandeja de entrada, informando de que he sido nombrado por cuarto año consecutivo Microsoft MVP en el expertise ASP.NET/IIS.

Es un privilegio seguir formando parte de este selecto grupo de locos por la tecnología entre los que se encuentran tantos amigos que admiro profundamente. Y aunque ciertamente los beneficios del programa son amplios y de gran interés, lo mejor sin duda, al menos para un servidor, es la oportunidad de conocer de cerca a gente de primerísimo nivel, tanto profesional como personalmente hablando, de dentro y fuera de Microsoft. Como ya he comentado seguro por aquí, existe un antes y un después en mi trayectoria profesional desde que fui galardonado por primera vez, y mucho es gracias a la gran oportunidad de networking y visibilidad que ofrece este prestigioso reconocimiento.

Muchas gracias a todos los amigos que hacéis esto posible, al equipo del programa MVP en Microsoft por seguir teniéndome en cuenta, y a la gran Cristina González, nuestra MVP lead (y cada día la de más gente ;-D), por cuidarnos tan bien.

Aprovecho también para felicitar a todos los que hayáis recibido este galardón, ya sea por vez primera (vaya momentazo, eh? ;-)), o los veteranos que repiten una vez más.

Ale, me voy a celebrarlo, ¡hasta pronto! ;-DD
martes, 13 de mayo de 2014
El logo de VS rotado para mostrar un ocho. Ingenioso, eh? ;-PPues como en muchas otras ocasiones, se me había vuelto a olvidar que el pasado ocho de mayo Variable Not Found cumplía ocho años. ¡Uaaau!

Ocho años desde que decidí dar ese pequeño paso de lanzarme a escribir sobre lo que más me apetecía en cada momento, sin saber aún las alegrías que me traería en el futuro. Ocho años, cerca de 3.000 días, en los que he publicado cerca de 700 posts, habéis participado con más de 1.500 comentarios, y visitado mucho más de un millón de páginas. Ocho años aprendiendo como jamás había hecho antes. Pero, sobre todo, ocho años disfrutando de vuestra compañía en esta travesía.
miércoles, 26 de febrero de 2014
Curso de ASP.NET MVC 5 en CampusMVPY seguimos con los estrenos... ;) Si sólo hace unos días os presentaba mi nuevo libro sobre SignalR, llega ahora el turno a otro de los asuntos que me han tenido muy entretenido las últimas fechas: el nuevo curso de ASP.NET MVC 5 en CampusMVP.

Se trata de una revisión completa del curso de MVC 4 que tanto éxito de crítica y público ha tenido hasta la fecha, para adaptarlo por completo a las novedades presentes en la versión más reciente del marco de trabajo (en este caso la versión 5.1, aparecida en enero). El temario es, a grandes rasgos, el siguiente:
  • Introducción a ASP.NET MVC, donde realizamos un primer acercamiento al framework MVC, describimos el contexto tecnológico en el que se sitúa, 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, los helpers de Webpages, vistas para dispositivos móviles, o el sistema de bundling, entre otros, usando principalmente el motor de vistas Razor (aunque también se toca el motor ASPX).
  • 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.
  • Veremos WebAPI, el framework para implementar servicios o APIs de nuestras aplicaciones, con una gran alineación con los protocolos de la red y el estilo arquitectural REST.
  • 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.
  • 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 facilidades para la resolución de dependencias, internacionalización, el despliegue de aplicaciones, o el sistema de autenticación basado en ASP.NET Identity.
  • Por último, presentamos BlogMachine y describimos sus principales componentes, sugiriendo modificaciones y ampliaciones que podrían realizarse para poner en práctica los conocimientos adquiridos.
Como venimos haciendo desde hace ya bastantes años, de una versión a otra no sólo vamos actualizando los contenidos de texto, vídeos, ejemplos y prácticas a las novedades de la última versión del framework, sino que aprovechamos cada actualización para hacerlo aún más potente. Ahora, por ejemplo, hemos incluido evaluaciones parciales para que puedas verificar tu progreso conforme avanzas o, en el último módulo del curso, una aplicación completa de ejemplo hecha desde cero para ver y tocar muchos de los conceptos tratados a lo largo del curso de forma integrada: BlogMachine.


El curso se imparte totalmente online a través de la plataforma CampusMVP, sin horarios y a vuestro propio ritmo. Podéis comenzarlo en cualquier momento y la duración del curso está estimada en 12 semanas (con una dedicación media de 6 o 7 horas por semana, dependiendo del nivel de partida).

Durante su duración tendréis acceso a una completísima documentación (más de 400 páginas) que podréis descargar una vez terminado, así como a más de dos horas y media de vídeos donde se muestran en vivo los principales conceptos tratados, aplicaciones de ejemplo, recursos adicionales, buenas prácticas y consejos del día a día que seguro convertirán MVC en vuestro marco de trabajo favorito. Además, dado que soy el tutor, contaréis con mi asistencia para resolver vuestras dudas sobre los temas tratados 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. Ah, y tened en cuenta que si trabajáis en España los cursos pueden salirle gratis a vuestra empresa gracias a la formación bonificada.

¡Espero veros a muchos por allí! ;)

Publicado en Variable not found.
martes, 18 de febrero de 2014

Por fin llegó el momento que estaba esperando desde hace tiempo: tras muchos meses de trabajo y preparativos, ya está disponible mi libro “SignalR Programming in Microsoft ASP.NET” :-) ¡¡Hurra!!

Publicado directamente en inglés por Microsoft Press, ha sido desde su origen un proyecto mucho más ambicioso que mi anterior incursión en el mundo literario, que seguro recordaréis, principalmente porque se trata de un libro con una difusión, repercusión y alcance mucho mayor que el anterior, y al que hemos tenido que dedicar muchísimo esfuerzo, tiempo e ilusión todos los implicados (¡que no son pocos!) para lograr un resultado que esperamos esté a la altura de las circunstancias.

El libro tiene más de 250 páginas a través de las cuales se describen tanto temas básicos como aspectos avanzados de la programación con la versión 2 de SignalR. El índice resumido es el siguiente:
  1. Internet, asynchrony, multiuser… wow!
  2. HTTP: you are the client, and you are the boss
  3. Introducing SignalR
    Estos tres primeros capítulos introducen las aplicaciones asíncronas en tiempo real y los conceptos básicos que necesitamos conocer para trabajar con SignalR: qué es, qué nos aporta, y qué mecanismos hacen que todo esto funcione.
  4. Persistent connections En el cuarto capítulo comenzamos ya a trabajar con conexiones persistentes, tanto en el lado servidor como en el cliente, describiendo en detalle las APIs que ofrece SignalR para comunicar ambos extremos.
  5. Hubs Aquí se describe profundidad el uso de hubs, tanto en el lado cliente como en el servidor, describiendo detalladamente las herramientas disponibles para enviar y recibir datos desde ambas partes, mantener el estado, implementar trazas, y muchos otros aspectos de interés al programar hubs de SignalR.
  6. Persistent connections and hubs from other threads
    En este capítulo se describen las herramientas proporcionadas por SignalR para utilizar hubs y conexiones persistentes desde hilos de ejecución externos a dicho framework.
  7. Real-time multiplatform applications
    Este capítulo está dedicado a la publicación y consumo de servicios desde servidores y clientes no web. Se describen técnicas de self-hosting en distintos entornos, y cómo implementar clientes en plataformas como Windows 8 o Windows Phone.
  8. Deploying and scaling SignalR
    En este capítulo se muestran los fundamentos de la escalabilidad de SignalR y distintas estrategias para enfrentarse a los problemas asociados al escalado de servicios. Estudiamos los backplanes incluidos de serie en el producto e incluso cómo crear backplanes propios, y finalmente, apuntamos técnicas para mejorar el rendimiento y medir el rendimiento de nuestros sistemas.
  9. Advanced topics
    Aquí tratamos temas como autorización en Hubs, extensión de SignalR, inyección de dependencias, pruebas unitarias, intercepción de mensajes e integración con otros frameworks en cliente y servidor.
En casi todos los capítulos hay ejemplos completos y multitud de porciones de código para ver de forma práctica los conceptos mostrados. Si tenéis interés, podéis ver un índice detallado en la página del libro en O’Reilly, el distribuidor oficial de libros de Microsoft Press, e incluso hay previews para hacerse una idea de lo que encontraréis dentro.

FAQ

¿Dónde puedo comprarlo? Pues básicamente donde quieras, aunque Amazon o InformIT  pueden ser buenos puntos de partida.
¿En qué formatos está disponible? El libro se comercializa en formato digital y en papel. En el primer caso, he visto que es posible obtenerlo en ePub, Mobi y PDF.
¿Va a salir el libro en español? Pues sinceramente, no lo sé. Desde luego, a corto plazo sólo estará en inglés y a día de hoy no existen planes para publicarlo en castellano, aunque no sé si esto cambiará en el futuro.

Agradecimientos

No me gustaría acabar el post sin antes agradecer al equipo de CampusMVP, con José Manuel Alarcón al frente, la oportunidad que me han brindado para poder participar en este proyecto y la fantástica gestión y ejecución del mismo. También al amigo Javier Suárez Ruíz por su imprescindible colaboración en algunos ejemplos.

Y por parte de Microsoft Press, entre muchos otros, agradecimiento infinito a Devon Musgrave por haber apostado por este proyecto desde el principio, a nuestra editora Carol Dillingham por su gran trabajo para llevarlo a cabo y a Todd Meister por sus minuciosas revisiones técnicas. Incluso hemos tenido la inmensa fortuna de contar con revisiones y comentarios de los padres de SignalR, Damian Edwards y David Fowler, a los que también envío mi agradecimiento. Todo un lujazo, vaya :)

Por mi parte, trabajar en este libro ha sido un honor y una experiencia impresionante, dura pero muy enriquecedora. Ahora espero que os sea de utilidad, que al fin y al cabo es lo que hace que el esfuerzo valga la pena :-)

Publicado en Variable not found.
lunes, 13 de enero de 2014
The best of Variable Not FoundComo viene siendo habitual, me reservo el primer post del año para transmitiros mis mejores deseos para es año que acabamos de estrenar. Espero que sea simplemente brutal, en el buen sentido, claro ;-)

Y siguiendo la tradición, aprovecharemos para echar un vistazo a los contenidos más visitados durante el pasado año. Esto nos puede dar una idea de por dónde andan los intereses de los visitantes y, de camino, dar una segunda oportunidad a los artículos que os perdisteis en su momento.
miércoles, 3 de julio de 2013
¡Microsoft MVP 2013!Estimados amigos, sólo quería comunicaros que, de nuevo, Microsoft ha tenido a bien reconocerme como MVP (Most Valuable Professional) por las contribuciones realizadas a la comunidad durante el año 2013 relativas a la temática ASP.NET/IIS :)

Tres años consecutivos (¡quién lo iba a decir!) recibiendo esta tremenda alegría que tantas satisfacciones me ha dado desde el punto de vista personal y profesional. Os puedo asegurar que hay acontecimientos que cambian la vida, y en mi caso, el nombramiento como MVP ha sido uno de ellos :)

Así que, afortunadamente, voy a seguir disfrutando un año más de los beneficios del programa, pero, sobre todo, del enorme placer de poder seguir cerca de una pandilla de profesionales con un nivel técnico impresionante, y, lo que es más importante, que encima son tipos geniales con los que da gusto debatir, intercambiar ideas y pasar buenos ratos.

Muchas gracias a vosotros que lo hacéis posible, a la gente de Microsoft que gestiona estos temas, y, en particular, a Cristina González, lead del programa MVP en España (y parte del extranjero ;), por ponérnoslo todo tan fácil.

Y por último, felicitar también desde aquí a todos los demás galardonados, tanto a los recién llegados al programa como a los que repiten un año más. Espero que podamos celebrarlo pronto :)

¡Nos seguimos viendo por aquí!
miércoles, 8 de mayo de 2013
¡Siete años!Recuerdo aquel lunes 8 de mayo de 2006 como si fuera ayer. Venga, va, no lo recuerdo, pero buscando un poco por la red he visto que en Sevilla teníamos un día soleado con una temperatura máxima rondando los 27 grados que seguro que invitaba a salir a pasear. Según se puede comprobar en los periódicos del día (uno, otro, otro más…), el mundo estaba, como siempre, revuelto. Se celebraba el día de los Acacios, Gibrianos, y Metrones, entre otros nombres imposibles, y se cumplían 120 años desde el nacimiento de la coca-cola.

Y por algún motivo debí pensar que era un buen día para comenzar un blog. Fue uno de esos pequeños pasos que das sin otorgarle importancia alguna, pero que transcurrido el tiempo puedes comprobar que realmente fue decisivo para tu futuro. Lo único que tenía a mi favor eran las ganas de hacerlo, y la ventaja de tener poco que perder por intentarlo. Nota: no sé si os habréis fijado, pero las negrillas de este párrafo componen un mensaje subliminal para todos aquellos que aún no os habéis lanzado a crear vuestro propio blog ;)
miércoles, 20 de marzo de 2013
Seguro que estaréis al tanto de que durante los últimos tiempos he estado trabajando junto con los amigos de Krasis/CampusMVP en la publicación de un libro sobre SignalR. De hecho, probablemente también sabréis que la versión en inglés del mismo se presentó y comenzó a distribuir para Estados Unidos (bueno, y para todo el mundo) hace unas semanas, cuando aún SignalR se encontraba en Release Candidate, y ha conseguido atraer a varios miles de lectores y muy buenas críticas durante este periodo.

Introducción a ASP.NET SignalRBueno, pues ya de forma oficial, me complace informaros de que desde hace unos días en la tienda de Krasis está disponible mi primer libro, y el primero del mundo sobre este nuevo framework: Introducción a ASP.NET SignalR. Revisado, actualizado a la versión 1.0.1 de SignalR y, por supuesto, en español :-)

Ante todo, agradecer a Krasis, y en concreto a José Manuel Alarcón, su continuo apoyo, colaboración e imparable empuje, sin los cuales no habría sido posible llegar a materializar este proyecto.

Es un libro relativamente corto, unas ochenta páginas, que de momento va a ser distribuido exclusivamente en formato electrónico. De esta forma, se evitan los costes asociados a la impresión, manipulación y logística, y se permite su comercialización a un precio creo que bastante razonable ;-)

Y ya entrando en los contenidos, a lo largo del texto hace una introducción a los protocolos, tecnologías y técnicas que hay por detrás de las aplicaciones multiusuario en tiempo real, e introduce SignalR desde cero, mostrando mediante código y ejemplos cómo podemos sacarle partido a este impresionante marco de trabajo y construir increíbles aplicaciones web  (¡y no web!) de forma pasmosamente sencilla.

A grandes rasgos, el recorrido que hacemos es el siguiente:
  • En primer lugar, tras una breve introducción, explicamos detalladamente las limitaciones de HTTP para la implementación de sistemas multiusuario en tiempo real, y estudiamos detalladamente los protocolos y técnicas que podemos usar para implementar escenarios Push.
  • A continuación, presentamos SignalR y proporcionamos una visión de alto nivel del framework.
  • Seguidamente, se describe la implementación de servidores y clientes javascript usando persistent connections, el nivel más bajo de abstracción facilitado por SignalR.
  • En el siguiente capítulo ascendemos de nivel de abstracción y comenzamos a desarrollar utilizando Hubs en servidor y distintos enfoques para consumir los servicios desde javascript.
  • A continuación estudiamos cómo enlazar aplicaciones más convencionales con servicios en tiempo real proporcionados por SignalR, gracias a la capacidad de consumirlos desde procesos externos.
  • Y por último, demostrando que este framework no sólo es utilizable en entornos web, aprenderemos a acceder a servicios SignalR desde clientes de todo tipo, y a alojarlos en procesos no ASP.NET, como podría ser una aplicación de consola o un servicio del sistema operativo.
Exceptuando los dos primeros bloques, que son de contenido más teórico, todo el texto está salpicado con mucho código, y los capítulos acaban con la implementación de un ejemplo completo para ilustrar los conceptos tratados a lo largo de los mismos. Estos ejemplos, por supuesto, pueden ser descargados para probarlos y juguetear con ellos directamente.

Espero que lo disfrutéis y, sobre todo, os sea de utilidad para abriros a nuevas posibilidades e introducir en vuestras aplicaciones sorprendentes funcionalidades multiusuario en tiempo real. ¡Uau!

El árbol, los hijos, el libro… creo que ya no me falta nada ;-)

Publicado en Variable not found.
miércoles, 9 de enero de 2013
The best of 2012Una vez más, aprovecho este primer post del año para desearos a todos que 2013 sea feliz, próspero, y que se cumplan todos vuestros sueños :-)

Y mientras esto ocurre, como manda la tradición, vamos a comentar brevemente cuáles son los artículos más visitados del año que acabamos de cerrar. Al igual que otras veces, distinguiremos entre los posts escritos en 2012 y los publicados otros años, clásicos de Variable not found, que siguen atrayendo gran cantidad de lectores al blog.

Cosecha de 2012

Además de la raíz del sitio, que siempre es la URL más visitada (lo cual no sé si es bueno o malo, todo hay que decirlo ;-)), el post que más visitas atrajo durante 2012 fue “Pasar variables de script a un Url.Action() o Html.ActionLink()”, un artículo publicado en febrero donde se explicaban algunas posibilidades que tenemos a la hora de crear rutas dependientes de parámetros disponibles exclusivamente en cliente, en tiempo de script. Ha sido una grata sorpresa el que un post tan técnico haya sido el más visitado :–)

A continuación, la recopilación de “Las 20 mejores tiras cómicas sobre desarrollo de software”, hilarantes muestras de genialidad extraídas a partir de las votaciones y sugerencias de miles de usuarios de Stackoverflow.

Le sigue de cerca el post que daba comienzo a la serie Introducción a SignalR, el maravilloso framework de programación de sistemas multiusuario en tiempo real que tanto va a dar que hablar en los próximos meses.

101 nuevas citas célebres del mundo de la informática (¡y van 404!)”, la continuación de la exitosa serie, también está entre las páginas más vistas del año, como no podía ser de otra forma. Por supuesto, ya he comenzado a recopilar la siguiente tanda ;-)

Continuamos con otro inicio de serie “Knockout (I): pongamos orden en el lado cliente”, que demuestra el interés que está despertando este marco de trabajo MVVM para Javascript, que no es sino una clara prueba de la necesidad que tenemos de ordenar el caos en que se convierte la capa cliente en sistema medianamente complejos.

Como somos bastante curiosos, tampoco podía faltar aquí la respuesta a una pregunta que se ha hecho la humanidad durante décadas: “¿Por qué separamos los directorios con la barra invertida?“. ¿Todavía no lo sabes?

Seguimos con un post que anunciaba la disponibilidad de la flamante versión beta de ASP.NET MVC 4, a la vez que describíamos las principales novedades que venían de su mano: “¡ASP.NET MVC 4 Beta disponible!”.

De nuevo el humor tiene su hueco en la lista de artículos más visitados con la aparición de “Llamemos a las cosas por su nombre”, una relación de fórmulas geek para arremeter contra los patosos usuarios de nuestras aplicaciones.

También destaca “TypeScript: un primer vistazo”, donde se realizaba un rápido recorrido sobre los aspectos más destacables de la propuesta de Microsoft para mejorar la vida de los desarrolladores Javascript.

Y por último, un post que ha entrado con mucha fuerza a última hora, el anuncio de los nuevos servicios de computación distribuida móvil con el que podemos ganar bastante dinerillo: “Vende a la nube capacidad de proceso de tu móvil”. San Inocencio me perdone, pero no puedo evitarlo ;-D

Cosecha de 2011 y anteriores

Artículos escritos en años anteriores, muchos de ellos destacados miembros de lo que suelo denominar “clásicos de Variable Not Found”, siguen atrayendo un gran número de visitas al blog.

El primero en la lista, por segundo año consecutivo, es el artículo “ASP.NET MVC 2: Quince cuestiones que deberías conocer”, que recoge algunas de las preguntas realmente básicas sobre el framework y, a pesar de referirse a la segunda versión, sigue despertando interés de los lectores. Ya el año pasado me propuse actualizarlo a la versión 4 y por razones que no quiero nombrar postergación, pereza, desidia, ignominia, alevosía no lo hice. Pero de 2013 no pasa ;-)

Le sigue un clasicazo del blog, el inicio de la saga que aún hoy perdura: “101 citas célebres del mundo de la informática”. Este post inaugural fue traducido de una publicación original en inglés (con permiso de su autor, por supuesto), y me divirtió tanto que comencé a recopilar citas por mi cuenta, lo que ha dado como para cinco posts de la serie a lo largo de los años.

La popularización de MVC y la tradicional falta de alternativas oficiales para la implementación de rejillas de datos Ajax (grids, grillas,…) hacen que aún en la actualidad siga siendo muy consultado el post “jqGrid: Grids espectaculares para ASP.NET MVC, paso a paso”, un artículo de 2009 que mostraba cómo utilizar este conocido plugin de jQuery para la visualización y edición de datos.

A continuación encontramos un post de 2008, “32 técnicas de producción de ideas”, un resumen de técnicas de producción de ideas extraídas de la web Neuronilla, que supongo que por obra y gracia del SEO parece estar bastante bien posicionado y atrae bastantes visitantes.

Una prueba más de la importancia de la implementación de rejillas de datos es el hecho de encontrar de nuevo un post sobre el tema, “WebGrid en MVC 3, paso a paso”, que de hecho era el inicio de una serie de artículos bastante leídos también.

Evitar el postback al pulsar un botón en ASP.Net” es un artículo de 2007(!) que, según comentaba un lector, sigue estando aún vivo, y con bastantes lecturas a lo largo del año. Una alegría, teniendo en cuenta el ritmo al que avanzan las tecnologías y la rapidez con la que los contenidos quedan obsoletos.

Y, ¿quién dijo que Windows XP o Vista estaban ya muertos? Por suerte o por desgracia no es así, y prueba de ello es que entre los diez artículos más vistos en 2012 se encuentra un artículo del año 2010 llamado “Acceder al contenido de un .vhd desde Windows XP/Vista”. Increíble pero cierto.

A continuación, el imperdible “El Tao de la Programación”, una maravilla escrita en 1987 por Geoffrey James, quien muy amablemente me permitió traducir y publicar en el blog esta pieza imprescindible de la literatura friki. Ya estás tardando en leerlo, si aún no lo has hecho ;-)

Seguidamente encontramos otros dos clásicos muy solicitados por los lectores, “Edición elegante de fechas con jQuery Datepicker y MVC, paso a paso” y “Desplegables en cascada con ASP.NET MVC y jQuery”, que a pesar de su antigüedad siguen siendo relativamente válidos. A ver si este año me animo y publico versiones actualizadas de los mismos.

¡Y eso es todo! Espero que esta recopilación os sea de utilidad para descubrir posts que en su momento os perdisteis o para redescubrir alguno que os llamara la atención cuando se publicó.

Seguimos viéndonos por aquí :-)

Publicado en Variable Not Found.
martes, 9 de octubre de 2012
Me complace anunciaros que desde hace unos días tenéis disponible en CampusMVP mi nuevo curso de ASP.NET MVC 4, con el que espero seguir ganando fieles adeptos a esta tecnología ;-)

El temario es una completa y profunda revisión del utilizado en el curso de MVC 3, que tan buenas críticas ha recibido por parte de los alumnos que lo han seguido, pero más completo, adaptado a las novedades de la nueva versión, a las nuevas herramientas, y con un enfoque mucho más práctico.

Y para que veáis que no se ha escatimado en recursos, ahí va un vídeo de presentación muy chulo:
domingo, 1 de julio de 2012
MVP 2012Acabo de llevarme una gran alegría, y tengo la urgente necesidad de compartirla con todos vosotros: por segundo año consecutivo he tenido la inmensa fortuna de ser reconocido como Microsoft MVP en el área ASP.NET/IIS :-)

Es para mí todo un honor y un privilegio seguir formando parte de este grupo de apasionados de las tecnologías Microsoft, gente increíble con la que da gusto tratar, y con los que espero poder compartir más buenos ratos.

Por si alguno no sabe de qué se trata, el galardón MVP (Most Valuable Professional) es un prestigioso reconocimiento que otorga Microsoft a personas de la comunidad técnica que dedican parte de su tiempo a compartir con otros usuarios sus conocimientos y experiencias sobre productos y tecnologías de esta compañía. Si estás interesado en saber más sobre ello, aquí puedes leer bastante sobre el reconocimiento MVP.

Muchas gracias a todos los que lo habéis hecho posible de nuevo :-)

Ah, y ¡felicidades a todos los nuevos galardonados, y a los que repiten también este año!

Publicado en Variable not found.
miércoles, 9 de mayo de 2012
6 años 6“De hoy no pasa”. Era 8 de mayo de 2006; aunque no puedo recordarlo, seguro que estuve toda la jornada trabajando con mi flamante Visual Studio 2005 en algún proyecto basado en un primitivo ASP.NET.

Lo que sí sé es que al llegar a casa inicié Windows XP, abrí Internet Explorer 6 y navegué hacia blogger.com con la intención de crear un blog. No tenía grandes aspiraciones, pero estaba seguro de que la travesía iba a ser larga.

lunes, 4 de julio de 2011
MVP 2011Hace unos días recibí una alegría que necesito compartir con todos vosotros de forma urgente :-)

El escenario era el siguiente: toda la familia metida en el coche a las cinco de la tarde, rumbo a la costa para pasar el fin de semana, un calor de narices, una morriña siestera bastante importante y muchas ganas de llegar a la playa.

Decidimos parar en una estación de servicio para tomar un café que nos permitiera continuar la marcha en condiciones razonables. Como de costumbre, aprovecho para revisar el correo electrónico desde el móvil por si ha surgido alguna emergencia de última hora, y me encuentro con esto:
Asunto: ¡Enhorabuena MVP de Microsoft 2011!

Estimado/a Jose Maria Aguilar,

Enhorabuena. Nos complace presentarle el programa de nombramiento MVP de Microsoft de 2011. Este nombramiento se concede a los líderes excepcionales de la comunidad técnica que comparten de forma activa su experiencia de alta calidad y de la vida real con otras personas. Le agradecemos especialmente la contribución que ha realizado en las comunidades técnicas en el área de ASP.NET/IIS a lo largo del pasado año.

[…]
De pronto se me quitaron el calor, el sueño, e incluso las ganas de playa. ¡Vaya sorpresa! :-)))

Para el despistadillo que aún no lo sepa, el MVP es un galardón que concede Microsoft a personas de la comunidad técnica que dedican parte de su tiempo a compartir con otros usuarios sus conocimientos y experiencias sobre productos y tecnologías de esta compañía. Si estás interesado en saber más sobre ello, aquí puedes leer sobre el programa MVP.

Es para mí un honor y un privilegio el poder entrar a formar parte de este grupo, y sólo espero estar a la altura de esta distinción. Intentarlo, lo intentaré, os lo aseguro ;-)

Gracias a todos los que lo habéis hecho posible.

¡Nos vemos!
miércoles, 8 de junio de 2011
¡Aprende todo sobre acceso a datos con .NET 4!Como probablemente sabréis, hace unos meses presentamos en CampusMVP el nuevo curso de acceso a datos con .NET 4.0. Un temario amplio y potente, cuyo objetivo es, además de ayudaros a preparar el examen de certificación de especialista en tecnología “70-516 TS: Accessing Data with Microsoft® .NET Framework 4”, aportar una visión detallada de todas las tecnologías de acceso a datos disponibles en la cuarta versión de la plataforma .NET.

Pues bien, CampusMVP ha lanzado recientemente la promoción “verano feliz” que seguro termina de animaros a aquellos que aún necesitáis un empujoncito:
  • acceso durante tres meses al curso de preparación de la certificación, con un descuento brutal sobre el precio habitual,
  • libros en papel y PDF sobre C#, LINQ, Entity Framework y OData indispensables para cualquier desarrollador, escritos por auténticos figuras de este mundillo,
  • acceso a MeasureUp, el simulador oficial del examen de certificación de Microsoft,
  • tres meses de acceso a la biblioteca completa de vídeos de PluralSight sobre tecnologías Microsoft,
  • una mochila EastPak,
  • una camiseta “Feed your brain” muy molona,
Garantía de aprobado CampusMVP… y como siempre, con un tutor (el que os habla) que os ayudará a resolver vuestras dudas a lo largo del curso, la garantía de aprobado de CampusMVP para aquellos que vayáis a presentaros al examen, y por si es poco, la posibilidad de hacerlo a coste cero si tu empresa lo bonifica a través de la Fundación Tripartita.

En mi opinión, se trata de una oportunidad realmente interesante que podéis aprovechar durante este mes y de forma limitada, así que no os lo penséis demasiado ;-)

Más información en: Verano feliz con CampusMVP.

¡Aprende todo sobre acceso a datos con .NET 4!
martes, 17 de mayo de 2011
Variable not found cumple cinco añosTras mucho tiempo como lector y consumidor de blogs, sentía la necesidad de disponer de mi propio espacio, un sitio donde ir publicando información sobre las cosas que me interesaban y que quizás podían interesar a alguien más. Entré en Blogger y creé mi cuenta.

Bien, pues hace ya cinco años de esto. Se dice pronto, eh? :-)

Variable not foundEl siguiente paso fue darle a este espacio un nombre. Seguro que muchos ya sabréis que la denominación Variable not found es un homenaje a los viejos tiempos del Spectrum, culpable de que muchos nos estemos dedicando hoy profesionalmente al desarrollo de software.

Para los más jóvenes diré que este mensaje de error era bastante habitual cuando programábamos con aquel Basic primitivo de los años 80 e intentábamos acceder a una variable no definida. Por cierto, aquellos de mi quinta que queráis tener un momento nostalgia, o los que simplemente tengáis curiosidad por trastear con él, podéis encontrar aquí un emulador online de esta maravilla.

Y tras todo ello, ya sólo faltaba  lo más difícil: intentar crear contenidos razonablemente decentes, darlo a conocer, conseguir visitas, suscriptores, comentarios… y en ello estamos :-)

Como en otras ocasiones, aprovecho para resumir los distintos periodos por los que hemos ido pasando desde aquél momento para, justo después, comentar este último año que acabamos de finalizar.
  • Plantilla original de Variable not foundAño 1: la travesía del desierto (mayo 2006 - mayo 2007), caracterizado principalmente por ser yo el único visitante (poco más o menos) al blog, por aquellos tiempos disponible a través de la dirección jmaguilar.blogspot.com y con la imagen de una de las plantillas de Blogger.

    La siguiente gráfica muestra los primeros meses de vida del blog, donde era extraño superar las tres visitas al día. Esos picos que se ven probablemente sería yo mismo haciendo pruebas:

    Estadísticas de acceso

    También es curioso ver los primeros veinte días sin datos estadísticos: era tan ignorante –o tenía tan pocas esperanzas de que fuera a entrar alguien- que ni siquiera se me ocurrió activar ningún sistema de seguimiento hasta 20 días después de la inauguración oficial de la bitácora :-D
     
  • Año 2: el despegue (mayo 2007 - mayo 2008), durante el cual se produjeron múltiples novedades, como la adquisición del dominio variablenotfound.com, la difusión de feeds a través de Feedburner, la creación del diseño actual, y la inclusión en agregadores y comunidades como Planeta Código, Planet WebDev y Geeks.ms.

    Este segundo año lo acabamos con un incremento del 2.500% en el número de visitas (la verdad, tampoco lo tenía muy difícil al partir casi de cero ;-)), debido en gran parte a algunas avalanchas procedentes de Menéame.

    Pero lo que me parecía más increíble era algo a lo que, curiosamente, no había prestado demasiada atención y que, sin embargo ahora, es uno de los parámetros que más valoro: los suscriptores a los feeds. Acabábamos el año con unos increíbles 380 suscriptores.
     
  • Año 3: la consolidación (mayo 2008 – mayo 2009), periodo sin grandes cambios en el que Variablenotfound.com continuó creciendo, aunque no de forma tan espectacular como lo había hecho anteriormente.

    Se incrementaron en un 75% el número de visitas procedentes de buscadores, debido a que comenzaba a notarse la antigüedad del blog, el número de referencias externas y su posicionamiento en buscadores, compensando así la práctica ausencia de “meneos” y otro tipo de avalancha.

    Según el inestable inestimable feedburner, los suscriptores a feeds superaron este año los 600, lo que suponía un aumento casi del 100% respecto al periodo anterior. Impresionante.
     
  • Año 4: la variable social (mayo 2009 – mayo 2010), se continuaba la estabilidad en cuanto al número de visitas, aunque seguían creciendo a un ritmo importante. Superábamos los 900 suscriptores a los feeds, y rozábamos los 100.000 usuarios únicos absolutos al año, sumando las visitas a variablenotfound.com y su eco en geeks.ms.

    La gran novedad del periodo fue la inclusión del componente social, creando una página en Facebook y comenzando a retransmitir vía Twitter. Acabábamos el año pasado con cien seguidores en el primero, y más de cincuenta en el segundo.

Año 5: La variable física

La principal novedad de este año ha sido el hecho de haber salido de la cueva, y haber podido introducir la componente física en esta ecuación.

La asistencia al TTT/Open Day me permitió ponerles cara y voz a fenómenos a los que admiraba y llevaba siguiendo desde hacía mucho tiempo, y con los que fue un auténtico placer poder compartir unas horas. Más recientemente, la gira Make Web Not War en la que he tenido el placer de participar también me ha dado la oportunidad de saludar personalmente a amigos a los que sólo conocía virtualmente, y de echar unos ratos excelentes con un grupo estupendo. Y finalmente, todo esto me ha permitido entrar en contacto con la gente de CartujaDotNet, el grupo de usuarios .NET de Sevilla, donde espero participar y colaborar de forma presencial.

Entrando ya en otro orden de asuntos, Variable not found ha continuado su trayectoria ascendente incrementando el número de usuarios de forma considerable en todos los canales abiertos:

    Estadísticas de Feedburner
  • Un 30% de incremento en el número de visitas y páginas vistas en variablenotfound.com, donde estamos ya estabilizados por encima de las 10.000 visitas/mes. Si sumamos las consultas de estos contenidos desde geeks.ms, nos ponemos ya en 15.000 visitas/mes.
  • Feedburner indica cerca de un 25% de incremento, superando los 1.100 suscriptores a los feeds del sitio.
  • Conseguimos cerca de un 300% de incremento en el número de followers en Twitter, que rondan los 230 en este momento.
  • Un 100% de incremento de seguidores en Facebook, donde superamos ya los 200 amigos.
Según entendidos en la materia, las cifras de visitas y suscriptores están bastante bien teniendo en cuenta la gran verticalidad del blog. Variable not found sigue siendo un blog de poca monta en términos generales, pero dentro de su temática y especialización está bastante bien situado, lo cual, por supuesto, tengo que agradeceros :-)

La principal fuente de tráfico siguen siendo las búsquedas de Google; la presencia de otros buscadores (bing, yahoo, ask...) en la estadística es sólo testimonial. Eso sí, ha decrecido el porcentaje total de visitas procedentes de búsquedas en beneficio del tráfico referido de otras fuentes como geeks.ms, Facebook, los foros de MSDN, o Twitter, entre muchos otros.

En cuanto a los navegadores, Firefox sigue siendo el más usado para acceder a variablenotfound.com, aunque el uso de Chrome se ha duplicado en el último año en detrimento de IE y del propio Firefox. Este trío concentra el 95% de los usuarios.

Curiosamente, el 7% de los usuarios que usan Internet Explorer siguen con la versión 6 :-O. Pero bueno, el año pasado a estas alturas era tres veces más, así que no podemos decir que la campaña  IE6 count down no esté surtiendo efecto…

Otro dato interesante es que el año pasado Windows XP era utilizado prácticamente por el 60% de los visitantes, y ahora rondamos el 45%. Windows 7 ha crecido hasta cerca del 40%.

Mi primer cheque AdsenseRespecto a los beneficios obtenidos, este año se ha producido la tan esperada llegada de mi primer cheque Adsense, que ya compartí virtualmente con vosotros ;-) Para mi gusto le faltaban algunos ceros para haber sido perfecto, pero vaya, menos da una piedra…

Afortunadamente sigo disfrutando al escribir cada post, al revisar los comentarios (pocos, pero haberlos haylos), al descubrir las referencias externas, comprobar que los posts son útiles de vez en cuando a alguien, y al ver que el número de amigos de variablenotfound.com continúa creciendo. Y desde luego, sigue sin haber mejor recompensa que ver que estáis ahí después de tanto tiempo.

¡Mil gracias a todos! Y por supuesto, espero que sigáis ayudándome a buscar la variable un año más ;-)

Publicado en: Variable not found
martes, 25 de enero de 2011
Acceso a datos con .NET Framework 4
Días atrás presentaba el nuevo curso de ASP.NET MVC 3 en CampusMVP, y ahora le toca el turno a otro de los asuntos que me ha tenido bastante entretenido los últimos meses: el nuevo curso de preparación de la certificación 70-516 TS: Accessing Data with Microsoft® .NET Framework 4.

El objetivo del curso es ayudaros a preparar el examen 70-516 de Microsoft que os certificará como Technology Specialists en acceso a datos sobre la versión 4 del framework. Sin embargo, el curso está conceptualizado para lograr un objetivo aún mayor: aprender a identificar, seleccionar e implementar con éxito todas las tecnologías de acceso a datos disponibles en la última versión del marco de trabajo de Microsoft, de forma que los conocimientos adquiridos os sean de utilidad en vuestra vida profesional.

Para ello, se ha creado un completo temario exclusivo para el curso, en el que se incluyen más de 130 temas con orientación muy práctica, cerca de 4 horas de vídeos explicativos, aplicaciones de ejemplo, enlaces, y otros recursos, a través de los siguientes módulos:
  • Preparación de la certificación 70-516 TS: Accessing Data with Microsoft® .NET Framework 4 Introducción, donde hacemos una breve presentación del curso y una rápida revisión de las tecnologías de acceso a datos incluidas en .NET Framework 4 y que iremos desgranando a lo largo del curso.
  • El núcleo de ADO.NET, donde comenzamos desde cero tratando temas básicos como conexiones, comandos de consulta y actualización, o transacciones, hasta profundizar en asuntos algo más avanzados como la encriptación de cadenas de conexión, comandos asíncronos, MARS, el uso del LTM, técnicas de control de concurrencia, la abstracción del origen de datos usando factorías de proveedores, y muchos otros temas.
  • Uso de DataSets, la solución clásica para la gestión de datos desconectados que sigue siendo válida en determinados escenarios. En este módulo detallaremos el proceso de definición de conjuntos de datos en memoria (tablas, columnas, restricciones, etc.), la carga desde fuentes de datos externas usando adaptadores, fórmulas para la realización de consultas, actualización de datos en memoria y traslado a la base de datos relacional, la gestión de conflictos, la relación con XML, o la tecnología LINQ To DataSet, entre otros temas.
  • Entity Framework, donde partiremos de la descripción arquitectural del marco de entidades e iremos profundizando progresivamente en sus distintos componentes de forma práctica:
    • En El EDM, trataremos la creación y personalización del Entity Data Model, desde escenarios de mapeo simples hasta el modelado de herencia, el uso de tipos complejos o el mapeo avanzado de entidades.
    • La sección Entity Client describe las interioridades de este proveedor de acceso a datos a través de los modelos conceptuales. Veremos su paralelismo con otros data providers y aprenderemos a utilizar sus conexiones, a crear consultas utilizando el lenguaje eSQL, y a recuperar los datos obtenidos en ellas.
    • A continuación, estudiaremos Object Services y el papel fundamental que juega en la arquitectura de Entity Framework. Veremos el contexto de objetos, las fórmulas para la realización de consultas fuertemente tipadas sobre el modelo conceptual, y trataremos otras funciones vitales, como la materialización de entidades, la resolución de identidad o el seguimiento de estado.
    • Descrita ya toda la infraestructura, entraremos en LINQ to Entities, la extensión de LINQ que nos permite realizar consultas integradas sobre los modelos conceptuales.
    • También dedicaremos varios temas a describir en detalle cómo realizar operaciones de actualización del origen de datos utilizando Object Services (inserción, actualización, y eliminación), y deteniéndonos a tratar aspectos como la transaccionalidad, los problemas de concurrencia o el uso de objetos desconectados.
    • Por último, dedicaremos varios capítulos a la personalización de contextos y entidades mediante el uso de plantillas T4, la creación de STE (Self-Tracking Entities) y el uso de objetos POCO (Plan Old CLR Objects).
  • El siguiente módulo, LINQ to SQL, trataremos esta tecnología que, aunque ampliamente superada por Entity Framework, puede ser de utilidad en escenarios simples (bueno, y entra en el examen 70-516 ;-)). Veremos cómo crear modelos de objetos, su personalización y aprenderemos a utilizar el contexto de datos para la realización de consultas mediante LINQ, así como a actualizar el origen de datos gestionando los posibles problemas de concurrencia que pueden aparecer, pasando por aspectos como la transaccionalidad de las operaciones, o el uso de objetos desconectados.
  • En WCF Data Services detallaremos el uso de servicios WCF de acceso a datos utilizando OData (Open Data Protocol). Comenzaremos creando servicios y configurándolos para permitir el acceso a datos utilizando la semántica REST, y veremos cómo acceder a ellos de forma directa y utilizando las librerías cliente, tanto para consultar como para actualizar datos. También, entre otros asuntos, estudiaremos la creación de interceptores, operaciones personalizadas, y veremos cómo realizar operaciones asíncronas.
  • Terminando ya con el temario, realizaremos una introducción a Sync Framework, el marco de trabajo que nos permite implementar escenarios OCA (Ocassionally Connected Applications) mediante el uso de una base de datos local capaz de sincronizarse con otras fuentes de datos. Veremos cómo crear y configurar cachés locales, tanto en escenarios locales como distribuidos, y estudiaremos las operaciones de sincronización y el tratamiento de conflictos.
  • Y por último, una Guía del Examen, que incluye valiosos consejos y trucos vistas a superar el examen de certificación.
Como magníficos complementos y ampliaciones al temario, el material del curso incluye los siguientes libros en formato PDF, imprimibles y sin DRM:
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 16 semanas (con una dedicación media de 8 o 10 horas por semana, dependiendo del nivel de partida), y durante las cuales, como tutor, contaréis con mi asistencia para resolver vuestras dudas.

¡Garantía de aprobado CampusMVP!Adicionalmente, para que vayáis bien preparados al examen, el curso incluye 6 meses de acceso a las simulaciones del examen oficial de MeasureUp, el único proveedor avalado por Microsoft. Durante este tiempo podréis practicar todo lo que necesitéis hasta estar bien preparados e ir al examen con total tranquilidad.

Ah, aprovecho también para decir que este curso está incluido dentro de la nueva iniciativa Garantía de aprobado de CampusMVP. Esto implica que si seguís la metodología propuesta y os preparáis a conciencia, en caso de no superar el examen de certificación se os devolvería el importe del curso, aunque ya os adelanto que no os va a hacer falta… ;-)

En cualquier caso, vayáis al examen o no, los conocimientos adquiridos seguro os pondrán a la última en tecnologías de acceso a datos de Microsoft, y podréis aplicarlos de inmediato en la vida real. ¡Espero poder veros por allí!

Enlace: Preparación de la certificación 70-516 TS: Accessing Data with Microsoft® .NET Framework 4 en CampusMVP.

Publicado en: Variable not found.