martes, 26 de junio de 2018
Con ASP.NET MVC 5 y anteriores solíamos utilizar
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:
@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.
Publicado por José M. Aguilar a las 8:55 a. m.
Nadie ha comentado la entrada, ¿quieres ser el primero?
Etiquetas: aspnetcore, trucos
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
Como sabéis, por defecto las acciones MVC y Web API en ASP.NET Core retornan un
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.
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
Aparte de las novedades que comentamos hace una semana, ASP.NET Core 2.1 incluye algunas sorpresas adicionales que, sin ser revolucionarias, nos harán más sencillo el día a día. En esta ocasión vamos a comentar una característica introducida en .NET Core 2.1 que aporta mejoras de legibilidad en las trazas de excepciones producidas en llamadas asíncronas, algo que obtendremos for free, por el mero hecho de utilizar la última revisión del framework.
Veamos muy rápidamente en qué consiste.
Veamos muy rápidamente en qué consiste.
lunes, 11 de junio de 2018
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- Ya está disponible .NET Core 2.1
CampusMVP - Novedades .NET Core 2.1: Generic host
Eduard Tomás - Strings Are Evil. Reducing memory allocations from 7.5GB to 32KB
Indy Singh - Libro C# Yellow Book 2016 de Rob Miles, edición 8.2 en español
Jesús Ruiz - Pattern matching in switch statements
Gunnar Peipman - Less-Common C# Keywords - A Guided Tour
Matthew Jones - Asynchronous Programming in .NET – Task-based Asynchronous Pattern (TAP)
Nikola Živković - Tuple Trouble: Why C# Tuples Get to Break the Guidelines
Mark Michaelis - CoreRT - A .NET Runtime for AOT
Matt Warren - Which .NET Core Runtime Download do you need?
Rick Strahl - Announcing ML.NET 0.2
Ankit Asthana - Easier GetHashCode implementation in .NET Core 2.1
Jiří Činčura - Announcing .NET Framework 4.8 Early Access build 3621!
Preeti Krishna - HTTP Client Factory with .NET Core 2.1
Christian Nagel