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 ;)

18 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!
miércoles, 15 de junio de 2016
ASP.NET CoreEste post es una reedición de un contenido anterior para actualizarlo a la Release Candidate 2 de ASP.NET Core. ¡A ver si se calma todo un poco y conseguimos que los contenidos valgan más de un par de meses! ;D

Uno de los requisitos más habituales que tenemos en cualquier aplicación medianamente compleja es la creación de logs donde guardar información cuando ocurran determinados eventos.

En ASP.NET "clásico" teníamos varias opciones, como utilizar las propias herramientas de tracing del marco de trabajo, o bien frameworks especializados de terceros como los célebres Log4Net, NLog o muchos otros, pero al final la idea era la misma, poder disponer de un componente en el que poder registrar sucesos como el siguiente:
public ActionResult RemoveInvoice(string id)
{
    ... // Remove the invoice  
    _logger.LogInformation($"Invoice {id} was removed by {User.Identity?.Name}");
    return RedirectToAction("Index");
}
El nuevo ASP.NET Core viene equipado de serie con un sistema de logging interno, integrado en el propio marco de trabajo, que proporciona algunas funcionalidades pero, sobre todo, los mimbres básicos sobre los que montar sistemas de trazas más complejos y personalizables.

Dedicaremos este post a ver cómo se configura y utiliza este mecanismo que, como otros aspectos del framework, está construido pensando en su extensibilidad y hace uso intensivo del sistema de inyección de dependencias.

Nota: aunque la RTM se acerca, sigue siendo bueno recordar que todavía estamos utilizando una release candidate de ASP.NET Core y, por tanto, algunos detalles aún podrían variar antes de que aparezca la versión final del producto.
martes, 14 de junio de 2016
DevExpress
Sorteo cerrado, ya tenemos los ganadores :) Muchas gracias a todos por participar!
DevExpress es, sin duda, una de esas compañías que identificamos como líderes en el mercado de componentes y herramientas para desarrolladores por la calidad de sus productos y por el amplio abanico de plataformas a las que se dirigen. De hecho, año tras año son reconocidos con premios y honores que los sitúan entre los mejores y más reconocidos del panorama actual. Es decir, hablamos de nuevo de uno de los grandes :)

Tras ponerme en contacto con ellos, les entusiasmó la idea de la celebración del décimo aniversario de Variable not found e inmediatamente ofrecieron para sortear entre los lectores del blog:
  • Una subscripción ASP.NET, valorada en casi 900$, que incluye componentes para ASP.NET Web Forms, extensiones para ASP.NET MVC, sistema de reporting y algunos otros extras.
     
  • Una suscripción DevExtreme Complete, valorada en cerca de 500$, que incluye los siguientes productos:

    • DevExtreme Web, widgets javascript/HTML5 de alto rendimiento para aplicaciones web, entre los que se incluyen Grids, Pivots, Charts, Forms, Calendar, etc.
        
    • DevExtreme Mobile, un framework Javascript/HTML5 optimizado para la creación de aplicaciones móviles con look&feel nativo para las principales plataformas, soporte touch, componentes de visualización, etc.
lunes, 13 de junio de 2016
domingo, 12 de junio de 2016
Certificado de premioLa Diosa Fortuna, materializada digitalmente como una instancia de la clase System.Random, ha seleccionado al azar los tres ganadores del sorteo de componentes Grapecity que iniciábamos la semana pasada.

Y los afortunados han sido:

Raul Carbonell @RaulCarbonell81
Sant Quirze del Vallès (Barcelona)
Jaime de Aquino @deaquino
Sevilla
Edgar Ricárdez @ericardezp
Coahuila de Zaragoza, México

¡Enhorabuena! En breve me pondré en contacto con vosotros para concretar cómo podéis obtener vuestro premio :)

Y para los que no habéis tenido suerte, muchas gracias por participar :)  Pero no desesperéis y estad atentos al blog que en un par de días volvemos, ¡¡esta vez repartiendo componentes de DevExpress!!

Ah, y no olvidéis que por ser lectores del blog ¡aún podéis conseguir vuestro libro gratis de O'Reilly!

Publicado en Variable not found
miércoles, 8 de junio de 2016
ASP.NET CoreUno de los cambios que ha introducido ASP.NET Core RC2 respecto a la anterior Release Candidate es que dejaremos de utilizar HttpPlatformHandler para redirigir las peticiones desde IIS hacia Kestrel que, como sabemos, es finalmente el que ejecuta nuestra aplicación.

El problema es que este componente era un redirector genérico, no ligado a ninguna tecnología concreta, lo que impedía el uso de algunas características interesantes o necesarias para la correcta ejecución de ASP.NET Core en todos los entornos, como el soporte para directorios virtuales de IIS o el reenvío de certificados de cliente.
martes, 7 de junio de 2016
GrapeCity
Sorteo cerrado, ya tenemos los ganadores :) Muchas gracias a todos por participar!
Hasta ahora, con motivo de la celebración del décimo aniversario del blog, como decía un amigo del blog vía Twitter, hemos regalado conocimiento: un curso online de MVC en CampusMVP, unos cuantos libros de SignalR e incluso un libro a elegir de entre una selección de O'Reilly (libro que, por cierto, ¡aún podéis reclamar!).

Con este sorteo que iniciamos hoy, comenzamos una serie en la que repartiremos herramientas para desarrolladores que os ayudarán a ser más productivos y mejorar la calidad de vuestras aplicaciones :)

Certificado de premioSeguro que os suena Grapecity, la compañía que hay por detrás de componentes y herramientas de gran reputación como ComponentOne, Wijmo o ActiveReports. Pues tras ponerme en contacto con ellos para hablarles del décimo aniversario del blog, se ofrecieron amablemente para apoyar la celebración cediendo tres licencias completas de sus productos.

Para que os hagáis una idea del volumen de la apuesta, deciros que se trata en todo caso de productos comerciales cuyos importes pueden llegar a superar los 1.000 dólares cada uno ¡Uau! :)