2015-06-14 38 views
0

我有一個簡單的問題。我正在使用WCF創建Web服務。我已經創建了所有的服務而沒有填補運營機構。現在我有了從服務合約中自動生成的wsdl文件。如果我稍後編寫操作實現,這種方法是「合同優先」嗎?合同第一個SOA和WCF合同

回答

1

是的,因爲你正在定義你和任何人使用你的API之間的合同。通常(但不總是)合約/ API通過接口定義。編輯:正如Namphibian在評論中所說,如果您先構建Web服務合約,那麼您首先需要定義您的WSDL並從那裏生成代碼。我的答案假設你想首先開發一個.NET API合約,並且在事實之後你會將它公開爲一個Web服務。

第二編輯:我想補充一點,SOA原則本身與Web服務無關。您可以構建僅通過其編碼API公開的服務。

+0

是的,我已經使用界面來定義合同。這是正確的方法嗎? –

+0

是的,聽起來不錯! –

+0

@JimSimon你的方法是基於一些好的原則。始終使用接口。然而,這不是安靜的契約第一種方法,它需要創建WSDL並實施。我意外降低了投票率,現在我的投票被鎖定了。你可以編輯答案,讓我可以升職。我道歉,這不是打算。這是星期一早上的早晨,我正忙着第一杯咖啡。 – Namphibian

1

這是不完全正確的。您首先模擬合同,但仍依賴.Net框架生成WSDL。在合同優先/ WSDL第一編碼(自上而下)的方法中,您使用XML Spy等工具編寫WSDL文件。然後,您從WSDL生成代碼。在你的方法中,你正在從接口創建一個WSDL。

使用接口是做這種開發的最成功的方法,但是你仍然在先做代碼。讓我以一個例子來澄清。通常在SOA架構中,開發人員遵循WSDL第一種方法。在WSDL第一種方法中,您通常會提交您的WSDL文件供貴公司的SOA治理機構審覈。然後將根據SOA治理策略來衡量此WSDL,以確定它是否合適。一旦批准,那麼代碼工件就會生成。

你在做什麼沒有錯,但它不是合同第一種方法。

+0

那麼你的意思是,只有我自己編寫WSDL文件時,它纔會成爲合同優先方法? –

+0

@NadiaNahar在學術上說是的。請記住,Web服務是使用WSDL描述的合同。這非常像Java或.Net中的接口。但接口並未指定實現。因此,使用合同優先方法,可以在任何技術(.Net/Java/Delphi/PHP)中實施intrface(WSDL)。你的方法基於非常堅實的基礎。始終使用接口而不是實現。這導致了鬆散的耦合和更敏捷的開發。 – Namphibian