博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
框架一
阅读量:4207 次
发布时间:2019-05-26

本文共 8278 字,大约阅读时间需要 27 分钟。

 框架从层次结构上分主要分为:ORM层、Meta层、BO层、SO层、数据交换层、DTO层、服务层、代理层、外观层,这几大层。

ORM层:主要提供,存储过程、配置文件的翻译,实现数据库与实体数据的映射。由框架提供。
Meta层:主要提供,数据库与对象的映射,由工具生成,在98%的应用场合不用更改
BO层:业务逻辑层,核心的业务逻辑,基本关联已经由工具生成,可以在此层处理特定业务逻辑,如果涉及分布式数据访问,需要在此进行稍加改动。对于关联结构、主从结构要在此加上关联处理,重写OnBeforeAdded/onAfterAdded/等。加入特定业务。建议通用查询/配置过程的处理,在这里重写一下,不要以ActionId对外开放。(在Demo里面没有给出通用查询/配置过程的处理,类似于Ibatis的配置文件)
SO层:业务外观层,主要是与客户端打交道,提供客户端所需要的数据。SO层与DTO和数据交换相互配合,传输客户端需要的数据。提供声明性事务、声明性服务。工具根据BO业务层生成SO层代码。
数据交换层:实现DTO层与BO层的数据交换,实现客户端的数据与业务数据的连接。工具生成基本代码。
服务层:根据BO生成的配置文件,提供基于Http信道的服务。(可以提供TCPIP等其他信道)主要服务主框架提供,需要在此配置基本连接字符串,设置配置文件的路径等。
代理层:由工具生成,配置文件根据服务生成。
外观层:当前只提供CS的界面生成,BS界面下一步加入。主要提供了列表的配置、列表界面、明细界面的生成,对于主从、关联结构的自动触发机制。客户端生成代码的质量非常高,基本应用的改动很小。
下面把每一部分的代码一一介绍
namespace Unie2e.Yuking.Enities
{
    
using System;
    
using System.Collections.Generic;
    
using System.Text;
    
using System.Data;
    
using System.Data.SqlClient;
    
using Unie2e.Common;
    
using Unie2e.ORM;
    
using Unie2e.ORM.Mapping;
    
    
    [System.SerializableAttribute()]
    [Unie2e.ORM.Mapping.TableAttribute(
"DO", MapFileName="DOCustParam.Xml")]
    
public sealed class DOEntity : Unie2e.ORM.Mapping.Entity
    
{
        
        
/// <summary>
        
/// 映射字段的总长度
        
/// </summary>
        private const int length = 5;
        
        
映射字段
        
        
重载基类函数
    }
    
    [System.SerializableAttribute()]
    [Unie2e.ORM.Mapping.TableAttribute(
"DO")]
    
public abstract class DOFindParam<T> : EntityParam<T> where T: IEntity
    
    
{
        
        
/// <summary>
        
/// 映射字段的总长度
        
/// </summary>
        private const int length = 6;
        
        
映射字段
        
        
重载基类函数
    }
    
    [System.SerializableAttribute()]
    [Unie2e.ORM.Mapping.TableAttribute(
"DO")]
    
public sealed class DOFindParam : DOFindParam<DOEntity>
    
{
    }
    
    [System.SerializableAttribute()]
    [Unie2e.ORM.Mapping.TableAttribute(
"DO")]
    
public abstract class DOActionParam<T> : EntityParam<T> where T: IEntity
    
    
{
        
        
/// <summary>
        
/// 映射字段的总长度
        
/// </summary>
        private const int length = 2;
        
        
映射字段
        
        
重载基类函数
    }
    
    [System.SerializableAttribute()]
    [Unie2e.ORM.Mapping.TableAttribute(
"DO")]
    
public sealed class DOActionParam : DOActionParam<DOEntity>
    
{
    }
}

namespace
 Unie2e.Yuking.Data
{
    
using System;
    
using System.Collections.Generic;
    
using System.Text;
    
using System.Data;
    
using System.Data.SqlClient;
    
using Unie2e.Common;
    
using Unie2e.ORM;
    
using Unie2e.ORM.Mapping;
    
using Unie2e.Service;
    
using Unie2e.Yuking.Enities;
    
using Unie2e.Yuking.Service;
    
using Unie2e.Yuking.Common;
    
    
public class DO<T> : E2EData<T,DOEntity> where T:DO<T>,new ()
    
    
{
        
        
public DO()
        
{
        }
        
        
public DO(DOEntity meta) : 
                
base(meta)
        
{
        }
        
        
映射属性
        
        
创建函数
    }
    
    [Unie2e.Common.Model.E2EDataAttribute(
"DOService")]
    
public class DO : DO<DO>
    
{
        
        
关联子集合Field
        
        
关联父对象Field
        
        
public DO()
        
{
        }
        
        
public DO(DOEntity meta) : 
                
base(meta)
        
{
        }
        
        
关联子集合Property
        
        
关联父对象Property
    }
}

你可能感兴趣的文章
解决 Asp.net 中,url传参乱码 方法之一:(UrlDecode)
查看>>
pdf的转换网址:
查看>>
结构体的深度拷贝和浅拷贝
查看>>
结构体中的话题-偏移量
查看>>
c语言文件读写概念
查看>>
按照块的方式操作文件
查看>>
c++设计模式之三~抽象工厂模式
查看>>
c++设计模式之单例模式
查看>>
c++设计模式之建造者模式
查看>>
c++设计模式之原型模式
查看>>
c++设计模式之适配器模式
查看>>
c++设计模式之桥接模式
查看>>
c++设计模式之装饰模式
查看>>
c++设计模式之一:外观模式
查看>>
c++设计模式之一:享元模式
查看>>
c++设计模式之一:代理模式
查看>>
c++设计模式之:职责链模式
查看>>
c++设计模式之命令模式
查看>>
c++设计模式之:解释器模式
查看>>
c++设计模式之迭代器模式
查看>>