Autor en Google+
Saltar al contenido

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

11 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, ASP.NET Core, MVC, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
domingo, 28 de diciembre de 2014
La vida no es fácilPor mi trabajo, suelo “husmear” en el código de muchas aplicaciones creadas por equipos de trabajo en empresas de todo tipo y nacionalidad, y os puedo asegurar que existe un denominador común en todas ellas y que seguro reconoceréis en vuestro propio código: los desarrolladores escribimos como nos viene en gana.

No es poco frecuente ver aplicaciones con faltas de ortografía que un niño de primaria calificaría como graves. Y notad que no hablo sólo de las etiquetas, mensajes y otros elementos visuales que van a parar a los atónitos ojos de nuestros usuarios, sino también de lo que hay por detrás, en el código fuente.

A nivel de código, las denominaciones internas en clases, métodos o variables, textos en comentarios o incluso los mensajes en check-ins en el control de código fuente, son habitualmente terribles. Claro, sabemos que eso no lo va a leer nadie, o al menos nadie de fuera de nuestro entorno, y bajamos la guardia hasta límites que rozan la ilegalidad. Mezclamos idiomas sin ningún criterio (¿quién no ha escrito alguna vez un método GetFacturas(), obtenerResources () o una variable lineasCount en su base de código?), cometemos atropellos ortográficos, gramaticales y otros tipos de aberración de forma impune, escudados en que no hay que prestar atención a esos detalles porque es sólo código.

Y lo peor es que esta actitud de desidia es contagiosa. Cuando entras en un proyecto donde todo está escrito sin ningún tipo de miramiento, lo normal es que continúes en esa línea, haciendo que la barbarie sea cada vez mayor y, a su vez, más contagiosa en el futuro. Y cuando comiences otro proyecto, llevarás la costumbre de hacerlo así y continuarás extendiendo esta práctica ad eternum.

Pero, ah, amigos artesanos del código, esto se va a acabar.

Las próximas versiones de Visual Studio corregirán drásticamente esta tendencia, incluyendo la revisión ortográfica como parte del proceso de compilación. Además, como comentó S. Somasegar en una reciente entrevista,
esta característica no podrá ser deshabilitada; en caso contrario ya sabemos lo que ocurriría, y va en contra de la firme apuesta de Microsoft hacia un mundo que se comunique mejor
Y la cosa va muy en serio. Para dar mayor formalidad a esta necesaria iniciativa, Microsoft ha firmado un acuerdo con distintas academias responsables de definir y actualizar la mayoría de idiomas del mundo, como la National Commission on Language and Script Work (国家语言文字工作委员会) de China, la Real Academia Española (RAE), Academy of the Arabic Language (مجمع اللغة العربية),  la Royal Galician Academy, o Council for German Orthography (Rat für deutsche Rechtschreibung) por citar sólo algunas. De estas instituciones obtendrá los diccionarios actualizados que serán utilizados por las herramientas del gigante de Redmond para comprobar que estamos escribiendo como debemos. En el caso del inglés es distinto porque no existe un organismo regulador, pero se atenderán a las guías oficiales publicadas por los países donde es la lengua oficial.

Idioma en propiedades
Para su aplicación práctica en las herramientas de desarrollo de la casa, ha sido necesario retocar tanto las propias herramientas como algunos aspectos de los compiladores de los lenguajes estrella, C#, VB, F# y DuoLang.

En Visual Studio tendremos disponibles propiedades a nivel de proyecto y de cada archivo (de código, recursos, diseñadores, etc.) en el que indicaremos el idioma en el que debe realizarse la comprobación.

Por supuesto, también ha sido actualizado intellisense para alternativas a las palabras que vayamos escribiendo e incluso un menú de sinónimos, de la misma forma que Microsoft Word:

image

Para los casos en que el idioma pueda cambiar dentro del propio archivo o incluso en distintas secciones de éste, se han añadido directivas #pragma que pueden usarse en cualquier punto. Por ejemplo, en el siguiente código se han detectado dos errores de compilación para la porción escrita en español, en un comentario y en el nombre de un método:

Directiva pragma language

Por supuesto, las comprobaciones atienden al camel casing, es decir el nombre del método ObtenerFactura() se entenderá correcto, mientras que Obtenerfactura() no lo será. Otra ventaja colateral de esta característica es que dejaremos de utilizar nombres de variable sin sentido como “s”, “xyz”, tendiendo a que realmente se refleje su intencionalidad como “saldo” o “coordenadasTridimensionales”. Se está estimando, sin embargo, excluir las variables de tipo índice obvias como la típica “i” en un bucle for por razones históricas.

Las mismas directivas y propiedades se aplicarán en las comprobaciones de cadenas de texto, recursos (.resx) y diseñadores de la aplicación. De esta forma, podremos estar seguros de que los textos que lanzamos a los usuarios habrán superado un nivel mínimo de calidad, que falta hace en muchas aplicaciones:

Revisión ortográfica en textos

En fin, creo que es una iniciativa absolutamente necesaria para mejorar la calidad interna de nuestro código y, como extensión, de nuestras aplicaciones, y me gustaría felicitar a Microsoft por haber tomado esta controvertida decisión. Seguro que traerá mucha polémica, pero estoy convencido de que es por el bien de la humanidad.

imageAunque en principio esta nueva característica sólo estará disponible para Visual Studio 2015, no se descarta la creación de extensiones para todas las versiones de Visual Studio, comenzando en la 2005. Está previsto incluso su introducción en el proyecto Omnisharp para poder aplicarlo en entornos de desarrollo más allá de Visual Studio, lo que abriría su uso a otras plataformas como Mac o Linux, y de la posibilidad de desarrollar plugins oficiales para Git, Mercurial, Subversion, TFS y sistemas de integración continua que permitan automatizar estas comprobaciones.

Se avecina un año maravilloso donde los sistemas de control de código fuente podrán rechazar un commit o check-in por tener faltas de ortografía, o en el que en nuestra mesa, junto a clásicos como C Programming language  o Code Complete , podremos encontrar el diccionario de la real academia de la lengua española.

¡Feliz escritura de código!


[Actualizado 30/12]
Nota para despistadillos: obviamente no es real, se trata simplemente de una broma del Día de los Inocentes. Así que tranquilos, podemos seguir dando patadas al diccionario impunemente en nuestro código :-DDD

Publicado en Variable not found.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 23 de diciembre de 2014
Estimados amigos, en esta ocasión escribo sólo para desearos unas magníficas fiestas en la mejor compañía posible y, por si nos nos vemos más hasta el año que viene, desearos también un 2015 espectacular y en el que se cumplan todos vuestros sueños.

Feliz navidad

¡Nos seguimos viendo por aquí!

Publicado en Variable not found.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 22 de diciembre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 16 de diciembre de 2014
ASP.NET MVC 6Como ya hemos visto por aquí en alguna ocasión, hace tiempo que MVC soporta controladores asíncronos, permitiendo la implementación de acciones muy eficientes desde el punto de vista de la utilización de los recursos del servidor.

Sin embargo, en cuanto pretendíamos llevar a los action filters la misma filosofía nos encontrábamos con que la infraestructura no estaba preparada, es decir, no teníamos una forma clara de introducir llamadas asíncronas en el cuerpo de los filtros. Como consecuencia, todas las tareas que se realizaban en su interior eran puramente síncronas y dejaban bloqueados los hilos destinados a procesar peticiones mientras se completaban las operaciones, lo cual es especialmente un despilfarro cuando se trata de tareas de entrada/salida.

Afortunadamente esto parece que va a terminar con ASP.NET Core MVC, que soportará ya esta solicitada característica. Pero ojo, que Core MVC está aún en desarrollo, por lo que todo lo que cuento a continuación puede cambiar.

Pero empecemos desde el principio, viendo qué ha cambiado por abajo para que sea posible crear filtros con código asíncrono en su interior. Quizás sea una lectura un poco densa, pero creo que es interesante para comprender cómo funcionan las cosas por dentro.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 15 de diciembre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

ASP.NET

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 9 de diciembre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

miércoles, 3 de diciembre de 2014
Aunque aún en beta e inmersa en un intenso proceso de desarrollo, la próxima versión de ASP.NET MVC está tomando forma en los hornos de Microsoft, y, sin ser definitivas, ya se pueden ver cuáles serán las novedades principales que la acompañarán.

En futuros posts iremos entrando en mayor detalle, pero de momento vamos a echar un vistazo desde una cierta distancia para tener la idea general sobre dónde estamos y la evolución que vamos a encontrar en las nuevas versiones de tecnologías y plataformas, de forma que podamos ver en qué nos afectará como desarrolladores y, en definitiva, para qué tenemos que irnos preparando.
Disclaimer: estamos aún en una fase en la que algunas cosas pueden cambiar y aún no existe información exhaustiva de muchos detalles, por lo que pueden existir ausencias o imprecisiones. Pero bueno, digo yo que el grueso será más o menos correcto ;-)

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 1 de diciembre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 25 de noviembre de 2014
imageSeguimos con esta serie sobre las novedades de C# 6, y esta vez le toca el turno a una solicitada característica que recientemente ha entrado a formar parte de las elegidas para formar parte de esta nueva versión de nuestro lenguaje favorito: la interpolación de cadenas.

Dado que aún se encuentra en desarrollo no es posible probarlo de forma sencilla, por lo que de momento tendremos que conformarnos con sacar conclusiones basándonos en la discusión de diseño en Codeplex y de la documentación existente. Avisan además que la especificación puede ser modificada, por lo que todo lo que digamos aquí aún puede variar algo, aunque mayormente será (espero) válido.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 24 de noviembre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

miércoles, 19 de noviembre de 2014
ASP.NET MVCPues sí, a mí me ha pasado, así que lo comento por aquí porque es posible que alguien más se vea en esta situación al ir a tocar una aplicación MVC antigua.

Resulta que hace unos días Microsoft distribuyó a través de Windows Update un parche de seguridad denominado Microsoft Security Bulletin MS14-059, clasificado como importante, y cuyo objetivo es corregir una vulnerabilidad descubierta en sistemas basados en MVC desde la versión 2 relativa a la forma en que el framework valida los datos de las peticiones entrantes, y que hacer que un atacante utilizara técnicas XSS para obtener un acceso privilegiado a sitios web.

Hasta aquí todo bien, el problema viene cuando por cualquier motivo tenemos que volver a compilar esas aplicaciones. Las versiones de MVC anteriores a la 5 referenciaban directamente a ensamblados guardados en el GAC con un número de versión determinada, que la instalación del parche de seguridad ha incrementado. Como consecuencia, al compilar estas aplicaciones obtenemos errores variopintos como el siguiente:
Could not locate the assembly "System.Web.Mvc,Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL".
La verdad es que al principio sorprende bastante (“¿Cómooo? Pero si hace meses que no toco esta aplicación, ¿cómo es posible que no compile? ¿Quién la ha roto?”), pero buscando un poco por la red es fácil encontrar varias soluciones.

La que a mí me ha funcionado consistió simplemente en ejecutar el siguiente comando en la consola del gestor de paquetes Nuget (ojo, ¡haced antes una copia del proyecto, por si falla!):
Install-Package Microsoft.AspNet.Mvc -Version <version> -Project <YourProjectName>
En la línea anterior debéis sustituir:
  • <YourProjectName> por el nombre de vuestro proyecto. Esto es simplente para asegurar que instaláis el paquete en el proyecto correcto si estáis usando una solución con varios de ellos.

  • <Version> depende de la versión del framework usada en el proyecto y debe ser:

    • 4.0.40804.0 si usáis MVC 4

    • 3.0.50813.1 si usáis MVC 3

Tras ello, Nuget descargará varios paquetes y dejará el proyecto actualizado.

Desde el blog oficial de herramientas y desarrollo web de .NET recomiendan comprobar que la propiedad “Copia local” esté activa en la referencia del proyecto hacia el ensamblado System.Web.Mvc, pues al parecer existe un bug conocido de Nuget que puede resetear dicha propiedad, y que necesariamente debe estar activa para que éste sea copiado a la carpeta /bin tras construirse la solución.

En mi caso no fue necesario hacer nada pues estaba todo correcto, y a partir de ese momento todo volvió a la normalidad y pude comenzar a compilar de nuevo sin problema.

Ya a la hora de desplegar al servidor, simplemente tened en cuenta unos detalles:
  • Tendréis que subir los binarios de Mvc, porque probablemente hasta el momento en el servidor se utilizaban los presentes en el GAC.
  • Estad atentos al web.config, porque en la misma instalación realizada por Nuget es posible que se hayan introducido modificaciones en él, que tendréis que actualizar en el servidor.
Por si esto no os funciona, os dejo un par de enlaces donde amplían la información y ofrecen algunas alternativas a este método:
Publicado en Variable not found.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 18 de noviembre de 2014
imageSeguimos hablando de las novedades de C# 6, y en esta ocasión nos centraremos en una interesante característica cuyo nombre, sinceramente, no estoy seguro de ser capaz de traducir de forma correcta del original “Expression bodied function members”. Quizás sería algo así como “expresiones en cuerpo de miembros de función”, pero bueno, lo importante no es el nombre sino el concepto, así que vamos a centrarnos en él.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 17 de noviembre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, en gran parte protagonizados por los jugosos anuncios y lanzamientos que se hicieron públicos en el evento Connect que tuvo lugar de hace unos días. Espero que os resulten interesantes :-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 28 de octubre de 2014


Este año, por cuarta vez consecutiva, tendré el placer de asistir dentro de unos días al MVP Global Summit, un macro evento anual organizado por Microsoft en el que reúne a todas las personas reconocidas como Most Value Professional para compartir novedades e intercambiar ideas y planes sobre las tecnologías con las que trabajamos a diario y, mejor aún, con las que trabajaremos dentro de algún tiempo.

Podéis imaginar lo que puede salir de una coctelera en la que introducimos algunos miles de personas procedentes de todos los rincones del mundo, técnicamente excepcionales en muchos casos, y figuras reconocidas y miembros de equipos de producto de Microsoft, compartiendo innumerables sesiones técnicas, debates y encuentros informales organizados durante los días de duración del evento. Una gozada.

Además, creo que este año el evento va resultar especialmente jugoso desde el punto de vista técnico, más que nada por las nuevas tecnologías y herramientas que están empezando a vislumbrarse por el horizonte y que todos ya conocemos :)

Y por supuesto, también es una oportunidad de disfrutar de la compañía de amigos que sólo coincidimos en persona en este tipo de eventos, una o dos veces al año como máximo. Y, por qué no, para seguir conociendo Seattle y sus alrededores, que estas oportunidades hay que aprovecharlas ;)

¡Nos vemos a la vuelta!

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

imageSeguimos con la serie donde vamos desgranando las novedades de C# 6, y en esta ocasión vamos a ver algunas mejoras en el uso de bloques try/catch, a las que seguro podremos sacar buen partido.

En este post trataremos dos temas distintos. En primer lugar, comentaremos la introducción del soporte de await en bloques catch/finally, y seguiremos con la nueva capacidad de filtrado de excepciones.

Vamos a ello :-)

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 27 de octubre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 21 de octubre de 2014
image33En otras ocasiones hemos hablado de novedades que acompañarán a la próxima revisión de C# que nos ahorraban algo de tiempo y pulsaciones de tecla a la hora de codificar algunos escenarios bastante frecuentes, a la vez que mejoraban la legibilidad.

Pues en esa misma línea, vemos ahora una nueva forma de inicializar colecciones clave-valor, como son los diccionarios. Ciertamente es un cambio bastante pequeño, de los que fácilmente podrían pasar desapercibidos junto a otras novedades de mayor peso, pero creo que también vale la pena conocerlo.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

lunes, 20 de octubre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

.Net

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

jueves, 16 de octubre de 2014
imageHace unos días mostrábamos por aquí el nuevo operador nameof que acompañará a C# 6, y cuya función, resumidamente, es obtener el nombre a nivel de código de la variable o miembro a la que se aplica:



En los comentarios de este post, el amigo Kiquenet se preguntaba qué incidencia podía tener el uso de este operador en el rendimiento de nuestras aplicaciones, y esa duda es la que vamos a responder muy rápidamente ahora.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

miércoles, 15 de octubre de 2014
Parche informáticoSiempre he pensado que el término “parche” aplicado al desarrollo de software se utilizaba por analogía con el mundo real. Al fin y al cabo, poner un parche en una aplicación es conceptualmente bastante parecido a hacerlo en una rueda pinchada, ¿no?

Pero no, como en otras ocasiones que ya hemos visto por aquí, no es un tema nada conceptual. La realidad es bastante más pragmática, y el uso de la palabra “parche” es literal y simplemente responde a razones históricas.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

martes, 14 de octubre de 2014
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

Eventos

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 7 de octubre de 2014
    imageCuando los lenguajes evolucionan, no todas las novedades son espectaculares ni revolucionan la forma de escribir nuestro código. A veces la cosa va simplemente de añadir pequeños detalles que nos hacen la vida más fácil y ayudan a evitar errores.

    Y hoy hablaremos de uno de ellos: el nuevo operador nameof, que acompañará a C# a partir de su versión 6.

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 6 de octubre de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 30 de septiembre de 2014
    C#
    [Actualizado 16-Nov-2014] El equipo de diseño del lenguaje C# ha decidido finalmente no incluir esta característica en la versión 6. En fin, fue bonito mientras duró :(

    Seguimos comentando novedades que encontraremos en la próxima versión de C#, y en esta ocasión vamos a ver una nueva característica que, sin resultar espectacular, sí nos va a proporcionar una fórmula más cómoda y concisa para resolver algunos escenarios bastante habituales.

    Seguro que os resulta familiar el siguiente código, más que nada porque lo habréis escrito decenas o cientos de veces:


    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 29 de septiembre de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 23 de septiembre de 2014
    En posts anteriores hemos hablado del operador de navegación segura “.?” y de la inicialización de propiedades automáticas, y vamos a comentar ahora otra de las novedades de la versión de C# que viene en camino, pero que en esta ocasión no tengo claro que sea un avance en la dirección correcta. Os lo cuento y ya decidís vosotros ;-)

    Hay escenarios en los que en el interior de una clase utilizamos de forma intensiva miembros estáticos de otras clases. Un ejemplo habitual podemos encontrarlo en componentes que hagan mucho uso de System.Math para la realización de cálculos matemáticos, o incluso en el conocido System.Console:




    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 22 de septiembre de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 16 de septiembre de 2014
    Novedades de C# 6.0Hace algún tiempo comentamos alguna de las novedades que se incluirán en la próxima versión de C#, concretamente el nuevo operador de navegación segura “?.”, pero la cosa no acaba aquí: se avecinan un buen número de cambios que prometen seguir mejorando nuestro lenguaje favorito :-)

    Por ejemplo, una nueva característica que tendremos disponible es la inicialización de propiedades automáticas, algo que antes también podíamos hacer, aunque de forma menos directa.

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 15 de septiembre de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    <Spam>Por cierto, aprovecho para informaros de que si estáis interesados en aprender ASP.NET MVC u otras tecnologías, en CampusMVP han lanzado para este mes una oferta que no podréis rechazar ;-)</Spam>

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 8 de septiembre de 2014
    Enlaces interesantesPues era prácticamente ayer cuando dejaba en pausa el blog por la cercanía de las vacaciones, y ya estamos por aquí otra vez listos para la nueva temporada. Y no, no es que me haya pegado más de un mes de descanso (¡quién pudiera!), más bien casi ha sido al contrario: un verano bastante liado y muy pocos días de desconexión efectiva... pero bueno, contento y entusiasmado por la temporada tan apasionante y repleta de novedades que tenemos por delante :-)

    Y para celebrar el retorno como la ocasión merece, ahí van unos cuantos enlaces cosechados durante la semana pasada, que, como siempre, espero que os resulten interesantes.

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 28 de julio de 2014
    Pues llegó la mejor época del año, prácticamente la única en la que algunos afortunados podemos alejarnos un poco de los mundos binarios y dedicarnos a otros menesteres seguro más importantes, como disfrutar de la familia y descansar, al menos unos días.

    Variable not found quedará a la deriva hasta septiembre, cuando volveremos al ataque con las pilas cargadas y listos para afrontar la nueva temporada :)

    ¡Feliz verano, amigos!

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 22 de julio de 2014
    DebugHay veces que desde Javascript nos interesa ejecutar un código u otro en función de si la ejecución se está produciendo en un servidor de desarrollo o en uno de producción. Por ejemplo, en el primer caso suele ser interesante disponer de logs o herramientas de ayuda a la depuración, mientras que en el segundo lo normal es que queramos introducir código más eficiente y sin este tipo de condimentos.

    En este post vamos a ver algunas técnicas muy básicas que nos permitirán ejecutar un código u otro en el lado cliente de aplicaciones ASP.NET MVC (o ASP.NET en general) en función del modo de compilación.

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 21 de julio de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 15 de julio de 2014
    image[2]La revisión 2.1 de SignalR ha incluido otra característica que puede ser interesante en determinados escenarios: la posibilidad de notificar al cliente del progreso de la ejecución de una acción invocada en el hub.

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 14 de julio de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    martes, 8 de julio de 2014
    SignalROtra de las novedades que acompañan a la versión 2.1 de SignalR, y que sin duda puede resultar interesante en muchos escenarios, es la capacidad de tener desde los hubs una pista sobre el motivo por el que se desconectó un cliente, cosa que hasta ahora no era posible utilizando las herramientas que nos proporcionaba el framework de forma directa.

    En versiones previas de SignalR, cuando en un hub recibimos el evento OnDisconnected() en realidad no sabemos si este cierre ha sido “educado”, es decir, provocado explícitamente por el cliente como consecuencia de una acción, como puede ser que el usuario haya decidido salir de la aplicación, o bien se ha debido a un problema en el software o comunicaciones (imaginad, por ejemplo, que se cae la conexión a internet).

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 7 de julio de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    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

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    Cartuja .NETSi os interesa el desarrollo para dispositivos móviles y andáis por Sevilla el próximo sábado 5 de julio no podéis perderos este gran evento de comunidad: Sevilla Mobility Day.

    Como en otras ocasiones, la cita será en el Microsoft Clouding Point de Sevilla (C/Biología 12, Edificio Vilamar 2, planta 3, Parque Empresarial Nuevo Torneo), comenzando a las 9:30h y finalizando sobre las 14:00h, es decir, toda una mañana para aprender de la mano de grandes expertos en las distintas tecnologías tratadas.

    Sevilla Mobility Day

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

    lunes, 30 de junio de 2014
    Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)

    .Net

    Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons