Pregunta

Problema:

Para asp.net mvc aplicaciones, que ignoran la carpeta de dominio y escribir el modelo de dominio en un proyecto de biblioteca independiente.

Visual Studio, con tal proyecto una biblioteca, tendrá espacio de nombres en una carpeta a carpeta. Por ejemplo, si mi proyecto de biblioteca se llama:

ES.eLearning.Domain

y tengo una carpeta llamada Servicios, será espacio de nombres automática todas las clases en los Servicios carpeta como:

ES.eLearning.Domain.Services

¿Qué es todo muy bien, pero me parece un exceso. Mis proyectos son relativamente simples y lo que no hay posibilidad de conflictos de nombres de clase. Incluso si lo hubiera, el compilador recogerlo.

Así que acabo de editar manualmente los nombres de espacio de nombres para el nombre del proyecto, es decir:

ES.eLearning.Domain

De este modo, cuando se desarrolla la parte delantera, el proyecto modelo de dominio es sólo una caja negro que ofrece, así, un modelo de dominio. Y no veo el punto de acoplamiento de los nombres de espacio de nombres a los proyectos de la estructura de carpetas, en lugar de tratarla como un bloque funcional.

Así surgen dos preguntas:

  1. ¿Es esta mala práctica? Si es así, ¿por qué? Recuerde:. Estos son pequeñas y medianas proyectos

  2. ¿Hay una manera de contar VS 2010 cómo nombrar mis espacios de nombres?

Gracias

Nota: En mi denominación del proyecto, ES es el cliente, e-learning es la aplicación, de dominio es el componente

PD: otras preguntas sobre las convenciones de nombres de espacio de nombres que he encontrado en dirección SO diferentes temas. Así que no es un duplicado por lo que yo puedo determinar.

¿Fue útil?

Solución

Para evitar una carpeta particular, obligando a sus contenidos a utilizar el nombre de la carpeta como una parte del espacio de nombres, puede hacer clic en la carpeta, seleccione "Propiedades" y luego cambiar "Espacio de nombres de proveedores" a False. Que habría que hacer para todas las carpetas a las que se aplica, sin embargo, así que no estoy seguro si eso es realmente respondido a su pregunta completamente.

Editar . Miradas como ReSharper añade esta funcionalidad

Otros consejos

Coaxing su IDE para utilizar una convención de nomenclatura que se adapte a su entorno particular es una buena práctica. Puede utilizar el cuadro de espacio de nombres predeterminado en la ficha Aplicación de las propiedades del proyecto para cambiar el espacio de nombres que VS inserta automáticamente en los archivos de clase.

No estoy seguro de si es posible configurar en VS2010 para desactivar esta .. pero yo no haría eso.

Si el archivo de código colocado en la carpeta de dominio, su espacio de nombres debe ser Company.Domain. Si tiene dominio sub carpeta de servicios, espacio de nombres debe ser Company.Domain.Services. Es una buena (y lo que es importante - común, la práctica).

Es mejor que se adhieren a las normas, sobre su violación:)

Mis sugerencias para utilizar final del singular, mientras que nombrar espacios de nombres, carpetas y clases. Por ejemplo

namespace ES.eLearning.Domain.Services

se hubiese gustado estar tan

ES.eLearning.Domain.Service // <-- note missing "s"

Y otro ejemplo de uso en el código fuente:

ES.eLearning.Domain.Constants.FileTypes.Text

podría ser "mejor" para comprender como

ES.eLearning.Domain.Constant.FileType.Text

Es todas las preferencias personales y no es una regla. Sólo una pequeña cosa que podría hacer que el código (espacio de nombres) más corto y más fácil de leer al mismo tiempo.

PS. Por otro lado ASP.NET MVC no se sigue esta "regla":

Content
Controllers
Models
Scripts
Views

Sin embargo, nada impide que "el cambio de nombre" en el código fuente de todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top