开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告
开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告
开发平台在BLL与DAL层中间嵌套Web服务层, 双向通信通道:
UI<----->BLL<----->Web服务层<----->DAL<----->DB
前台提交数据到Web服务层或者从后台获取数据到前台视图显示,比如查询功能都需要处理大数据集。
C/S架构下建议压缩数据,节省带宽,下面是测试报告
测试代码:
C# Code:
C# 全选
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模块中。
扫一扫加微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网