1. 程式人生 > >ATK-DataPortal 設計框架(三)

ATK-DataPortal 設計框架(三)

邊界清晰、服務自治、契約共享、基於策略的相容性,是面向對向設計時四個基本原則,我們的應用可能分佈在不同的環境之中,應用可能在同一伺服器中,也可能在不同的網路環境中,保證框架的基類能在不同環境中仍然可用,也就是在分散式環境中仍然可用,是框架設計的一個目標。

為保證業務邏輯和資料訪問能正確分離,框架設計了資料門戶,以使在必要時,保證資料層和業務層分佈在不同的邏輯環境中時業務訪問仍然可用。

框架設計了兩個資料門戶,一是支援本地訪問,二是支援WCF服務訪問

資料門戶的通過IDataPortal介面的類DataPortal<E>來實現的

一、IDataPortal介面

 public interface IDataPortal<E>  where E : BusinessBase, IBusinessBaseContext

    {

        OperateState Insert(E obj);

        OperateState Delete(E obj);

        OperateState Update(E obj);

        E Fetch(E obj);

        OperateState Execute(E obj);

}

實現了增刪改查的基本資料方法,同時也定義了支援執行型別的資料操作Execute(E obj);方法。

二、DataPortal<E>類,是門戶類的實現

    public class DataPortal<E> : IDataPortal<E> where E : BusinessBase, IBusinessBaseContext

    {

}

DataPortal<E>類簡單的實現的IDataPortal介面所定義的方法,其實際的操作在兩個代理類

三、LocalProxy<T>本地代理

本地代理主要是為當前前端和伺服器端佈署在應用服務中,此時,前端可直接訪問到資料層,不需要複雜的操作。

四、WcfProxy<T> WCF代理

WCF代理類處理業務層和資料層不能直接訪問,資料層中的業務是通過WCF服務向其他應用公開的,WcfProxy<T> 提供了一個一至的服務訪問,所有基於ATK-DataPortal的基類實現的類,都可通過WcfProxy<T> 提供的方法正確訪問。

----

ATK

1、一個完整支援分散式服務框架;

2、程式碼生成工具,可快速生成基於服務框架的應用;

3、其他支援庫

4、完整程式碼可在GitHub的https://github.com/azthinker ;開源中國 https://gitee.com/azthinker

目標:使應用開發,低程式碼、高效率、快迭代

有興趣的請在QQ群中參與討論、聯絡作者  QQ群名稱:ATK高效開發 ,QQ群號:747049962

也可發郵件至:[email protected]

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