本方案用提供Delphi7与.NET程序的协同开发, .NET程序开发服务端, Delphi7客户端。客户端只需实现界面、用户输入操作
及错误显示(提示),其他操作(包括对客户端数据集或者单条记录的校验都是发回到服务端进行的)都在服务端完成。服务端
支持部署在Web服务器(IIS, Webservice)或者独立服务器(可作为Windows程序独立运行或者Windows服务运行,TCP协议)。
"友一分销管理系统"是基于该框架实现的,详见"POS管理用户手册.doc",初始设置见"Readme.doc"。一 .NET(C#)服务组件说明
.NET(C#)服务组件开发基于DotNetFrame4.0, 服务端集成Castle实现对AOP的支持。只要在项目中引用BuleCommon.dll程序集,
类(Class)继承于BuleCommon.BuEntity.BuEntityObj, 并且在类和方法前指定[BuleCommon.BuEntity.BuEntityAttribute()]
特性, 实现Bule_EntityRegClass : IBule_EntityRegClass注册类完成服务组件注册即可。
服务组件类框架:
using BuleCommon;
using BuleCommon.BuEntity;
namespace BuJxcData
{
    [BuEntity()] //使客户端能获取该服务组件(class)
    public class BuIOBillValidate : BuEntityObj
    {
        [BuEntity(BuEntityMethod.bemValidate)] //使客户端能获取该服务组件单记录校验方法
        public virtual bool Buf_CallCalcFields(ref BuleEntityCall EntityData, ref BuRecordSet RecordSet)
        {
        }
        [BuEntity(BuEntityMethod.bemValidates)]//使客户端能获取该服务组件多记录校验方法
        public virtual bool Buf_RefreshPriceList(ref BuleEntityCall EntityData, ref DataSet ds)
        {
        }
    }
    [BuEntity()] //使客户端能获取该服务组件(class)
    public class BuCustomers : BuEntityObj
    {
        [BuEntity(BuEntityMethod.bemGetName)]//使客户端能获取该服务组件根据代码获取信息方法
        public BuRecordSet Buf_GetCustData(ref BuleEntityCall EntityData)
        {
        }
    }
    [BuEntity()]//使客户端能获取该服务组件(class)
    public class BuStockCgInBill : BuEntityObj
    {
        [BuEntity(BuEntityMethod.bemOpen)]//使客户端能获取该服务组件打开方法
        public virtual DataSet Buf_OpenBillData(ref BuleEntityCall EntityData)
        {
        }
        [BuEntity(BuEntityMethod.bemSave)]//使客户端能获取该服务组件保存方法
        override public bool Buf_SaveBillData(ref BuleEntityCall EntityData, ref DataSet ds)
        {
        }
        [BuEntity(BuEntityMethod.bemAudit)]//使客户端能获取该服务组件审核方法
        public bool Buf_SaveCgInAuditBill(ref BuleEntityCall EntityData, ref DataSet ds)
        {
        }
    }
}二. Bule VCL组件说明
1.Bu_ClientObj
用于提供模块注册信息(模块名称,子系统编号,模块编号等)及访问服务器的方法(通过Bu_DataAccess,Bu_ClientUser实现),
设计时不能获取服务器信息。2.Bu_Connection
用于提供到服务器的连接,主要用于对后面组件提供设计支持。3.Bu_EntityUpdate
用于提供数据更新操作,支持多数据集(多表)同时更新,数据一次从服务器取回,修改完后一发回服务器更新,具体如何获取数据
或者更新数据由.Net程序在服务器上完成。组件提供三种操作:打开(Buf_OpenEntityData),保存(Buf_SaveEntityData),
审核(Buf_AuditEntityData)完成数据更新。该组件提供设计支持,设置好服务器连接后,可以从服务器选择完成数据更新的
.Net程序集、服务器组件、打开方法、保存开方法、审核开方法,执行相应的操作时组件就会调用对应.Net程序集完成指定的
操作,数据格式用XML封装,支持设计时测试操作。4.Bu_EntityQuery
用于提供数据查询操作,该组件提供设计支持,设置好服务器连接后,可以从服务器选择完成数据查询的.Net程序集、服务器组件、
查询方法,执行查询操作时组件就会调用对应.Net程序集完成查询操作,数据格式用XML封装,支持设计时测试操作。5.Bu_RecordValidate
用于提供对单条记录的校验操作,该组件提供设计支持,设置好服务器连接后,可以从服务器选择完成数据校验的.Net程序集、
服务器组件、校验方法,执行校验操作时组件就会将单条记录数据发回到服务端调用对应.Net程序集完成校验,然后返回校验
好的记录,再根据返回记录更新客户端记录,数据格式用JSON封装,支持设计时测试操作。6.Bu_RecordSetValidate
用于提供对数据集(多记录)的校验操作,该组件提供设计支持,设置好服务器连接后,可以从服务器选择完成数据更新的.Net程序集、
服务器组件、校验方法,执行校验操作时组件就会将数据集(多记录)发回到服务端调用对应.Net程序集完成校验,然后返回校验
好的数据集(多记录),再根据返回数据集更新客户端数据集,数据格式用XML封装,支持设计时测试操作。7.Bu_EntityGetName
用于提供根据代码获取信息的操作,该组件提供设计支持,设置好服务器连接后,可以从服务器选择完成获取信息的.Net程序集、
服务器组件、校验方法,执行校验操作时组件就会将代码发回到服务端调用对应.Net程序集完成获取信息,然后返回获取信息记录,
再根据返回记录更新客户端记录,数据格式用JSON封装,支持设计时测试操作。http://download.csdn.net/detail/hz_bule/4972876