框架總分2個項目:Web開發項目、幫助類項目 (ZyCommon、Zy.Utilities)
1、ZyCommon,是Web開發項目結構。新建一個空解決方案,再建Data、Service、ZyWeb解決方案文件夾,把數據層、接口服務層、Web層區分開
1.1、Data解決方案下----Zy.Xn.Model 數據模型項目,設計好System下 組織機構、菜單、角色、角色菜單、角色用戶、用戶實體類,Models是系統使用的一些DTO基類,比如ztree控件需要的一些實體字段,角色菜單DTO,BaseModel是一個基類,存放一個Id自動增長的字段,供System下的多個實體引用
1.2 、Data解決方案下----Zy.Xn.Entity 實體項目,用來管理實體上下文的,添加Entity Framework的引用,添加 Zy.Xn.Model 的引用,把實體類放到上下文類中,在App.config配置好連接數據庫,然后使用Code First創建表,以后每次更新數據庫表字段,只需要更新Model項目中的實體類,使用Code First Migrations 命令更新即可,初始時需要 Enable-Migrations ,啟用遷移后會在實體項目下生成 Migrations文件夾,存放每次遷移的記錄,至此Data層的功能大致是如此的
命令:工具--NuGet包管理器--程序包管理器控制台--默認項目選擇Zy.Xn.Entity 上下文項目
添加遷移報告:add-migration 20160911
更新到數據庫:update-database
遷移至指定版本(包括后退):Update-Database –TargetMigration: $InitialDatabase
得到SQL腳本(部署到服務器時很有用) : Update-Database -Script -SourceMigration: 最開始版本號-TargetMigration: 結束版本號
1.3、Service解決方案下 ---- Zy.Xn.IServices 服務接口層,面向接口編程,好處多多
1.4、Service解決方案下 ---- Zy.Xn.Services 服務實現層
1.5、Web項目,新建Areas,多個項目只要在Areas下建多個項目即可,后台管理系統放在Admin文件夾下,系統所用的JS、CSS、Images等存放在Content文件夾下
2、Zy.Utilities 所有幫助類、依賴注入、基類控制器等再此項目下實現
2.1、Zy.Utility.Core項目提供所有的幫助類,如:異常類、日志類、IOHelper、ImageHelper,PageModel(列表基類) 等等系統可能用到的幫助類,日志類會專門開一篇文章講解,如何在項目配置Log4日志,報錯后怎么把錯誤信息寫入日志
2.2、Zy.Utility.ServicesProvider項目是服務代理提供者,也就是 Autofac依賴注入的實現
2.3、Zy.Utility.WebFramework項目提供控制器基類、接口服務幫助類、Bundles幫助類(讀取js、css配置節點)
2.3.1、控制器基類,重寫異常捕獲方法並把錯誤信息寫入日志,獲取當前登錄用戶,Session失效后重定向的控制器等功能,給Web項目使用
2.3.2、bundles在web項目中的實現,新建一個admin.bundles文件,使用它的好處是可以壓縮js、css,減少網絡流量,當然,也可以在項目中App_Start--BundleConfig中配置,不過沒有自定義實現方便