RDIFramework.NET CS敏捷开发框架 SOA服务三种访问(直连、WCF、WebAPI)方式

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方式做介绍。更多详情等你解锁!

.NET敏捷开发框架-RDIFramework.NET V6.1发布

全新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服务端

通过WebAPI方式最大的好处就是:支持多平台访问‌,Web API基于HTTP协议,可以在不同操作系统和设备上进行通信,因此可以实现跨平台的应用程序开发。客户端可以是Web应用、移动应用或桌面应用,极大地方便了多平台的开发和维护‌。同时数据以JSON方式提供,方便各异构系统间数据的交互。

WebAPI方式访问,当Token过期,框架会自动续期。启动好服务端后,启动客户端,就会自动以WebAPI的方式来运行,如下图所示。

框架以WebAPI方式运行

2.2、WCF模式访问

WCF是.NET最早构建高安全可靠性服务的技术,并且实现跨平台继承和平滑地交互。在.NET的WinForm领域应用广泛,咱们的框架同样支持WCF的方式来进行服务访问,让用户多一种选择。

要以WCF模式来做服务访问,配置项ServiceAccessMode取值为:RDIFramework.ServiceWCF,同时启动我们的WCF服务端。

WCF服务端

产品管理svc服务

以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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482896.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ProtoBuf快速上手(C++)

在快速上⼿中&#xff0c;会编写第⼀版本的通讯录 1.0。在通讯录 1.0 版本中&#xff0c;将实现&#xff1a; • 对⼀个联系⼈的信息使⽤ PB 进⾏序列化&#xff0c;并将结果打印出来。 • 对序列化后的内容使⽤ PB 进⾏反序列&#xff0c;解析出联系⼈信息并打印出来。 •…

PHP 方头像转为圆图

业务需要把创建海报上的用户头像由方形转为圆形&#xff0c;前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录 裁剪函数 本地图片 远程图片 效果 参考文章 总结 裁剪函数 从网上找的一个裁剪图片的函数。 代码如下&#xff1a; /* * 将图片切…

代理IP地址的含义与设置指南‌

在数字化时代&#xff0c;互联网已经成为我们日常生活不可或缺的一部分。然而&#xff0c;在享受互联网带来的便利的同时&#xff0c;我们也面临着隐私泄露、访问限制等问题。代理IP地址作为一种有效的网络工具&#xff0c;能够帮助我们解决这些问题。本文将详细介绍代理IP地址…

基于Java Springboot个人财务APP且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

红队/白帽必经之路(16)——如何用Metasploit 在边路进行信息刺探及爆破登录[既然是红队,那就对自己狠一点!!!]

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️网络空间安全——全栈前沿技术持续深入学习 专栏跑道二 ➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️ MYSQL REDIS Advan…

vue实现echarts饼图自动轮播

echarts官网&#xff1a;Examples - Apache ECharts echartsFn.ts 把echarts函数封装成一个文件 import * as echarts from "echarts";const seriesData [{"value": 12,"name": "过流报警"},{"value": 102,"name&qu…

C++之异常智能指针其他

C之异常&智能指针&其他 异常关于函数异常声明异常的优劣 智能指针auto_ptrunique_ptrshared_ptrweak_ptr定制删除器 智能指针的历史与boost库 特殊类单例模式饿汉和懒汉的优缺点 C四种类型转换CIO流结语 异常 try括起来的的代码块中可能有throw一个异常&#xff08;可…

混沌工程/混沌测试/云原生测试/云平台测试

背景 私有云/公有云/混合云等具有复杂&#xff0c;分布式&#xff0c;环境多样性等特点&#xff0c;许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程&#xff0c;建立对系统抵御生产环境中失控条件的能力以及信心&#xff0c;提高系统面对未知风险得能力。 …

Hive学习基本概念

基本概念 hive是什么&#xff1f; Facebook 开源&#xff0c;用于解决海量结构化日志的数据统计。 基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并提供类SQL查询功能 本质是将HQL转化为MapReduce程序。 Hive处理的数据存储在H…

数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现

文章目录 一、Lambda架构1、Lambda的三层架构2、简单解释&#xff1a;3、Lambda架构的优缺点 二、数据湖基于Hadoop、Spark的实现1、架构2、数据管理&#xff08;存储层的辅助功能&#xff09; 一、Lambda架构 1、Lambda的三层架构 Batch View&#xff08;批处理视图层&#…

算法笔记:力扣142.环形链表返回链表入口

该题目通俗来说就是需要返回节点的入口&#xff0c;这点与判断是否有环不同&#xff0c;有环是通过快慢指针的形式来判断&#xff0c;但当快慢指针相等的时候&#xff0c;此时的节点不一定是环的入口节点。所以这题需要注意。 关键API&#xff1a; map.putIfAbsent(key,value)…

医院管理系统

私信我获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 医院管理系统 摘要 随着信息互联网信息的飞速发展&#xff0c;医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求&#xff0c;创建了一个计…

说说Elasticsearch查询语句如何提升权重?

大家好&#xff0c;我是锋哥。今天分享关于【说说Elasticsearch查询语句如何提升权重&#xff1f;】面试题。希望对大家有帮助&#xff1b; 说说Elasticsearch查询语句如何提升权重&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…

【Spring Security框架解析】

文章目录 Spring-security介绍Spring-security认证授权流程认证流程Security流程认证过滤器实现获取UserDetail信息 配置Security Spring-security介绍 Spring Security是一个功能强大且高度可定制的Java安全框架&#xff0c;用于保护基于Spring的应用程序。它提供了全面的安全…

[CISCN 2019华东南]Web11

[CISCN 2019华东南]Web11 给了两个链接但是都无法访问 这里我们直接抓包试一下 我们插入X-Forwarded-For:127.0.0.1 发现可以修改了右上角的IP地址&#xff0c;从而可以进行注入 {$smarty.version} 查看版本号 if标签执行PHP命令 {if phpinfo()}{/if} 查看协议 {if system(…

使用SpringBoot实现邮件发送(QQ邮箱为例)

使用SpringBoot实现邮件发送(QQ邮箱为例) 一、获取授权码 1.首先进入qq邮箱找到设置 2、账号栏目&#xff0c;找到POP3/SMTP服务 并开启服务 3、获取授权码 二、SpringBoot集成邮件发送 1.创建邮件发送服务类 package com.example.demo.service;import org.springframework…

hint: Updates were rejected because the tip of your current branch is behind!

问题 本地仓库往远段仓库推代码时候提示&#xff1a; error: failed to push some refs to 192.168.2.1:java-base/java-cloud.git hint: Updates were rejected because the tip of your current branch is behind! refs/heads/master:refs/heads/master [rejected] (…

基于BM1684的AI边缘服务器-模型转换,大模型一体机(二)

目标追踪 注&#xff1a;所有模型转换都是在docker环境中的 先进入docker 这里我们是要在docker环境里编译的&#xff0c;所以先进入docker :~/tpu-nntc# docker run -v $PWD/:/workspace -it sophgo/tpuc_dev:latest初始化环境 root2bb02a2e27d5:/workspace/tpu-nntc# s…

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本) code review! 参考笔记 1.ROS基本框架1——编写简单的发布者和订阅者(C++和Python版本) 2.ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本) 文章目录 ROS基本框架2——在ROS开发中创建并使用自定义…

实例讲解MATLAB绘图坐标轴标签旋转

在进行绘图时需要在图片上添加上做标轴的标签&#xff0c;但是当数据量比较多时&#xff0c;例如一天24小时的数据&#xff0c;这时把每个小时显示在左边轴的标签上&#xff0c;文字内容放不下&#xff0c;因此需要将坐标轴标签旋转一定的角度&#xff0c;这样可以更好在图形上…