2009-06-18 50 views

回答

5

只有赞成从我配置文件。

管理配置文件中的端点意味着,如果端点发生更改(或者应该说),则不必更新应用程序。

您还可以使用不同端点运行应用程序的多个实例。

2

副手,配置文件中的端点在更改时不需要重新编译。这也意味着,当将应用程序从开发移植到UAT到生产时,您只需更新您的配置文件。

如果你只是在家里使用自己的代码,那就没有真正的区别。但是,在商业环境中,在配置文件中定义开发点可以节省各种麻烦。

0

这只是你需要多少灵活性的问题。 通常我更喜欢配置文件的方法。

1

当使用app.config时,您的应用程序不需要重新编译以适应变化。它也可以在多种情况下用完全相同的代码重新使用。最后,对你的端点进行硬编码(或者任何可能发生变化的东西)都是糟糕的编码习惯。不要害怕配置文件,它是声明式编程。你说,“我想用这个端点。”它为你做了工作。

3

我自己也喜欢配置方法,除了配置文件可以变得非常大。

有一件事我与WCF配置注意到的是,有很多的东西,你可以代码,您无法在XML配置做离不开添加自定义的扩展。换句话说,在代码中进行配置会带来更大的灵活性,当然你也可以编写自己的扩展并使用配置中的那些扩展。

但是,请注意,我认为在Visual Studio中会有一个'错误',如果您开始制作自己的扩展并将它们包含在XML中,那么VS将不再喜欢您的配置文件,并将标记他们作为错误,然后如果尝试通过向导添加新服务,它将无法将端点添加到配置中。


这是不大不小的随访,以我自己的答案:

后具有xml配置的一切,我改变一切,构建端点和绑定代码的几个月。我在代码中发现了一个非常好的例子;

当您想拥有包含WCF客户端的可部署/可共享的.dll。

因此,例如,如果您有一个CommonClients.dll,其中包含您的所有WCF界面以及与某些远程服务器进行通信的合同,则您不想也说“这里有100行xml,您还必须放入您的app.config为每个客户端使其工作“。在这种情况下,使用代码构造出来的效果会更好。

还有一个.NET 3.5的“功能”,如果您有一些wcf扩展名,则必须指定完全限定的程序集名称。这意味着如果包含扩展名的程序集更改了版本号,则必须更改配置文件中的程序集名称。据推测,它在.NET 4中使用一个简短的程序集名称,而不需要全名。

1

我通常做编程配置,因为我不想公开我的应用程序内部结构的用户。我唯一可以配置的是服务地址,但即使如此,我仍保留在userSettings部分,而不是system.ServiceModel。

1

我更喜欢和推荐配置文件的方法。它允许对服务器进行更改而不需要重新编译应用程序,从而具有很大的灵活性。 如果您需要安全性,您可以加密配置文件。

使用纯文本配置文件最大的担心可能是它可能被意外(或故意)由最终用户修改而导致应用程序崩溃。为了克服这个问题,你可以在代码中进行一些测试来检查配置文件中的配置是否正确,如果没有,则以编程方式将其初始化为某些默认值。我提出了如何在this问题的另一个答案中做到这一点。

0

查看.NET StockTrader app。它使用存储库来存储配置数据,并有一个单独的应用程序来管理配置。设置和结构非常先进,并且对于像我这样的只有WCF配置基础知识的人来说,有一点点头疼,但我认为值得一看。