1、介紹
在軟體開發領域,尤其是企業級應用開發中,靈活性、開放性、可擴充套件性往往是專案成功的關鍵因素。對於C/S專案,如何高效地與後端資料庫進行互動,以及如何提供多樣化的服務訪問方式,是開發者需要深入考慮的問題。目前主流的方式就三種:資料庫直連、WCF模式、WebAPI模式,三這種方式都有其各自的特點,可根據實際專案需求選擇其中一種或多種。
RDIFramwork.NET C/S敏捷開發框架全新版本不僅保留了一直以來的直連與WCF模式式(WCF又可以三種方式寄存:Windows服務方式寄存,WinForm形式寄存、IIS形式寄存),還提供了一種全新的WebAPI訪問的方式。三種方式不僅可以一鍵切換,還可以混合使用,同時支援.NET Framework與.NET 6+,為構建高效又靈活的軟體提供了強有力的支撐。
要更詳細的瞭解直連與WCF方式可以參考這篇文章:RDIFramework.NET框架SOA解決方案(集Windows服務、WinForm形式與IIS形式釋出)-分散式應用,本文主要針對全新的WebAPI方式做介紹。更多詳情等你解鎖!
全新RDIFramework.NET C/S敏捷開發框架釋出,支援.NET6+,Framework雙引擎,降低開發成本,提高產品質量,提升使用者體驗與開發團隊穩定性,做軟體就選RDIFramework.NET敏捷開發框架。
2、使用方法
使用方式非常簡單,只需在配置檔案中改變ServiceAccessMode的值,同時根據設定的服務訪問方式配置好服務對應的地址(WebHostUrl)。
<!-- 服務訪問方式,取值:RDIFramework.ServiceDirect、RDIFramework.ServiceWCF、RDIFramework.ServiceAPI -->
<add key="ServiceAccessMode" value="RDIFramework.ServiceAPI"/>
<!--WebHostUrl取值依賴說Service,Service取值為:RDIFramework.ServiceWCF時對應的是WCF的地址;Service取值為:RDIFramework.ServiceAPI時對應的是WebAPI的地址-->
<!--本地測試:WCF地址預設:http://localhost:8091/;WebAPI的地址預設:http://localhost:58688/-->
<add key="WebHostUrl" value="http://localhost:58688/" />
配置項ServiceAccessMode支援三種訪問模式,分別是:
- RDIFramework.ServiceDirect:直連模式
- RDIFramework.ServiceWCF:WCF訪問模式(又可以三種方式寄存:Windows服務方式寄存,WinForm形式寄存、IIS形式寄存)
- RDIFramework.ServiceAPI:WebAPI訪問模式
當ServiceAccessMode取值為:RDIFramework.ServiceWCF或RDIFramework.ServiceAPI時,需要配置WebHostUrl,以指定WCF或WebAPI的地址。
2.1、WebAPI模式訪問
要以WebAPI模式來做服務訪問,配置項ServiceAccessMode取值為:RDIFramework.ServiceAPI,同時啟動我們的WebAPI服務端。
透過WebAPI方式最大的好處就是:支援多平臺訪問,Web API基於HTTP協議,可以在不同作業系統和裝置上進行通訊,因此可以實現跨平臺的應用程式開發。客戶端可以是Web應用、移動應用或桌面應用,極大地方便了多平臺的開發和維護。同時資料以JSON方式提供,方便各異構系統間資料的互動。
WebAPI方式訪問,當Token過期,框架會自動續期。啟動好服務端後,啟動客戶端,就會自動以WebAPI的方式來執行,如下圖所示。
2.2、WCF模式訪問
WCF是.NET最早構建高安全可靠性服務的技術,並且實現跨平臺繼承和平滑地互動。在.NET的WinForm領域應用廣泛,咱們的框架同樣支援WCF的方式來進行服務訪問,讓使用者多一種選擇。
要以WCF模式來做服務訪問,配置項ServiceAccessMode取值為:RDIFramework.ServiceWCF,同時啟動我們的WCF服務端。
以WCF服務模式訪問執行效果。
2.3、直連模式訪問
直連就是直接連線資料庫進行訪問,配置項ServiceAccessMode取值為:RDIFramework.ServiceDirect,訪問效果與前兩種方式一直。作為標準三層架構的連線方式,適用中小企業內部資料管理應用系統開發的開發。最主要的優勢就是高效開發,架構簡單,易上手開發、維護和部署。
3、技術要點
不管是用直連、WCF、還是WebAPI模式,在服務的呼叫上保持一致,做到了開發的最簡化處理。三種方式全使用CallService進行呼叫,如下是呼叫我們案例模組的訂單管理服務。
var output = CallService.GetExampleModuleService<ICaseOrderService>().GetOrderListByPage(this.UserInfo, ucPagerOrder.ToPageInput(keyword));
如下是呼叫我們框架模組的服務。
var itemList = CallService.GetFrameworkService<IItemsService>().GetList(UserInfo);
無論是直連、WCF還是WebAPI模式,CallService中都自動做了適配,讓呼叫更加的簡單,且三種方式還可以組合使用,強大、靈活、自由。同時整個平臺全原始碼提供,讓你無後顧之憂!
4、參考文章
RDIFramework.NET框架SOA解決方案(集Windows服務、WinForm形式與IIS形式釋出)-分散式應用
RDIFramework.NET CS敏捷開發框架 V6.1釋出(.NET6+、Framework雙引擎、全網唯一)
可前往下面的地址瞭解詳情。
http://www.guosisoft.com/product/winform
http://www.rdiframework.net/product/winform