2010-03-19 85 views
9

我在审查一个.NET项目,并且我发现一些相当繁重的.ini文件用于配置。我更愿意使用app.config文件,但是在我开始讨论这个问题之前,我想知道是否有任何有效的理由可以通过app.config来支持.ini文件?App.config与.ini文件

+2

Raymond Chen有一篇有趣的文章,介绍ini和xml配置之间的区别,以及为什么ini最初弃用于注册表。见 - http://blogs.msdn.com/oldnewthing/archive/2007/11/26/6523907.aspx – 2010-03-19 08:47:44

+1

感谢您的链接,这是有趣的阅读。而上述项目也使用注册表获取许可信息!配置到处都是。 :) – 2010-03-19 08:56:01

+0

没有人在重新安装过程中/为不同的用户等提及设置的持久性。应该指出,app.config文件与应用程序绑定,除非您在重新安装/安装/更新等,你可能会失去你所有的设置!Ini/xml文件可以保持不受影响 – Simon 2013-03-09 02:40:07

回答

6

那么,平均而言,.INI文件可能更加紧凑,并且对人类而言更具可读性。 XML阅读起来有点痛苦,而且它非常冗长。

但是,app.config当然是在.NET中支持的标准.NET配置机制,并且有很多挂钩和方法来执行操作。如果你使用.INI文件,你基本上是“一路碾压你自己”。经典案例“重塑车轮”。

然后再说一遍:这是一个在.NET之前开始其生活的项目吗?还是现有的.NET应用程序的端口,其中.INI文件是要走的路?我认为.INI文件没有任何内在的错误 - 它们只是不再在.NET中真正支持,而且你自己扩展它们,处理它们等等。而且它肯定是一个“stumper”如果你需要在板上提供外部帮助 - 几乎没有任何.NET开发人员会接触到.INI文件,而.NET配置系统已经广为人知和理解。

+1

该项目相对较新,但.ini文件似乎是过去项目中的某些开发人员遗留下来的不良习惯。是的,这是车轮改造的经典案例。 :) 我不确定我是否同意.ini更具人性化可读性。使用.config文件,VS和智能感知编辑轻而易举。我希望团队创建一个很好的模式来支持配置设置。 感谢您的回答。 – 2010-03-19 08:53:52

+0

好吧,如果这只是一个坏习惯,我会尝试改变:-)尝试确定为什么app.config优越 - 在.NET中支持更好,可以编写XML模式强制节组等等,以及希望能成为某些开发者需要最终放弃超过10年历史的技术,并开始尝试新事物的开始! – 2010-03-19 09:45:42

1

个人而言,我从来没有用户的.ini/XML配置文件,任何超过所有的值装载到一个单什么的,然后用它们运行时是这样的...

话虽这么说,我坚信,你应该看看数据的种类和数据的使用情况。如果数据位于应用程序的设置和配置方面,那么我相信app.config文件是保存这些设置的正确位置。

如果另一方面数据是关心加载与应用程序内容有关的项目,图像或其他资源,那么我相信.ini(没有人使用.ini文件了吗?我在考虑一个.xml文件用于存储这些信息)。简而言之:根据域和上下文来划分要存储的数据的内容。

3

Ini文件在我的书中相当不错。问题是GetPrivateProfileString()和堂兄弟。 Appcompat已经将它变成了一个API函数的一个丑陋的噱头。检索单个ini值需要大约50毫秒,这是现代PC上的一段时间。

但是最大的问题是你无法控制INI文件的编码。 Windows将始终使用系统代码页来解释字符串。只要你的程序没有远离你的办公桌,这只是个好办法。如果确实如此,当您不将INI文件中使用的字符集限制为ASCII时,会产生乱码的严重风险。

XML没有这个问题,它很好的支持.NET框架。无论是通过使用设置还是自己管理配置。