开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告
开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告
开发平台在BLL与DAL层中间嵌套Web服务层, 双向通信通道:
UI<----->BLL<----->Web服务层<----->DAL<----->DB
前台提交数据到Web服务层或者从后台获取数据到前台视图显示,比如查询功能都需要处理大数据集。
C/S架构下建议压缩数据,节省带宽,下面是测试报告
测试代码:
C# Code:
static void Main(string[] args)
{
string xml = @"E:\XQ-ERP\测试数据\nwind.xml";
FileStream fs = File.OpenRead(xml);
long a = fs.Length;//原始数据大小
fs.Close();
DataSet ds = new DataSet();
ds.ReadXml(xml);
byte[] bs = ZipTools.CompressionDataSet(ds);//压缩DataSet-->byte[]
long b = bs.Length;//压缩后大小
Console.WriteLine("未压缩数据的字节数:" a.ToString());
Console.WriteLine("压缩后数据字节数:" b.ToString());
Console.WriteLine("压缩后比原数据要少:" (a - b).ToString());
double rate = ((a - b) / (a * 1.00)) * 100;
rate = Math.Round(rate, 2);
Console.WriteLine("压缩比例: " rate.ToString() "%");
//测试压缩后的数据能不能还原
string xml1 = @"E:\XQ-ERP\测试数据\nwind_1.xml";
DataSet ds1 = ZipTools.DecompressionDataSet(bs);//还原数据
ds1.WriteXml(xml1, XmlWriteMode.WriteSchema);//一定要写入DataSet表结构元数据
FileStream fs1 = File.OpenRead(xml1);
long aa = fs1.Length;//原始数据大小
fs1.Close();
Console.WriteLine("还原后的数据字节数:" aa.ToString());
Console.ReadLine();
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
static void Main(string[] args)
{
string xml = @"E:\XQ-ERP\测试数据\nwind.xml";
FileStream fs = File.OpenRead(xml);
long a = fs.Length;//原始数据大小
fs.Close();
DataSet ds = new DataSet();
ds.ReadXml(xml);
byte[] bs = ZipTools.CompressionDataSet(ds);//压缩DataSet-->byte[]
long b = bs.Length;//压缩后大小
Console.WriteLine("未压缩数据的字节数:" a.ToString());
Console.WriteLine("压缩后数据字节数:" b.ToString());
Console.WriteLine("压缩后比原数据要少:" (a - b).ToString());
double rate = ((a - b) / (a * 1.00)) * 100;
rate = Math.Round(rate, 2);
Console.WriteLine("压缩比例: " rate.ToString() "%");
//测试压缩后的数据能不能还原
string xml1 = @"E:\XQ-ERP\测试数据\nwind_1.xml";
DataSet ds1 = ZipTools.DecompressionDataSet(bs);//还原数据
ds1.WriteXml(xml1, XmlWriteMode.WriteSchema);//一定要写入DataSet表结构元数据
FileStream fs1 = File.OpenRead(xml1);
long aa = fs1.Length;//原始数据大小
fs1.Close();
Console.WriteLine("还原后的数据字节数:" aa.ToString());
Console.ReadLine();
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
两个文件对比:
还原压缩后的数据略有差异,是XML Metadata(元数据)版本不一致造成的,不影响实际数据。
ZipTools类在平台的Common模块中。

参考文档:
Winform三层架构+WebService+权限管理系统软件开发平台(C#.NET开发)
ASP.NET Web开发框架, B/S架构软件快速开发平台
WebApi架构详解,WebApi接口搭建与部署WebApi服务器
C/S系统快速开发平台采用Windows服务承载的WCF服务器
WCF开发框架之WCF服务器配置文件 - Web.config
基于MVC架构的WebApi服务端开发框架核心优势|C/S框架网
CSFramework平台的WCF体系架构 (Win服务承载与透明代理)
使用ServiceHost建立WCF Console 服务器(WebService Console)
WebService架构 - 为什么需要Web服务?
架构图里没看到WebService啊,您的WebService是用WCF吗?
C/S架构软件开发平台 | 旗舰版V6 主页|C/S开发框架
Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库)
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
如何在Windows服务中安装和部署WCF服务器?
基于Winform三层架构+WCF+ORM模型的快速开发框架
Winform三层架构+WebService+权限管理系统软件开发平台(C#.NET开发)
ASP.NET Web开发框架, B/S架构软件快速开发平台
WebApi架构详解,WebApi接口搭建与部署WebApi服务器
C/S系统快速开发平台采用Windows服务承载的WCF服务器
WCF开发框架之WCF服务器配置文件 - Web.config
基于MVC架构的WebApi服务端开发框架核心优势|C/S框架网
CSFramework平台的WCF体系架构 (Win服务承载与透明代理)
使用ServiceHost建立WCF Console 服务器(WebService Console)
WebService架构 - 为什么需要Web服务?
架构图里没看到WebService啊,您的WebService是用WCF吗?
C/S架构软件开发平台 | 旗舰版V6 主页|C/S开发框架
Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库)
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
如何在Windows服务中安装和部署WCF服务器?
基于Winform三层架构+WCF+ORM模型的快速开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
