martes, 4 de julio de 2017
Poco a poco seguimos desmenuzando las novedades disponibles tras la llegada de C# 7. Hasta el momento hemos visto las siguientes:
En esta ocasión veremos un par de pequeñas adiciones al lenguaje que, aunque de mucho menor calado de otras que ya hemos repasado, también merecen tener su minutillo de protagonismo ;)
En esta ocasión veremos un par de pequeñas adiciones al lenguaje que, aunque de mucho menor calado de otras que ya hemos repasado, también merecen tener su minutillo de protagonismo ;)
lunes, 3 de julio de 2017
Tras el subidón de mi séptimo nombramiento como MVP, seguimos con las tradiciones, así que ahí van los enlaces recopilados durante la semana pasada. Como de costumbre, espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – .NET Conf, Material Design in XAML Toolkit
Bertrand Le Roy - Sobre NuGet y versiones…
Eduard Tomás - .NET Core: Finding out SDK-, installed runtime-, and Framework Host versions
Iris Classon - Announcing .NET Core 2.0 Preview 2
Rich Lander - Speed of dotnet run vs the speed of dotnet for published apps (plus self-contained .NET Core apps)
Scott Hanselman - Hashing, Encryption and Random in ASP.NET Core
Paul Hiles - Installing Additional App Templates for dotnet new
Steve Smith - Exploring CQRS within the Brighter .NET open source project
Scott Hanselman - .NET Framework June 2017 Cumulative Quality Update for Windows 10
Rick Lander - Performance Improvements in RyuJIT in .NET Core and .NET Framework
Joseph Tremoulet - C# Goes Back to BASICs with Local Functions
Tim Patrick - Generate C# API Documentation with Wyam
Derek Comartin
Estimados amigos, simplemente quería compartir con vosotros una alegría. Como viene ocurriendo desde hace siete años, he vuelto a ser honrado recibiendo el galardón MVP de Microsoft por mis contribuciones a la comunidad durante el año pasado.
Aunque ya vayan siendo siete los galardones y quizás debería haberme acostumbrado un poco, no es así. Sigo sintiendo la misma mezcla explosiva de satisfacción, orgullo y alegría al recibir la tradicional notificación por email:
Me siento feliz de poder continuar estando cerca de este grupo de frikis que dedican parte de su tiempo a compartir conocimientos y aportar para que muchos podamos mejorar cada día subidos a hombros de gigantes. Y es todo un lujazo poder tener entre ellos a grandes amigos, porque, aparte de ser técnicamente brillantes, me he encontrado ahí con unas personas excepcionales.
Mi eterno agradecimiento al equipo del programa MVP en Microsoft, a la gran Cristina González, nuestra MVP lead, y a todos vosotros, amigos de Variable not found, porque al fin y al cabo sois los que hacéis posible que pueda sentirme tan afortunado.
Aprovecho también para dar la enhorabuena al resto de MVP nombrados el mismo día, ya sea por primera vez o renovando galardón.
Por último, me gustaría enviar un afectuoso abrazo para grandes amigos que este año han abandonado el programa (espero que temporalmente), pero que seguro seguirán dando caña con y para la comunidad porque ellos lo valen ;) ¡Aúpa chicos!
Publicado en Variable Not Found.
Aunque ya vayan siendo siete los galardones y quizás debería haberme acostumbrado un poco, no es así. Sigo sintiendo la misma mezcla explosiva de satisfacción, orgullo y alegría al recibir la tradicional notificación por email:
Me siento feliz de poder continuar estando cerca de este grupo de frikis que dedican parte de su tiempo a compartir conocimientos y aportar para que muchos podamos mejorar cada día subidos a hombros de gigantes. Y es todo un lujazo poder tener entre ellos a grandes amigos, porque, aparte de ser técnicamente brillantes, me he encontrado ahí con unas personas excepcionales.
Mi eterno agradecimiento al equipo del programa MVP en Microsoft, a la gran Cristina González, nuestra MVP lead, y a todos vosotros, amigos de Variable not found, porque al fin y al cabo sois los que hacéis posible que pueda sentirme tan afortunado.
Aprovecho también para dar la enhorabuena al resto de MVP nombrados el mismo día, ya sea por primera vez o renovando galardón.
Por último, me gustaría enviar un afectuoso abrazo para grandes amigos que este año han abandonado el programa (espero que temporalmente), pero que seguro seguirán dando caña con y para la comunidad porque ellos lo valen ;) ¡Aúpa chicos!
Publicado en Variable Not Found.
martes, 27 de junio de 2017
Hace poco hablábamos del nuevo soporte para tuplas de C#, y comentábamos que una forma de consumirlas era mediante la deconstrucción, otra nueva característica introducida en la versión 7 del lenguaje, que consiste en “despiezar” las tuplas, extrayendo de ellas sus elementos e introduciéndolos en variables locales, utilizando una sintaxis muy concisa.
En realidad no es algo demasiado diferente a lo que hacemos normalmente cuando almacenamos en una variable local el resultado de un método que retorna un único valor:
En realidad no es algo demasiado diferente a lo que hacemos normalmente cuando almacenamos en una variable local el resultado de un método que retorna un único valor:
// Guardamos el valor de retorno en variable local var sum = Sum(1, 3); Console.WriteLine($"Sum: {sum}"); ... static int Sum(int a, int b) { return a+b; }
lunes, 26 de junio de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – .NET Architecture: Microservices & Containers, On .NET with Omer Raviv on OzCode, Sprache
Bertrand Le Roy - Multi-Targeting and Porting a .NET Library to .NET Core 2.0
Rick Strahl - Mocking in .NET Core Tests with Moq
Jason Roberts - Abolishing Switch-Case Statement and Pattern Matching in C# 7.0
Nikola Živković - Perks of using UI for ASP.NET MVC
Matt Millican - Four ways to dispose IDisposables in ASP.NET Core
Andrew Lock - High-performance .NET by example: Filtering bot traffic
Alexandr Nikitin - Consuming Google.Apis.Sheets.V4 Services From C#
Tapan Kumar - C# - Make C# More Dynamic with Hyperlambda
Thomas Hansen - Understanding & Profiling C# Async Await Tasks
Matt Watson
martes, 20 de junio de 2017
Continuamos esta serie sobre las novedades incluidas en C#7, y en esta ocasión vamos a ver una pequeña mejora en el lenguaje que seguro nos será de utilidad para simplificar código muy frecuente: las expresiones throw.
Fijaos en un código como el siguiente, que seguro que habéis escrito cientos de veces, donde utilizamos el constructor de una clase para recibir sus dependencias y almacenarlas en miembros de la instancia:
Fijaos en un código como el siguiente, que seguro que habéis escrito cientos de veces, donde utilizamos el constructor de una clase para recibir sus dependencias y almacenarlas en miembros de la instancia:
public class MyService: IMyService { private readonly IDependency _first; private readonly IAnotherDependency _second; public MyService(IDependency first, IAnotherDependency second) { if (first==null) throw new ArgumentNullException("first"); if (second == null) // O mejor, usando el operador nameof throw new ArgumentNullException(nameof(second)); _first = first; _second = second; } ... }