2011-01-13 9 views
12

ASP.NET MVC 3 (final) fue lanzado hoy. Cuando esta versión estaba en su infancia, recuerdo haber leído en Codeplex que se estaba considerando el almacenamiento en caché de donuts. ¿Alguien sabe si esto lo convirtió en V3? Parece que no puedo encontrar ninguna información, así que solo puedo (tristemente) asumir que no sucedió.El almacenamiento en caché de Donut está disponible en ASP.NET MVC 3

+0

Déjenme hacer esto bien, el caché de donuts ha estado disponible desde .NET 2. MVC2 lo admite. MVC3 cae soporte ?! ¿Para qué diablos? ¿No hay otras alternativas disponibles además de escribirlo todo usted? Gah, eso no puede ser correcto. – batkuip

Respuesta

15

Sí, lo es. Scott Gu blogged about it:

Además de apoyar la caché de resultados de página completa , ASP.NET MVC 3 también soporta parcial de la página almacenamiento en caché - el cual le permite almacenar en caché una región de salida y volver a utilizarlo en todo solicitudes múltiples o controladores. El [OutputCache] comportamiento para parcial de la página de almacenamiento en caché era actualizado con RC2 de modo que sub-contenido entradas en caché se varían sobre la base de parámetros de entrada en comparación con la estructura de la URL de la solicitud de nivel superior - que hace escenarios de almacenamiento en caché ambos más fácil y más potente que el comportamiento en el RC anterior.


ACTUALIZACIÓN:

Fuera de la caja única de almacenamiento en caché sin cobertura se apoya en ASP.NET MVC 3. Esto le permite almacenar en caché una pequeña parte de la página utilizando el atributo [OutputCache] en una acción infantil. El almacenamiento en caché de Donut, que permite excluir partes de una página que se almacenó en caché, no es compatible. Response.WriteSubstitution no funciona desde ASP.NET MVC 2. Aquí está una good article lo que explica las diferentes opciones de almacenamiento en caché disponibles en ASP.NET MVC 3.


Actualización 2:

He aquí una great article que ilustra cómo donut caching podría habilitarse en ASP.NET MVC 3.

+2

Esto es el caché de agujero de rosca, no el caché de donuts. El almacenamiento en caché de Donut no se admite en la caja en MVC 3. – Levi

+1

@Levi, buen punto. Actualizaré mi respuesta. –

+0

@Darin, gracias por la actualización. Un excelente artículo de hecho. Leí en alguna parte que el objetivo es incluir el almacenamiento en caché de donuts en MVC 4. No estoy seguro de si aguantar o utilizar este paquete nuget ... –

2

Aquí hay un poco más detailed example de Scott, usando la sintaxis Razor.

+1

Excelente enlace pero no estoy seguro de si se trata de un caché, ya que la página no está en caché pero el "agujero de rosquilla" esNo quiero almacenar en caché partes de mi página, sino almacenar en caché la página y dejar partes dinámicas. Es un matiz, pero uno que debe aclararse. –

2

Caché de buñuelos (sí, el verdadero) está disponible como parte de mi 'speed-lib' para MVC: Moth. Trabaja en ambos ASP.NET MVC 2 y MVC 3.

Docs están en the wiki, y los ejemplos están en la carpeta Mvc3.Demo

2

encontré un paquete MvcDonutCaching NuGet mencionado por Denis Huvelle que resuelve el problema de 3 & 4 - pero no lo he probado

Cuestiones relacionadas