FoxOne---一个快速高效的BS框架--(3)

FoxOne---一个快速高效的BS框架--(1)

FoxOne---一个快速高效的BS框架--(2)

接下来该写点啥呢?一脸懵逼,是继续介绍功能呢?还是拉源码出来讲讲思路,看评论那么多人要求上源码,那就还是讲一下设计的思路吧。

先说说基础的东西,

1.框架的数据访问组件是拿之前公司的改良而来的,自己加了一些根据实体自动创建表的功能,所以DAO算不上是原创;

2.日志记录用了Log4net,自己弄了个类封装了一下下。

3.IOC用的是Unity

4.快速反射貌似是老赵的

5.EXCEL导出用NPOI

6.前端JS组件用了,jquery,zTree,validator(改造过),datepicker,hightcharts,layout,uploadify,xheditor...

7.WEB版工作流流程设计器是基于jsPlumb-2.1.0

8.项目基于.NET Framework 4.0

配置的页面呈现时,地址都是/Page开头,所以所有的请求其实是通过PageController呈现的,来看看PageController的代码

就这么一点点,里面最重要的是找到相应的Page或IComponent,然后调用它的Render()方法,从这里也是可以看出,页面的任何一个Ctrl都是可以独立Render的,这样在A页面配置好的控件,是可以直接在B页面引用的。

再来看Page类,它的Render方法就是个赤果果的拼接字符串的过程

默认所有页面都需要common.js和widget.js还有common.css,所以就默认就带进去了,其它的可以在配置中另引,这三个其实都不是真实的文件,

其实最终最重要的逻辑还是在RenderControls里面,

它有个IList<IComponent> 类型的属性Children,页面的所有控件都在里面,Layout就是页面新建时选择的布局了。

layout.Html是什么鬼?如下,就是能让jquery.layout呈现的一串HTML,里面有两个占位符(要多少个自己随便写),然后上面的逻辑无非就是找TargetId指向Left的控件呈现到$Left$的位置上去,TargetId为Right的控件呈现到$Right$位置上去。。。想想这招都觉得有点矬。。。

IComponent的定义如下:

IComponent是为所有能呈现HTML的组件,而IControl为所有控件设计器支持的控件(数据源控件不用呈现,直接继承自这个就行),

一个最最最简单的IComponent长这样:

当然,布局也是可以随便增加的

到这就感觉讲完了。。。。

接下来就是要设计很多很多的控件,增加很多很多的布局,这样理论上来说,什么样的页面都能配置出来了,下面来看看已经配好的页面效果

首页型

列表型

图表型

地图型

图片轮播型

表单型

一堆图表型

列表里有图表型

令人眼花型。。。

时间: 2024-10-26 13:29:54

FoxOne---一个快速高效的BS框架--(3)的相关文章

FoxOne---一个快速高效的BS框架--WEB控件属性编辑器

FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架--(4) 我们都知道,VS中有个WEBFORM的控件属性编辑器,能够自动反射控件的各个属性,并且根据属性的类型出现相应的编辑控件,例如: 1.布尔类型,对应下拉框,里面的选项出现 是 和 否 2.枚举类型,对应下拉框,里面的选项出现的是枚举的各个值 3.string类型和int类型,出现的都是输入框

教你快速高效接入SDK——渠道SDK的接入(就是实现抽象层的接口而已)

题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道.每个渠道SDK接入的方法呢,多是大同小异.但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数.所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了.如果你之前被坑过,而且还在继续被坑着,那么现在,就是你解脱的时刻. 先将之前的每一篇做个索引,方便亲们查阅

教你快速高效接入SDK——SDK接入抽象层的设计

题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道.每个渠道SDK接入的方法呢,多是大同小异.但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数.所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了.如果你之前被坑过,而且还在继续被坑着,那么现在,就是你解脱的时刻. 上一篇文章,我们总体地分析并设计了一套

记2014年暑假,一个项目,三个框架

在开始动笔之际,看了下博文的标题,突然觉得欠妥,"记2014年暑假,一个项目,三个框架",既然是暑假说明还是学生,今年的6月我已经毕业了,但还在学习,并且在向一名合格的架构师狂奔.你说我矫情也好,做作也罢,现实就是这样的,厚着脸说:咱也矫情一回. 整个暑假,总共四十天,从7月中旬开始到8月底,从技术上看,整个假期都处于看视频,做项目,作总结的过程中,前二十天跟着视频做了DRP的项目,后二十天(到8月26日),看完了三个框架的视频,总结还在继续:从英语上看,这个假期是从听走向说的开始:从

快速学习bootstrap前台框架

W3c里的解释 使用bootstrap需要注意事项 1.  在html文件第一行要加上<!doctype html>[s1] 2.  导入bootstrap.min.css文件 3.  导入jquery.js[s2] 与bootstrap.js[s3] 快速学习 1.  登陆http://www.w3cschool.cc/bootstrap 2.  查看里面解说 3.  通过以下实例了解如何学习w3c的bootstrap.(一个警告框的实例) <!DOCTYPE html> <

快速入门系列--WebAPI--03框架你值得拥有

接下来进入的是俺在ASP.NET学习中最重要的WebAPI部分,在现在流行的互联网场景下,WebAPI可以和HTML5.单页应用程序SPA等技术和理念很好的结合在一起.所谓ASP.NET WebAPI,其核心概念就是构建REST风格的Web服务,把一起数据视为资源,无论是服务请求或者是数据操作,与以前的SOAP和XML-RPC架构风格有很大不同.说道这,很多读者可能想到WCF中不是早都有了REST风格的服务么,为什么还需要这个WebAPI?确实如此,不过WCF中的该类型服务显得比较复杂,因为其通

[Android开源]一套快速高效的开发框架EasyAndroid

类库介绍 EasyAndroid 现在Android的框架很多,第三方库也很多,当做一个项目的时候,会考虑怎么整合那么多的资源,以达到复用快速开发. 今天要说的这个框架就是整合了主流Retrofit2网络层封装.Fresco图片加载.都使用OKHTTP3进行网络处理.使用MVP架构,来快速灵活开发复用我们的项目. 框架说明 Retrofit2 为什么要使用它呢?我们来想想如果不使用它的话,我们直接操作OKHTTP3的网络请求,还需要做哪些操作?当发送请求的时候,来封装要以get或者post方式发

从零构建一个简单的 Python Web框架

为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何工作的很感兴趣,因为你想要成为一位更好的 web 开发者. 接下来的笔墨将着重于最后一点.这篇文章旨在通过对设计和实现过程一步一步的阐述告诉读者,我在完成一个小型的服务器和框架之后学到了什么.你可以在这个代码仓库中找到这个项目的完整代码. 我希望这篇文章可以鼓励更多的人来尝试,因为这确实很有趣.它让

一个快速、完善的Android开发框架整合实践(QuickAndroid)

https://github.com/alafighting/QuickAndroid QuickAndroid 一个快速.完善的Android开发框架整合实践 QA项目简介 本框架QuickAndroid(以下简称:QA)尚处于开发阶段. 本项目的宗旨是:整合一个快速.完善的Android开发框架. 编译工具使用:Eclipse + ADT + Android SDK: 编译环境是Android 5.0(21),最低支持Android 2.2(8): 项目编码采用:UTF-8,源码带有中文注释