回《【開源】EnterpriseFrameWork框架系列文章索引》html
EnterpriseFrameWork框架實例源代碼下載: 實例下載java
前面幾章已完成EnterpriseFrameWork框架開發系統的三種模式,Web模式、Winform模式以及WCF模式,本章主要針對最後一種模式WebServices模式開發系統對外接口程序的過程;c++
說明一下爲何框架要把WebService的集成進來,主要仍是利用WebService跨平臺的優點用來開發外部系統的接口是很是方便的;無論第三方是java平臺、仍是c++系統都是統一的接口方式;另外若是咱們系統功能全用Webservice模式來開發行不行,行確定行但我以爲仍是太麻煩了,讓整個系統的維護部署都異常變扭;數據庫
仍是用書籍的管理做實例,把對書籍的增、刪、改、查功能封裝成Webservice服務提供爲其餘系統調用;你們看下面開發過程當中順便帶着個問題思考一下,就是框架中的這種開發Webservice的這種方式與net平時開發Webservice項目有什麼區別?瀏覽器
本文要點:框架
1.Webservice版界面效果spa
2.Webservice接口開發步驟調試
3.代碼文件調用關係圖code
4.常見問題彙總orm
1.咱們先看一下實現後的Webservice接口效果,請注意紅色框中的訪問地址;
解決方案目錄,其中紅色部分爲新增的文件
2.開發步驟:
1)新建Webservice服務,bookWebService.cs
2)把Books.dll部署到EFWWeb項目Bin目錄中並啓動
3)再瀏覽器地址中輸入http://localhost/bookWebService.asmx
其中實體(Book.cs)、Dao(BookDao.cs)在前面已經實現,bookWebService裏只要調用就好了;
bookWebService.cs文件
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web.Services; using Books.Dao; using Books.Entity; using EFWCoreLib.CoreFrame.BusinessArchitecture; namespace Books.WebServices { [WebService] public class bookWebService : AbstractService { [WebMethod(EnableSession = true)] public void SaveBook(Book book) { //綁定數據庫操做對象
book.BindDb(oleDb, GetUnityContainer()); //數據更新到數據庫表中
book.save(); } [WebMethod(EnableSession = true)] public DataTable SearchBook(string schar, int flag) { BookDao bdao = NewDao<BookDao>(); //調用Dao返回數據
DataTable dt = bdao.GetBooks(schar, flag); return dt; } } }
bookWebService對象必須繼承框架中的AbstractService對象,還有就是類名和方法上必須加上自定義標籤[WebService]和[WebMethod(EnableSession = true)],這兩個標籤原本就是是.NetFrameWork中WebService的標籤;
至此開發工做已經完成了,後面就是編譯調試與啓動運行起來了;如今咱們回顧一下最開始提出的一個問題,「框架中的這種開發Webservice的這種方式與net平時開發Webservice項目有什麼區別?」,咱們再看看Net通常怎麼開發Webservice服務;
通常Webservice服務都是兩個文件BookService.asmx和BookService.asmx.cs文件,咱們不討論這種方式內部技術實現等問題,只是兩種文件這種方式在項目過程當中很是不方便;
1)這種方式必須新增長至少一個WebService項目,而上面EnterpriseFrameWork框架中的bookWebService.cs能夠和後臺項目放一塊兒,就跟普通的cs文件同樣;這樣另外一個一個好處就是相同業務的代碼能夠放在一塊兒,不必建太多項目分散代碼文件的連貫性;我就以爲一個系統的項目越少越好,至少相同業務的代碼必定要放在一個項目中;
2)這種方式服務發佈太麻煩了,必須先人工發佈生成文件,而後拷貝部署到IIS中才能使用;而EnterpriseFrameWork框架中的Webservice徹底沒這麼多步驟,編譯生成dll文件,而後拷貝到IIS項目中的Bin目錄就可使用了;對咱們這種小團隊沒有專門的版本管理人員,又要實現項目的快速迭代開發,這種方式能節約大量的工做;
本章暫不討論這種Webservice方式的技術實現,後面的章節會詳解講解,敬請期待!
3.最後咱們看下圖,整理一下以上代碼文件的調用關係
回《【開源】EnterpriseFrameWork框架系列文章索引》
EnterpriseFrameWork框架實例源代碼下載: 實例下載