首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 架构是什么?架构就是创新(三)
【标  题】:架构是什么?架构就是创新(三)
【关键字】:
【来  源】:http://blog.csdn.net/flygoldfish/archive/2007/04/12/1562043.aspx

架构是什么?架构就是创新(三)

架构是什么?架构就是创新

(三)
作者:长江支流

关  键  字:架构、三层结构、多层架构

日     期:2007-04-12

文章摘要

    通过一个实例代码,引出不编译程序,达到升级目的。

正文

  前篇说了,架构就是实践,就是总结。这里进一步说明,架构就是创新。

  还是先看看前篇说的代码。

public class EntityTest:WebMIS.Data.EntityAccess.DBEntity

{

     private int _ID = -1;

     private string _Name = "test";

     public int ID

     {

         get{return _ID;}

         set{_ID=value;}

     }

     public string Name

     {

         get{return _Name;}

         set{_Name=value;}

     }

 

     public EntityTest():base("TableNameOfEntityTest","ID"){}

 

     public override IList GetFields()

     {

         return new string[]{"ID","Name"};

     }

 

     public override IList GetFieldValues()

     {

         return new object[]{_ID,_Name};

     }

 

     public override IList GetPrimaryKeyValues()

     {

         return new string[]{"ID"};

     }

 

     public override void LoadFrom(System.Data.DataRow entityDataRow)

     {

         _ID = int.Parse(entityDataRow["ID"].ToString());

         _Name = entityDataRow["Name"].ToString();

     }

}

 

public class EntityTestManagement:WebMIS.Data.EntityAccess.EntityAccess

{

     public EntityTestManagement(EntityTest entity):base(entity){}

 

     protected override WebMIS.Data.EntityAccess.IExeSql DoReturnDataAccessInstance()

     {

         return null;  //只要实现IExeSql并返回,即可完成跨数据库操作

     }

}   

     在 EntityTest实现IEntityMap接口,为EntityTestManagement提供需要的数据访问信息。如果数据库的结构发生了改变,如何处理?

    大家肯定说,数据结构改变了,增加一个字段嘛,然后重新编译一下就OK了。

    话是不错啊!有没有好的方法,修改了数据结构,不用修改这里的代理,这样就不用重新编译了,程序升级也灵活。

    还有,如果有100个表,是不要要定义100表这个的实现IEntityMap接口的实体呢?怎么样做才能不用编写这样的实体类?

    方法是有的,就需要不断的创新。WebMIS B/S快速开发平台就是采用的XML描述,由程序解析执行,所以结构改变,只需要手动或自动更新XML就可以了。WebMIS C/S快速开发平台,基于单据的快速开发管理系统,也是采用配置,然后装这些配置保存到数据库,只需要升级配置文件就可达到升级程序的作用。详细见开源:企业管理信息系统完全DIY,短平快,.NET源码大放送

    基于WebMIS.Data.EntityAccess.IEntityMap/IEntityAccess的XML暂时还没有开发,现在一直在忙公司给网通做的奥运项目,等这段时间忙完了,就准备做这个。有兴趣的朋友可以一起参预。

    任何一个架构,在一定条件下,可能是好的优秀的架构 , 而在另一个条件和应用中,可能它就是个有很缺陷的架构。不要迷信于别人的架构,它有参考价值,但决不会是一成不变的。

    对于数据处理,如果是基于交易系统,即数据总是单条单条的或批量少的处理,以上这个架构模型非常方便,很实用。但是,如果是基于查询系统,即数据批量处理系统,这个模型在数据处理上就不那么优越了。如果有机会,我将在后面讨论大批量数据处理的架构模型。

    以上说的这个架构,应用于网通某局一个企业级的客户关系管理中,开发相当快速并且维护方便。在公司的项目中,这个项目至少是在部门的项目中,提前很长时间完成开发任务的一个项目。

    总之,架构是实践,架构是总结,架构是创新,只有开发适合自己的应用,即使是没有架构的架构,也是一个好的架构。

本文来源:CSDN上的长江支流Blog
http://blog.csdn.net/flygoldfish 

声明:本文版权为周方勇所有,如需转载,请保留完整的内容及出处。

相关搜索: 

 

Google
WinForm属性查看工具:【上一篇】
Word 表头:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 笑傲江湖版三层交换技术
  • JNCIS-M BETA考试范围 (考试代码:JN1-303)
  • 安全芯片TPM的签名命令Tpm_Sign
  • 关于项目的角色
  • 嵌入式移植的第一个成果:带有openvpn的httpd服务器
  • CString
  • 通过ODBC连接Postgresql
  • TopCoder--计算矩形的公有面积2
  • 笔试题系列之二
  • CL基本命令系统操作
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.