Pregunta

Yo (con suerte) a tomar en un gran proyecto para migrar una aplicación de Visual FoxPro empresa a C # 3.0 en .NET 3.5. Yo sé que esta aplicación tiene un gran número de configuraciones que tienen un impacto en todo, desde las configuraciones multi-usuario / multi-sitio reportar propiedades. Hay al menos 150 configuraciones diferentes que tienen el ámbito actualmente a nivel mundial.

Los ajustes se almacenan actualmente solo en forma de bits en la base de datos de la aplicación, lo que les impide ser cambiado a nivel de usuario, ya que todos los casos comparten la misma db.

Mi pregunta es, ¿sabe usted de cualquier manera de manejar el almacenamiento de estos valores que les permitan ser cambiados por usuario, sin sacrificar el rendimiento? También tendría que ser almacenados de una manera que permite que los valores pueden cambiar mientras se ejecuta la aplicación. se agradecería cualquier idea.

¿Fue útil?

Solución

El archivo de Settings.Settings estándar Creo que ofrece esta funcionalidad, incluyendo la aplicación o usuario de ámbito de variables. Aunque no estoy 100% seguro de si los cambios son recogidos sin reiniciar la aplicación.

Vea aquí para más información: MSDN: Utilización de las configuraciones en C #

Otros consejos

Si usted quiere ir "empresa", se puede tratar de tener una mesa definiciones de ajuste, junto con una mesa de configuración del usuario.

Las definiciones de ajuste tendrían el PK definido por una columna de dominio (por ajustes de interfaz de usuario, la configuración de conexión, configuración de idioma y así sucesivamente ...), y un identificador de ajuste. Una tercera columna definiría el valor por defecto / global.

La configuración de usuario tendría el conjunto PK a establecer definiciones PK + id de usuario y una columna de valor de ajuste, varchar (x).

Si la aplicación es el lenguaje consciente, columnas identificador de idioma, debe añadirse a ambas tablas.

Ahorro de usuario cambios en la tabla configuración de usuario deben ser trivial. Al ser notificado cuando el cambio configuración global es un poco más complicado.

EDIT: una cosa a tener en cuenta es que el repliegue siempre a algún defecto:. Idioma global / Predeterminado

Añadir un campo de usuario a la tabla de base de datos de la aplicación que almacena las configuraciones, y luego agregar el usuario actual como un parámetro para toda la lectura / escritura de las llamadas a esta tabla.

Es posible que tenga que trabajar con lógica para los artículos que son datos / aplicación específica vs usuario específico. En VFP (FoxPro), las tablas y sus respectivas claves primarias son, evidentemente, el mismo, independientemente del usuario. Otras cosas, como los valores por defecto pueden ser personalizable por cada usuario, cuentas, acceso, capacidades individuales para añadir / editar / borrar, etc.

HTH

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