0. 介紹BoYuan快速開發(fā)框架巴比。
實現(xiàn)頁面權(quán)限或頁面+button權(quán)限基于權(quán)限角色的后臺框架术奖,并有完善的異常攔截寫入日志功能礁遵。
項目為webform開發(fā)模式,簡單的service分層架構(gòu)采记,前端FineUIPro , 數(shù)據(jù)層使用FreeSql+雪花算法實體模式佣耐,兼容各種不同的數(shù)據(jù)庫遷移(支持的數(shù)據(jù)庫:SqlServer, Mysql, Postgresql, Oracle 等)。
配有代碼生成工具和其他利于編程的工具挺庞,優(yōu)秀的編碼體驗晰赞,層次分明,簡單易學(xué)选侨,從而實現(xiàn)快速開發(fā)的目的掖鱼,適用于中小型項目快速開發(fā)。
建議使用vs2017以上版本開發(fā)工具 援制, mssql數(shù)據(jù)庫 戏挡,F(xiàn)ramework 4.5 以上版本。
有建議或問題晨仑,歡迎聯(lián)系我
在線視頻使用教程
免費開源的簡化版BoYuan框架:SugarFineUI
關(guān)于架構(gòu)變化說明:原來使用的orm是sqlsugar褐墅,現(xiàn)在替換為freesql,原因是freesql功能多穩(wěn)定并且對其他數(shù)據(jù)庫兼容性更好洪己。寫法上有些差異妥凳,但lambda風(fēng)格不變
1. 項目初始化,并創(chuàng)建數(shù)據(jù)庫答捕。
打開代碼生成項目逝钥,如圖會看到項目基本結(jié)構(gòu)。也可以參看項目說明文檔拱镐,會有項目概述艘款。
讓我們先從數(shù)據(jù)庫創(chuàng)建開始,以SqlServer為例子(其他數(shù)據(jù)庫一樣的操作)沃琅。如下圖哗咆,填寫好對應(yīng)數(shù)據(jù)庫的鏈接,點擊執(zhí)行“初始化表”按鈕益眉,即可完成相關(guān)基礎(chǔ)表結(jié)構(gòu)晌柬。
創(chuàng)建我們的業(yè)務(wù)表,這里創(chuàng)建員工表和部門表郭脂。默認都是以id作為主鍵空繁,注意不要設(shè)置成自增 否則不利于數(shù)據(jù)庫遷移,默認是long類型(sqlserver里是bigint)朱庆。
2. 生成Entity實體模型和FineuiPro頁面代碼。
創(chuàng)建好數(shù)據(jù)庫后闷祥,我們就可以執(zhí)行代碼工具娱颊。
首先 生成FreeSql實體傲诵,選擇對應(yīng)的頁面。如下圖箱硕,點擊連接數(shù)據(jù)庫拴竹,暫時不支持單表實體生成。默認是放到C盤目錄下剧罩,個人不喜歡直接覆蓋到項目代碼栓拜,當(dāng)然如果你喜歡可以修改。
把生成的實體放入到entity層
生成FineUIPro頁面惠昔。 選擇FineUIPro頁面幕与,先在右邊連接好數(shù)據(jù)庫,選擇要生成頁面的相關(guān)表,代碼生成是根據(jù)單表結(jié)構(gòu)來生成的;生成代碼相關(guān)信息钱贯,比如說命名空間艘绍、路徑等,默認不需要修改柠贤;生成的代碼默認放在C盤,這里我只想生成編輯頁面,列表頁面中狂,單選即可,最后點擊生成簡單代碼按鈕扑毡,生成相關(guān)頁面胃榕。
把生成頁面代碼放入到項目中,先別著急運行項目:選中項目->vs菜單項目->執(zhí)行轉(zhuǎn)換為Web應(yīng)用程序僚楞。
如果想查看單頁面生成代碼勤晚,選擇表(多選的表還是默認選擇選中的第一個表),點擊按鈕顯示單頁代碼即可泉褐。
至此項目代碼生成完畢赐写,重新編譯生成項目,保證項目不報錯膜赃。
3. 更改數(shù)據(jù)庫挺邀。
更改數(shù)據(jù)連接字符串,如圖在web.config中設(shè)置跳座。
更改數(shù)據(jù)庫類型端铛。注意 如果是PostgreSQL 要設(shè)置為小寫,oracle 要設(shè)置為大寫疲眷,通過設(shè)置UseNameConvert參數(shù)來設(shè)置禾蚕,其他數(shù)據(jù)可以不用設(shè)置此參數(shù)。
4. 權(quán)限配置狂丝。
運行項目BoYuan.FineuiProWeb换淆。在login.aspx頁面里哗总,我為了方便調(diào)試,page_load事件里增加了自動登錄的代碼倍试,項目發(fā)布時候不要忘記刪除讯屈。
登錄后默認能看到相關(guān)的管理員設(shè)置。如果想顯示新增加的頁面到系統(tǒng)里县习,在頁面組件里設(shè)置涮母。
右鍵點擊根節(jié)點,可以添加根頁面躁愿;
如下圖叛本,左邊點擊可以設(shè)置頁面所在路徑。右邊URL地址,可以設(shè)置url地址攘已,也可以是外網(wǎng)地址(需要填寫完整的url炮赦,例:https:// www .baidu .com);如果是文件夾样勃,可以不填寫吠勘。狀態(tài)顯示 是在左側(cè)菜單里是否顯示狀態(tài)。
回頭峡眶,我們看下代碼生成工具剧防,批量添加頁面組件。如果生成的頁面比較多辫樱,手動一個個添加是個麻煩的體力活兒峭拘。當(dāng)然我也想偷懶,讓Boyuan框架幫你去做狮暑。一鍵添加頁面組件到數(shù)據(jù)庫里鸡挠,如下圖。會根據(jù)你項目所有的aspx文件搬男,同步到數(shù)據(jù)里拣展。(同理,可以同步button權(quán)限缔逛,這里暫時不討論button權(quán)限备埃。)
我們在回來,在系統(tǒng)中查看一下褐奴,同步的頁面組件數(shù)據(jù)按脚。當(dāng)然 頁面名稱需要自己修改,如下圖敦冬。
設(shè)置權(quán)限角色辅搬。如下圖,更改超級管理員角色權(quán)限脖旱,讓新增的頁面顯示出來伞辛。打挑的都是有權(quán)訪問的頁面烂翰。
查看生成的頁面,可以CRUD數(shù)據(jù)了蚤氏,但是離你的業(yè)務(wù)還差一點,這需要手動編碼了踊兜。
5. 完善業(yè)務(wù)代碼竿滨。
- 部門管理 模塊。添加或編輯頁面基本可以不動捏境。部門列表頁面的需要于游,添加關(guān)鍵詞搜索,偽刪除功能實現(xiàn)垫言。
部門列表頁面 關(guān)鍵詞代碼實現(xiàn):紅框里代表修改的代碼贰剥,獲取關(guān)鍵詞,模糊查詢部門名稱筷频。
部門列表頁面 偽刪除功能: 默認是批量刪除代碼蚌成,需要修改成偽刪除代碼。如下圖凛捏。
- 員工管理 模塊担忧。員工管理涉及到多表連接查詢,添加一個員工信息同時需要添加所在部門坯癣,這里我們用下拉框來表示部門瓶盛。
員工管理 列表頁面,需要添加性別下拉框示罗,部門下拉框惩猫,員工姓名或員工編碼模糊查詢。性別字段蚜点,這里我打算用枚舉對象來實現(xiàn)轧房,我們先創(chuàng)建個性別枚舉。
列表頁面的初始化方法禽额,增加性別:
列表頁面的初始化方法锯厢,增加部門:
列表頁面的綁定方法 bind:
先做關(guān)聯(lián)查詢。如下圖脯倒,寫select字段比較麻煩实辑,如果字段太多是個很不爽的體力活。BoYuan框架有解決方案藻丢。
選擇代碼工具剪撬,反射獲取字段代碼頁面。如下圖悠反,操作獲取員工相關(guān)字段信息残黑。
同理馍佑,可以獲取部門字段信息。
最后把梨水,上面操作的2段代碼進行復(fù)制到項目里拭荤,并合并。
動態(tài)添加查詢條件疫诽。列表頁面所有的業(yè)務(wù)邏輯完成舅世。
員工管理 編輯頁面,業(yè)務(wù)代碼完善奇徒。如下圖雏亚,需要修改性別 和 所在部門 為下拉框。
修改編輯頁面:
至此摩钙,所有的業(yè)務(wù)代碼完成罢低。自己添加數(shù)據(jù)試試效果吧!
6. 項目開發(fā)小技巧胖笛。
項目提供完整的異常追蹤功能网持,并輸出到Log中,方便線上發(fā)布排查問題匀钧。同時也debug下也會輸出所有的sql翎碑,方便調(diào)試代碼。
如果你遇到此問題
請排查項目或服務(wù)器上Log
vs的輸出窗口會有追蹤所有運行的sql日杈,方便編程調(diào)試。如下圖