Deserializar JSon a tipo anónimo .Net

En ciertas ocasiones podemos necesitar deserializar un objeto pasado desde un cliente en formato JSon a un tipo .net anónimo. Por ejemplo si utilizas MongoDB con el driver NORM y pretendes filtrar u ordenar de una manera dinámica, es difícil pasar estos objetos a la query para poder generar un filtro dinámico.

Para hacernos una idea esta sería una consulta paginada y  con un filtro sencillo con NORM:

//NoRM anonymous objects:
return GetRepository().GetCollection("Personas")
   .Find(
          new { Nombre = Q.IsNotNull() }, //Where
          new { Fecha = OrderBy.Descending }, //OrderBy
          10, // Nº elementos de la secuencia "Skip"
           0 // Primer elemento de la secuencia "Take"
);

Esta consulta nos devolvería las 10 primeras personas con Nombre que no sea null. Sigue leyendo

Anuncios

MongoDB con Norm

Últimamente se ha puesto de moda las bases de datos NoSql y realmente es una buena alternativa si no necesitas una base de datos relacional y es mucho más potente que utilizar por ejemplo un fichero XML.

MongoDB es una base de datos documental no existe el concepto de tabla, solo contamos con colecciones de objetos en formato JSon y de código abierto. Una solución escalable y de alto rendimiento que nos permite trabajar con índices, replicación y alta disponibilidad. MongoDB está realizado en C++ pero su cliente soporta múltiples Drivers de lenguajes de programación, tanto por mongodb.org como por la comunidad de desarrolladores. Para .Net tiene drivers para C# y F#.

Para mis ejemplo utilizaré Norm un driver para C# que facilita la interacción con las colecciones, la serialización/deserialización de objetos JSOn como documentos “BSON” a tipos .NET y la utilización de LinQ-To-Mongo. Otra de las utilidades que he utilizado es mongoVUE para administrar nuestras bases de datos de una forma gráfica.

Vue

Con esta utilidad podéis ver los datos en formato árbol o en JSon. Sigue leyendo