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)。
xml
<!-- 服务访问方式,取值: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进行调用,如下是调用我们案例模块的订单管理服务。
ini
var output = CallService.GetExampleModuleService<ICaseOrderService>().GetOrderListByPage(this.UserInfo, ucPagerOrder.ToPageInput(keyword));
如下是调用我们框架模块的服务。
ini
var itemList = CallService.GetFrameworkService<IItemsService>().GetList(UserInfo);
无论是直连、WCF还是WebAPI模式,CallService中都自动做了适配,让调用更加的简单,且三种方式还可以组合使用,强大、灵活、自由。同时整个平台全源码提供,让你无后顾之忧!
4、参考文章
RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用
RDIFramework.NET CS敏捷开发框架 V6.1发布(.NET6+、Framework双引擎、全网唯一)
可前往下面的地址了解详情,下载体验。