资源/App.config还是数据库,哪个是存储应用程序字符串的最佳位置?

4

大家好,

我目前正在维护一款旧应用程序,它使用了从App.config和应用程序配置表中检索应用程序配置设置的混合方法。

在我正在开发的新软件中(一个旧应用程序的移植版本),我有一个静态且很少更改的电子邮件地址列表,那么检索这些地址的最佳机制是什么?目前,我正在使用资源字符串,以便简单地使用My.Resources。但是,在App.Config或数据库表中存储信息的好处/缺点是什么?

在什么时候不再使用资源是有意义的?

3个回答

2

一切都取决于情况?以下是我遵循的一些经验法则:

用于进入配置/资源文件

  1. 对于每个用户都相同的内容,例如图像目录的路径
  2. 仅在 UI 层需要使用且不会经常更改的数据,例如美国各州的列表
  3. 可能因服务器而异,例如生产和测试环境下的资源 URL

用于进入数据库

  1. 每个用户都有单独的数据或与用户相关的数据
  2. 可能需要由开发组之外的人员进行维护
  3. 将在 UI 层之外使用
  4. 将经常更新

无论做什么

不要将字符串硬编码到代码中,即使您确信错误报告通知电子邮件地址不会更改,也不要这样做!否则,三年后,本来可以进行 2 秒钟配置更改的事情,将导致花费两周时间来编译一个过时的遗留应用程序!!另一个有趣的例子是在应用程序中硬编码 XML 模式。

stringname += "Schema data";
stringname += "Schema data";
stringname += "Schema data";

有趣的是,同一个人,你猜怎么着。


1

我认为很少改变的设置可以安全地放在app.config中。这样对于团队中的新开发人员来说,它们的来源相当透明,而且仍然可以在不重新编译的情况下更改设置。

对于经常和定期更改的事物,我会使用数据库、用户配置文件中的设置文件或其他共享位置等。这样可以更轻松地管理配置更改。

另一方面,我认为资源文件并不适合用于存储配置,它更适合于集中管理应用程序中所有硬编码内容(在某些情况下还包括翻译等)。如果我继承了你的代码,我会非常惊讶。


0

我倾向于在配置文件中只放置最基本的信息,仅仅足够让你连接到数据库或者其他数据源。这样可以减少敏感信息在某个扁平文件中被暴露的风险。对于存储邮件,我会将其放在数据库中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接