CategoríaArtículos

Factoría de Objetos: Crea objetos con Expression Trees y atributos

Follow me

Joan Vilariño

Senior .NET Developer at Ohpen
Follow me

Bueno, después de unos meses de inactividad – el trabajo y la familia también existen – vuelvo con más fuerzas que nunca a publicar algunas técnicas nuevas para vuestras aplicaciones en .NET

Esta vez vamos a dedicarnos a crear una factoría de objetos mediante Linq Expression Trees, sumándole el uso de CustomAttributes, lo que nos va a permitir un desacoplamiento total de la factoría respecto a los objetos que crea. Esto permitiría tener una factoría en una capa separada que nadie debería tocar para crear sus nuevos tipos de objeto. Simplemente definiendo la clase y colocando un atributo, la factoría detectará los objetos que sabe crear en el inicio de aplicación sin tener que modificar su código (de hecho no haría falta ni tener los fuentes de la factoría).

Como siempre, podéis bajaros el proyecto completo usando Git o simplemente en formato .ZIP. Tened en cuenta que si queréis usarlo con una versión anterior a Visual Studio 2015, necesitaréis cambiar los Console.WriteLine para que usen string format, ya que estoy usando la nueva sintaxis de C# 6 para generar los textos (que chulada es! ).

Descargar ZIP: https://bitbucket.org/joanvilarino/messagehandlersample/get/62edf410d1ae.zip
Clonar repositorio Git: https://joanvilarino@bitbucket.org/joanvilarino/messagehandlersample.git

Seguir leyendo

Usando dynamic overloads

Follow me

Joan Vilariño

Senior .NET Developer at Ohpen
Follow me

En el año 2010, Microsoft incluyó en .NET un nuevo tipo estático, llamado dynamic. Este tipo, según mi experiencia viendo código de otra gente en mi trabajo o en internet, es muy poco usado, pero si lo utilizamos en algunos escenarios puede ser una herramienta muy potente para hacer nuestro código más limpio y legible.

En este artículo, intentaré explicar que hace dynamic tan diferente del resto de tipos de .NET, y os daré un par de ejemplos claros de su potencia usándolo para hacer “dynamic overloads“.

Como siempre, puedes clonar el proyecto demo desde mi repositorio en BitBucket, o descargar el archivo .ZIP si no usas Git:

Seguir leyendo

!Any() o All()?

Follow me

Joan Vilariño

Senior .NET Developer at Ohpen
Follow me

El dilema

A veces necesitas ejecutar alguna acción para comprobar si un elemento no está presente en una colección, por ejemplo, comprobar si un cliente está en la lista de clientes antes de añadirlo a ella.

Con .NET hay varias maneras de hacer esto: Por ejemplo si tu colección es una List puedes usar Exists(), o si quieres comprobar la presencia de la instancia de ese mismo objeto, puedes usar Contains(). Usando Linq, también puedes hacerlo con Any() y All().

En nuestro artículo de hoy, vamos a ver si es mejor usar !.Any() o .All()

Seguir leyendo

Entity Framework 6.0 code first y TPT, persistencia de colecciones polimórficas

Follow me

Joan Vilariño

Senior .NET Developer at Ohpen
Follow me

Muchas veces las estructuras de datos que necesitamos para nuestra aplicación no son tan sencillas como los ejemplos ideales que encontramos en muchos manuales. A veces necesitamos mecanismos más avanzados para la persistencia de nuestras entidades.

En el artículo de hoy, vamos a crear una estructura de entidades que contiene una colección de elementos polimórfica, es decir, que puede contener objetos de varios tipos, heredando todos ellos de una clase padre común.

El problema de las colecciones polimórficas es que, aunque todos sus componentes heredan de una clase común, no comparten las mismas propiedades en su implementación, con lo cual no pueden ser guardadas en la misma tabla de la base de datos, sino que necesitan una diferente para cada tipo de entidad final.

Este problema es muy común aunque no es fácil de explicar. Así que he creado un pequeño ejemplo en un contexto real para intentar explicarlo mejor, usando Entity Framework 6.0 Code First con entidades POCO y la característica TPT (Table per Type) que nos permite hacer EF 6.0 y nos facilita muchísimo la vida.

El artículo incluye el enlace a mi repositorio Git, donde podéis encontrar una solución de ejemplo totalmente ejecutable, que os permitirá ver por vosotros mismos el resultado.

Descarga el proyecto en formato .ZIP
Accede al repositorio GIT

Seguir leyendo

C# 6.0 Recopilación de nuevas características

Follow me

Joan Vilariño

Senior .NET Developer at Ohpen
Follow me

Como muchos ya sabéis, o algunos puede que no, la nueva versión 6.0 de C# ya está en el horno, y será publicada en breve. Esta nueva versión con nombre en código “Roslyn” es parte de la nueva estrategia “Opennes” de Microsoft, y por ese motivo, puede ser encontrado como open source en su repositorio de GitHub.

He estado leyendo artículos durante un tiempo acerca de las nuevas funcionalidades qua va a incorporar desde los sitios oficiales, desde blogs particulares y de gente que ha estado probando el nuevo Visual Studio 2015 Preview. Al final del artículo tenéis los enlaces a las fuentes que he usado para confeccionar esta recopilación.

Algunos artículos describen sus funcionalidades favoritas, mientras otros intentan dar una visión más global. Es este artículo, hago una recopilación de todas (o la mayoría) de las nuevas funcionalidades, y como contribución por mi parte, daré ejemplos sobre ellas, para intentar dar un uso “en la vida real” de cada una.
Seguir leyendo

A %d blogueros les gusta esto:
Ir a la barra de herramientas