2012-10-18 46 views
2

是改变“http://tempuri.org/”在任何Web服务默认引用仅仅是原因:不改变“http://tempuri.org/”的引用只是缺乏专业性或更多?

1:显示的是我理解的命名空间。

2:为了表现出专业性。

如果不给在技术方面任何好处,

我们为什么还要继续和改变它,这可能最终会显示几个一些错误。

+1

这是“如果没有损坏,不修复”的地方。将它保存为tempuri没有任何问题。 – danyim

+0

随机轶事:我每次读“temprui”时,都会想到鸡天麸罗。 – hometoast

回答

3

你没有多说你的web服务,但通常命名空间只有在与XSD结合时才有用。如果您使用的是XSD,那么名称空间的用处与C风格语言(C#,Java,C++)有用的原因相同,以便将您的“类”与其他程序区分开来。

如果您的Web服务的使用者试图与另一个Web服务构建混搭,并且程序员需要将来自您的服务的XML与来自另一个服务的XML相结合,那么这些名称空间开始变得非常重要(特别是如果其他与您的一样,webservice已选择不更改默认的名称空间)。

或者,更简洁:

一个XML实例可以包含元素或一个以上的XML词汇表属性的名称。如果每个词汇都有一个名称空间,则可以解析名称相同的元素或属性之间的歧义。
http://en.wikipedia.org/wiki/XML_namespace

就我个人而言,我发现XML命名空间的命名为契机,从人群区分我的代码。花时间和注意力给你的代码一个正确的名字会给其他专业人士一个印象,即你花时间和精力去正确编码。可以这样想:如果你有一个函数名为fUnctiontodoSomeThin()的API,你可能会对它的功能感到满意,但你的一部分人会想知道为什么程序员没有花时间和精力正确拼写和使用大小写/一致。也许他/他没有花时间将他们的数据库调用包装在try/catch块中?这可能会导致我去寻找另一个API(当然,所有其他的都是平等的)。

+0

例子很棒! – James

+0

当你不打算处理错误是一个错误时,为什么要在try catch块中包装数据库调用? –

+0

@TomasZubiri咦?这是一个5岁的职位随机和任意的例子。如何......“也许他/她没有花时间拒绝一个错误返回的诺言。” – JDB

2

我们使用名称空间作为向客户端应用程序发送信号的方式,表明服务合同或数据协定在发布之间做出了重大更改(即返回类型已更改,参数顺序已更改等)。否则,您的客户端应用程序将继续尝试解析返回的值,就好像它们在旧合同中一样。分析将失败,出现错综复杂且难以理解的错误消息。或者更糟糕的是,解析可能会交换值(即更改数据合同中两个字符串属性的顺序)。

有关WCF Service Versioning的更多信息。