前言
首先奉上個人網站地址傳送門:aehyok.com。
aehyok.com的成長之路一——開篇中主要闡述了自己為什么建立自己的網站,以及個人網站的大致方向。
aehyok.com的成長之路二——技術選型中主要簡單概括了自己搭建網站過程中使用或者以后可能使用的技術。
本篇博客主要簡單的來介紹一下,自己目前網站的架構,以及自己的一些想法。當然這其中很大程度受益于大神@郭明峰的開源框架以及他的指點。
本人最近也建立了一個QQ技術群,本人個人網站所涉及的所有源碼也將會在群內共享。歡迎各位喜歡學習技術的朋友們入住。
群賬號為:206058845,記住群驗證碼為:aehyok。
框架項目結構簡要說明
1-Infrastructure(基礎設施)
1、aehyok.Utility:通用技術工具類
說明: 分類封裝通用的與技術無關的輔助工具類功能
依賴項:無
2、aehyok.Model:各種實體類的定義
說明:1、業務實體模型
2、數據傳輸模型
3、展現視圖模型
依賴項:無
3、 aehyok.Core:aehyok框架核心組件
說明:1. 定義aehyok框架的核心,是整個框架運行的骨架。
2. 該骨架提供數據存儲、日志、緩存、權限等模塊的基礎接口或基類,不提供具體實現。
3. 業務層依賴于此層的接口及基類進行業務操作,而不依賴于具體實現。
4. 此層定義的接口與基類的具體實現,都是可替換的。以適應不同的業務對基礎模塊功能的需求。
依賴項:aehyok.Utility
4、aehyok.Core.Data.Entity:EntityFramework數據存儲組件
說明: 1.提供aehyok.Core中定義的數據存儲功能的EntityFramework的實現方案
2.數據庫初始化策略
3.業務實體類映射
依賴項: 1.aehyok.Utility
2.aehyok.Model
3.aehyok.Core
4.EntityFramework
2-application(應用的接口和對應的實現)
5、aehyok.Contracts:服務契約層
說明: 包含業務功能的接口的定義
依賴項: 1. aehyok.Utility
2. aehyok.Core
3.aehyok.Model
6、 aehyok.Services:服務實現層
說明:包含數據功能初始化及服務業務功能實現
依賴項:1. aehyok.Utility
2. aehyok.Model
3. aehyok.Core
4. aehyok.Core.Data.Entity
5. aehyok.Contracts
3-PResentation(各種可視化UI展現層)
7、aehyok.WebMvc和aehyok.Admin.Mvc:前后臺Web 展現層
說明: 前后臺UI展現層
依賴項:1.aehyok.Utility
2.aehyok.Model
3.aehyok.Core
4.aehyok.Core.Data.Entity
5.aehyok.Contracts
6.aehyok.Services
4-UnitTest 8、aehyok.UnitTest:單元測試 說明: 單元測試還在學習摸索中 依賴項:各種可依賴?!?
簡要說明:
1、面向接口的方式來開發,然后通過IOC來接觸模塊之間的耦合。
2、aehyok.Core:提供數據存儲、日志、緩存、權限等模塊的基礎接口或基類。
3、aehyok.Core.Data.Entity:EntityFramework數據存儲組件,很明顯該層是實現aehyok.Core中的數據存儲組件的接口和基類。為什么這樣設計呢?這樣就可以很好的被替換掉,比如你現在的項目用的是EntityFramework開發的,項目經理突然說EntityFramework有這樣的的問題滿足不了我們系統,現在決定使用NHibernate,那么現在就只需要將該層進行研究實現,進行IOC注入就可以了,其他層的任何代碼都不需要進行修改(自己想的暫時是這樣的,不知道實現起來難度到底有多大)。
4、aehyok.Core.Logging.Log4Net:Log4Net日志組件,該層也是實現aehyok.Core中日志組件的接口和基類。同樣可以很好的替換掉??梢宰约簩崿F,也可以采用其他日志組件NLog等等吧,都是可以的。
5、可能還有會Cache組件、權限組件,當然可能還會有其他的……按道理都是可以被替換的。
6、aehyok.Contracts和aehyok.Services可以說是業務邏輯層吧。實現中調用各組件進行拼裝完成需要的方法。供UI層進行調用即可。
7、當然對于UI層的展現考慮最好也是可以被替換的。打個比方:現在后臺用的是Bootstrap模版進行開發的,然后突然有個公司覺得這框架很不錯,想來買你們的源碼,但是他們對Bootstrap不熟悉,或者不想用Bootstrap,想用其他的前端UI框架。不清楚通過MVVM能否實現前端UI的良好解耦。
8、可能還有其他未知的問題吧,暫時考慮的就這么多,還要在以后的實踐中不斷的思考不斷的來完善吧,計劃沒有變化快,但沒有計劃怎么來的變化呢?
總結
自己的小站還在持續不斷的更新的,雖然更新速度如蝸牛般緩慢,但是網站還是在一天天的進步,自己也在一點點的積累。以上也只在于技術的學習,而不管其項目大小、技術學習成本等現實因素關聯起來,其實我就是為了學習技術,讓自己能夠進步成長罷了。
本人最近也建立了一個QQ技術群,現在里面人數不是很多,是在寫上一篇博客的時候開始加人的。由于本人最近在使用TFS OnLine,看到他對于團隊開發項目來說絕對是利器,想多多的學習了解一下。 本人個人網站所涉及的所有源碼也將會在群內共享。群賬號為:206058845,記住群驗證碼為:aehyok。歡迎各位喜歡學習技術的朋友們入住。。期待我們的共同成長。同時希望自己能夠一直堅持學習下去。
最后再次奉上個人網站地址傳送門:aehyok.com
個人網站地址:aehyok.com
QQ 技術群號:206058845,驗證碼為:aehyok
本文文章鏈接:http://m.survivalescaperooms.com/aehyok/p/3946286.html
感謝您的閱讀,如果您對我的博客所講述的內容有興趣,那不妨點個推薦吧,謝謝支持:-O。
新聞熱點
疑難解答