不少人都說經過閱讀、學習大神們高質量的代碼是提升本身技術能力最快的方式之一。我以爲經過閱讀NopCommerce的源碼,能夠從中學習不少企業系統、軟件開發的規範和一些新的技術、技巧,能夠快速地提升咱們的技術能力。因此我最近決定寫一個「nopCommerce源碼架構詳解」的系列,來詳細剖析NopCommerce的架構和原理。html
Nopcommerce主要用到的技術及特色:數據庫
一、Entity Framework編程
二、ASP.NET mvcc#
三、IoC容器+依賴注入(Autofac)緩存
四、使用EF中的EntityTypeConfiguration+Repository模式+領域驅動開發架構
五、插件技術mvc
六、Themes主題技術app
七、Ajaxasp.net
八、Validator驗證技術性能
九、面向接口編程
十、事件通知、日誌機制
十一、緩存(System.Runtime.Caching.MemoryCache)
十二、網站計劃任務
1三、消息隊列
1四、多語言支持
1五、Jquery UI+kendo UI
1六、多網店支持、促銷推廣、在線支付
1七、seo友好支持
1八、其它asp.net MVC和c#最新核心技術
Nopcommerce是國外的一個高質量的開源b2c網站系統,最新版是基於Entity Framework6.0和MVC5.0,使用razor模板引擎,有很強的插件機制,包括支付配送功能都是經過插件來實現的,基於xml的多語言版本,很是靈活的語言切換功能,包括在後臺都能同時編輯產品的中英文屬性,很是適合作外貿,優秀超前的程序架構,性能也很是強大,自定義的產品名稱和分類又有很好的seo優化。綜合能力遠遠高於國內的一些程序架構糟糕的.net商城程序,是二次開發和大型b2c架構的首選。3.0開始支持多店。
前臺頁面效果:
後臺管理頁面:
NopCommerce最新版的在CodePlex的源碼下載。
nopcommerce主要從上往下Nop.Web、Nop.Admin、Nop.Web.Framework、Nop插件、Nop.Services、
Nop.Core、Nop.Data。引用的第三方模塊EntityFramework,Autofac(控制反轉,即依賴注入),telerik.extern.mvc(後臺管理用的界面,2.0後開始使用)。
下圖是nopcommerce版本3.4的源碼結構:
一、Libraries
Libaries文件夾下項目主要是一些公共庫代碼。
Nop.Core:封裝了項目要用的基礎核心類,接口。好比領域對象類,緩存類、接口,擴展方法等等。
Nop.Data:EF相關的數據訪問相關的類封裝和擴展。裏面最關鍵的就是Mapping,Nop採用代碼API的形式來創建Model和數據庫表之間的映射,命名都是以「表名+Map」的形式。好比:
之後我會詳細的說明這個Mapping的怎麼實現的以級這樣作的好處。
Nop.Services:真正的處理數據的業務層,都是經過面向接口編程,減小對具體實現的依賴。
二、Plugins
Plugins文件夾下是放的插件項目,你也能夠按照規則開發屬於本身的插件。
三、Presentation
Presentation中文意思是呈現、表現的意思。也就是這文件夾下的項目都是解決方案的表示層。
Nop.Admin:後臺管理
Nop.Web:前臺Web項目
Nop.Web.Framework:Web及MVC相關擴展和公共類的封裝,好比:BaseController,Seo相關,主題Themes,autofac依賴注入DependencyRegistrart等等。
四、Tests
Tests下面放的都是對應項目的單元測試。
轉載於 :https://www.lanhusoft.com/Article/349.html