Mi práctica es similar a lo que dice Jon. La gran mayoría de las enumeraciones y constantes están obviamente vinculadas a una clase o módulo particular y se declaran públicas allí.
El nivel más bajo de mi software se llama Utility y contiene rutinas matemáticas y otras funciones y métodos de utilidad general (en lugar de utilidad específica para el modo de esa aplicación). Hay un módulo que tiene como un conjunto de funciones que solo son funciones de utilidad/subrutinas que no tienen un tema común. Es en esa área donde entran todas las enumeraciones o constantes.
Hay un área similar para el modelo de aplicación donde van las utilidades que son de uso general para esa aplicación. Y eso donde van las constantes que no pueden vincularse a ninguna clase del MODELO.
Así que hay tres áreas en constante se puede encontrar en mi marco personales
Las declaraciones de clase El módulo de utilidad general del modelo de aplicación El módulo de utilidad general del conjunto de utilidad.
En la práctica, solo se tenía que declarar un puñado de docenas de enum y constante en cualquiera de los módulos de utilidad. La mayoría de ellos son desaceleraciones de Win32 utilizadas por la función Win32 que se importan a mi ensamblado.