Una sinfonía en C#

Un pequeño aporte a la comunidad de habla hispana.

Novedades de C# 6: Inicializadores de diccionarios

Esta es simple pero muy práctica, en el pasado para inicializar los valores de un diccionario teníemos que hacer esto:

var capitales = new Dictionary()
{
    { "Argentina", "Buenos Aires" },
    { "Francia", "París" },
    { "España", "Madrid" }
};

Ahora podemos hacer así:

var capitales = new Dictionary()
{
    ["Argentina"] = "Buenos Aires",
    ["Francia"] = "París",
    ["España"] = "Madrid"
};

Podemos señalar como ventaha que es más claro cuál es el nombre y cuál el valor.

Nos leemos.

Novedades de C# 6: Interpolated String

Vamos con otra de las novedades de C# 6, en este caso aquellos que hayan usado Ruby lo conocen bien, básicamente es la posibilidad de declarar un string y que el compilador detecte (por contexto) las variables y sus propiedades para reemplazar dentro del string, por ejemplo.

Cómo se hacía antes?

Antes hacíamos esto:

var leonardo = new Usuario { Apellido = "Micheloni", Nombre = "Leonardo", ID = 123 };

Console.WriteLine("Hola mi nombre es {0}, {1}, y mi ID es {2}", leonardo.Nombre, leonardo.Apellido, leonardo.ID);

Básicamente queremos mostrar el contenido de la variable “leonardo” y usarmos el clásico string.format, bien, eso tiene varios problemas:

  • Es engorroso
  • Es propenso a errroes
  • No es claro
  • Etc.

Con String Interpolation podemos hacer esto:

var leonardo = new Usuario { Apellido = "Micheloni", Nombre = "Leonardo", ID = 123 };

Console.WriteLine($"Hola mi nombre es {leonardo.Nombre}, {leonardo.Apellido}, y mi ID es {leonardo.ID}");

Lo interesante es que el compilador detecta las variables y sus propiedades por contexto (como yo usé esa variable podría haber usado parámetros del método o cualquier cosa en el contexto), además de esto tenemos intellisense

image

Más allá de simples strings

Podemos hacer mucho más que referenciar variables en nuestro scope, por ejemplo:

Console.WriteLine($"El promedio entre 1 y 3 es {new[] { 1, 3 }.Average()}");

Les dejo la referencia completa a esta capacidad de MSDN.

Nos leemos.

Links útiles para desarrollar en Windows 10

Les comparto un conjunto de links a recursos para desarrollar en Windows 10

image

Las herramientas

Desde acá se pueden descargar las herramientas de desarrollo incluídas las versiones gratuítas

Qué hay de nuevo?

En éste link encontramos qué podemos hacer con Windows 10, Universal app, Juegos.

Empezar a desarrollar

Éste link tiene recursos para empezar, qué usar, qué se puede hacer y más.

Diseñar Universal App

Si queremos aprender sobre lineamientos para que nuestra aplicación se vea bien en todas las plataformas éste es el link.

Cómo hago para?

Un listado de artículos y referencias para aprender a usar la API de Universal Apps.

Y cómo publico las aplicaciones?

Una vez que tengamos nuestra app lista para público podemos aprender a publicar desde este link.

Y los IT pro?

También hay recursos para la gente de IT en éste link.

Videos, Channel 9

El recurso principal si nos interesan los webcast y video tutoriales sobre todo lo relacionado con Windows muy recomendable.

Nos leemos.

Novedades de C#6: inicializar propiedaes

Esta versión de C# tiene muchas nuevas características muy interesantes, acá va la primera.

Ejemplo

Ahora podemos asignar un valor a una propiedad sin necesidad de declarar el backing field, o sea, en lugar de hacer esto:

private string name = "pedro";
public string Name
{
    get
    {
        return name;
    }
    set
    {
        name = value;
    }
}

Ahora podemos hacer esto

public string Name { get; set; } = "pedro";

Nos leemos.

Cómo instalar Live Writer en Windows 10

Hace tiempo que no posteo por varios motivos: vacaciones, cambios de proyectos y el más reciente: pasé a Windows 10 y no podía instalar Windows Live Writer, acá un resumen para hacerlo:

wlsetup-all.exe /AppSelect:Writer /q /log:C:\temp\Writer.Log /noMU /noHomepage /noSearch

Y en unos instantes lo instala, listo.

Les dejo el link a la nota original donde encontré la solución.

Nos leemos.