文章更新:
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開發模式
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