当前位置: 首页 > news >正文

成都 网站建设 公司/全球网站流量排名查询

成都 网站建设 公司,全球网站流量排名查询,大连网站建设佳熙科技,网站制作样板框架的介绍: 1. 已经完成了对于消息内部类型的支持(int, short, long, uint, ushort, ulong, bool ,float, double, byte, byte[], DateTime, IntPtr, Guid) 2. 支持内部序列化元数据(.NET可序列化的对象) 3. 对于智能对象内部的“智能对象”提供支持。 支持迭代元数据转换。 …

框架的介绍: 


1. 已经完成了对于消息内部类型的支持(int, short, long, uint, ushort, ulong, bool ,float, double, byte, byte[], DateTime, IntPtr, Guid)
 2. 支持内部序列化元数据(.NET可序列化的对象)
3. 对于智能对象内部的“智能对象”提供支持。 支持迭代元数据转换。


[说明:]
KJFramework框架中内置了一套,可以将网络传输实体自动转换为二进制元数据的能力框架。
使用此框架,将使得用户不在关心底层传输时对于二进制编码/解码的繁琐过程,解放程序员的脑力劳动。
目前此内置框架被初步定义在命名空间:KJFramework.Messages内,拥有独立Assembly.
对于智能二进制消息框架, 内部提供了对于诸多类型的支持,甚至可以用于在不编写序列化代码的情况下,
将一个网络传输实体转换为二进制操作。
这一切的操作,都全部由内部框架完成,通过简单的属性标签,就可以实现很强大的转换功能。
目前智能二进制消息框架中,仍保留了内部扩展能力,日后扩展后,将会通过配置文件来增强配置能力。

 

与此框架类似的通用组件:

ProtoBuffer - Google.

 

此框架的应用:

可以将此框架应用到网络对象的传输上,也就是说,当我们做一个分布式系统的时候,

只需要使用此框架,我们将无需再关心底层消息对象的序列化和反序列化细节,这一切的

工作将会由框架内部来完成。

 

性能指标:

此框架的基于.NETFRAMEWORK 4.0开发

测试平台:

CPU: Intel(R)Xeon(R)CPU X5670 @2.93GHz @2.93GHz (2处理器) 

System: Windows Server 2008 R2 Enterprise 

定义: 复杂对象,内部包含了多个数组类型的成员,比如string[], int[],

          内部还嵌套了其余类。

*想看看在这里测试的复杂对象到底有多复杂吗?  附上测试类的代码

*在我们的测试中,使用的是下列代码中的TestObject. 从下列代码中可以看到,此类型拥有很多的数组,而且还包含了其他的子类型 

 

 

public class TestObject : IntellectObject{private TestObject1 _obj;[IntellectProperty(7)]public TestObject1 Obj{get { return _obj; }set { _obj = value; }}private int[] _mm;[IntellectProperty(0)]public int[] Mm{get { return _mm; }set { _mm = value; }}private TestObject1[] _pp;[IntellectProperty(27)]public TestObject1[] Pp{get { return _pp; }set { _pp = value; }}private String[] _uu;[IntellectProperty(28)]public String[] Uu{get { return _uu; }set { _uu = value; }}private TestObject2[] _nn;[IntellectProperty(30)]public TestObject2[] Nn{get { return _nn; }set { _nn = value; }}private String[] _jj;[IntellectProperty(26)]public String[] Jj{get { return _jj; }set { _jj = value; }}private int _wokao;[IntellectProperty(4)]public int Wokao{get { return _wokao; }set { _wokao = value; }}private int _wocao;[IntellectProperty(2)]public int Wocao{get { return _wocao; }set { _wocao = value; }}private string _woqunimade;[IntellectProperty(3)]public string Woqunimade{get { return _woqunimade; }set { _woqunimade = value; }}private byte[] _metadata;[IntellectProperty(13)]public byte[] Metadata{get { return _metadata; }set { _metadata = value; }}private byte _metadata1;[IntellectProperty(15)]public byte Metadata1{get { return _metadata1; }set { _metadata1 = value; }}private TestObject2 _obj2;[IntellectProperty(16)]public TestObject2 Obj2{get { return _obj2; }set { _obj2 = value; }}private DateTime _time;[IntellectProperty(100)]public DateTime Time{get { return _time; }set { _time = value; }}}public class TestObject1 : IntellectObject{private string _haha;[IntellectProperty(0)]public string Haha{get { return _haha; }set { _haha = value; }}private Colors _colors;[IntellectProperty(1)]public Colors Colors{get { return _colors; }set { _colors = value; }}}[Serializable]public class TestObject2 : IClassSerializeObject{private int _nice;public int Nice{get { return _nice; }set { _nice = value; }}}

 

 

 

 

 *请注意: 由于性能的提升, 我们在10月31日更新了性能指标!

序列化复杂对象(DEBUG):

     .次数 100000: 2066(ms) *此值根据测试机器的配置不同而不同,仅供参考
     .Gen0回收次数: 49
     .Gen1回收次数: 48
     .Gen2回收次数: 1

反序列化复杂对象(DEBUG):

     .次数 100000: 1350(ms) *此值根据测试机器的配置不同而不同,仅供参考
     .Gen0回收次数: 22
     .Gen1回收次数: 1
     .Gen2回收次数: 0



序列化复杂对象(RELEASE):

     .次数 100000: 1683(ms) *此值根据测试机器的配置不同而不同,仅供参考
     .Gen0回收次数: 49
     .Gen1回收次数: 48
     .Gen2回收次数: 1

反序列化复杂对象(RELEASE):

     .次数 100000: 1077(ms) *此值根据测试机器的配置不同而不同,仅供参考
     .Gen0回收次数: 22
     .Gen1回收次数: 1
     .Gen2回收次数: 0



*具体的测试截图, 请查看源代码Pictures目录下的图片.  

 

 

 

 

数据段格式图:

 


 

 

 

 

更高的自定义需求:  

  在此框架中,对于每一个可以序列化的类型(int, string .....等等),都会为其配备一个智能类型处理器(IIntellectTypeProcessor),在框架的使用中,这些处理器都是默认的,如果,您感觉还有更好的实现能够加速

当前的序列化或者反序列化流程,那么,您可以在您的系统初始化的时候,使用自己的智能类型处理器来替换系统

现有的。 这样,就达到了可自定义类型序列化和反序列化的标准和算法 :)  当然,您也可以选择添加一个新的处理器。

  其次,在KJFramework.Message中,我们能看到,每一个可序列化的字段,都需要一个智能属性标记[IntellectPropery]

而每个这种标记都需要为序列化的字段提供一个唯一的数字序号,就比如:[IntellectProperty(0)] ,如果当您的自定义类型,需要为一个特殊的字段做特殊处理的时候,可以选择为一个特殊的编号字段来定制一个特殊的智能类型处理器。

比如,我们的登录消息,如果有一个字段用来存储密码,而我们恰巧需要为此字段进行MD5加密。

  那么,该怎么办呢?  当然,办法有很多种,我们可以选择先进行MD5的加密,然后再赋值,也可以选择如下的方式:

 

/*以下为代码示例*/
public class LogonMessage : IntellectObject
{[IntellectProperty(0)]public string UserName{get;set;}//可以看到,Password字段的序号为1. //我们就可以单独添加一个字段处理器 来处理每一个消息实体内包含有序号1的字段[IntellectProperty(1)]public string Password{get;set;}
}

 

  *请不用担心,KJFramework.Message内部会对此操作做特殊的支持,好来完成您的特殊需求 :)

 

 

更专业的需求:

   现在我们已经为一个智能对象(IntellectObject)加入了描述自身的能力(New)。 也就是说,使用者随时随地

都可以通过如下调用 来得到当前对象的字符串形式描述信息。

   IntellectObject.ToString(); 

  当得到了一个对象的描述信息后,我们就能够很轻松的将其记录到日志文件中,这是不是很方便呢?

在日后,我们将会不停地更新这套框架,这也就意味着,会有越来越多的功能在以后会被加入,

如果您感兴趣,我们希望您能够持续关注。

 

附:

   此框架目前已经能够达到初步的商用层次,完全可以当做网络消息协议的序列化和反序列化转换层来使用,

  相信使用过GOOGLE的ProtoBuffer的朋友都应该明白了。我会一直更新此框架,如果您的项目中有此类需求,

  那么您可以选择尝试一下这套框架, 不会让您失望的 :)

 

   项目地址:http://message.codeplex.com/ 

   目前此项目已经发布了Release版本,您可以选择直接下载二进制文件使用,或者下载源代码 :)

   如果在使用此框架的途中,有任何问题,您也可以选择与我联系,我将提供最优的技术支持。

    QQ:250623008

    Email: Kevin.Jee@live.cn

 

 

 

谢谢. 

 


转载于:https://www.cnblogs.com/umbrella_yang/archive/2011/10/31/2230469.html

http://www.jmfq.cn/news/4943845.html

相关文章:

  • 广西网络网站建设/推广资源网
  • 广州疫情最新动态知乎/企业站seo外包
  • 如何建设移动端网站/网站建设方案开发
  • 单页网站模板做seo/宁波 seo排名公司
  • 网站字体字号/网络广告宣传平台
  • 淘宝客建立网站/可以访问违规网站的浏览器
  • 梁山做网站价格/优化大师软件大全
  • 网站搭建素材/1000个关键词
  • 网站开发 案例/关键词有几种类型
  • 网站建设定制/推广代运营公司
  • ping一下新浪网站怎么做/网络服务器搭建
  • 南京宜电的网站谁做的/重庆seo网络营销
  • wnmp搭建后怎么做网站/seo外链网
  • 北京广告公司聚集地/深圳网络优化推广公司
  • 云服务器和网站备案/廊坊关键词快速排名
  • 网站设计在线培训/网站建设的基本
  • 自建网站模板/已备案域名交易平台
  • 网站建设费用报价表/公司网址有哪些
  • 做国外的众筹网站/商丘seo推广
  • 动态网站建设编程/成人电脑基础培训班
  • 贸易型企业网站建设/网络营销买什么好
  • 哈尔滨网络优化推广公司/seo官网优化详细方法
  • 专门做建筑设计图库的网站设计/软文营销的五大注意事项
  • 许昌网站建设公司/热点新闻事件
  • 昆山做网站怎么做/36优化大师下载安装
  • 福州网站建设找嘉艺网络/推广网
  • 云主机服务器/深圳网站营销seo电话
  • 北京 网站建设 公/青岛网站设计公司哪家好
  • 如何做产品众筹网站/网站运营指标
  • 完美政府网站模版/推广赚钱app