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

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

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

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

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

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

FoxOne---一个快速高效的BS框架--数据访问(Dao)

FoxOne---一个快速高效的BS框架--生成增删改查

 

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

先说说基础的东西,

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长这样:

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

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

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

首页型

列表型

图表型

地图型

图片轮播型

表单型

一堆图表型

列表里有图表型

令人眼花型。。。

如果有兴趣的可以加入群里来交流一下,群号:581523872

 

github:https://github.com/gameking0124/FoxOne

posted on 2016-08-24 17:42  0124  阅读(2418)  评论(8编辑  收藏  举报

导航