martes, 18 de abril de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – .NET Framework 4.7, reference documentation, On .NET on modular ASP.NET, Happy birthday .NET with Immo Landwerth, JustAssembly
Bertrand Le Roy - Casting to IEnumerable<T> is Two Orders of Magnitude Slower
Daniel Cabtree - MailKit Officially Replaces .NET’s SmtpClient
Jonathan Allen - Creating and editing solution files with the .NET CLI
Andrew Lock - .NET Framework April 2017 Monthly Rollup
Rich Lander - .NET Futures: Multiple Inheritance
Jonathan Allen - Extending .NET CLI with custom tools - dotnet init initializes your NuGet package
Maarten Balliauw - Exceptionless - better logging for .NET & JavaScript
Michal Dymel - How to Create .NET Core Windows Services with Visual Studio 2017
Matt Watson - Performant text processing in C#
Christopher Wright - Method overload resolution in C# 6.0: an interesting bug story
Miłosz Piechocki
Publicado por José M. Aguilar a las 8:55 a. m.
Nadie ha comentado la entrada, ¿quieres ser el primero?
Etiquetas: enlaces
lunes, 10 de abril de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- Announcing the .NET Framework 4.7
Rich Lander - C# 7: Is Operator Patterns - You won't need 'as' as often & Micro-Benchmarking the Three Ways to Cast Safely
Daniel Cabtree - The week in .NET – On .NET on SonarLint and SonarQube, Happy birthday .NET with Dan Fernandez, nopCommerce, Steve Gordon
Bertrand Le Roy - Understand monads with LINQ
Miłosz Piechocki - Announcing a unified .NET reference experience on docs.microsoft.com
Jeff Sandquist - Black Art – LINQ expressions reuse
Asher Barak - Getting All the Results in LINQ with Methods
Peter Vogel - C# Exception Handling Best Practices
Matt Watson - C# 7.0: Tuple literals
Gunnar Peipman - No GCs for your allocations?
Maoni Stephens - A Quick and Dirty Extension Method to Get the Full Exception Details, Including Inner Exceptions
Barco Bertschi
martes, 4 de abril de 2017
Como sabemos, tradicionalmente los controladores MVC son clases cuyo nombre, según la convención, debe finalizar por “Controller”, como en
Sin embargo, desde las primeras versiones del framework la convención era modificable y podíamos adaptarla a nuestras necesidades aprovechando la extensibilidad del framework. De hecho, ya vimos hace muuucho mucho tiempo cómo hacerlo con la versión "clásica" de ASP.NET MVC, pero con la llegada de MVC Core las cosas han cambiado bastante.
En este post vamos a ver cómo modificar la convención de nombrado de controladores a algo más patrio: haremos que éstos puedan llamarse “ControladorDeXYZ”, como en
Pero antes de ponernos a ello, permitidme aclarar que cambiar las convenciones de nombrado de controladores no es muy conveniente porque, aparte de romper el principio de la mínima sorpresa, hay herramientas que podrían dejar de funcionar correctamente, pero sin duda hacerlo ofrece una magnífica ocasión para profundizar un poco en los entresijos del framework ;)
InvoiceController
o CustomerController
, y esta convención ha continuado en ASP.NET Core MVC, la edición más reciente del framework.Sin embargo, desde las primeras versiones del framework la convención era modificable y podíamos adaptarla a nuestras necesidades aprovechando la extensibilidad del framework. De hecho, ya vimos hace muuucho mucho tiempo cómo hacerlo con la versión "clásica" de ASP.NET MVC, pero con la llegada de MVC Core las cosas han cambiado bastante.
En este post vamos a ver cómo modificar la convención de nombrado de controladores a algo más patrio: haremos que éstos puedan llamarse “ControladorDeXYZ”, como en
ControladorDeFacturas
o ControladorDeClientes
. Es decir, si tenemos una clase como la siguiente, pretendemos que una petición hacia "/facturas/index" retorne el texto "ControladorDeFacturas.Index":public class ControladorDeFacturas : Controller { public IActionResult Index() { return Content("ControladorDeFacturas.Index"); } }Por supuesto, podríamos hacer que esta clase fuera un controlador simplemente aplicándole el atributo
[Controller]
, pero el objetivo de este post es aprender algo sobre el funcionamiento interno del framework, así que no vamos a quedarnos con esta solución tan sencilla ;)Pero antes de ponernos a ello, permitidme aclarar que cambiar las convenciones de nombrado de controladores no es muy conveniente porque, aparte de romper el principio de la mínima sorpresa, hay herramientas que podrían dejar de funcionar correctamente, pero sin duda hacerlo ofrece una magnífica ocasión para profundizar un poco en los entresijos del framework ;)
lunes, 3 de abril de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – On .NET with Sidharth Gupta on Tizen, Happy birthday .NET with Bertrand Le Roy, JSON.NET 10, Gunnar Peipman
Bertrand Le Roy - Linq performance improvements in .NET Core
Thomas Levesque - Deconstructors for non-tuple types in C# 7.0
Andrew Lock - Externalizing the HttpClient internals for fun & profit
Ayende Rahien - Open sourcing the MSTest Test Framework
Brian Harry - Modeling Battleship in C# - Introduction and Strategies & Components and Setup
Matthew P. Jones - Validate your AutoMapper mappings
Christiaan van Bergen
miércoles, 29 de marzo de 2017
Imagen original de Pixabay.
La historia consiste en abusar del amplio conjunto de caracteres soportado por UTF, sustituyendo el punto y coma de finalización de una línea de código (";") por el símbolo de interrogación griego (";", Unicode 037E), indistinguibles a simple vista, como en la siguiente línea:
public void HelloWorld() { Console.WriteLine("Hello world!"); }
lunes, 27 de marzo de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- Using Domain Events within a .NET Core Microservice
Cesar de la Torre [MSFT] - Report from the battlefield #10 - fuck-up with AutoMapper
Michał Komorowski - The week in .NET – Happy birthday .NET with Mads Torgersen, Coypu
Bertrand Le Roy - C# 7.0: Out variables
Gunnar Peipman - DotNet Core Version Confusion
Julie Lerman - Working with dependencies in dotnet core
Anuraj P. - C# 7: Ref Returns, Ref Locals, and how to use them
Daniel Cabtree - MassTransit on RabbitMQ in ASP.NET Core
Simon Timms - A Hitchhikers Guide to the CoreCLR Source Code
Matt Warren - C# 7.0 - Tuples To The Extreme!
Rion Williams - C# value type boxing under the hood
Yi Zhang - C# 7: Dynamic types and Reflection cannot access Tuple fields by name
Daniel Cabtree - .NET Core 1.1 – How to publish a self-contained application
Luis Henrique Demetrio - Cómo localizar aplicaciones con C# y .NET
Jorge Durán