sábado, 21 de noviembre de 2015

Breve parada en el camino



Esta entrada, es un poco atípica en mi blog, y es un poco explicativa, dado el tiempo que llevo sin postear.

El motivo de todo esto, es que estoy muy metido en el desarrollo de un componente, que creo que puede ser bastante revolucionario. Es un UserControl de WPF, realizado completamente en TDD puro y con MVVM. Dentro del mismo también utilizo la TPL (Task Parallel Library), para darle soltura y respuesta rápida.

Este trabajo, está haciendo que el tiempo de desarrollo aumente, y con él el retraso en nuestro curso de LinQ. Intentaré ir introduciendo alguna entrega más entre medias del desarrollo, ya que todavía queda mucha tela que cortar.


Mi idea es acabar el curso de LinQ por completo, y a ser posible poder iniciar otros con distinta temática, pero con el mismo paradigma, que no es otro que entrar a fondo en los temas, con los ejemplos más clarificadores posibles, alejándonos de los clones y arquetipos copy/paste que aparecen en la red.

Así que lo único que falta, es un poco de paciencia.


jueves, 27 de agosto de 2015

Novedades C# 6.0 (Parte 3)






Vamos a finalizar esta serie de posts de novedades de C# 6.0, entrando en profundidad dentro de los apartados de Name of Expressions, la utilización de Await en los bloques catch y finally, y continuando con las excepciones, acabaremos con una novedad adoptada de Visual Basic, que no es otra que los bloques catchs condicionales o filtrado de excepciones.




domingo, 16 de agosto de 2015

Novedades C# 6.0 (Parte 2)




Esta segunda entrega de novedades de C# 6.0, la vamos a utilizar por completo para explicar el Null Conditional Operator (.?) o Evaluador de null en código. Parte de este operador, ya era un viejo conocido, utilizado en versiones anteriores, para realizar operaciones ternarias y en conjunción doble para tratamientos de valores nulos en tipos por referencia y en tipos nullables. En esta nueva versión, toma de nuevo protagonismo al vincularse con el punto (.) y nos intenta hacer la vida un poquito más fácil.


Vamos a ver de qué va.






martes, 11 de agosto de 2015

Novedades C# 6.0 (parte 1)




Vamos a hacer una pequeña pausa dentro de nuestro curso de LinQ, y aprovechando que la nueva versión de Visual Studio, del Framework y de C#, ya están en la calle, daremos un repaso a las nuevas características que nos trae el lenguaje del ‘C Sostenido’.

De primeras podemos decir que los cambios introducidos dentro de la nueva versión del lenguaje nativo de la plataforma .Net, no son, ni demasiado bestias, ni demasiado amplios, pero contribuyen y favorecen a una mejor lectura, compresión y organización de nuestro código.


Para intentar hacer que los posts, sean lo más didácticos posibles, pondré cada uno de los ejemplos de manera inicial, como se hacían antes (versión 5.0 de C#) y como lo podremos hacer ahora (versión 6.0 de C#) para poder ilustrarnos con las diferencias.



lunes, 15 de junio de 2015

Set Operators, Concat, Union, Intersect, Except y Distinct




Seguimos con los operadores de LinQ, ahora le toca el turno a los ‘Set Operators’ u Operadores de Conjunto.

Los operadores de conjunto, nos permiten realizar actuaciones sobre dos secuencias (IEnumerable<T>) del mismo tipo de datos, dando como resultado una colección de este mismo tipo. Todas y cada una de sus ejecuciones se realizan de forma diferida o perezosa.

En caso de que alguna de estas colecciones sea null en el momento de realizar la llamada, el compilador lanzará un ArgumentNullException.

Vamos a detallar cada uno de sus operadores, para intentar que todo esto quede un poco más claro, haré un par de ejemplos para cada operador, uno con datos simples, colecciones de tipo int, y otro con una de las clases más utilizada en nuestros ejemplos y que tiene su definición en los post anteriores, el tipo Automovil. El objetivo  es comprender lo imprescindible, que es el uso de las sobrecargas que admiten un comparador de tipo IEQualityComparer<T> para los tipos compuestos, en el que indicaremos al compilador como queremos que se diferencien 2 objetos de este tipo.


Como en todas las reglas, hay una excepción y esta no iba a ser menos. El operador Distinct, cambiará, para utilizar una única colección en decremento de dos, pero eso lo contaremos un poquito más adelante.