Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- ¿No te gusta que tus nuevos proyectos .NET usen top level statements? Pues Visual Studio y la CLI te lo ponen fácil
José María Aguilar - Interpolación de cadenas en C# 6
José María Aguilar
.NET Core / .NET
- Leer mensajes de un buzón de Office 365 con C# & Console application vs worker service
Sergio León - Getting the Method Name from a Task in C#
Bryan Hogan - Fastest Way to Check if a List is in Order in C#
Jeff Shergalis - Collection Initializer Performance in C#
Nick Cosentino - Easily navigate code delegates
Mark Downie - The .editorconfig files for .NET developers
NDepend - Json schema validation in .NET
Gérald Barré - Pattern matching and the compiler can be surprising
Steven Giesel - How to use xUnit to run unit testing in .NET and C#
David Grace - How to Validate a GUID in C#
Osman Sokuoglu - Enable tab completion for the .NET CLI in your terminal
Anthony Simmon - Testing Your Native AOT Applications
Marco Rossignoli - 24 Essential Async/Await Best Practices for Basic to Advanced C# Developers
Sukhpinder Singh - Just for Fun: A Five-Card Poker Library Using C#
James McCaffrey - Convert Excel to PDF in Just 5 Steps Using C#
Mohan Chandran - Examples of Composition in C# – A Simple Guide for Beginners
Nick Cosentino - Primary Constructor and Logging Don't Mix
Adam Storr
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: enlaces
Hoy va un post rápido sobre una característica de C# 12 que, aunque pequeña, nos puede resultar interesante en determinadas situaciones y puede pasar fácilmente desapercibida entre todas las demás novedades de esta versión del lenguaje.
Hasta C# 11 (.NET 7), no teníamos forma de definir una expresión lambda con parámetros opcionales y valores por defecto, como podemos hacer en los métodos o funciones normales, lo que complicaba la implementación de algunos escenarios.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Añadir filas de datos a Google Sheets desde .NET
José María Aguilar - Expresiones lambda en miembros de función de C# 6
José María Aguilar
.NET Core / .NET
- .NET 7 will reach End of Support on May 14, 2024
Rahul Bhandari - C# 13: Allow ref and unsafe in iterators and async
Steven Giesel - How to Convert ReadOnlyMemory to a Byte Array in C#
Robinson Small - .NET 9: LINQ Enhancements: A Detailed Introduction
Sukhpinder Singh - Best Practices for Logging With Serilog
Ivan Gechev - Implementing Dijkstra's algorithm for finding the shortest path between two nodes using PriorityQueue in .NET 9
Andrew Lock - Programmatic Html to PDF Generation using the WebView2 Control
Rick Strahl - C# - Tips and Tricks 03 - Use static initialization
Josef Ottosson - Bing on .NET 8: The Impact of Dynamic PGO
Ben Watson
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Entender código imposible mediante troceado y refactorización
José María Aguilar - Mejoras en bloques try/catch de C# 6
José María Aguilar
.NET Core / .NET
- Introducing .NET Smart Components - AI-powered UI controls
Daniel Roth - Working with yield in C#: Enhancing Efficiency and Code Clarity
A. Yohan Malshika - Why Should We Avoid Using Await in a Loop in C#
Anaedobe Nneka - How to Resolve IOptions Instance Inside Program Class in C#
Georgi Georgiev - Difference Between await and Task.Wait in C#
Georgios Panagopoulos - .NET Developers Begging for Ecosystem Destruction
Aaron Stannard - NCronJob - Scheduling made easy
Steven Giesel - Conventional Message Routing in Wolverine
Jeremy D. Miller - Execute the SELECT WHERE NOT EXIST SQL Query Using LINQ
Karthikeyan N. S. - C# 12: Collection Expressions
Thomas Claudius Huber - General Performance Tip: Logging
David McCarter - Generate a Word document in ASP.NET
John Reilly - Building Interactive Blazor Apps with WebAssembly
Ed Charbeneau - How to Convert IAsyncEnumerable to List
Caleb Okechukwu - Benchmark a Method’s Performance on Different .NET Versions
Januarius Njoku
Como sabéis, con ASP.NET Core 8 se ha incluido la posibilidad de que una página Blazor sea capaz de procesar directamente una petición HTTP, renderizando sus componentes y retornando el resultado HTML completo al lado cliente de forma estática. Es ya lo vimos hace algún tiempo cuando hablamos de Server-Side Rendering (SSR), una de las piezas clave para conseguir que Blazor sea un framework fullstack.
En la práctica, esta opción posibilita la implementación de sitios estáticos completos, como los que construiríamos con ASP.NET Core MVC, Razor Pages o cualquier otro tipo de tecnología de servidor, pero con la gran ventaja de que en este caso estaremos beneficiándonos del fantástico modelo de componentes Blazor, que es una gozada en términos de productividad y facilidad de uso, y sin perder la posibilidad de activar la interactividad de los componentes (su capacidad para reaccionar ante eventos del usuario), una vez que el HTML ha sido descargado en el navegador.
En aquél momento vimos que SSR no requiere una programación específica: los mismos componentes interactivos que luego podemos ejecutar en el lado cliente o servidor pueden ser renderizados mediante SSR de forma estática en el backend. Sin embargo, en algunos momentos nos podría resultar interesante saber si un componente está funcionando en modo estático (SSR) o interactivo (los tradicionales Blazor WebAssembly o Blazor Server).
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Constructores estáticos, inicializadores de módulos y startup hooks: tres formas de ejecutar código antes que Program.Main()
José María Aguilar - Inicialización de diccionarios en C# 6
José María Aguilar
.NET Core / .NET
- Measuring .NET Performance: Unleashing the Power of BenchmarkDotNet
Antão Almada - Fastest Way to Get the First N Characters of a String in C#
Januarius Njoku - Understanding System.Diagnostics DiagnosticSource and DiagnosticListener (Part 1)
Steve Gordon - How to Automatically Cast Between Types in C#
Nick Cosentino - Behind the implementation of .NET's PriorityQueue
Andrew Lock - C# 12: Primary Constructors
Thomas Claudius Huber - Mocking HttpClient requests for C# unit tests
Thomas Ardal - Get started with .NET 8 and AI using new quickstart tutorials
Jordan Matthiesen - Fastest Way to Generate a Random Boolean in C#
Matjaz Prtenjak - How to Use StringPool to Reduce String Allocations in C#
Osman Sokuoglu - Plugin Architecture in C# for Improved Software Design
Nick Cosentino - Why I Don't Use AutoMapper in .Net
Grant Riordan - LINQ Query Improvements in Marten 7
Jeremy D. Miller - Async Event Handlers in C#: What You Need to Know
Nick Cosentino - Comparing Performance of the switch and if-else Statements in C#
Michal Kaminski - Activator.CreateInstance vs Type.InvokeMember – A Clear Winner?
Nick Cosentino