tutorialspoint tutorial route page net mvc life guide asp .net asp.net asp.net-mvc abstraction

.net - tutorial - System.Web.Abstractions: ¿para qué sirve?



page life cycle in asp net mvc (2)

De hecho es para burlarse. - HttpContext es una clase sellada y no puede ser burlado (fácilmente). HttpContextBase no está sellada y creo que sus métodos son virtuales, lo que hace que la burla sea mucho más fácil.

Si bien no puede crear una nueva instancia de HttpContextBase (por ejemplo, para usar en WebForms), puede obtener una instancia a través de:

var ctx = new HttpContextWrapper(HttpContext.Current);

... ¿absolutamente nada?

¿Qué parte del rompecabezas se llena para ASP.NET WebForms y ASP.NET MVC respectivamente?

¿Se puede crear de alguna manera una aplicación base ASP.NET * que use System.Web.Abstractions para que se pueda usar en ambos tipos de aplicaciones web ASP.NET?

En ese caso, ¿cómo volvieron a ajustar las clases en System.Web.Abstractions de nuevo en ASP.NET WebForms?

No puedes crear objetos nuevos desde el espacio de nombres, por lo que no puede usarse para burlarse, ¿verdad?

Actualización : Lo siento por no tener claro que conozco el problema con las pruebas de HttpContext y otros objetos ASP.NET build-it. Pero gracias por las buenas explicaciones de todos modos.


El espacio de nombres contiene tipos que están diseñados para envolver las clases principales de ASP.NET (como HttpSessionState).

¿Qué, quieres saber por qué?

Muchas de estas clases básicas de ASP.NET son selladas o estáticas, lo que hace imposible romper las dependencias entre ellas y su código. Eso significa que no puedes burlarte de estas dependencias principales, lo que hace que sea mucho más difícil probar tu código ASP.NET. Entonces, en lugar de manipular directamente el HttpResponse directamente en el código, lo manipula a través del HttpResponseWrapper , que, durante el tiempo de prueba, puede apagar o simular para controlar cómo se comporta el objeto HttpResponse.

Si alguna vez ha pensado en crear estos envoltorios, o ha implementado uno o dos de ellos antes, sabría que hay mucho trabajo envuelto en ese espacio de nombres, y yo, por lo menos, me alegro de que lo hayan hecho.