在本示例開始之前,讓我們先來了解一下什麼是wcf? wcf有哪些特點?
wcf是一個面向服務編程的綜合分層架構。該架構的項層爲服務模型層。
使用戶用最少的時間和精力建立自己的軟件產品和外界通信的模型。它使得開發者能夠建立一個跨平臺的安全、可信賴、事務性的解決方案。且能與已有系統兼容寫作。
簡單概括就是:一組數據通信的應用程序開發接口。
好啦,wcf就介紹這麼多,需更深入的瞭解請百度或自己去用了之後就會深有體會。下面開始我們的示例。
在這個示例中, 我們將學習如何創建WCF服務,如何測試WCF服務,如何發佈wcf服務到IIS上。如何在客戶端調用WCF服務。
本示例教程結合EF6.0,以及連接SqlServer的一個Dome,好啦,下面開始正式講解。
第一步:創建“WCF服務應用程序”
點擊確定,會創建出我們的WCF項目,在解決方案中會自動爲我們生成兩個類文件“IService.cs”和“Service.cs”。如下圖所示。↓
第二步:我們先創建個類庫用來存放實體模型。
在“解決方案窗口”中,我們右擊解決方案,選擇“添加”,新建項目,再單擊“類庫”確定。
插入一步:創建服務需要安裝數據庫連接,鼠標右鍵點擊解決方案,選擇 “管理解決方案的nuget程序包”彈出如下界面,在“瀏覽”選項卡的搜索框中輸入“sql” 選擇第一個安裝,需要選擇項目中的 “類庫(本例中爲calsslibray1)” 和 “服務(本例中爲wcfservice4)” 如下圖: 數據庫連接
同樣,鼠標右鍵點擊解決方案,選擇 “管理解決方案的nuget程序包”,彈出如下界面,選擇安裝EntityFramework,勾選所列出的類,本項目只有Classlibrary1和WcfService3兩個類,都要勾選。
第三步:創建EF實體模型。
爲了方便管理,我們先創建個文件夾用來存放實體類。
然後右擊文件夾→添加→新建項。如下圖所示:↓
然後我們左邊菜單選擇:數據→ADO.NET實體數據模型。如下圖所示。↓
點擊添加之後,我們會看到有幾個選擇, 分別代表:數據庫優先、模型優先、代碼優先。
本Dome選擇來自數據庫的CodeFist,也就是代表:代碼優先。如下圖所示。↓
點擊下一步之後,再點擊“新建連接”,然後測試連接是否成功,再選擇數據庫。如下圖所示。
然後再勾選自己所需要生成的實體表,如下圖所示。
插入: 這裏若出現選擇是否包含敏感字符時, 選擇“是”, app.config和web.config 裏面最後一行會出現密碼,若選擇否,則不出現密碼。
然後你就會看到EntityModel這個文件夾下會多出兩個類文件,由於我只選擇了一個表生成的,所以是兩個類文件。如下圖所示。
然後我們點開“Model1.cs”,首先看到的是一個構造函數, 底下是我們所選表生成的一些代碼,這些我們都不需要關心,都是自動生成的。這個構造函數後面的“name=Model1”就是對應的連接字符串。我們打開App.config便可知。然後把此連接字符串複製粘貼到wcf服務應用程序中的Web.config裏面(必須有的一步)。 如下圖所示。
第五步:定義契約,我們開始寫服務。
首先我們在“IService1”中定義鍥約。注意:每個鍥約上都要加上[OperationContract]標記。如下圖所示。
然後我們在“Service1.svc”中實現我們所有定義的契約。如下圖所示。
到這一步,我們的服務已經完成了。現在我們開始本地測試服務是否有問題,如沒問題再發布到IIS上去。
測試步驟:右擊“Service1.svc” 選擇在瀏覽器中查看,如下圖所示,說明服務沒問題。然後我們再用wcf測試客戶端測試一下我們做的一些操作是否正確。
如上圖所示,只能說明我們的服務寫的沒問題,但並不確定服務中所寫的一些代碼訪問數據是否正確。那麼我們就在服務端利用WCF測試客戶端調用我們所寫的代碼是否正確。
打開服務端步驟:首先,我們將“Service1.svc”設爲起始頁,然後把整個服務應用程序設爲啓動項目,最後F5運行。如下圖所示。
如上圖,我們測試Del,傳入值再調用,如果沒報錯且左下角提示服務調用完成,說明已經成功調用並執行我們所寫的代碼功能。
下次寫如何將其部署到IIS上