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!
miércoles, 29 de junio de 2016
Sorteo finalizado, ya tenemos los ganadores. ¡Muchas gracias a todos por participar!
Resharper Ultimate, de JetBrainsHoy comenzamos el último sorteo de la celebración del aniversario del blog, unas semanas en las que hemos repartido de todo, gracias a nuestros patrocinadores y amigos. Pero si hay una compañía que no podía faltar en esta celebración, esa era JetBrains, líderes indiscutibles en herramientas para desarrolladores.

Personalmente le tengo bastante aprecio a estos chicos desde que conocí su popular Resharper, una herramienta que uso a diario desde hace años, por lo que no dudé en contactar con ellos y, por supuesto, se ofrecieron amablemente a colaborar en la celebración.

Y gracias a ello, hoy sorteamos dos suscripciones a Resharper Ultimate, la suite de productos que incluye:
  • Resharper para .NET. Indispensable. Creedme, una vez lo probéis os haréis adictos ;)
  • Resharper para C++.
  • DotTrace el profiler de rendimiento para .NET
  • DotMemory, un profiler de memoria para aplicaciones .NET
  • DotCover, runner de pruebas unitarias y control de cobertura de código
  • DotPeek, el descompilador para.NET (que por cierto, de todas formas es gratuito y podéis descargar desde su página).
Sin duda, un pack de categoría.
martes, 28 de junio de 2016
ASP.NET Core¡Por fin! Tras un desarrollo muy largo y convulso, ayer se presentaron las respectivas versiones 1.0 RTM de .NET Core, ASP.NET Core y Entity Framework Core, junto con actualizaciones de una serie de productos relacionados.

La verdad es que hace tan sólo unos años, presentar la nueva versión de ASP.NET en la conferencia Red Hat DevNation habría resultado una auténtica osadía y probablemente habría acabado con tomates volando hacia el escenario. Pero esto es agua pasada, y este simple gesto es una prueba más de que realmente las cosas han cambiado en Microsoft.

Con el lanzamiento de la versión 1.0 de la infraestructura .NET Core y el conjunto de frameworks basados en ella (ASP.NET, MVC, Entity Framework), iniciamos una nueva época en la que aquél sueño de desarrollar o ejecutar fácilmente aplicaciones .NET en cualquier plataforma es ya una realidad, y con todo el soporte y las bendiciones del gigante de Redmond. Escenarios antes impensables, como desarrollar desde Mac para desplegar en Linux, o crear nuestras aplicaciones en Windows y explotarlas desde un contenedor Docker, son ya posibles.

Estamos ante un reboot en toda regla: todos estos frameworks han sido construidos desde cero teniendo en mente conceptos actuales que ni siquiera existían cuando empezaron a gestarse las versiones iniciales de .NET o ASP.NET "clásicos": la nube, alto rendimiento, escalabilidad, APIs, múltiples dispositivos y plataformas, contenedores, microservicios etc. Y creados usando principios y buenas prácticas que tampoco eran los habituales antaño: inyección de dependencias, clases con responsabilidades limitadas, modularidad, componibilidad, abstracciones basadas en interfaces, pruebas unitarias…
lunes, 27 de junio de 2016
Promoción finalizada. Muchas gracias a los más de mil lectores que habéis participado!

¡Consigue un libro gratis de O'Reilly!Pues casi ha pasado un mes desde que lanzamos esta iniciativa, y ya se cuentan por centenares los seguidores de Variable not found que han descargado su libro electrónico de O'Reilly, totalmente gratis.

Sólo quería recordaros que la promoción finaliza el próximo 30 de junio (no sé si ese día aún se podrá, así que, por si acaso, mejor que asumáis que no).

Por si no os enterasteis en su momento, estamos hablando de que para celebrar el aniversario del blog, O'Reilly regala a todos los lectores un libro en formato electrónico, a elegir entre estos diez títulos de programación, o un vídeo-tutorial sobre Web API:

Mastering Cross-Platform Development with Xamarin Mastering Cross-Platform Development with Xamarin
By Can Bilgin
Más info
C# 6 and .NET Core 1.0: Modern Cross-Platform Development C# 6 and .NET Core 1.0: Modern Cross-Platform Development
By Mark J. Price
Más info
jQuery Essentials jQuery Essentials
By Troy Miles
Más info
C# 6.0 in a Nutshell C# 6.0 in a Nutshell, Sixth Edition
By Joseph Albahari & Ben Albahari
Más info

CSS: The Missing Manual CSS: The Missing Manual, Fourth Edition
By David Sawyer McFarland
Más info
Learning NHibernate 4 Learning NHibernate 4
By Suhas Chatekar
Más info
Learning .NET High-performance Programming Learning .NET High-performance Programming
By Antonio Esposito
Más info
Code-First Development with Entity Framework Code-First Development with Entity Framework
By Sergey Barskiy
Más info
AngularJS: Up and Running AngularJS: Up and Running
By Shyam Seshadri, Brad Green
Más info
Concurrency in C# Cookbook Concurrency in C# Cookbook
By Stephen Cleary
Más info
RESTful Services with ASP.NET Web API Vídeo (2h): RESTful Services with ASP.NET Web API By Fanie Reynders
Más info

Además, O'Reilly ofrece a los lectores de Variable not found descuentos del 40% en libros en papel, y de 50% en libros electrónicos y video training utilizando el código PCVW al realizar la compra.

¿Y cómo podéis conseguir vuestro regalo?

Recordad que tenéis hasta el próximo 29 de junio de 2016 para obtener vuestro regalo. Sólo tenéis que lo siguiente:
  • Ayudarme a difundirlo para darle el mayor alcance posible, pues estaréis contribuyendo a que más personas puedan conseguir su regalo. Por tanto, os agradecería mucho:
              
    • Que lo comentéis con vuestros compañeros, amigos y conocidos que aún no se hayan beneficiado de esta iniciativa.
       
    • Que publiquéis en vuestra cuenta de Twitter, Facebook u otras redes sociales un enlace hacia este post. Por ejemplo, estaría bien algo como lo siguiente, aunque podéis demostrar vuestra creatividad y poner otras cosas siempre que vayan en la dirección de los objetivos propuestos :)
      Sólo HOY, @oreillymedia te regala un e-book por ser seguidor de @variablnotfound. ¡Ve a por el tuyo! http://bit.ly/295LSAJ
    • O, como mínimo, para los más perezosos, que retuiteéis en Twitter o compartáis en vuestras redes sociales los mensajes de otras personas que ya lo hayan publicado.
       
  • Si os apetece estar informados de las novedades del blog, seguir la nueva cuenta del blog en Twitter, @variablnotfound. A largo plazo pretendo que sea un canal exclusivo para el blog, separándolo de mi cuenta personal @jmaguilar.
     
  • Finalmente, reclamar vuestro libro o vídeo utilizando este enlace: http://oreil.ly/1W9VAFL. El proceso es muy simple: tendréis que registraros como usuario, elegir el contenido que os interese (uno por persona), y en pocas horas tendréis acceso al mismo.
¡¡No perdáis la oportunidad, que se acaba!!

Publicado en Variable not found
domingo, 26 de junio de 2016
Telerik Probablemente haya cosas mejores que hacer un domingo por la mañana, pero pocas tan gratificantes como ir a votar y después ponerse a repartir regalos :)

Así que, siguiendo la tradición, nos hemos reunido un servidor y su habitual instancia de System.Random para echar en el bombo las papeletas virtuales y elegir al azar los ganadores del sorteo de licencias de la suite DevCraft Complete de Telerik.

Y hoy la suerte ha señalado a:

Carlos Gómez @devcfgc
Bilbao
Luis Felipe Gil @lamaslg
Madrid
¡Enhorabuena! En breve me pondré con contacto con vosotros para facilitaros vuestras licencias. Y muchas gracias a los que no habéis tenido tanta suerte, pero no desesperéis que todavía tendréis alguna oportunidad más :)

Me gustaría agradecer también a Telerik su gran apoyo a la celebración del aniversario del blog, que ha sido espectacular.

Ah, y mientras comenzamos el próximo sorteo, no olvidéis que por ser lectores del blog ¡aún podéis conseguir vuestro libro gratis de O'Reilly! Daos prisa porque el tiempo se acaba y en breve acabará la promoción :)

Pero seguid atentos al blog, porque el próximo será ya el último sorteo… ¿alguien había dicho que le gustaría tener una licencia de Resharper? ;)

Publicado en Variable not found
miércoles, 22 de junio de 2016
ASP.NET Core Conforme el desarrollo del nuevo framework ha ido avanzando, se han producido bastantes cambios en el sistema de hosting, que es, al fin y al cabo, quien determina la forma en que podemos cambiarle el nombre a "wwwroot". En el pasado hemos publicado varios posts al respecto (aquí y aquí), y ahora vamos a actualizar los conocimientos tras los cambios aparecidos en la RC2 (sí, esa en la que en teoría no iba a cambiar demasiado respecto a la RC1 ;D).

Estructura de un proyecto ASP.NET Core en Visual Studio, donde aparece la carpeta wwwroot con un icono especialComo sabemos, en proyectos ASP.NET Core, la carpeta "wwwroot", también conocida como "Web root", ejerce como raíz para los contenidos estáticos de la web, es decir, es donde encontraremos todos los archivos que en algún momento enviaremos al lado cliente: javascript, CSS, favicons, imágenes, fonts, etc.

El nombre que se ha dado a la carpeta, "wwwroot", es por convención, y simplemente se trata del valor por defecto establecido por el framework, pero si no nos convence podemos cambiarlo por otro que nos parezca más conveniente. No es que vaya va a ser muy frecuente hacerlo en aplicaciones del mundo real, pero saber que se puede cambiar y cómo hacerlo es interesante porque, además de darnos la libertad de elegir, nos obliga a aprender un poco sobre las interioridades del framework.

Así, si deseamos cambiar el nombre de "wwwoot" por cualquier otro, los pasos serían básicamente tres:
  • Renombrar la carpeta a nivel físico desde el IDE o desde el explorador de archivos.
     
  • Cambiar la configuración de preprocesadores como Gulp, Grunt o WebPack para que utilicen vuestra nueva carpeta como directorio de salida, lo que podemos hacer fácilmente editando sus correspondientes archivos de configuración gulpfile.js, grunt.config, webpack.config.js o el que sea.
     
  • Informar al framework de que esa nueva carpeta es la base para los recursos estáticos, lo que permitirá a otros componentes (por ejemplo, los middlewares encargados de retornar este tipo de contenidos) saber dónde se encuentran los archivos.
En este último punto es donde nos centraremos en el resto del post, viendo algunas fórmulas para conseguirlo.