导航菜单 回到顶部
 
C/S框架网 | C#.NET WebApi开发框架-标准版V1.0

C/S WebApi
(标准版 v1.0)

C#.NET WebApi开发框架-标准版V1.0

适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
运行平台:Windows + .NET Framework 4.5
产品报价:查看报价 | 请联系我们

WebApi服务端开发框架

一、产品介绍


    CSFramework.WebApi是服务端软件快速开发框架,借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,提供通用的软件功能,为用户快速轻松构建基于HTTP协议以及支持多种客户端的服务端程序,如:APP、B/S、C/S、各种跨平台移动终端等。

    C/S系统开发框架高级版或更高版本支持多种后台连接策略,WebAPI作为开发框架的后台架构之一。 通常大型软件系统产品只有一个后台服务器和软件维护团队,而用户端需求变化很大,不同的用户往往需求不一样,甚至终端设备也不一样,因此,服务端设计要考虑支持跨平台和跨程序语言,WebApi是首选架构之一。 

    服务端设计所谓后台设计是软件项目核心任务之一,服务端更注重业务逻辑、数据处理和数据分析等方面,前端主要体现在用户体验和操作方面,前端和后端组成支持远程和跨平台的大型系统。
CSFramework.com长期致力于C/S系统快速开发框架方面的技术研究,先后发布多个成熟的软件产品,结合原有领先的技术经验和项目经验,以及专注、专业、始终如一的创新精神和工匠精神,盛情打造全新作品,为框架网用户提供更多优秀作品是我们努力奋斗目标。



二、架构图 (Architecture)



WebApi服务端开发框架-架构图

CSFramework.WebApi 封装多个通用功能,为搭建Web服务端软件提供强大的技术支持。

客户端请求以命令形式传递到服务端的API接口,命令也就是请求的数据包,包含有请求编号、数据签名以及提交的业务数据。服务端接收到请求,首先要进行数据格式分析以及安全检查,比如数据签名、用户令牌或用户账号信息等。检查通过后,系统自动将请求传递到命令处理处理程序,系统将拒绝非法请求,抛出异常或返回错误回应信息给客户端。

命令处理层即业务逻辑层,主要负责数据校验和提取业务数据,将Request的数据(JSONXML)文本内容转换为实体对象,最后传递到数据访问层提交到数据库。

数据访问层是整个逻辑处理的最后一个流程,负责将数据模型持久化到数据库。数据层使用开发框架内置的数据更新机制,根据表结构模型自动生成SQL脚本,无论是提交单条或批量数据,无需手工编写SQL脚本,系统自动实现数据的持久化。框架支持其他数据模型,如Entity Framework等。

三、客户端请求流程 (Client Request)


WebApi服务端开发框架-客户端请求流程

流程说明:

客户端发起请求 -> 构建Request对象,封装账号信息以及业务数据 -> 序列化成为JSON/XML文本格式 -> 使用HTTPPOST 或 HTTPGET 方式向服务端提交数据 -> 服务端接收到请求信息。


四、服务端处理流程 (Server Process)



WebApi服务端开发框架-服务端处理流程

流程说明:

服务端接收请求 -> 记录IP访问日志(可配置) -> 进行安全检查 -> 命令工厂创建命令实例(Command Object)  -> 由命令处理程序(CommandHandler)执行命令 -> 调用数据访问层 -> 提交数据。


五、命令处理机制 (Commands)



WebApi服务端开发框架-命令处理机制

命令处理机制是CSFramework.WebApi后端开发框架采用的最新设计模式,本质上命令就是业务逻辑层。Api接口是暴露给客户端访问的端点(Endpoint),假设我们要设计一个含有几百个功能的大型系统,是不是要设计数百个Api接口?用命令模式可以解决这个问题,设计一个通用的接口来处理所有客户端的请求,然后用编号区分具体功能,比如编号80100代表客户订单,80200代表采购订单。服务端接收到请求后,通过命令工厂和编号创建对应的命令实例,对于三层架构来说,就是创建了具体的业务逻辑层。


六、数据访问层(DAL Data Access Layer)



WebApi服务端开发框架-数据访问层

数据访问层(Data Access Layer)分为单表操作数据层和主从表操作数据层,开发人员根据功能区分来选择继承方式。若提交一张资料表,使用dalBaseBusiness基类的功能完全兼容dalBaseDataDict基类的功能。主从表操作数据层实现要复杂一点,比如更新主外键、自动生成流水号、事务处理等。

WebApi服务端开发框架-多数据库支持

业务逻辑层(命令)将处理传递到数据访问层,首先根据数据库提供者创建数据库对象实例,因此开发框架支持跨数据库操作。然后通过SQL命令生成器分析ORM模型,自动生成三种SQL脚本(INSERT,UPDATE,DELETE)。最后调用数据库对象(IDatabase)的相关方法提交或获取数据。

七、安全机制 (System Security)



WebApi服务端开发框架-安全机制

系统安全保障机制由以下九个部分组成:

 1.User - 用户账号:通过用户账号和密码确保有效访问,系统支持用户账号、手机号、邮箱登录。
 2.Token - 令牌机制:通过令牌机制确保有效访问。用户登录成功,系统自动分配随机令牌编号。
 3.ApiKey - 开发者账号:WebApi接口常用安全机制,使用公钥+私钥加密方式,确保系统安全。
 4.Data Sign - 数据签名:WebApi接口常用安全机制,使用公钥+私钥加密方式,确保系统安全。
 5.Blacklist - 黑名单:针对黑名单用户限制访问或操作,此功能可配置使用。
 6.Throttle - 限流控制:有效避免频繁访问、恶意访问WebApi接口,此功能可配置使用。
 7.ApiLog - 接口访问日志:针对任何Http请求,服务端会记录接口访问记录,此功能可配置使用。
 8.Login Log - 系统登录日志:记录用户登入或登出系统的信息。
 9.数据加密/解密:提供CryptoHelper工具类,以及4种对称加密工具。

八、ORM模型(ORM Model)



WebApi服务端开发框架-ORM模型

对象关系映射(Object Relational Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法 。O R M 技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。

ORM模型主要作用是传递给SQL命令生成器自动生成三种SQL脚本(INSERT/UPDATE/DELETE),开发人员不需要编写冗余复杂的SQL语句。若使用静态类(Static Class)的ORM模型,属性(字段名)还可以作为常量使用。


九、跨平台服务端 (Cross Platform Server)



WebApi服务端开发框架-跨平台服务端

开发框架为用户提供多种数据库支持,目前已封装三种底层数据驱动,支持SqlServer、Oracle、MySql三种常用数据库。Multi-DB架构采用策略模式设计,定义IDatabase通用接口,并实现DatabaseMSSQL, DatabaseMySql,DatabaseOracle三个数据库操作类。引用的类库名称:CSframework.DB.dll。

操作数据库代码示例:




十、WebApi服务器宿主(Server Hosting)



WebApi服务端开发框架-WebApi服务器宿主

自承载 (Self Hosting)
开发模式必须使用自承载模式,主要方便开发人员进行系统调试、功能测试、断点跟踪和开发。

IIS承载 (IIS Hosting)
基于IIS(Internet Information Server)服务器承载WepApi服务。要求IIS版本在7.0或更高,应用程序池设置为.NetFramework 4.5。

Windows服务承载
基于Windows服务承载WebApi服务。首先要安装服务,运行程序目录下的_Install.bat批处理文件,命令窗体显示安装情况,安装完成后,打开Windows服务管理器,找到安装的服务(如:CSFramework.WebAPI.服务器,见下图),在属性页将启动类型设置为“自动(延迟启动)“。

WebApi服务端开发框架-Windows服务承载


十一、解决方案(VS2015 Solution)


含三个解决方案:



CSFramework.WebApi.Foundation





CSFramework.WebApi.Demo







《CSFramework.WebApi开发人员手册》.docx




十二、压力测试报告(Testing Report)


测试目的:测试CSFramework.WebApi服务器的并发承受能力以及高负荷请求的稳定性。

测试环境:

WebApi服务端开发框架-压力测试

注:红色字体的用时(s):是指所有异步任务处理数据的耗时时间,并不代表本次测试用的时间。

测试程序截图:

WebApi服务端开发框架-压力测试

WebApi服务端开发框架-压力测试

WebApi服务端开发框架-压力测试


阿里云服务器监控:

WebApi服务端开发框架-阿里云服务器监控

WebApi服务端开发框架-阿里云服务器监控

WebApi服务端开发框架-阿里云服务器监控
 

测试完成后查询系统日志:

WebApi服务端开发框架-测试完成后查询系统日志


如下图所示:随着用户请求数量递增,SQL Server数据库服务器占用内存巨大(达到87%),这也是应用程序服务器与数据库服务器必须分开的主要原因。本次压力测试CPU最高峰值不到60%。

WebApi服务端开发框架-性能测试


如下图所示:本次测试完成后,日志数据库暴增超过7GB,因此建立独立的日志服务器非常必要。


WebApi服务端开发框架-日志数据库


十三、开发环境与配置


1. 操作系统:Windows 7,8,10或更高版本
2. 开发工具:Visual Studio 2015或更高版本
3. 数据库:Microsoft SQL Server 2008~2012或更高版本
4. WebApi IIS承载:IIS 7.0或更高版本
5. .Net Framework运行环境:4.0或更高版本






软件著作权登记证书


WebApi服务端开发框架-软件著作权登记证书
回到顶部