2012-10-18 48 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的更多信息。