miércoles, 22 de junio de 2016
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).
Como 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:
Como 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.
Publicado por José M. Aguilar a las 8:48 a. m.
Hay sólo 1 comentario, ¡participa tú también!
Etiquetas: aspnetcore, trucos
martes, 21 de junio de 2016
Sorteo cerrado, ya tenemos los ganadores :) Muchas gracias a todos por participar!
Imaginad que estáis asistiendo a un evento destinado a desarrolladores .NET, elegís al azar a cualquier otro asistente y le preguntáis el nombre de una compañía líder en componentes y herramientas para desarrolladores con tecnologías Microsoft. Seguro que coincidís conmigo en que Telerik tendría muchas probabilidades de aparecer en la respuesta :)Y es que, aunque actualmente abarcan todo tipo de plataformas y tecnologías, la gran reputación conseguida durante años, sus decenas de reconocimientos y su compromiso con la comunidad .NET han hecho de esta empresa un referente para nosotros. ¿Quién no conoce Fiddler, JustDecompile, Kendo UI, o sus componentes visuales para MVC, por citar sólo algunos de sus productos?
Pues efectivamente, Telerik ha sido otra de las compañías que han decidido apoyar generosamente la celebración del décimo aniversario del blog, ofreciendo para sus lectores dos licencias de la suite DevCraft Complete, valoradas cada una en 1.499$.
domingo, 19 de junio de 2016
Un domingo más, nos hemos reunido un servidor y una instancia de System.Random en un solemne acontecimiento durante el cual han sido elegidos al azar los dos ganadores del sorteo de componentes de DevExpress que iniciamos hace unos días.
Y la suerte ha señalado a:
¡Enhorabuena a los ganadores! En breve me pondré con contacto con vosotros para indicaros los próximos pasos a dar para obtener vuestras licencias. Y muchas gracias a los que no habéis tenido tanta suerte, pero no desesperéis que todavía tendréis más oportunidades :)
Muchas gracias también al patrocinador, DevExpress, por su apoyo a la celebración del décimo aniversario del blog y por ponerlo todo tan fácil. Si sois desarrolladores no dejéis de echar un vistazo a sus productos, porque tienen cosas que seguro os pueden interesar en algún momento :)
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 :)
Y atentos al blog, porque en breve volvemos sorteando más regalos… ¿qué os parecería ahora algo de Telerik? ;)
Publicado en Variable not found
Y la suerte ha señalado a:
DevExtreme Complete Luis A. Sánchez @luisxkimo Madrid | ||
Componentes ASP.NET Eloy Ortiz @_eloyortiz Baena (Córdoba) |
¡Enhorabuena a los ganadores! En breve me pondré con contacto con vosotros para indicaros los próximos pasos a dar para obtener vuestras licencias. Y muchas gracias a los que no habéis tenido tanta suerte, pero no desesperéis que todavía tendréis más oportunidades :)
Muchas gracias también al patrocinador, DevExpress, por su apoyo a la celebración del décimo aniversario del blog y por ponerlo todo tan fácil. Si sois desarrolladores no dejéis de echar un vistazo a sus productos, porque tienen cosas que seguro os pueden interesar en algún momento :)
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 :)
Y atentos al blog, porque en breve volvemos sorteando más regalos… ¿qué os parecería ahora algo de Telerik? ;)
Publicado en Variable not found
miércoles, 15 de junio de 2016
Este 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:
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.
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
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.
- DevExtreme Web, widgets javascript/HTML5 de alto rendimiento para aplicaciones web, entre los que se incluyen Grids, Pivots, Charts, Forms, Calendar, etc.
lunes, 13 de junio de 2016
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET
- .NET Compiler Platform - Language-Agnostic Code Generation with Roslyn
Alessandro Del Sole - A Peek into .NET Open Source Contributions
Jeffrey T. Fritz - Dotnetconf 2016 videos in Channel 9
Microsoft - Implementing Soundex using LINQ (with help from OzCode)
Dror Helper - Inline IL ASM in C# with Roslyn
Alexandre Mutel - The week in .NET – 06/07/2016
Bertrand Le Roy - Generics – A Very Useful Feature in .NET
Vikas Srivastava - All about C# 6.0 New Features
Mukesh Kumar