码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-24 18:55:49      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

先说说基础的东西,

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

技术分享

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

技术分享

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

技术分享

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

技术分享

首页型

技术分享

列表型

技术分享

图表型

技术分享

地图型

技术分享

图片轮播型

技术分享

表单型

技术分享

一堆图表型

技术分享

列表里有图表型

技术分享

令人眼花型。。。

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

标签:

原文地址:http://www.cnblogs.com/gk0124/p/5792508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!