El pasado 27 y 28 de febrero tuve la gran suerte de asistir al evento nacional .NET más grande al que había podido asistir hasta ahora: la dotNet Spain Conference 2015.

dotNetConferenceSpain2015Pass

Este evento, celebrado en la Escuela Politécnica superior de la Universidad de Alcalá, estuvo coordinado por el equipo de Microsoft Developer and Platform Evangelism | , y contó con la presencia de multitud ponentes expertos que impartieron charlas y laboratorios (a mi parecer, muy interesantes) sobre temas como Desarrollo Web, Cloud, Data, Lenguajes, Mobile Apps, IoT (Internet Of Things)…

En mi experiencia personal, pude disfrutar de algunas charlas magistrales de Cloud, Desarrollo Web y Lenguajes, además de un Hands On Lab de Leo Antoli | en el que pude constatar que, además de no conocer gran parte de la tecnología que hoy en día ofrece Microsoft a través de .NET Framework y de sus servicios de Cloud, tampoco conozco cómo funciona de forma intrínseca el lenguage C# ni el CLR de .NET.


Primer día

El viernes 27 estuve en 3 charlas, además del mencionado laboratorio, y de la estupenda Keynote que nos ofreció José Bonnin | en la que nos habló de la historia de .NET y del futuro que está por venir.

Las charlas a las que asistí fueron:

  1. Cloud-First: Creando aplicaciones pensando en el cloud, por Ibon Landa |
  2. Tengo mi aplicación web en el cloud y no escala. ¿Qué hago?, por Quique Martínez |
  3. Cómo hago yo ASP.NET MVC, por Luis Ruiz Pavón |


Cloud-First: Creando aplicaciones pensando en el cloud

Ibon nos contó muchas cosas en su charla, pero principalmente me quedé con un concepto que me pareció indispensable y que él enfatizó mucho: automatizar.

Si una operación la tienes que hacer más de dos veces… ¡automatizar, automatizar, automatizar!

Ibon Landa ©

Comparto plenamente su visión en este sentido, y no solamente en el mundo Cloud, sino en cualquiera de los mundos de la operación / administración de TI. Aquellas tareas que se repiten no deben quedar para la artesanía del técnico que la realiza, sino que debe ser una tarea controlada y testeada para evitar errores humanos que, aunque todos sabemos que existen, se dan más frecuentemente de lo que nos gustaría.

Tengo mi aplicación web en el cloud y no escala. ¿Qué hago?

Quique, por su parte, nos hizo conscientes de las diferencias que existen entre el desarrollo tradicional on-demand y el nuevo paradigma de desarrollo orientado a la nube.

Cosas como entender que no existe un sistema de ficheros propiamente dicho – y que tenemos que utilizar el servicio de Storage –, o que las referencias en el cloud y en un equipo físico se deben gestionar de forma diferente – Azure Websites o SQL Azure –.

Gran charla, aunque la ventana – maldita ventana – de la sala no dejase de hacer ruido, molestando a los asistentes y, en especial, al ponente.

Cómo hago yo ASP.NET MVC

Esta charla de Luis, acerca de cómo él afronta los proyectos MVC en su día a día, me pareció súper entretenida.

En general todas las charlas de la dotNet Spain Conference 2015 me parecieron muy entretenidas, pero algunas de ellas se me hicieron más amenas, quizá por la forma de transmitir la información de los ponentes.

Pon a dieta a tus controladores: Evitar el FaleteControler

Luis Ruiz Pavón ©

faleteControlerByLuisRuizPavon

Durante la charla, Luis nos explicó que él prefería, por ejemplo, orientar la organización del proyecto de forma diferente a la estándar que propone el modelo MVC. Su esquema de aplicación se basa en funcionalidades en vez de hacer la división de Modelo-Vista-Controlador. Es algo muy lógico, según lo veo yo, porque en aplicaciones grandes, el tener gran cantidad de controladores en una carpeta, igual o más vistas en otra y los modelos en otra puede llegar a ser algo poco práctico.

En realidad, me pasa algo así con un proyecto en C++ al que doy mantenimiento actualmente: la división de ficheros por Source Files y Header Files me parece de risa, más teniendo en cuenta que C++ ya está pensado para utilizar la programación orientada a objetos.

Esta sesión fue grabada, por ser una de las que se hicieron en el auditorio de la Universidad de Alcalá, por lo que en el momento en que Microsoft las publique, intentaré actualizar el post para que quede enlazada.


Segundo día

El sábado estuve en 5 charlas en total.

  1. Async Best Practices, por Lluis Franco | y Alex Casquete | .

  2. Code Smells, por Fernando Escolar | .

  3. Por qué deberías plantearte F# para tu próximo proyecto, por Alex Casquete | .

  4. Introducción práctica a Roslyn, por Juan Manuel Servera | .

  5. Effective C#, por Leo Antoli | .

Gran conocimiento adquirido en todas ellas, que voy a intentar resumir.

Async Best Practices

Aunque la charla la dieron Lluis y Alex, en realidad el peso de casi toda la charla recayó en Lluis o al menos a mi me dió esa sensación.

Plantearon un conjunto de buenas prácticas para crear código asíncrono, haciendo de inicio un recorrido por la historia de la asincronía en .NET, y mostrando de una manera muy visual cómo evitar una serie de problemas comunes conocidos en el desarrollo asíncrono.

Hubo, además, una máxima que me caló, más allá de implementaciones técnicas concretas:

Sed honestos y no digáis que vuestra librería es asíncrona si no lo es.

Lluis Franco ©

Y, aunque yo soy más de Star Wars que de Star Trek, el homenaje a Leonard Nimoy fue bastante emotivo. Lástima que no eché foto del momento.

Code Smells

En esta charla Fernando trató de hacer un paso rápido por los considerados Code Smells que Martin Fowler describe en su libro Refactoring - Improving the Design of Existing Code y que todo desarrollador debería, al menos, conocer.

Fernando consiguió que me volviesen a entrar ganas de adquirir este libro y leerlo de una vez, ya que si bien he leído algún fragmento en formato digital, creo que será interesante leerlo de cabo a rabo para entender – y de ese modo evitar – lo que se consideran malos olores en el código de las aplicaciones desarrolladas mediante OO.

Por qué deberías plantearte F# para tu próximo proyecto

Creo que, de las charlas a las que asistí el sábado, esta fue la que menos me llegó.

Si bien ya había visto algo sobre F# – en mi mini-colaboración en ploeh/ZeroToNine – antes de que Alex nos explicara por encima los entresijos del lenguaje no entendía del todo bien como funcionaba.

Especialmente importante me pareció el concepto de TypeProvider. No era consciente de que existían componentes que permitían recuperar datos de tan diversas fuentes que ya estaban programados y que, además, podíamos programar más nosotros (aunque Alex insistió en que era una tarea complicada).

dotNetSpain2015-Fsharp

De todos modos, aunque me aportó mucho valor el contenido, no se me hizo tan amena como el resto de charlas del día – y sin duda fue por mi predisposición, no por culpa de Alex.

Introducción práctica a Roslyn

De todas las charlas del día, esta era una para las que no estaba especialmente motivado, pero que terminó por sorprenderme por la practicidad que Juan Manuel le dió a toda la sesión.

En ella, se nos explicaba qué era dotnet/Roslyny dónde estaba la ciudad que le daba nombre, con camiseta de premio incluida para el que lo acertara – y cómo, por ejemplo, Visual Studio 2015 aprovechaba toda su potencia para ofrecer revisión de código directa durante la escritura del mismo.

Me quedó la sensación de que herramientas de soporte al desarrollo como R# que hasta ahora acaparaban gran parte del mercado iban a dejar de tener sentido con la salida de Visual Studio 2015, más después de que Juan Manuel me confirmara por Twitter que esta explotación de Roslyn iba a estar disponible en todas las versiones de Visual Studio.

Gran experiencia, y muy sorprendido, la verdad.

Effective C#

Como colofón final, la charla de Leo de nuevo me ponía otra vez en mi sitio, haciéndome ver que no tenía ni idea realmente de lo que sucedía under the hood cuando el compilador de C# pasaba el código a IL y que, por tanto, mi conocimiento del lenguaje era mucho más limitado de lo que de inicio a mi me podía parecer.

Mi recomendación con las enumeraciones es que no las uséis.

Leo Antoli ©

La herencia de clases está sobrevalorada. […] Sólo utilizad la herencia cuando realmente exista una relación de herencia. En el resto de casos, usad la composición.

Leo Antoli ©

Esta charla se solapó en algunos puntos con el HOL del día anterior, pero la verdad es que no me resultó aburrida, sino más bien todo lo contrario. Es más – y se lo dije a Leo –, algunas de las preguntas que se habían planteado el día anterior… ¡volví a fallarlas!

Experiencia global

La experiencia que he tenido durante estos dos días ha sido excelente.

He estado recientemente en dos eventos de grandes dimensiones: CodeMotion España 2014 y dotNet Spain Conference 2015.

Son eventos similares, en cuanto a dimensiones y en cuanto a la selección del espacio para celebrarlo y de la organización en Tracks.

De ambas me he llevado sensaciones buenas, pero hubo algo que en CodeMotion no me gustó y que en dotNet Spain no se ha producido más que en una de las sesiones a las que he asistido: la gente se marchaba de la sala antes de que el ponente terminara para llegar a la siguiente charla.

Y no solo eso: se marchaba haciendo ruido.

Creo que durante la CodeMotion, el equipo de Microsoft que allí estaba tomó nota de esto y planificó las charlas para evitar este tipo de situaciones. O igual fue cosa de la casualidad… no lo sé.

Lo cierto es que creo que los ponentes se merecen un gran respeto, no sólo por lo que saben, sino por enseñárnoslo a los que asistimos a sus charlas de forma completamente desinteresada – ¿Cobran por dar la ponencia? Yo creo que no….

Gracias a todos vosotros, ponentes y organizadores, por permitirme pasar un fin de semana aprendiendo y conviviendo con gente que como yo, disfruta del desarrollo.

Definitivamente, le estoy cogiendo el gustillo a esto de las conferencias… En la siguiente conferencia de este tipo que organice Microsoft en España, seguro que intentaré estar.