zoukankan      html  css  js  c++  java
  • JQuery Smart UI 简介(六) — 框架设计【后篇】(数据接口、后台框架)[简介系列完结]

      上篇介绍了Smart UI的前台架构,本篇继续后面的内容 — Data Interface、Business Layout、DataAccess。

      

    • Data Interface

      数据接口,Smart UI中实现前后台衔接的唯一接口,实现与各种后台语言(.net、java等)对接的核心内容。主要处理UI层各种请求,方法权限控制,回发数据解析、验证,统一错误处理等。主体内容包括四部分,如下图:

      

    如图所示,整个post请求的内容主要是四部分:

      1. Post Handler

      post请求统一接口;在UI层,所有的请求都是组织成统一的格式,向Post Handler发送post请求。(上传除外,由单独的请求完成),然后Post Handler根据请求的fncode,进行权限验证和执行对应方法,然后将返回的数据也组织成统一格式回传给客户端。

      

      2. Post Data

      UI层post过来的数据【json格式】,分为两类:

        一、系统公共数据:fncode和一些前台系统数据。

        二、业务数据:各个页面的传递到后台的业务数据,也分为两类:分页列表数据【Json格式】与普通数据【Json格式或字串】

     

      3. Function

      各个fncode对应的操作方法,有着权限控制。在Function执行时,才会去的解析Post Data的业务数据。

     

      4. Response Data

      返回给客户端请求的数据, 与Post Data一样,也分为两类:

        一、系统公共数据:系统公共数据【用户信息、服务端时间等】、错误信息等。

        二、业务数据:各个Functin执行后返回的数据,也分为两类:分页列表数据【列表数据对象】与普通数据【Object】。

      

      特别说明一下,在单独实现Data Interface与Smart UI对接的其实很容易,只需要注意两点:一、将请求与后台的方法对应,二、数据遵循规范格式。

      此外,还建议Data InterFace中,实现数据库的操作类,配合Post Data与Response Data的格式使用会使开发变的更加的简单。具体的内容,大家可以借鉴Demo中的内容。

      Data InterFace核心对象类图:

      

     

      Business Layout & DataAccess这两层不用太多的介绍,大家应该很熟悉。在这里简单的介绍一下,Smart UI自带后台框架的内容。

    •  Business Layout

     

          全部以静态对象实现,一个RunFunction的公共出口,对应每个操作方法,所有方法的参数接口很统一,一个post的业务数据,一个是返回的自定义错误信息【可选】。如下面代码:

     

     

    public class BRName
        {
            public static object RunFunction(string fnCode, string postContent, ref string error)
            {
                object objReponseData = null;
                switch (fnCode)
                {
                    case "fn_ps01":
                        objReponseData = SelectDatas(postContent);
                        break;
                    case "fn_ps02":
                        objReponseData = SaveEntity(postContent,ref error);
                        break;
                    case "fn_pg03":
                        objReponseData = GetEntityByID(postContent);
                        break;
                    case "fn_pd04":
                        objReponseData = DelByID(postContent);
                        break;
                    case "fn_pg05":
                        objReponseData = GetProductList(postContent);
                        break;
                }
                return objReponseData;
            }
    
            public static object SelectDatas(string postContent)
            {}
    
            public static object GetDataList(string postContent)
            {}
    
            public static object SaveEntity(string postContent,out string error)
            {}
    
            public static object GetEntityByID(string postContent)
            {}
    
            public static object DelByID(string postContent)
            {}
    

     

    • DataAccess

      目前使用的是NBearLite扩展,原本计划重新开发一套对应的后台框架的或者在NHibernate上扩展,NBearLite则是在之前我写的一套轻量级开发框架中扩展使用,只是临时准备配合Smart UI测试使用,结果发现NBearLite与Smart UI非常合拍,有点量身打造的感觉,当然也还是要扩展一下的。此外,针对DataAccess,Smart UI后续会新增一个特别模式,会完全放弃“ORM”的内容。

    扩展的内容主要有三部分:

      1.查询类:结合Post Data和Response Data中的分页查询格式,自动解析查询条件数据,和实现一些特殊的查询内容(如:Between条件与前台的结合)。

      2.操作类:与查询类独立,实现读写分离,根据实体结构对象,解析回发数据,自动与字段匹配。

      3.其他扩展:封装一些常用的操作与多种方式的批量处理操作。

      引用本系列的开篇简介中的图,大家可以看到图中查询和操作的基本例子,使用很简单,只需要设置那些字段和条件,不用关心数据(当然一些特殊的数据处理需要单独完成),更多的内容请查看demo和关注后续系列中的内容。

     

    结尾

      《JQuery Smart UI简介系列》到此已全部结束,接下来的内容会从两个方面并行进行,《JQuery Smart UI 应用系列》和《JQuery Smart UI 控件系列》,至于api会根据这两个系列的相关内容在文章中陆续公布。另外,Smart UI的网站目前也在建设中,不久就能上线,届时实例和演示的内容会更加有针对性和丰富一些,请有兴趣的朋友继续支持。

      最后,对所有关心和支持Smart UI的朋友、武汉软通动力Ipsa的各位同仁的大力支持和2.0工作组的关键性思路和想法、以及各位一直支持我的兄弟们表示诚挚的感谢。

      注:所有内容皆为原创,转载请注明出处 By JQuery Smart UI - Roy Zhang

      

  • 相关阅读:
    POJ 3140 Contestants Division (树dp)
    POJ 3107 Godfather (树重心)
    POJ 1655 Balancing Act (树的重心)
    HDU 3534 Tree (经典树形dp)
    HDU 1561 The more, The Better (树形dp)
    HDU 1011 Starship Troopers (树dp)
    Light oj 1085
    Light oj 1013
    Light oj 1134
    FZU 2224 An exciting GCD problem(GCD种类预处理+树状数组维护)同hdu5869
  • 原文地址:https://www.cnblogs.com/zhh8077/p/1883553.html
Copyright © 2011-2022 走看看