lunes, 6 de abril de 2020
Dado que la recopilación de enlaces ha sido considerada una actividad esencial, no se ha visto afectada por el parón decretado recientemente, así que ahí va la cosecha de la semana pasada :)
Como siempre, espero que os resulten interesantes y os ayuden a llevar mejor el confinamiento. ¡Que paséis una buena Semana Santa!
Como siempre, espero que os resulten interesantes y os ayuden a llevar mejor el confinamiento. ¡Que paséis una buena Semana Santa!
Por si te lo perdiste...
- Tipos referencia anulables en C# 8
José María Aguilar - Archivos estáticos en aplicaciones ASP.NET Core (I)
José María Aguilar
.NET Core / .NET
- Announcing .NET 5.0 Preview 2
Richard Lander - .NET 5 preview support in OmniSharp and C# Extension for VS Code
Filip Woj - What Are .NET Worker Services?
Steve Gordon - Sending and Receiving JSON using HttpClient with System.Net.Http.Json
Steve Gordon - C# Functional Programming In-Depth (12) Immutability, Anonymous Type, and Tuple
Dixin Yan - Inject JsonSerializerOptions so Don't Repeat Yourself
Adam Storr - NLog Tutorial - The essential guide for logging from C#
Thomas Ardal - Writing .NET Database Integration Tests
Khalid Abuhakmeh - Can .NET Core Framework Assemblies be Mapped back to Individual NuGet Packages? A Detective Story
Maarten Balliauw - Regex Performance Improvements in .NET 5
Stephen Toub - Build a Windows Worker Service Using .NET Core 3.1 for Removing Old Files in Folders
Fredrik Rudberg
Publicado por José M. Aguilar a las 8:05 a. m.
Nadie ha comentado la entrada, ¿quieres ser el primero?
Etiquetas: enlaces
martes, 31 de marzo de 2020
Como sabemos, hasta ASP.NET Core 2.2, registrábamos los servicios de MVC y Razor Pages en el método
¿Para qué sirven, y por qué ha sido necesario introducir estos nuevos extensores?
ConfigureServices()
de la clase Startup
con una línea como la siguiente:public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
...
}
Esto era todo lo que necesitábamos para poder utilizar cualquiera de estas tecnologías en nuestra aplicación. Sin embargo, a partir de ASP.NET Core 3.0, nuestro intellisense se vio inundado de opciones adicionales como AddControllers()
, AddRazorPages()
o AddControllersWithViews()
.¿Para qué sirven, y por qué ha sido necesario introducir estos nuevos extensores?
lunes, 30 de marzo de 2020
Pues otra semana de encierro, y otro buen número de enlaces recopilados que, como de costumbre, espero que os resulten interesantes.
¡Cuidaos mucho!
¡Cuidaos mucho!
Por si te lo perdiste...
- Null coalescing assigment "??=", el nuevo operador de asignación en C# 8
José María Aguilar - Acceder a arrays en settings JSON de ASP.NET Core
José María Aguilar
.NET Core / .NET
- Variables? We Don’t Need No Stinking Variables
Jason Roberts - C# interop with C/C++ and Rust in WebAssembly
Jerome Laban - Learning and documenting .NET with dotnet try
Bruno Sonnino - NServiceBus and .NET Core Generic Host
Jimmy Bogard - Suppressing Disassembly
Mark Downie - Sanitize HTML snippets with AngleSharp
Gérald Barré - Use NodaTime to replace C# DateTime
Matteo Locher - Controlling the Serial and Parallel Test on XUnit
Tsuyoshi Ushio - ElectronCGI 1.0 - Cross-platform GUIs for .Net Core
Rui Figueiredo - Using HttpCompletionOption to Improve HttpClient Performance in .NET
Steve Gordon - Getting Started With .NET Localization
Khalid Abuhakmeh - Adding Tuple Support to .NET Classes in C#
Jason Roberts - Optimising C# for a serverless environment
Carmel Eve - Generator Pattern using CSharp and Linq
Ahmed Fouad - .NET 5: Merging .NET Core and .NET Standard with New Target Framework Monikers (TFMs)
Thomas Claudius Huber - ValueTask Restrictions
Stephen Cleary
martes, 24 de marzo de 2020
Al comenzar con Blazor, seguro que veis en la mayoría de ejemplos que la implementación de la lógica (código C#) y de la pura interfaz de usuario (HTML) se encuentran en un bloque
@code
en el mismo archivo .razor
, como en el siguiente bloque de código:@* File: ~/Pages/HelloWorld.razor *@
@page "/hello"
<h1>Hello</h1>
<div>
<label for="name">Your name:</label>
<input id="name" @bind-value="Name" @bind-value:event="oninput"/>
</div>
@if (HasName)
{
<h2>Hello, @Name!</h2>
}
@code
{
public string Name { get; set; }
public bool HasName => !string.IsNullOrWhiteSpace(Name);
}
Sin embargo, esto no tiene que ser necesariamente así. En tiempo de compilación, un archivo .razor
genera una clase parcial C# con su mismo nombre, lo cual nos brinda la posibilidad de mover todo el código C# a otra porción de dicha clase.Podéis ver las clases generadas para cada archivo.razor
en la carpeta del proyectoobj\debug\netcoreapp3.1\Razor\Pages
.
lunes, 23 de marzo de 2020
Ahí van los enlaces recopilados durante la semana pasada. Espero que os entretengan, al menos un ratillo, durante el confinamiento :-)
Por si te lo perdiste...
- Convenciones personalizadas en ASP.NET Core MVC
José María Aguilar - Etiquetado de consultas en Entity Framework 6
José María Aguilar
.NET Core / .NET
- Cannot get the value of a token type ‘Number’ as a string con System.Text.Json
Jorge Serrano - El fin de Visual Basic .NET ya ha empezado
José Manuel Alarcón - Announcing .NET 5 Preview 1
Scott Hunter - Using Windows Antimalware Scan Interface in .NET
Gérald Barré - Introducing Clippit, get your slides out of PPTX.
Sergey Tihon - Translating C# Lambda Expressions to General Purpose Filter Descriptors & HTTP Query Strings
Kamran Saeedi - Immutable types in C# with Roslyn
Cezary Piątek - C# developers! Your scoped components are more dangerous than you think
Jonathan George - Async ValueTask Pooling in .NET 5
Stephen Toub - A couple of nice Tuple use cases | Joseph Woodward, Software Developer"
Joseph Woodward - Upgrading from ASP.NET Core 3.1 to 5.0 (Preview 1)
Steve Gordon - VB.NET is done, not dead
Matt Lacey - Is C# Slower Than C++?
Michael Shpilt - Lazily resolving services to fix circular dependencies in .NET Core
Thomas Levesque - Introducing Ais.Net – High-Performance Parsing in C#
Ian Griffiths - Lessons learned porting Octopus Server to .NET Core 3.1
Rob Pearson - C#: Why You Should Prefer the is Keyword Over the == Operator – Thomas Claudius Huber
Thomas Claudius Huber
martes, 17 de marzo de 2020
Hace unos días han anunciado la disponibilidad de una herramienta que os puede interesar si, como un servidor, acumuláis un gran número de versiones del SDK y runtimes de .NET Core que no váis a necesitar, algo muy propio de ese Diógenes digital que todos llevamos dentro ;)
El estado actual de acumulación de SDKs podéis conocerlo muy fácilmente desde línea de comandos utilizando la orden
El estado actual de acumulación de SDKs podéis conocerlo muy fácilmente desde línea de comandos utilizando la orden
dotnet --list-sdks
:C:\>dotnet --list-sdks
1.1.11 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.507 [C:\Program Files\dotnet\sdk]
2.1.508 [C:\Program Files\dotnet\sdk]
2.1.509 [C:\Program Files\dotnet\sdk]
2.1.511 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.1.604 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
2.1.701 [C:\Program Files\dotnet\sdk]
2.1.800-preview-009696 [C:\Program Files\dotnet\sdk]
2.1.801 [C:\Program Files\dotnet\sdk]
2.1.802 [C:\Program Files\dotnet\sdk]
2.2.102 [C:\Program Files\dotnet\sdk]
2.2.105 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]
2.2.203 [C:\Program Files\dotnet\sdk]
2.2.204 [C:\Program Files\dotnet\sdk]
3.0.100-preview8-013656 [C:\Program Files\dotnet\sdk]
3.0.100-preview9-014004 [C:\Program Files\dotnet\sdk]
3.0.100 [C:\Program Files\dotnet\sdk]
3.1.100 [C:\Program Files\dotnet\sdk]
3.1.101 [C:\Program Files\dotnet\sdk]
3.1.102 [C:\Program Files\dotnet\sdk]
C:\>_
En mi caso, tengo aún por ahí el SDK de .NET Core 1.x, un par de decenas de .NET Core 2.x, y algunas previews, pero los he visto mucho peores ;) Obviamente, salvo dos o tres versiones que quizás me interesen porque tengo aplicaciones que aún no he migrado, el resto ocupan en mi equipo un espacio considerable sin motivo, más de 5GB, pues cada SDK puede pesar entre 150 y 200 Mb.