2012-01-20 48 views
2

我需要在某处存储应用程序设置,但找不到令人满意的解决方案。只读设置很容易存储在web.config中,但是应该可以通过网页访问的应用程序管理设置呢?写入web.config似乎不是一个好主意。我曾考虑将设置存储在自定义xml文件中,但是如果在设置中涉及敏感信息,这似乎是问题,而且如果有多个用户同时修改设置,某种文件锁定必须是参与其中。现在我倾向于将应用程序设置存储在MS-SQL数据库中,它似乎是一个安全且可扩展的解决方案,然而,让一张表只存储一行 - 设置是错误的。你怎么看?你将如何设计?有什么选项可用于在asp.net mvc2中存储应用程序设置?

是否有任何可以用于存储动态Web应用程序设置的.NET解决方案?

回答

3

你的问题是如此主观的,我甚至不知道为什么,我回答它,而不是投票关闭。但无论如何,数据库是一个好地方。如果你厌倦和厌倦关系数据,那么有很好的NoSQL数据库,如MongoDBRavenDB,这将使这非常容易。如果你想要一个非常快速的数据库Redis值得一试。

存储在一个Web应用程序文件的事情是困难得多比它可能看起来在首位。如果是只读的,那么web.config确实可以成为一个好地方。但是一旦你开始写作,你将不得不考虑到一个Web应用程序是一个多线程环境,你将不得不同步访问这个文件。如果你想正确设计它,首先看起来很简单的解决方案可能会很快变成噩梦。这就是为什么我认为一个数据库是一个很好的解决方案,它为您提供了并发性,安全性,原子性,数据完整性,...

2

我绝对认为,在数据库中存储动态性的设置是正确的方式。不要为拥有一张简单的桌子而感到不快。这张桌子可以为你节省很多头痛。如果你能够很聪明地编写代码,你真的可以从中受益(但这取决于你想存储的值的类型)。数据库唯一的问题是有人可能直接在数据库中修改值。但它可以很容易地解决。例如,我有一个“配置值”类,我在启动时从数据库提供数据,并将其放入超时缓存中。然后过了一段时间,我可以懒懒地再喂它,捕捉像我上面提到的情况。我希望这是有道理的。

相关问题