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

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

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

(三)
作者:长江支流

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

日     期: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值