En las aplicaciones tradicionales de Web Form de ASP.NET, los UserControls son una gran manera de encapsular la funcionalidad para que pueda ser reutilizada. Sin embargo, los UserControls no encajan bien en el modelo MVC. A menudo hacen un uso intensivo de ViewState y borran la separación de preocupaciones que MVC promueve.¿Cuál es la unidad de reutilización en las aplicaciones .NET MVC?
Mi pregunta es, ¿cuál es el mejor paquete de una funcionalidad para que se pueda compartir en todas las aplicaciones de MVC?
Como ejemplo, considere una desde/hasta la fecha-selector de control de usuario que:
- permite a un usuario seleccionar dos fechas, ya sea mediante una superposición de Javascript o escribiendo en día, el mes y el año en campos separados
- pueden ser configurados por defecto a cualquiera de hoy y mañana las fechas o fechas de los desarrolladores elegir
- valida las fechas que vuelve del usuario para garantizar la de la fecha es antes de la hasta la fecha
- expone de y a propiedades que pueden ser ac cesado por código detrás
¿Cómo podría construir algo como esto en .NET MVC para poder reutilizarlo fácilmente?
Tenga en cuenta que para emular completamente la funcionalidad de Control de usuario, el componente MVC tendría que gestionar los datos del formulario enviado y la validación, no solo la presentación.
En primer lugar, ViewState se puede deshabilitar en formularios web para los controles que no lo usan. Es absolutamente incorrecto decir: "Si recuerdo que reutilizar correctamente los controles de usuario en los proyectos clásicos de Asp.net fue un problema y nunca fue realmente la mejor manera de crear realmente componentes reutilizables". Los controles de usuario son ideales para la reutilización en una sola aplicación frente a los controles de servidor personalizados para su reutilización en múltiples aplicaciones. Los formularios web son GRANDES en lo que respecta a la reutilización, por lo que no deben minimizarse. –
Sin mencionar que a medida que codifica estos componentes reutilizables correctamente, su codificación será más fácil y mucho más rápida a medida que construye su biblioteca (o compre una biblioteca y la amplíe). ¿Soy el único que piensa que la reutilización es un gran problema aquí? Y la gente no debería ir a buscar esta aplicación y esa aplicación ... tenemos que mantener las cosas consistentes y si tienes la mitad de tu sitio en MVC, la mitad en formularios web, más poder para ti y un poco desagradable. –