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

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

Nuevo año, nueva dirección, nuevo hosting!

Hola a todos! Espero que estéis preparando vuestras cositas para las inminentes vacaciones de navidad (quien las tenga, claro)!

Con un nuevo año viene una nueva dirección url para mi blog, que a partir de ahora será “http://mycodingcorner.es” (no .com, por favor!). También he movido el site a una nueva compañía de hosting. Veremos como funciona para este 2016.

Asi que, aunque mantendré el antiguo ‘joanvilarino.info‘ apuntando a este blog, actualizad vuestros marcadores (los teníais, no?) ya que en un futuro podría cambiar a una página personal o cualquier otra cosa.

Feliz Navidad y un próspero Año Nuevo para todos!

Abrazos!

Usando dynamic overloads

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

volatile en .NET, entendiendo algo tan “etereo”

He encontrado este buen artículo explicando el uso de volatile al declarar variables en .NET cuando trabajamos con aplicaciones multi-hilo (multi-threaded)

Sorprendentemente, mucha gente ni siquiera sabe que esta keyword existe, así que os paso el enlace al artículo en caso de que a alguien le interese, eso si … el artículo está en la lengua de Shakespeare, así que para los no angloparlantes, tendréis que tirar de traductor.

http://firstcrazydeveloper.com/Blogs/BlogView.html/40/volatile-keyword-in-c?sthash.1pTifYFT.mjjo

Auditando registros en Entity Framework .NET

Muchas veces nuestros proyectos requieren mantener algún tipo de auditoría en los registros de la base de datos para las inserciones y cambios, de manera que podamos saber quien creó un registro o el último usuario que lo modificó.

Cuando tenemos montones de entidades y mapeos corriendo arriba y abajo por nuestras capas de la aplicación, a veces es difícil saber dónde y cómo tenemos que solucionar esta tarea.

En este artículo mostraré una buena técnica para implementar auditoría de registros usando Entity Framework. Seguramente podrás encontrar otras aproximaciones que puedas considerar mejores, pero ésta es una manera limpia y simple, y de hecho, es la que uso en mis proyectos a diario.

Para la demostración, usaré como base un proyecto que creé para mi artículo anterior “Entity Framework 6.0 code first y TPT, persistencia de colecciones polimórficas“. Lo has leido ya, verdad?

Clonar repositorio: https://joanvilarino@bitbucket.org/joanvilarino/entityframework_tpt.git
Descargar ZIP: https://bitbucket.org/joanvilarino/entityframework_tpt/downloads

Seguir leyendo

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