zoukankan      html  css  js  c++  java
  • ATK-DataPortal 设计框架(一)

    无论是简单的还是复杂的框架,总需要一个开始的原点,ATK-DataPortal中包含了所有基础类的定义。

    一、业务框架基础类

    1、BusinessBase:所有业务类的根类,要使用ATK库的类,必需继承此类。

    2、BusinessEditBase:可编辑业务类根类;

    3、BusinessListBase<D>:所有业务列表类的基类,要使用ATK库的列表类,必需继承此类,此类与BusinessBase。

     

    (一)、业务类的基类 BusinessBase

    [Serializable]

    public abstract class BusinessBase : IBusinessObject, IBusinessTrace, IBusinessContext

        {

        }

    由于此类是所有业务类的根类,要使其能适应大多应用场景,其功能不能定义过多,否则易形成藕合。框架本身是需要支持分布环境,因此定义了一些基本的能携带访问信息的属性。

    1、AccessPath:当前访问是一个简单三层设计时,其值一为本地“Local-out”,当是通过WCF服务访问时,其值为WCF终结点名;

    2、AccessAddress:当访问为本地访问时,其值为“Local Access”,当是通过WCF服务访问时,其值为WCF终结点设置的访问地址信息;

    3、State:携带类访问数据时的附加信息,如数据访问记录数,是否访问成功,如果未访问成功,携带回访问错误信息。

    4、Context:上下文管理,由DataPortalContext提供在客户端和服务器之间提供一致的上下文信息数据门户对象。

    5、Criteria:类访问参数,为BusinessCriteria定义,是数据访问的重要信使;

    6、Op:用户访问权限,由RecordOperater定义

    这个类基本定义就这么多。

     

    (二)、可编辑业务类 BusinessEditBase

    此类直接继承于BusinessBase,没有增加更多的定义,为后期扩展时使用;

     [Serializable]

     public abstract class BusinessEditBase : BusinessBase

        {

        }

    (三)、业务列表类的基类 BusinessListBase<D>

    [Serializable]

    public class BusinessListBase<D> : List<D>, IBusinessListObject, IBusinessTrace, IBusinessListContext

            where D : BusinessBase

        {

        }

    此类是所有业务列表类的根类,其中除其是列表业务类外,大多属性与业务类BusinessBase相同。

     

    以上三个类型为整个框架的基本类型,定义简单,尽量设置成与用户界面无关类型。

     

    二、基类是否过于简单

    我们在设置框架时,需定义一些基础类型,我们并非是从一个毫无基础的情况下设置,不论是基于.Net的哪个版本,还是java还是其他别的语言等都有相应的非常丰富的基础框架库,这些基本框架定义了足够多功能的类型让我使用。

    设计一个满足大多场景的框架,几乎是不太可能的,在面对不同的操作系统,不同的硬件交互,不同的交互协议。应用的本身是一系列消息的交互,这些消息要么显示出来让人类理解,要么转换成硬件所能理解的指令,本质上都是各种消息的传递和转换。我们所设计的类型、各种功能库,不过是去如何处理好这此消息,并将这些消息转化成各方理解的指令、信息。

    当我们在经验尚少时,总是想设计出一个一蹴而就的类或库,最终在各种需求变化和技术变化中变得难以修改和使用,在不断的类型增加和修加,系统代码变得越来越难以维护,加之文档的缺失、开发人员的变动,最终变得无约可救,一功又回归重构,新的一次轮回再次上演。 低藕合、高内聚、分离关注点这些观点现在在大多数据开发人员熟悉,但要做到确实是一件较难的事,技术的传承本就是一件难事,企业的兴衰、市场的逐利,让我们不断的重复制造着轮子。

     

    三、辅助类

    1、BusinessCriteria:参数类

    2、BusinessTraceSign:数据访问跟踪类;

     

     

    ----

    1、一个完整支持分布式服务框架;

    2、代码生成工具,可快速生成基于服务框架的应用;

    3、其他支持库

    4、完整代码可在GitHub的https://github.com/azthinker ;开源中国 https://gitee.com/azthinker

    目标:使应用开发,低代码、高效率、快迭代

    有兴趣的请在QQ群中参与讨论、联系作者  QQ群名称:ATK高效开发 ,QQ群号:747049962

    也可发邮件至:azthinker@sina.com

    Demo中的数据库、编译好的代码工具链接:https://pan.baidu.com/s/1B9RQm7_-SFyhLb_HLIGs0w 密码:85q6

    ATK Demo使用的数据库 : https://download.csdn.net/download/xftyyyyb/10675497

    ATK自动代码工具 :https://download.csdn.net/download/xftyyyyb/10675490

  • 相关阅读:
    Windows Python+Eclipse环境配置
    infobright系列二:数据迁移
    infobright系列一:源码安装infobright
    autotools归纳
    Atlas系列一:Atlas功能特点FAQ
    C#反射技术概念作用和要点
    .net获取本机公网IP代码
    Java泛型-类型擦除
    现在就使用HTML5的十大原因
    让网页图片变灰色的三种方法
  • 原文地址:https://www.cnblogs.com/athinker/p/9680249.html
Copyright © 2011-2022 走看看