Tengo algunos valores de configuración para una aplicación web asp.net. Serán mantenidos por un administrador del sistema una vez que el sistema entre en funcionamiento. ¿Debo almacenar estos valores en la base de datos o en un archivo de configuración? ¿Hay una mejor práctica para este tipo de cosas?¿Valores de configuración en DB o archivo?
Respuesta
Es fácil y conveniente crear una interfaz sólida para editar los valores en la base de datos.
Es menos fácil crear uno bueno para el archivo de configuración.
Por lo general, querría almacenar todo lo que desea que sus usuarios/administradores puedan editar posteriormente en la base de datos. Todo lo que solo necesita ser tocado durante cambios serios como la reinstalación, etc., es mejor en el archivo de configuración.
Dependiendo del contexto de la información de configuración, puede optar por dejarlo en el archivo web.config o puede crear tablas de mantenimiento para él en la base de datos. Por lo general, mantendría las cosas más específicas para el back-end, como cadenas de conexión, ubicaciones ftp, nombres de usuario/contraseñas (para la aplicación, no permisos de usuario) en la web.config embargo.
Normalmente guardo más información relativa que se relaciona con la información en la base de datos en lugar de la aplicación misma, en la base de datos.
Sin embargo, todo esto se basa libremente y no siempre es el caso.
La actualización de web.config hace que IIS recicle el sitio. –
Como dije, todo depende del contexto. – thismat
Es cierto que cuando cambia el archivo de configuración, la aplicación reacciona de inmediato. El próximo golpe ve un comportamiento nuevo y no viejo. * No * es cierto que IIS se recicla. ASP.NET utiliza las notificaciones de cambio de archivo NTFS, por lo que se le informa cuando cambia el contenido del archivo. Eso es mucho más ligero que reciclar IIS. –
Prefiero evitar las bases de datos si puedo y no necesito el rendimiento. Si necesita/tiene una base de datos, entonces diría que ponga todo lo que pueda en un solo lugar. Una cosa para administrar.
Siempre recomendaría la base de datos simplemente porque puede crear una interfaz de usuario de administración relativamente fácil y auditar todos los cambios con facilidad similar. Aunque puede lograr lo mismo con los cambios en un archivo, la ruta de la base de datos con algún tipo de área de control Admin siempre es preferible. Especialmente cuando quieres saber quién cambió qué cuándo.
También en nuestro entorno, cambiar un archivo de configuración si hubo un error, implica la totalidad de las aprobaciones/etc. del proceso de gestión de cambios, lo cual es bastante doloroso. Entonces, si se toman el tiempo para incorporar la configuración en una base de datos, creo que a la larga funcionará mejor. Solo mi $ 0.02.
De acuerdo, si la auditoría es esencial, esa es una razón para la base de datos. Si su proceso de gestión de cambios es diferente simplemente porque la información conceptual se almacena en un archivo en comparación con una base de datos, ese proceso es defectuoso. –
prefiero un archivo de texto de configuración, estilo ini o estilo XML para estas dos razones:
1 - Usted puede poner comentarios en el archivo de texto.
2 - Los editores de texto tienen un comando "deshacer".
Creo que las bases de datos son un gran lugar para los valores de configuración para aplicaciones distribuidas en las que desea que la configuración de los usuarios esté disponible sin importar qué computadora usen.
Los valores de configuración almacenados en archivos son muy útiles para configuraciones específicas de computadora (como si usa una unidad mapeada para identificar una ubicación y cada usuario puede tener una asignación diferente, como una unidad de CD/DVD por ejemplo).
Sin embargo, si aún no tiene una base de datos para la aplicación que está desarrollando, podría ser excesivo tener una base de datos exclusivamente para la configuración de la aplicación.
JettGeek, la pregunta original era sobre una aplicación web ASP.NET, por lo que las configuraciones específicas de la computadora para los usuarios no se aplican. –
Prefiero un archivo de texto .ini
. Son fáciles de editar y fáciles de mover cuando la aplicación se mueve. Aquí hay un ejemplo Setting
class que puede serle útil.
Protagonista, no entiendo por qué harías esto en absoluto. En principio, los archivos ini y los archivos de configuración son similares: archivos de texto simples que se pueden modificar con un editor de texto, el Bloc de notas es suficiente. La diferencia con los archivos de configuración es un amplio soporte en .NET Framework en los espacios de nombres System.Configuration y System.Web.Configuration. Así que los archivos de configuración le dan las virtudes de la idea del archivo ini, además de una amplia compatibilidad con la infraestructura. La * única * ventaja que puedo ver para los archivos ini es una opinión subjetiva de que la ini es más legible para los seres humanos. ¡Solo practica leyendo XML! –
- 1. Archivo cifrado o db en python
- 2. Archivo de configuración SCons y valores predeterminados
- 3. Enumeraciones en DB o NO Enums en DB
- 4. ¿Cómo establecer valores booleanos en un archivo de configuración INI?
- 5. ¿Puede NuGet editar un archivo de configuración o solo agregarlo?
- 6. ¿Estos valores pertenecen a un archivo de configuración o base de datos?
- 7. Prueba de Resorte con configuración H2 db
- 8. wpf - Obtener valores del archivo de configuración de la aplicación
- 9. leer Atributos valores de parámetros del archivo de configuración
- 10. Formato de archivo de configuración
- 11. Configuración en un archivo o una base de datos?
- 12. ¿Cómo lidiar con "Ninguno" valores de DB en Django consulta
- 13. Un solo archivo, tienda de valores-clave ordenada y persistente para Java (alternativa a Berkeley DB)
- 14. Cómo insertar valores predeterminados de DB en EF?
- 15. Mongo DB $ o consulta en PHP
- 16. Mongoose.js: eliminar colección o DB
- 17. CA1709 - ¿Deberíamos ignorar esto y usar Db o DB?
- 18. valores de configuración por defecto (asignación condicional)
- 19. ¿Existe una biblioteca o formato de archivo de configuración o propiedad típico en Haskell?
- 20. ¿Cómo crear un archivo de configuración global?
- 21. ¿Carro de compras, sesión o DB?
- 22. ¿Debo permitir valores nulos en un esquema db?
- 23. WCF Configuración sin un archivo de configuración
- 24. Configuración de KVO para valores calculados, según los valores calculados
- 25. ¿La configuración del archivo web.config anula la configuración de IIS?
- 26. Configuración de los valores predeterminados de AssemblyInfo.cs
- 27. Archivo de configuración de Vim en Windows
- 28. Obtener valores de la configuración de Log4Net
- 29. ¿Cómo manejar valores vacíos en archivos de configuración con ConfigParser?
- 30. Configuración de mvc-mini-profiler para EF-db- first
Ilya, creo que no es tan simple. Estás hablando de páginas adicionales, pruebas, gestión de seguridad. ¿Mencioné las pruebas? Eso requiere tiempo, esfuerzo y dinero. Yo diría que el archivo de configuración tiene las ventajas "fáciles" y "convenientes". Desea la opción de base de datos cuando: 1. los administradores no tendrán acceso al archivo de configuración 2. Hay roles de seguridad de niveles múltiples 3. Las configuraciones deben ser leídas por otras aplicaciones, no solo por esta aplicación ASP.NET. En otras palabras, en situaciones más grandes y sofisticadas, el archivo de configuración no es suficiente. Cuando * es * suficiente, úselo. ¿Qué me estoy perdiendo? –