lunes, 2 de julio de 2018
Son ya ocho años consecutivos y debería haberme acostumbrado a este subidón de primeros de julio, pero, como no suelo ser consciente de que ha llegado el día de los nombramientos, sigo recibiendo el conocido email de nombramiento casi con la misma emoción que aquella primera vez en que me pilló completamente desprevenido.
Muchas gracias a todos vosotros, amigos y amigas de Variable not found, porque si estoy aquí es porque me habéis regalado vuestro incondicional apoyo durante todos estos años.
Muchas gracias también al equipo del programa MVP en Microsoft y, en particular, a nuestra querida MVP lead Cristina González, por el gran trabajo que realizan.
Muchas gracias todos los que dedicáis vuestro tiempo la comunidad, seáis MVP o no, porque hacéis posible que todos aprendamos y mejoremos un poco más cada día.
Y, por supuesto, muchas gracias también a mi mujer e hijas, Inma, Inmita y María, porque ellas son las que permiten, con su infinita paciencia y comprensión, que pueda dedicar a mi pasión por el software más de lo que estrictamente requieren mis obligaciones profesionales.
Aprovecho también para enviar mi enhorabuena a los MVP renovados recientemente, y un caluroso abrazo de bienvenida a los que lo han sido por primera vez (es un momento muy bonito, ¡disfrutadlo!)
Sólo espero estar a la altura de esta distinción, compartida con gente de todo el mundo a la que admiro tanto personal como profesionalmente, y entre los que me enorgullezco de contar con grandes amigos. Y ahora, con esta dosis extra de motivación, ¡a seguir trabajando!

Source: Giphy
Publicado en Variable not found.
martes, 26 de junio de 2018
@helper
para crear porciones de HTML reutilizables en el interior de nuestras vistas, tanto para conseguir un código más limpio como para abrazar el principio DRY (Don’t Repeat Yourself), tan frecuentemente apaleado en la capa de presentación.Recordaréis que esta directiva permitía crear “funciones” en cuyo interior podíamos escribir código Razor (mezclando marcado y C#) que podía ser invocado desde distintos puntos:
@* File: Test.cshtml *|
@Multiplication(2)
@Multiplication(3)
@helper Multiplication(int x)
{
<h2>Multiplication table of @x</h2>
<ul>
@for (var i = 1; i <= 10; i++)
{
<li>@x * @i = @(x * i)</li>
}
</ul>
}
Además de definirlos y consumirlos desde la misma vista, también era posible crear helpers globales introduciéndolos en App_Code
, aunque esta opción me gustaba menos y creo que no la utilicé jamás en aplicaciones reales.
Pues bien, por algunas extrañas razones, en ASP.NET Core la directiva @helper
no está disponible, lo que puede complicarnos un poco a la hora de portar vistas antiguas o, simplemente, cuando queramos usarla para mejorar la legibilidad de nuestro código.
lunes, 25 de junio de 2018
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- NET Core 2.0 will reach End of Life on
September 1October 1, 2018
Rich Lander - NET Core 2.1 June Update
Rich Lander - Deep Dive into Microsoft Configuration
Travis Illig - Span for Audio
Mark Heath - Disposing of services when using Dependency Injection with .NET Core console apps
Jerrie Pelser - Staying up-to-date with .NET Container Images
Rich Lander -
Using ML.NET – Introduction to Machine Learning and ML.NET
Nikola Živković - Default Interface Methods in C# 8
Bassam Alugii - The RyuJIT transition is complete!
Bruce Forstall - Cómo Microsoft hizo que me volvieran a gustar otra vez .NET y C#
CampusMVP - Adding attribute to backing field of automated property
Gunnar Peipman - C# 8 & No More NullReferenceExceptions – What about legacy code?
Christian Nagel
martes, 19 de junio de 2018
IActionResult
(o un Task<IActionResult>
en caso de ser asíncronas). Este interfaz, cuya única misión es definir el método de ejecución asíncrona del resultado, ExecuteResultAsync()
, es implementado por la gran variedad de tipos de resultado ofrecidos de serie por el framework, como ViewResult
, RedirectResult
o FileResult
.Sin embargo, no es esta la única opción disponible a la hora de especificar el resultado de una acción, como veremos a continuación.
lunes, 18 de junio de 2018
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- Asynchronous Programming in .NET – Benefits and Tradeoffs of Using ValueTask
Nikola Živković - .NET Core 2.1 broke my software, thank you very much!
Ayende Rahien - Dissecting new generic constraints in C# 7.3 Sergey Teplyakov
- C# Pattern Matching: Are The Official Docs Lying?
James Hickey - IHttpClientFactory Patterns: Using Typed Clients from Singleton Services
Steve Gordon - Announcing .NET Core 2.1 for Red Hat Platforms
Bob Davis & Mike Guerette - Simple Machine Learning with .NET Core Sample
Carlos Mendible - Using .NET and Docker Together – DockerCon 2018 Update
Rich Lander - C# Enum: Definition, Examples, Best Practices, and Pitfalls
Justin Boyer - Lamar 1.0: Faster, modernized successor to StructureMap
Jeremy D. Miller - IAsyncEnumerable - An Introduction
Stuart Lang - Nullable Types and Null Coalescing Operator in C#
Debendra Dash - Explicitly Ignoring Exceptions in C#
Rick Strahl - Tools for Exploring .NET Internals
Matt Warren - An Early Look at .NET 4.8
Jonathan Allen
martes, 12 de junio de 2018
Veamos muy rápidamente en qué consiste.