Monthly Archives: septiembre 2014

Cache nivel 2 de entity framework

¿Que es Cache de nivel 2 en entity framework?

Como todos sabemos entity framework, a partir de ahora ef, construye y ejecute instrucciones SQL a una base de datos transformando el resultado a un objeto que luego sera controlado dentro de un contexto. Para poder cachear estos objetos debido a que estan controlados y asociados a un determinado contexto si los cacheamos directamente luego cuando los recuperemos de la cache donde el contexto es otro nuevo no podremos añadirlo al nuevo contexto de una forma sencilla.

Para solucionar este problema, en lugar de cachear los objetos se cachean los resultados antes de ser transformados en objeto esto es lo que se llama una cache de nivel 2.

Cache level 2 EF

¿Que implementaciones existentes hay?

Tenemos varias soluciones ya implementadas, como por ejemplo Ncache y EntityFramework.Cache, que se basan en los mismo. Nosotros trabajamos con EntityFramework.Cache, disponible desde los paquetes Nuget. Es una implementación sencilla y básica.

 

Continue reading

Como precompilar las vistas en Entity Framework

Dentro de los procesos internos del propio Entity Framework (a partir de ahora EF) hay uno que hay que destacar que es el de la compilación/generación de las vistas en tiempo de ejecución. Estas vistas son una serie de metadatos que genera el EF para poder generar las sentencias SQL del modelo de datos. Este proceso es el más costos de todos, por este motivo la primera vez que se ejecuta una sentencia el EF tarda más que en la segunda vez. ¿Como podemos solucionar esto? pues depende de la versión del EF.

En las versiones EF inferiores a la 6 se precompilaban en el momento de compilar el proyecto. Para más información http://msdn.microsoft.com/es-es/library/vstudio/bb896240%28v=vs.100%29.aspx

En la versión inicial de EF, la 6.0.0, se han reportado bugs en el proceso de generación de las vistas haciendolo aún más lento, por esta razon se recomienda actualizar a la última versión (6.1.1).

Para la versiones superiores o igual a la 6, la manera de generar las vistas ha cambiado por lo tanto ya no nos sirve la precompilación que se hacia en la versión 5. Ahora no es necesario generar los metadatos del edmx, ejecutar el edmgen, etc. Tenemos la posibilidad de modificar la cache de la generación de las vistas (siendo esta la nueva manera).

Interactive Pregenerated Views for Entity Framework 6

Para facilitarnos un poco la tarea nos tenemos que descargar el paquete nuget “Interactive Pregenerated Views for Entity Framework 6
Continue reading

Configurar proyecto en Visual Studio 2012 para realizar transformaciones de los archivos .config

Nuestro proyecto tiene como necesidad tener varios archivos de configuración (.config). Debido a esta necesidad y al tener varios entornos (dev, test y prod) necesitamos que dependiendo del entorno estos archivos tengan una configuración especifica por entorno.

Para conseguir que en estos archivos se realice la transformación dependiendo del entorno necesitamos realizar una serie de pasos que indico a continuación.

  1. Modificar las propiedades de todos los archivos de configuración excepto el principal
    1. Build Action : None
    2. Copy to output Directory : Do not Copy
  2. Descargar de la solución el proyecto.
  3. Editar el proyecto (boton derecho -> editar …)
  4. Añadir las lineas correspondientes para forzar la transformación.
  5. Modificar proyecto de azure.

Continue reading