[长流支流]的专栏----技术交流、C#实战开发培训、源码产权出售转让、证书打印、套打、MIS开发、嵌入式应用猎头...

继《金制打印通》之后,隆重推出《WebMIS.NET快速开发平台》,2010年新增WinCE/Mobile应用开发培训! 联系TEL:13651078179

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

< type="text/javascript">< type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> < type="text/javascript">< type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

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

(三)
作者:长江支流

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

日     期: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

发表于 @ 2007年04月12日 14:24:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:架构是什么?架构就是总结(二) | 新一篇:套打经典--《国土资源管理证书打印》系统开发完成,功能介绍!

  • 发表评论
  • 评论内容:
  •  
Copyright © flygoldfish
Powered by CSDN Blog