.net - que - un espacio de nombres no puede contener directamente miembros como campos o métodos
¿cómo organizas tus espacios de nombres? (4)
Así que tengo entidades lógicas (persona, país, etc.), elementos / controles GUI, controladores / controladores de navegación y datos, luego cosas como cuadrúpedos y temporizadores, y siempre lucho con la separación limpia de estas cosas en espacios de nombres lógicos.
Por lo general, tengo algo como esto:
- Leviathan.GUI.Controls
- Leviathan.GUI.Views
- Leviathan.Entidades
- Leviathan.Controllers (datos y otras cosas)
- Leviathan.Helpers (árboles y otras cosas)
¿Hay alguna buena guía sobre esto? Necesito detener este lío.
Intenta evitar el "y otras cosas" o "misc". categorías, si está poniendo las cosas en estas categorías, está fallando en organizarlas de verdad.
Normalmente creo un espacio de nombres para cada nivel, como UI, lógica de negocio y base de datos. Me obliga a separar los niveles. Creo otros espacios de nombres dentro de ellos según los componentes del sistema.
Para aplicaciones
Company.Product.Tier.Sub.Sub
donde me gusta obtener Nivel de Modelo, Vista, Controlador u otros nombres establecidos (Datos)
Pero para nuestros controles, terminamos con
Company.Product.LogicalFeatureGrouping
o
Company.Product.Addon
a veces es
Company.Product.LogicalFeatureGrouping.Addon
Sigo el ideal de Java / python de que los espacios de nombres deben seguir la estructura del directorio.