No, la respuesta a mi segunda pregunta no es el invierno.
Prefacio:
He estado investigando mucho sobre Entity Framework recientemente y algo que me sigue molestando es su rendimiento cuando las consultas no están preparadas, las llamadas consultas en frío.
Revisé el artículo sobre consideraciones de rendimiento para Entity Framework 5.0. Los autores introdujeron el concepto de consultas cálidas y frías y en qué se diferencian, que yo también noté sin saber de su existencia. Aquí probablemente valga la pena mencionar que solo tengo seis meses de experiencia a mis espaldas.
Ahora sé en qué temas puedo investigar adicionalmente si quiero comprender mejor el marco en términos de rendimiento. Desafortunadamente, la mayor parte de la información en Internet está desactualizada o repleta de subjetividad, de ahí mi incapacidad para encontrar información adicional sobre el tema de las consultas Warm vs Cold .
Básicamente, lo que he notado hasta ahora es que cada vez que tengo que volver a compilar o el reciclaje llega, mis consultas iniciales se vuelven muy lentas. Cualquier lectura de datos posterior es rápida ( subjetiva ), como se esperaba.
Estaremos migrando a Windows Server 2012, IIS8 y SQL Server 2012 y, como junior, me gané la oportunidad de probarlos antes que el resto. Estoy muy feliz de que hayan presentado un módulo de preparación que preparará mi aplicación para esa primera solicitud. Sin embargo, no estoy seguro de cómo proceder con el calentamiento de mi Entity Framework.
Lo que ya sé que vale la pena hacer:
- Genere mis Vistas de antemano como se sugiere.
- Finalmente, mueva mis modelos a un ensamblaje separado.
Lo que considero hacer, siguiendo el sentido común, probablemente sea un enfoque incorrecto :
- Realización de lecturas de datos ficticios en el inicio de la aplicación para calentar, generar y validar los modelos.
Preguntas:
- ¿Cuál sería el mejor enfoque para tener alta disponibilidad en mi Entity Framework en cualquier momento?
- ¿En qué casos Entity Framework se vuelve "frío" de nuevo? (Recompilación, reciclaje, reinicio de IIS, etc.)