文章更新:

  1. AppBox v6.0中实现子页面和父页面的复杂交互

AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理、职称管理、部门管理、角色管理、角色权限管理等模块。

AppBox v2.0简介

AppBox v2.0 发布于2012年12月份,前端展现使用的是 FineUI v3.2.3,而ORM工具是 SubSonic v2.2.1。AppBox v2.0的创新之处在于将模块和模块权限的定义放在C#代码中,从而方便了在Web Form后端代码中使用强类型的权限定义,而不是传统意义上的字符串,如下所示。

模块的定义:

public enum ModuleType
{
None,
CoreMenu,
CoreJobTitle,
CoreJobTitleUser,
CoreDept,
CoreDeptUser,
CoreRole,
CoreUser,
CoreRoleUser,
CoreRoleModule,
CoreLog,
CoreConf,
CorePassword,
CoreOnlineUser,
AppFile,
AppTest
}

权限的定义:

public enum ModulePowerType
{
None, // 浏览权限是公共的,每个模块都有
CanRead, CoreDept_New,
CoreDept_Edit,
CoreDept_Delete, CoreDeptUser_New,
CoreDeptUser_Delete,
}

然后在Web页面后台定义每个页面所属的模块:

public override ModuleType Module
{
get
{
return ModuleType.CoreUser;
}
}

判断某个操作是否拥有权限时:

// 在操作之前进行权限检查
if (!CheckPowerDelete())
{
CheckPowerFailWithAlert();
return;
}

AppBox 升级的必要性

一:虽说将权限定义在C#代码中是AppBox v2.0的一处创新,但却遭到很多网友的反对,认为和传统意义上保存在数据库的做法不同,不灵活,也增加了理解的难度。AppBox v3.0会彻底颠覆之前版本对权限的控制,采用一种更加现代化的创新(我将之称为“扁平化的权限设计”,由本人一手杜撰,如有雷同,纯属巧合),到时权限的定义已经是保存在数据库的了。

二:AppBox大版本升级的另一个重要原因是 Subsonic 已经跟不上时代潮流了,长期没有更新和维护了,这也不能不说是开源领域的遗憾,想当年 Subsonic 不用生成一行代码的理念是多么的吸引眼球,而其易用性也是吸引大批开发者的重要因素。AppBox 3.0会使用Entity Framwork的Code First开发模式对AppBox进行完全重构,到时你可以看到Entity Framework在项目开发中的一些最佳实践。

三:形同鸡肋的概念“模块”。在AppBox v2.0中,模块的引入也是参考了很多开源的权限框架,但模块仅仅是作为权限分组没有实际的意义,同时引入一个没有多大意义的概念会造成用户概念上的混淆(很多用户在问菜单和模块的关系),同时数据库设计会复杂的多的多。AppBox v3.0独创的“扁平化的权限设计”彻底抛弃了“模块”的概念,从而在数据库设计、逻辑代码和用户体验上有很大的提升。

AppBox v2.0 完全免费下载!

AppBox v2.0 免费下载地址:http://fineui.com/bbs/forum.php?mod=viewthread&tid=3788

注:

1. AppBox v2.0 是免费软件,已经可以免费下载了;

2. AppBox v3.0 是捐赠软件,你可以通过捐赠作者来获取AppBox v3.0的全部源代码(http://fineui.com/donate/)。

AppBox v3.0 正式发布!  

AppBox v3.0采用全新的“扁平化的权限设计”,从而简化了数据库设计和代码编写工作,也提升了用户体验,是由三生石上经过思考创建的全新权限设计理念。前端展现使用最新的 FineUI v3.3.1,ORM工具是流行的Entity Framework v5.0(Code First),开发工具是 Visual Studio 2012(.Net Framework 4.5)。在这里,你可以学习到全新的理念和知识,以及将FineUI和Entity Framework应用到项目的最佳实践。

接下来的一段时间,我会通过一系列的文章来解密这次升级全过程,敬请每天关注我的博客:

1. AppBox升级进行时 - 拥抱Entity Framework的Code First开发模式

2. AppBox升级进行时 - 扁平化的权限设计

3. AppBox升级进行时 - Entity Framework的增删改查

4. AppBox升级进行时 - 如何向OrderBy传递字符串参数(Entity Framework)

5. AppBox升级进行时 - 关联表查询与更新(Entity Framework)

6. AppBox升级进行时 - Attach陷阱(Entity Framework)

7. AppBox升级进行时 - Any与All的用法(Entity Framework)

8. AppBox升级进行时 - 经典的表单和表格页面(FineUI)

9. AppBox升级进行时 - 经典的主从表页面(FineUI)

10. AppBox升级进行时 - 跨页保存表格的选中项(FineUI)

11. AppBox升级进行时 - 向子窗口传值,向父窗口回传值(FineUI)

12. AppBox升级进行时 - 角色的权限管理页面(FineUI)

13. AppBox升级进行时 - 适当的JavaScript为页面增色(FineUI)

14. AppBox升级进行时 - 如何控制按钮和表格内按钮的权限

15. AppBox升级进行时 - FineUI和EF祝你一臂之力(完结篇)

注:AppBox v3.0 是捐赠软件,你可以通过捐赠作者来获取AppBox v3.0的全部源代码(http://fineui.com/donate/)。

AppBox v3.0发布说明

AppBox v3.0

AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理、职称管理、部门管理、角色管理、角色权限管理等模块。

技术支持:http://fineui.com/bbs/

注:
1. AppBox作为演示程序,请不要直接用于真实项目。
2. AppBox作为演示程序,版本之间不兼容,也不支持版本升级。

使用说明:

1. 用 VS2012 打开工程文件,F5运行即可(默认使用VS2012自带的LocalDB数据库)。
用户名:admin
密码:admin

2. 如果需要连接特定数据库,请在 Web.confg 中修改数据库连接字符串,并修改 AppBoxContext 类中使用的数据库连接名称。

发布历史:

+2013-08-28 v3.0
-基于最新的FineUI和Entity Framework(Code First开发模式)。
-扁平化的权限设计,简单高效易于扩展。
-修正弹出框高度变小时表单仍然不出现滚动条的问题。
-超级管理员帐号(admin)不受系统权限控制,默认拥有所有权限。
-只有超级管理员自己才能编辑自己。

+2012-12-17 v2.1
-修正新增和编辑部门时,无法选择顶级部门的BUG。
-修正用户表的date类型sqlserver2005无法识别的问题。
-修正工程的编译错误。
-修正可以添加重复用户名的用户;用户名不可编辑;性别为必填项。
-编辑新增菜单时,模块名称只能选择,这个名称是从代码来的。

+2012-12-09 v2.0
-配置项增加“菜单样式”和“网站主题”。
-表格增加“每页记录数”过滤条件。
-删除“角色菜单管理”菜单,现在从“角色模块管理”获得角色拥有的菜单列表。
-现在需要在ModuleTypeHelper代码中定义模块的标题;“菜单管理”中的菜单标题可以从模块标题同步过来。
-一个用户可以属于多个角色;删除角色之前需要先清空属于此角色的用户列表。
+优化编辑用户和新增用户窗体。
-性别从下拉列表变为单选框列表。
-所属角色从下列列表变为触发器输入框,在新窗口中选择用户所属的角色。
-所属部门从下列列表变为触发器输入框,在新窗口中选择用户所属的部门。
-增加拥有职称字段,同样为触发器输入框。
-添加用户到当前角色窗体,可以在表格中跨页选择多个用户。
-用户表增加了一些字段,比如分机号、住址、身份证号、到职日期等。
-一个用户只能属于一个部门;删除部门之前需要先清空属于此部门的用户列表。
-一个用户可以拥有多个职称;删除职称之前需要先清空拥有此职称的用户列表。

+2012-06-24 v1.0
-第一个正式版本。
-AppBox为捐赠软件,请捐赠作者来获取全部源代码(http://fineui.com/donate/)。

+2009-09-26 v0.1.0
-第一个开源版本。

Copyright 2009-2013 sanshi.ustc@gmail.com, All rights reserved.

AppBox v3.0界面截图

  

更多运行时界面截图,请移步:http://fineui.com/bbs/forum.php?mod=viewthread&tid=3788

AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!的更多相关文章

  1. Python基础教程(第3版)PDF高清完整版免费下载|百度云盘

    百度云盘:Python基础教程(第3版)PDF高清完整版免费下载 提取码:gkiy 内容简介 本书包括Python程序设计的方方面面:首先从Python的安装开始,随后介绍了Python的基础知识和基 ...

  2. 扫描仪文字识别ORC软件加强版(文通慧视完整版)下载

    http://www.wocaoseo.com/thread-300-1-1.html 扫描文字识别软件想必做seo的都知道是做什么用的,但是目前免费的OR大多不太好用或者说不够功能强大,因为这些软件 ...

  3. Android学习之基础知识十三 — 四大组件之服务详解第二讲(完整版的下载示例)

    上一讲学习了很多关于服务的使用技巧,但是当在真正的项目里需要用到服务的时候,可能还会有一些棘手的问题让你不知所措.接下来就来综合运用一下,尝试实现一下在服务中经常会使用到的功能——下载. 在这一讲我们 ...

  4. Python学习手册(第4版)PDF高清完整版免费下载|百度云盘

    Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...

  5. 教孩子学编程 python语言版PDF高清完整版免费下载|百度云盘|Python入门

    百度云盘:教孩子学编程 python语言版PDF高清完整版免费下载 提取码:mnma 内容简介 本书属于no starch的经典系列之一,英文版在美国受到读者欢迎.本书全彩印刷,寓教于乐,易于学习:读 ...

  6. 趣学Python编程PDF高清完整版免费下载|百度网盘

    百度网盘:趣学Python编程PDF高清完整版免费下载 提取码:ts47 内容简介 python是一款解释型.面向对象.动态数据类型的高级程序设计语言.python语法简捷而清晰,具有丰富和强大的类库 ...

  7. 从零开始学Python网络爬虫PDF高清完整版免费下载|百度网盘

    百度网盘:从零开始学Python网络爬虫PDF高清完整版免费下载 提取码:wy36 目录 前言第1章 Python零基础语法入门 11.1 Python与PyCharm安装 11.1.1 Python ...

  8. 疯狂Python讲义PDF高清完整版免费下载|百度网盘

    百度网盘:疯狂Python讲义PDF高清完整版免费下载 提取码:uzba 内容简介 <疯狂Python讲义>既是一本适合初学者入门Python的图书(一个8岁的小朋友在未出版前已学习了本书 ...

  9. Python编程无师自通PDF高清完整版免费下载|百度网盘

    百度网盘:Python编程无师自通PDF高清完整版免费下载 提取码:cx73 内容介绍 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 作者从文科毕业,通过自学编程转行为专业程 ...

随机推荐

  1. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. 利用Python进行数据分析 基础系列随笔汇总

    一共 15 篇随笔,主要是为了记录数据分析过程中的一些小 demo,分享给其他需要的网友,更为了方便以后自己查看,15 篇随笔,每篇内容基本都是以一句说明加一段代码的方式, 保持简单小巧,看起来也清晰 ...

  3. 基于WebGL 的3D呈现A* Search Algorithm

    http://www.hightopo.com/demo/astar/astar.html 最近搞个游戏遇到最短路径的常规游戏问题,一时起兴基于HT for Web写了个A*算法的WebGL 3D呈现 ...

  4. Java对象序列化剖析

    对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...

  5. MVC5+EF6+AutoMapper+Bootstrap打造在线博客(1.1)

    DAL层的三个Model类: 字典表:CFDict 用户表:CFUser 用户爱好表:CFUserHobby(关联cfuser表和cfdict表) CFUser表和CFUserHobby表是一对多关系 ...

  6. 学习Redis你必须了解的数据结构——HashMap实现

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文链接博客园蜗牛 cnblogs.com\tdws . 首先提供一种获取hashCode的方法,是一种比较受欢迎的方式,该方法参照了一位园友的 ...

  7. jQuery图片延迟加载

    这里延迟加载的意思是,拖动滚动条时,在图片出现在浏览器显示区域后才加载显示.在这之前全部图片都由一张图片代替.节省流量,减轻服务器负担. 效果展示 http://hovertree.com/texia ...

  8. C#开发微信门户及应用(6)--微信门户菜单的管理操作

    前面几篇继续了我自己对于C#开发微信门户及应用的技术探索和相关的经验总结,继续探索微信API并分享相关的技术,一方面是为了和大家对这方面进行互动沟通,另一方面也是专心做好微信应用的底层技术开发,把基础 ...

  9. Java Business Process Management(业务流程管理) 初识环境搭建

    一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...

  10. js判断窗体或容器滚动条到底部

    NO1---jquery判断窗体滚动条到底部 $(window).scroll(function () {if ($(window).scrollTop() >= $(document).hei ...