martes, 24 de febrero de 2015
Nota [05/10/2015] - Hay una versión actualizada de este post.
La inyección de dependencias ha sido un tema recurrente en Variable not found desde hace bastante tiempo, y dadas las grandes novedades incluidas en ASP.NET 5 al respecto estaba deseando hincarle el diente y publicar algo sobre el tema.Para los perezosos, podríamos resumir el resto del post con una frase: ASP.NET 5 viene construido con inyección de dependencias desde su base, e incluye todas las herramientas necesarias para que los desarrolladores podamos usarla en nuestras aplicaciones de forma directa, en muchos casos sin necesidad de componentes de terceros (principalmente motores de IoC que usábamos hasta ahora). Simplemente, lo que veremos a continuación es cómo utilizar esta característica ;)
Pero permitidme una nota antes de empezar: si no sabes aún lo que es inyección de dependencias, el resto del post te sonará a arameo antiguo. Quizás podrías echar previamente un vistazo a este otro, Desacoplando controladores ASP.NET MVC, paso a paso, que aunque tiene ya algún tiempo, creo que todavía es válido para que podáis ver las ventajas que nos ofrece esta forma de diseñar componentes.
Ah, y recordad: todo lo que vamos a ver podría cambiar conforme vaya avanzando el desarrollo del producto, pero más o menos son cosas que parecen relativamente estables desde hace algún tiempo.
Publicado por José M. Aguilar a las 9:15 a. m.
Nadie ha comentado la entrada, ¿quieres ser el primero?
Etiquetas: aspnet5, aspnetcore, aspnetmvc, novedades
lunes, 23 de febrero de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- Roslyn Code Gems - Counting Bits
K. Scott Allen - Beyond Unit Tests with ConventionTests
Jason Roberts - Proper benchmarking to diagnose and solve a .NET serialization bottleneck
Scott Hanselman
martes, 17 de febrero de 2015
Hace sólo unos días comentábamos la próxima desaparición del Global.asax a partir de ASP.NET Core y su sustitución por la clase Startup
, pero no es esto lo único que va a dejar de acompañarnos durante nuestras andanzas digitales. Como vimos también hace algún tiempo, el nuevo enfoque de ASP.NET hace que se prescindan de muchos elementos que ya no tienen sentido.Y en esta ocasión hablaremos sobre la desaparición del Web.config, el célebre archivo de configuración que lleva con nosotros desde los inicios de ASP.NET. Nacido en momentos en que se pensaba que XML era la panacea y muy ligado al denostado System.Web, ha sido útil durante años para configurar aspectos relativos a la compilación y ejecución de las aplicaciones web en el servidor, así como el “sitio oficial” para introducir de settings como cadenas de conexión y otros valores configurables de nuestros sistemas.
Pero, antes de continuar, un disclaimer: ASP.NET Core está aún en desarrollo, y parte de lo que se diga aquí puede no ser del todo cierto mañana mismo, aunque posiblemente los conceptos fundamentales sí lo serán. O eso espero ;)
lunes, 16 de febrero de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)
.Net
- La azarosa historia de un nuevo curso- Desarrollo con C# y la plataforma .NET
José Manuel Alarcón - Back to Basics- UTC and TimeZones in .NET Web Apps
Rick Strahl - Some considerations on asynchronous execution
Paulo Zemek - Genetic algorithm to solve 2D Mazes in Visual Basic
Emiliano Musso - The Right Way to do Equality in C#
Aaron Stannard - Conditional Access Operator in C# 6.0
K. Scott Allen - Async Transaction Scope on .NET 4.5.1
Bnaya Eshet - Check out Tuples in C# – A handy, easy to use data structure
Andy Schwam
martes, 10 de febrero de 2015
Hace poco hablábamos del destierro del Global.asax en ASP.NET Core, y de cómo la clase
Pero además del código personalizado que podamos introducir, es donde, por defecto, se configuran aspectos tan importantes como los middlewares que guiarán el proceso de las peticiones, o la inyección de dependencias incluida de serie en el framework.
En este post vamos a estudiar un poco más a fondo la clase de inicialización de ASP.NET Core, y comenzaremos viendo qué vamos a encontrar en ella, y las convenciones a las que hay que ceñirse para que el entorno pueda inicializarse correctamente.
Startup
, siguiendo la convención establecida por este framework, era el lugar elegido para introducir código de inicialización.Pero además del código personalizado que podamos introducir, es donde, por defecto, se configuran aspectos tan importantes como los middlewares que guiarán el proceso de las peticiones, o la inyección de dependencias incluida de serie en el framework.
En este post vamos a estudiar un poco más a fondo la clase de inicialización de ASP.NET Core, y comenzaremos viendo qué vamos a encontrar en ella, y las convenciones a las que hay que ceñirse para que el entorno pueda inicializarse correctamente.
lunes, 9 de febrero de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)
.Net
- [Clean Code] Evitando Magic Strings
Luis Ruiz Pavón - CoreCLR is now Open Source
The .NET team - The .NET CoreCLR is now open source, so I ran the GitHub repo through Microsoft Power BI
Scott Hanselman - Adding non-NuGet references to the new vNext Projects
Rick Strahl - Rise of Roslyn, Part 2: Writing Diagnostics
Ted Neward & Joe Hummel - AutoMapper support for ASP.NET 5.0 and ASP.NET Core 5.0
Jimmy Bogard - Adding a Code Fix to Your Roslyn Analyzer
Alex Turner - ASP.NET MVC Controller Vs. Web API - 5 Things You Should Know
Bipin Joshi - New Task APIs in .NET 4.6
Stephen Toub - Clean event handler invocation with C# 6
Jon Skeet
martes, 3 de febrero de 2015
El célebre Global.asax ha estado con nosotros durante más de diez años, y, junto con el Web.config y algunos otros, ha sido uno de los archivos que encontrábamos siempre en la carpeta raíz de toda aplicación web basada en ASP.NET.
Durante lustros lo hemos usado para introducir código de inicialización de nuestras aplicaciones y para tomar el control en distintos momentos del proceso de las peticiones: al recibirse una solicitud, al retornar la respuesta, al comenzar una sesión, al finalizarla, al autenticar las peticiones… en fin, que es fácil echarlo de menos cuando abrimos o creamos nuestra primera aplicación ASP.NET Core.
Pero como ya hemos comentado por aquí en alguna ocasión, con ASP.NET Core nuestro entrañable Global.asax desaparece para no volver, en primer lugar porque la propia clase
Durante lustros lo hemos usado para introducir código de inicialización de nuestras aplicaciones y para tomar el control en distintos momentos del proceso de las peticiones: al recibirse una solicitud, al retornar la respuesta, al comenzar una sesión, al finalizarla, al autenticar las peticiones… en fin, que es fácil echarlo de menos cuando abrimos o creamos nuestra primera aplicación ASP.NET Core.
Pero como ya hemos comentado por aquí en alguna ocasión, con ASP.NET Core nuestro entrañable Global.asax desaparece para no volver, en primer lugar porque la propia clase
HttpApplication
, donde se originan esos eventos en los que introducíamos nuestro código, es parte inseparable de System.Web
, y ya sabemos que uno de los principales objetivos de ASP.NET Core es desligarse por completo de este pesado lastre. Pero hay algunos motivos estructurales más, que veremos a continuación.
lunes, 2 de febrero de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- C# 7 - What Would You Put In?
Mike James - YouTube Downloader Using C# .NET
Akram Kamal - C# 6 string interpolation and Serilog
Nicholas Blumhardt - .NET Core Open Source Update
Immo Landwerth - Simplifying Events in .NET
John L. Vidal - Take Control of Exceptions with a Custom Exception Object
Peter Vogel