(1)dotnet开源电商系统-brnshop&brnMall 和老外开发的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
(1)dotnet开源电商系统-brnshop&brnMall 和老外开发的nopCommerce(dotnet两套电商来PK--第一篇)的更多相关文章
- (2)dotnet开源电商系统-brnshop VS nopCommerce(dotnet两套电商来PK--第二篇:代码从哪开始-BrnMall3.0Beta)
看大牛们的源码,对于水平一般的人,还是略微有点难度的.我从我自身读码的亲身体验,写下杂散片语,希望能和大家一同进步,也为了日后记忆上的备查. 先看的是brnMall的源码结构,从哪看起呢? 首先推荐看 ...
- 集DDD,TDD,SOLID,MVVM,DI,EF,Angularjs等于一身的.NET(C#)开源可扩展电商系统–Virto Commerce
今天一大早来看到园友分享的福利<分享一个前后端分离方案源码-前端angularjs+requirejs+dhtmlx 后端asp.net webapi>,我也来分享一个吧.以下内容由笔者写 ...
- 电商系统架构总结1(EF)
最近主导了一个电商系统的设计开发过程,包括前期分析设计,框架搭建,功能模块的具体开发(主要负责在线支付部分),成功上线后的部署维护,运维策略等等全过程. 虽然这个系统不是什么超大型的电商系统 数亿计的 ...
- CRMEB系统就是集客户关系管理+营销电商系统,能够真正帮助企业基于微信公众号、小程序实现会员管理、数据分析,精准营销的电子商务管理系统。可满足企业新零售、批发、分销、等各种业务需求。
**可以快速二次开发的开源小程序商城系统源码**源码开源地址:https://github.crmeb.net/u/LXT 项目介绍: CRMEB系统就是集客户关系管理+营销电商系统,能够真正帮助企业 ...
- SpringBoot+Security+MyBatis+ES+MQ+Redis+Docker+Vue的电商系统
今天鹏哥给大家推荐的项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现. 前台商城系统包含首页门户.商品推荐.商品搜索.商品展示.购物车.订单流程.会员中 ...
- 手把手教你使用VUE+SpringMVC+Spring+Mybatis+Maven构建属于你自己的电商系统之vue后台前端框架搭建——猿实战01
猿实战是一个原创系列文章,通过实战的方式,采用前后端分离的技术结合SpringMVC Spring Mybatis,手把手教你撸一个完整的电商系统,跟着教程走下来,变身猿人找到工作不是 ...
- 免费领CRMEB移动社交电商系统源码与授权
移动电商风起云涌,直播带货重塑销售模式,传统商业更是举步维艰,各行各业转型移动电商迫在眉睫,拥有一款好的移动社群社交电商系统成为众多企业与商家的心病! 你曾是否被那些劣质的移动电商系统搞得心力憔悴? ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录:一.通过Dapr实现一个简单的基 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr
目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电 ...
随机推荐
- Codeforces Round #427 (Div. 2)——ABCD
http://codeforces.com/contest/835 A.拼英语水平和手速的签到题 #include <bits/stdc++.h> using namespace std; ...
- Android一键换肤功能:一种简单的实现
Android一键换肤功能:一种简单的实现 现在的APP开发,通常会提供APP的换肤功能,网上流传的换肤代码和实现手段过于复杂,这里有一个开源实现,我找了一大堆,发现这个项目相对较为简洁:htt ...
- Unity查找脚本被哪些Perfab或场景引用
Unity中查找脚本被哪些Prefab或场景引用 Unity中有个Find References In Scene的功能,可是仅仅能查找在当前场景中的引用. 假设发现某个脚本不知道被挂在哪个Prefa ...
- CCEditBox/CCEditBoxImplMac
#ifndef __CCEditBoxIMPLMAC_H__ #define __CCEditBoxIMPLMAC_H__ #include "cocos2d.h" #if (CC ...
- PHP array_intersect()
定义和用法 array_intersect() 函数返回两个或多个数组的交集数组. 结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变. 注释:仅有值用于比较. 语法 ...
- Oracle推断值为非数字
select * from product_info t where t.contract_detailid is not null and length(translate(t.contract_d ...
- Cookie && Session && Token
Cookies Cookie的由来: HTTP 本身是一个无状态的 request/response 协议. server接收一个来自client的request, 处理完以后返回一个response ...
- A*(也叫A star, A星)寻路算法Java版
寻路算法有非常多种,A*寻路算法被公觉得最好的寻路算法. 首先要理解什么是A*寻路算法,能够參考这三篇文章: http://www.gamedev.net/page/resources/_/techn ...
- K度限制MST poj 1639
/* k度限制MST:有一个点的度<=k的MST poj 1639 要求1号点的度不超过k 求MST 我们先把1号点扔掉 跑MST 假设有sum个连通分支 然后把这sum个分支连到1上 就得到了 ...
- python lmdb demo 这接口和BDB一样恶心啊!
import lmdb lmdb_img_name = "test.lmdb" env = lmdb.open(lmdb_img_name, map_size=1e6) with ...