2010-09-08 6 views
14

Estoy escribiendo un proyecto asp.net mvc2 con muchas vistas/vistas parciales. Leyendo buenas prácticas de MVC, me han animado a crear ViewModels. Es realmente agradable y tiene sentido hacerlo, pero me doy cuenta recientemente de que ya no puedo recordar fácilmente qué modelo es para qué vista. Espero que haya una buena convención de nomenclatura para ViewModels que pueda manejar grandes proyectos.¿Cuál es la mejor convención de nomenclatura de ViewModel?

Mi pregunta es ¿se puede mejorar esta situación?

+1

He escrito algunas sugerencias ligeramente más detalladas sobre [convenciones de nombres de ViewModel] (http://www.appetere.com/Blogs/SteveM/April-2012/MVC-Framework-ViewModel-naming-conventions) en una publicación de blog, que puede ser útil. – Appetere

Respuesta

18

me gusta que sea sencillo, por ejemplo, si tiene un objeto carpeta con el nombre:

Ver = "FolderView.xaml"

ViewModel = "FolderViewModel.cs"

2

que sea sencillo:

ModelName = ViewName + "Model"; 

Si tiene jerarquías modelo, a veces se necesita para pasar el modelo de la vista a las vistas parciales. En ese caso, se puede renunciar a la regla anterior.

0

He comenzado a dar un paso más y especificar si se usa un modelo de vista para generar un formulario a través de EditorFor al finalizar el nombre con el formulario. Ayuda a que las formas frente a los modelos de visualización simples sean fácilmente identificables.

1

Si mantiene los modelos de vista en el mismo ensamblaje que sus vistas, un truco que utilicé para organizar vistas con modelos de vista además de un esquema de nomenclatura simple como {View Name} ViewModel para la clase de modelo de vista es hacer lo siguiente:

  1. Crear la clase de vista (Shell.xaml)
  2. En el mismo lugar, añadir su clase modelo de vista (ShellViewModel.cs)
  3. Cambie el nombre del archivo de vista de clase modelo para ser el mismo nombre que la vista, pero agregar .mo del de la ruta del archivo (Shell.model.cs)
  4. Editar el archivo de proyecto (ya sea manualmente o utilizando el comando de potencia extensiones en VS)
  5. Busque el elemento de compilaciónpara la clase de vista en el modelo el documento XML proyecto
  6. Añadir un niño DependentUpon elemento cuyo contenido es el nombre de la clase vista
  7. Guardar cambios y volver a cargar el proyecto

Esto hará que la clase de modelo de vista se agrupe visualmente junto con el archivo de código subyacente para la vista.

alt text

+0

Esto parece interesante, pero no estoy seguro de si se consideraría o no una buena práctica. Me interesaría escuchar los pensamientos de otras personas sobre esto. –

+0

Es útil para organizar visualmente el modelo de vista con la vista, de la misma manera que el código detrás está vinculado a la vista. Creo que las mejores prácticas entran en juego con respecto a si debe tener sus modelos de vista en una biblioteca de clases separada de su vista, lo que depende de los escenarios de reutilización y prueba. En algunos proyectos, he tenido los modelos de vista en otra biblioteca, pero en proyectos más simples los he colocado en los mismos proyectos que las vistas. – Oppositional

+1

Es interesante, pero no encaja bien con el hecho de que un modelo de vista puede ser utilizado por múltiples vistas. Además, los archivos agrupados son a menudo clases parciales, que un modelo de vista no puede ni debe ser. –

2

para ASP.NET MVC guardo mis modelos de vista en un espacio de nombres ViewModels.{Controller} y el nombre de la clase es sólo . No uso el sufijo de ViewModel del mismo modo que los archivos de vista no tienen un sufijo de vista.

Cuestiones relacionadas