AppBox_v3.0
AppBox_v2.0完整版免费下载,暨AppBox_v3.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后端代码中使用强类型的权限定义,而不是传统意义上的字符串,如下所示。
模块的定义:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public enum ModuleType{ None, CoreMenu, CoreJobTitle, CoreJobTitleUser, CoreDept, CoreDeptUser, CoreRole, CoreUser, CoreRoleUser, CoreRoleModule, CoreLog, CoreConf, CorePassword, CoreOnlineUser, AppFile, AppTest} |
权限的定义:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public enum ModulePowerType{ None, // 浏览权限是公共的,每个模块都有 CanRead, CoreDept_New, CoreDept_Edit, CoreDept_Delete, CoreDeptUser_New, CoreDeptUser_Delete,} |
然后在Web页面后台定义每个页面所属的模块:
|
1
2
3
4
5
6
7
|
public override ModuleType Module{ get { return ModuleType.CoreUser; }} |
判断某个操作是否拥有权限时:
|
1
2
3
4
5
6
|
// 在操作之前进行权限检查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
密码:admin2. 如果需要连接特定数据库,请在 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_v3.0的更多相关文章
- AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!
文章更新: AppBox v6.0中实现子页面和父页面的复杂交互 AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox ...
- AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载
特别声明: 提供的源代码已经包含了 AppBoxPro 的全部源代码,用 VS2012 打开项目后,直接 Ctrl+F5 可以运行起来(默认使用VS自带的LocalDB数据库). FineUIPro是 ...
- 【限时免费】AppBoxCore - 细粒度权限管理框架(EFCore+RazorPages+async/await)!
目录 前言 全新AppBoxCore RazorPages 和 TagHelpers 技术架构 页面处理器和数据库操作的异步调用 Authorize特性和自定义权限验证过滤器 Authorize登录授 ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- ZAM 3D 制作3D动画字幕 用于Xaml导出
原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...
- 微信小程序省市区选择器对接数据库
前言,小程序本身是带有地区选着器的(网站:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html),由于自己开发的程序的数据是很 ...
- osg编译日志
1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...
- 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)
0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...
- Elasticsearch 5.0 中term 查询和match 查询的认识
Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...
随机推荐
- ProgressDialog(四)——更改系统自带ProgressDialog文字大小
MainActivity如下面: package com.example.ttt; import android.app.Activity; import android.app.ProgressDi ...
- POJ 2187: Beauty Contest(旋转卡)
id=2187">Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 27218 ...
- 菜鸟学Java(二十一)——怎样更好的进行单元測试——JUnit
測试在软件生命周期中的重要性,不用我多说想必大家也都很清楚.软件測试有许多分类,从測试的方法上可分为:黑盒測试.白盒測试.静态測试.动态測试等:从软件开发的过程分为:单元測试.集成測试.确认測试.验收 ...
- Java设计模式偷跑系列(21)建模和实现享受metapatterns
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40021651 享元模式(Flyweight):运用共享的技术有效地支持大量细粒度的对象. ...
- UITabBarControler解决旋转问题
在遇到开发项目中播放视频,播放视频回列表后,,列表 NavigationController 里边, NavigationController 在 UItabBarController 里边,不要旋转 ...
- Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换
Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换 1. 可能你的Alt+Tab键被别人禁用了,试下以下的方法: 1 2. 为什么要禁用Alt+Tab 1 3. ALT+TAB ...
- select刷新后,保持选定状态,Cookies存储select选定状态信息
//cookies存储select选定值,防止刷新后没了 window.onload = function () { var cooki = document.cookie; if (cooki != ...
- PHP程序猿必备的七种武器
作为一个程序猿(又或者是程序媛),出来闯荡江湖,没有几种必杀技在手,那是肯定无法赢得江湖名声的,除了必杀技之外,武器也是很重要的,但是一把青钢剑,肯定是无法赢得万千少男少女的欢心的.就连小李飞刀,人家 ...
- SQL点滴1—SET QUOTED_IDENTIFIER OFF语句的作用
原文:SQL点滴1-SET QUOTED_IDENTIFIER OFF语句的作用 先看下面几个sql语句 代码 SELECT * FROM [USER] WHERE a= 'netasp' ...
- UC编程:输入输出重定向(系统调用)
在Unix下,系统重定向是使用dup和dup2函数完成的 在学习使用这两个函数之前,必须要搞懂一个概念就是文件描述符 摘自:<文件描述符和文件指针的区别> 文件描述符就是open文件时产生 ...