He oído que MVC .NET no tiene estado. ¿Cuáles son las implicaciones de esto y por qué MVC es apátrida?¿ASP.NET MVC es sin estado?
Respuesta
MVC no tiene estado porque HTTP es. No hay nada en HTTP que indique cuándo comienza o termina una sesión.
Cada estructura web trata de superar esto mediante el uso de una cookie o las funciones de Solicitud/Respuesta, como la cadena de consulta o la publicación FORM.
¿Quiere decir que todo a través de HTTP es sin estado? WebForms se ejecuta en HTTP también. –
@Henk WebForms usa viewstate y POST para mantener el estado. – Ryan
@HenkHolterman: Sí. HTTP es sin estado. No hay "sesión" WebForms imita una sesión al usar un tiempo de espera y transportar su información a través de la estructura de solicitud/respuesta. Nunca recibirá una notificación en HTTP cuando un usuario cierre su navegador web/"sesión". – jgauffin
MVC no es (totalmente) apátrida. No hay un marco web.
Creo que esto se refiere al hecho de que MVC suprime el campo _VIEWSTATE.
Pero proporcione un enlace o más información.
, diría que todas las comunicaciones Web no tiene estado, excepto algunas de las nuevas tecnologías como SignalR [Async signaling library for ASP.NET to help build real-time, multi-user interactive web applications]
.
Realiza una solicitud y obtienes una respuesta, es decir, tal vez lo que estás pensando no es utilizar ViewState como en los formularios web.
la web no tiene estado, por lo tanto, cualquier elemento creado sobre http es apátrida. por apátrida quiero decir que cada solicitud/respuesta es una unidad atómica sin conocimiento de ninguna solicitud previa.
hay mecanismos con http que le permiten mantener algún tipo de estado entre las solicitudes como la Sesión y la Aplicación, pero en general, se deben utilizar lo menos posible.
Webforms intenta crear la ilusión de estado al presentar ViewState y Postback. Pero esto no cambia el hecho de que la web es apátrida.
Estado es administrado en ASP.NET (MVC y WebForms) a través de several means:
- Sesión
- Galletas
- mensajes Forma
- aplicación
- cadena de consulta
- caché
- Contexto
MVC elimina ViewState, lo que significa que los controles (cuadros de texto, casillas de verificación, etc.) pierden sus valores cada vez que se vuelve a publicar una página. Necesitas repoblarlos manualmente o por otros medios (por ejemplo, el enlace del modelo).
MVC no es verdaderamente sin estado, pero elimina una de las formas más comunes de estado persistente en ASP.NET: el ViewState.
- 1. ASP.NET MVC Session Estado
- 2. Buiding aplicación ASP.NET sin estado de sesión?
- 3. asp.net mvc botón de opción estado
- 4. Administración del estado en ASP.NET MVC
- 5. asp.net C# MVC: ¿Cómo vivo sin ViewState?
- 6. ¿Es HTTPS con estado o sin estado?
- 7. Usando ASP.NET MVC sin ORM
- 8. asp.net mvc htmlattribute sin valor
- 9. ¿Qué es ASP.Net MVC?
- 10. .NET - ¿Es posible usar ASP.NET sin MVC usando HTML 5?
- 11. ruta ASP.NET MVC devolver 404 sin acción
- 12. ¿Cómo se usa WebAPI sin ASP.NET MVC?
- 13. ASP.NET MVC sin MicrosoftAjax.js y MicrosoftMvcAjax.js
- 14. ASP.NET MVC muestra la fecha sin tiempo
- 15. Desarrollando para ASP.NET-MVC sin Visual Studio
- 16. HttpModule con ASP.NET MVC sin llamar
- 17. Asp.net mvc no puede funcionar sin App_Data
- 18. ASP.Net MVC vistas parciales manteniendo su estado modelo?
- 19. 304 de estado con FileResult en ASP.NET MVC RC1
- 20. ¿Es relevante ViewState en ASP.NET MVC?
- 21. ASP.Net MVC - Códigos de estado HTTP (es decir, 303, 401, 404, etc.)
- 22. ASP.NET MVC: ¿cómo devuelvo el estado 304 "No modificado"?
- 23. Autenticación de usuario sin estado de sesión en ASP.NET
- 24. ASP.NET MVC ¿Estado de sesión usando el particionamiento de estado, MongoDB o Memcached o ...?
- 25. ASP.Net MVC y estado: cómo mantener el estado entre las solicitudes
- 26. ¿Cuál es el estado de las etiquetas runat = "server" en ASP.NET MVC?
- 27. ¿Es ASP.net MVC View una "clase"?
- 28. ¿Cuál es la diferencia entre ASP.NET y ASP.NET MVC?
- 29. ASP.NET MVC y ViewState
- 30. Es Asp.Net MVC + CSLA + DDD Posible
Quizás lo que se quiso decir es que no mantiene viewstate, como las páginas web ASP.NET. Eso es verdad. Esa elección encaja mejor con la naturaleza sin estado de HTTP y es probable por qué fue elegida. Solo los diseñadores pueden decir con certeza, aunque yo, por mi parte, me regocijo en el hecho. – tvanfosson
¿Puede proporcionar más información o enlaces? Tal como está ahora, su pregunta se basa en una declaración desconocida de un "hecho" dudoso. – 7hi4g0