(1)dotnet開源電商系統-brnshopbrnMall 和老外開發的nopCommerce(dotnet兩套電商來PK--第一篇)...

? 一直想做電商軟件,但是實在不想學PHP了,所以前后關注了這兩個開源電商系統。一個是國人出品的,一個據說是俄羅斯人寫得(不知道對不對)。目前兩個開源軟件都在學習了解中,以下的博文可能會涉及到這兩套系統,我希望能對比進行學習,能互相借鑒和補充。

?brnshop :http://www.cnblogs.com/wheretime/p/3793979.html? (入門篇:BrnShop開源網上商城第一講:架構設計)

?nopCommerce:http://www.cnblogs.com/babietongtianta/p/4659381.html (NopCommerce源碼架構詳解--初識高性能的開源商城系統cms)

? 通過閱讀源碼和學習以上兩篇文章,我們對比發現有幾個異同點。

? (一)相同點:?

?? A.兩套源碼的代碼結構的劃分挺接近,都有Library Presentation Plugins ,Library下也都有Core Data Service。難道兩家商量好的,還是誰學誰?

?? B.表現層都遵循典型的mvc的結構,每個插件也都是一個小的mvc結構

?? C.架構上針對擴展性都還設計得比較合理

?? (二)不同點:

?? A.brnshop代碼結構劃分還有個策略分類,是具體接口的實現,它把它單獨拎出來。

?? B.nopCommerce老外更重視單元測試,還附有Tests單元測試的配套項目,一個復雜的電商網站,每每有改動,遍歷測試似乎也是保證質量的重要手段,只是國內做項目一般都覺得還寫測試用例和單元測試時浪費時間。

?? C.nopCommerce數據庫訪問用的是EF,這對于用不慣EF的小伙伴是個坎。我用過EF一些,感覺還是不太好用,可能是習慣和水平的原因。 brnshop沒有采用EF,采用dotnet的標準數據庫訪問對象再加一些輔助類(做一些對象轉換等等)。這里是否可以使用輕量的dapper框架,也 許后面可以做些探索。

?? D.還有一個是國際化的問題,nopCommerce在這方面很出色,支持界面的多語言切換。brnshop這方面舍棄了沒有考慮,現在做軟件如果從市場出發,一開始是否瞄向國際市場,也是個戰略和戰術上的雙重抉擇。

?? E.另外隱約感覺到,nopCommerce的插件似乎更成熟和豐富

?? 今天這第一篇分析先到這里吧,后面的時間接著讀。 愿意交流和交朋友的,可以加我的QQ:9200118

轉載于:https://www.cnblogs.com/ashacher/p/5654365.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256856.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256856.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256856.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hdoj 2022 海選女主角

Problem Descriptionpotato老師雖然很喜歡教書,但是迫于生活壓力,不得不想辦法在業余時間掙點外快以養家糊口。“做什么比較掙錢呢?篩沙子沒力氣,看大門又不夠帥...”potato老師很是無奈。“張藝謀比你還難看,現在多有…

linux 下的gettimeofday 函數在windows上的替換方案

方案一&#xff1a; #include <time.h> #ifdef WIN32 # include <windows.h> #else # include <sys/time.h> #endif #ifdef WIN32 int gettimeofday(struct timeval *tp, void *tzp) { time_t clock; struct tm tm; SYSTEMTIME wtm; Ge…

學習筆記(45):Python實戰編程-鍵盤事件

立即學習:https://edu.csdn.net/course/play/19711/343107?utm_sourceblogtoedu 1.鍵盤事件&#xff1a;按鍵松開或者按下觸發事件的執行&#xff0c;一般組件要綁定鍵盤事件都是同時綁定按鍵松開&#xff08;“”<KeyRelease>&#xff09;和按鍵按下&#xff08;“<…

JSDoc那些事

幾天工作上需要文檔化一些Javascript東西&#xff0c;所以在找一些JS文檔化工具&#xff0c;以下分析幾種工具。 1.JSDoc-toolkit 一開始還想用這個工具&#xff0c;但后來在解析生成文檔時候&#xff0c;出現了很嚴重的錯誤&#xff0c;還存在其他問題。 問題1&#xff1a;閉包…

onBlur事件與onfocus事件(js)

onFocus事件就是當光標落在文本框中時發生的事件。 onBlur事件是光標失去焦點時發生的事件。 可以編如下例子 1.html <HTML> <HEAD> <TITLE>使用onBlur事件處理程序</TITLE> </HEAD> <BODY BGCOLOR"lavender"> <FORM name&qu…

談論Java原子變量和同步的效率 -- 顛覆你的生活

我們認為&#xff0c;由于思維定式原子變量總是比同步運行的速度更快&#xff0c;我想是這樣也已經&#xff0c;直到實現了ID在第一次測試過程生成器不具有在這樣一個迷迷糊糊的東西。測試代碼&#xff1a; import java.util.ArrayList; import java.util.List; import java.ut…

總結從linux - windows 上(GCC與MSVC 2015) 移植C或者C++代碼時候遇到的編譯和鏈接問題

解決辦法和修改辦法的總體思想 1、在代碼的語義和功能不變的情況下&#xff0c;進行c->c的轉變&#xff0c;消除編譯器的跨平臺編譯報錯問題&#xff1b; 2、遇到編譯問題&#xff0c;先看編譯器提示信息&#xff0c;然后逐個排查和定位&#xff0c;去解決問題。 1、當遇到…

1 week110的zookeeper的安裝 + zookeeper提供少量數據的存儲

下面是在weekend110上的zookeeper的安裝 在此之前&#xff0c;先進行快照備份。 在這里&#xff0c;為了后續的zookeeper配置需要&#xff0c;在/home/hadoop/下&#xff0c;新建data目錄&#xff0c;再新建zookeeper-3.4.6目錄&#xff0c;再新建zkdata目錄。 默認情況下&…

學習筆記(46):Python實戰編程-protocol

立即學習:https://edu.csdn.net/course/play/19711/343108?utm_sourceblogtoedu 1.protocol協議&#xff1a;主要用于窗體關閉監聽&#xff0c;通過這個協議可以在窗體關閉前提示是否真的要關閉&#xff0c;這樣可以防止用戶誤觸導致數據的丟失 2.關鍵代碼 #----------------…

linux yum命令詳解

yum&#xff08;全稱為 Yellow dog Updater, Modified&#xff09;是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理&#xff0c;能夠從指定的服務器自動下載RPM包并且安裝&#xff0c;可以自動處理依賴性關系&#xff0c;并且一次安裝所有依賴的軟體包…

linux配置Java環境變量(詳細)

一. 解壓安裝jdk 在shell終端下進入jdk-6u14-linux-i586.bin文件所在目錄&#xff0c; 執行命令 ./jdk-6u14-linux-i586.bin 這時會出現一段協議&#xff0c;連繼敲回車&#xff0c;當詢問是否同意的時候&#xff0c;輸入yes&#xff0c;回車。之后會在當前目錄下生成一個jdk1.…

在c++代碼中關閉和啟動另外一個pid進程號,共享內存數據使用

char * of_program_name "./AB"; 1、 pid getPidFromName(of_program_name); if (pid > 0) { ERROR("AB process still exispid %d\n", pid); if (kill(pid, SIGKILL)) //殺死進程 { fprintf(std…

提速XP操作系統

1、加速網上鄰居 在Windows XP中訪問網上鄰居是相當惱人的&#xff0c;系統會搜索自己的共享目錄和可作為網絡共享的打印機以及計劃任務中和網絡相關的計劃任務&#xff0c;然后才顯示出來&#xff0c;顯然這樣速度就會比Windows 9x中慢很多。其實這些功能我們并沒有使用上&…

學習筆記(47):Python實戰編程-pack布局

立即學習:https://edu.csdn.net/course/play/19711/343109?utm_sourceblogtoedu pack布局&#xff1a; 1&#xff09;最常用的布局&#xff0c;順序排列布局方法 2&#xff09;完成了簡單的組件位置碼放&#xff0c;但如果內部布局處理機制跟不上的話&#xff0c;也可能會達…

ASP.NET Web API 應用教程(一) ——數據流使用

相信已經有很多文章來介紹ASP.Net Web API 技術&#xff0c;本系列文章主要介紹如何使用數據流&#xff0c;HTTPS&#xff0c;以及可擴展的Web API 方面的技術&#xff0c;系列文章主要有三篇內容。 主要內容如下&#xff1a; I 數據流 II 使用HTTPS III 可擴展的Web API 文檔…

JAVA類的構造方法

1,構造方法沒有返回類型, 定義: []public] 方法名() {} 2,一個構造方法如果想調用同一類中的另一個構造方法,只能調用一個,并且要放在構造方法第一行 3,用this調用,如 1 public person(int i, int j) { 2 this(); //調用另一個構造方法,且放在第一行 3 } 轉載于:https://www…

將字符串和數字合并動態寫入

sprintf(tmpTime, "/media/AIlog/%02d_%02d_%.txt",100,200);

windows安裝64位Pygame方法

因為官方網站http://www.pygame.org/download.shtml并沒有提供64位的pygame&#xff0c;所以要找其他網站制作的64位安裝文件。 如果你已經在你的64位開發環境中安裝了32位的pygame&#xff0c; 那么在導入pygame包的時候&#xff0c; 會有提示&#xff1a; ImportError: DLL l…

學習筆記(48):Python實戰編程-grid布局

立即學習:https://edu.csdn.net/course/play/19711/343110?utm_sourceblogtoedu grid布局&#xff1a;根據表結構進行的布局&#xff0c;索引為0行0列開始&#xff0c;最具代表性的即使電腦計算器的數字和符號按鍵布局 組件.grid(row 行索引號 &#xff0c; column 列索引號…

為什么“三次握手,四次揮手”?

前言&#xff1a; 如果你說你懂IT,你懂計算機網絡&#xff0c;那么你會怎么解釋“三次握手&#xff0c;四次揮手”&#xff1f; ---------------- 1.TCP報文段首部格式&#xff1a; 2.TCP建立連接圖 -------------------------------------------- 符號說明 seq:"sequance…