一、前言 作為小菜鳥第一次寫博客的我還有點小激動,最近開始打算著手寫一個屬於自己架構。算下來差不多最近花一周多的下班時間了來寫這個框架,本來想整體架構開發完成測試完成後才寫博客,怕自己沒時間或失去動力,就先把自己架構設計拿出來分享一下,在下一章我會把整體代碼公佈出來,整體代碼。 在剛開始搭建框架時, ...
一、前言
作為小菜鳥第一次寫博客的我還有點小激動,最近開始打算著手寫一個屬於自己架構。算下來差不多最近花一周多的下班時間了來寫這個框架,本來想整體架構開發完成測試完成後才寫博客,怕自己沒時間或失去動力,就先把自己架構設計拿出來分享一下,在下一章我會把整體代碼公佈出來,整體代碼。
在剛開始搭建框架時,首先考慮的是簡單輕巧結構清晰,這次搭建大多也是靠著自己想象去設計,其中也有大牛的參考,不管做得怎麼樣,這也是對自己技術能力的提升(從小菜鳥到菜鳥的過程,^_^)相信自己以後會做得更好。也希望大牛們和大大牛們的指點。不要罵小菜鳥喲,我的小心靈是很脆弱的哦!O(∩_∩)O哈哈~廢話不多說了,開始進入主題。
二、結構圖
上圖是本項目框架RDF的整體架構,在每一層模塊中都只寫了基本結構,只簡單的標明瞭他們的關係,詳細將在下麵介紹。
上圖是在項目中的RDF的架構圖。
三、整體結構說明
現在開始從下往上的介紹:
1、Infrastructure(基礎設施層)
RDF.Infrastructure:這個類庫提供了整體架構的基礎核心功能,主要用於與數據有關的操作,例如資料庫、緩存、mongoDB等。這裡Orm框架我用的是SqlSugar,非常輕巧的一個Orm框架,大家有興趣也可以去官網看一下。這裡提供了公共的倉儲封裝了常用的方法和緩存,提供了Aop事務攔截器的特征。這裡不進行業務代碼編寫,只提供核心基礎模塊的調用,這裡可以獨立的封裝為dll來調用。
2、Domain(業務核心層)
RDF.Domain:這個類庫主要用於業務最核心,最基本的業務邏輯。這裡主要以大模塊和小的子模塊開發為主,子模塊主要實現了基礎設施層的倉儲的公共方法,每個小模塊的還可以實現自己的方法邏輯。而大模塊實際就是用於處理業務的邏輯,只不過這裡實現核心業務,這裡操作會調用到很多子模塊根據業務複雜度,如果以後要修改一個功能模塊就不需要修改子模塊,只需要找到相對應的業務模塊(主模塊)進行修改,主模塊就是業務流程的處理,可以根據自己的需求進行模塊範圍的劃分。
3、Application(應用層)
RDF.Web.App:這個類庫主要對核心業務進行二次處理,這裡主要是接受展示層的數據進行與http相關的處理,例如webfrom或mvc或api調用,然後傳給核心業務類,根據核心業務的操作進行響應。
4、Common(公共設施層)
4.1、RDF.Common:這個類庫主要為整個項目提供的公共操作方法,還有log日誌記錄,這裡日誌我用的是Nlog,提供了日誌攔截器特征,只要打上標簽就可以記錄該方法可能會出現的異常,相當於以前的異常捕獲並處理,這裡的處理只需要打上標簽輸入可能拋出異常的消息並存入資料庫和日誌文本,可根據配置進行存儲,還可以記錄該方法是某某什麼時間開發的,這樣方便找到維護人員進行維護。(註:這裡的日誌特征和事務特征都是使用的動態介面aop。)
4.2、RDF.Model:這個類庫提供了資料庫實體和其它的定義,這裡的實體用的是T4模板生成。
5、Presentation(展現層)
RDF.Mvc.Site:網站的展示層,配置了autofac進行依賴註入和aop的操作。
四、總結
這個項目結構只是最初版本,在下一章開源時,以許可權架構為完成目標分享,在代碼逐步完成中和測試中,後續框架不合理部分將會重寫,架構和代碼完善後將會寫T4來生成架構。