今天一大早来看到园友分享的福利《分享一个前后端分离方案源码-前端angularjs+requirejs+dhtmlx 后端asp.net webapi》,我也来分享一个吧。以下内容由笔者写于昨天晚上[2015.10.08]。

《集DDD,TDD,SOLID,MVVM,DI,EF,Angularjs等于一身的.NET(C#)开源可扩展电商系统–Virto Commerce》–看着这个标题有点长了,笔者本想试着用这个标题来大体概括一下这个[Virto Commerce]基于.NET(C#)的开源电商系统的,但很显然是办不到的。因为无论从Virto Commerce的解决方案架构,还是从Virto Commerce所涉及的各种技术概念来说,用无法一个标题来概括。那么,对于初识Virto Commerce来说,它到底是什么呢,其中运用了哪些牛X的技术和解决方案呢?让我们从Virto Commerce的官方简介说起。

Virto Commerce是在基于许多个成功的实际生产经验之上于2011年创建的电子商务系统框架,如今这个框架被许多企业所运用。对于中小企业来说,你可以免 费使用Virto Commerce的社区版,并自由地完成二次开发与扩展。作为一个完整的电商系统,Virto Commerce包含了前端的购买商城系统和后端的管理系统。后端的管理界面如下图:

Virto Commerce使用到的技术包含如下图:

具体的技术如:

  • ASP.NET MVC 5
  • ASP.NET Web API 2
  • Entity Framework 6.1
  • EF Migrations
  • ASP.NET Identity
  • Signalr
  • Angularjs

Virto Commerce的架构使用了DDD,TDD以及SOLID等作为底层的技术,作为表现层则使用了MVVM的模式,具体的架构图如下:

Virto Commerce是基于模块开发的,这样对于开发者来说实现扩展是非常容易和方便的,而且模块是热插拔的。如下图的官方已实现的模块:

此外,Virto Commerce还集成了强大的搜索组件ElasticSearch来实现前后台的搜索功能,集成了定时任务组件Hangfire来完成各种定时任务的调度和执行等。

最后,由于Virto Commerce后台管理系统界面(UI)是基于Angularjs实现的,所以用户体验是相当的流畅的,如果读者使用过Azure的管理系统,在体验上 就是如此(虽然目前的细节方面还不能和Azure的Portal相比^_^)。看一下Azure的Portal:

好了,介绍了这么多关于Virto Commerce电子商城系统的相关情况。

如果需要体验的话,请至官方演示地址:http://virtocommerce.com/try-now;

如果要查看下载官方源码,请至:https://github.com/VirtoCommerce/vc-community

如果需要查看官方的介绍及文档,请至:http://docs.virtocommerce.com/display/vc2devguide/Introduction

如果你对本文介绍的新鲜的.NET开源框架系统还不错的话,那请你点点“推荐”,让更多人也了解它吧

写在最后:如果你把Virto Commerce这个电商系统研究透了,那架构什么的是水到渠成的事!!!(奋斗吧)

集DDD,TDD,SOLID,MVVM,DI,EF,Angularjs等于一身的.NET(C#)开源可扩展电商系统–Virto Commerce的更多相关文章

  1. 电商系统架构总结1(EF)

    最近主导了一个电商系统的设计开发过程,包括前期分析设计,框架搭建,功能模块的具体开发(主要负责在线支付部分),成功上线后的部署维护,运维策略等等全过程. 虽然这个系统不是什么超大型的电商系统 数亿计的 ...

  2. 通过Dapr实现一个简单的基于.net的微服务电商系统(十五)——集中式接口文档实现

    之前有小伙伴在评论区留言说如何集成swagger,最开始没有想透给了对方一个似是而非的回答.实际上后来下来想了一下,用.NET5 提供的Source Generator其实可以很方便的实现接口集成.今 ...

  3. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  4. MVVM大比拼之AngularJS源码精析

    MVVM大比拼之AngularJS源码精析 简介 AngularJS的学习资源已经非常非常多了,AngularJS基础请直接看官网文档.这里推荐几个深度学习的资料: AngularJS学习笔记 作者: ...

  5. Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计

    Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计 1.1. software development methodology (also known as SDM 1 1 ...

  6. 如何一步一步用DDD设计一个电商网站(五)—— 停下脚步,重新出发

    阅读目录 前言 单元测试 纠正错误,重新出发 结语 一.前言 实际编码已经写了2篇了,在这过程中非常感谢有听到观点不同的声音,借着这个契机,今天这篇就把大家提出的建议一个个的过一遍,重新整理,重新出发 ...

  7. 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成

    阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...

  8. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

  9. 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念

    一.前言     DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...

随机推荐

  1. Effective Java 59 Avoid unnecessary use of checked exceptions

    The burden is justified if the exceptional condition cannot be prevented by proper use of the API an ...

  2. MongoDB学习笔记——MongoDB 连接配置

    MongoDB连接标准格式: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[dat ...

  3. 魔改——MDI多视图模板Tab/标签页 初始化/操作控件

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

  4. 魔改——MFC MDI程序 定制 文档模板 运行时全部打开 禁用关闭按钮

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

  5. 设计模式C#实现(六)——单例模式

    单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 构成: 1.私有的构造函数 2.私有静态的实例 3.返回实例的静态方法 public class Singleton { privat ...

  6. 烂泥:NFS存储与VSphere配合使用

    本文首发于烂泥行天下. 公司服务器的虚拟化使用的是VM ESXi 5.0,为了更有效的利用服务器的硬盘空间.就把所有的镜像文件存放到另外一台linux服务器上,这样在使用vsphere安装虚拟机时可以 ...

  7. grub条目示例

    https://wiki.archlinux.org/index.php/GRUB#Install_to_disk /boot/grub/menu.lst default=0 timeout=5 ti ...

  8. mysql管理(一)

    创建数据库,并指定默认字符集和排序规则:help create database;create {database|schema} [if not exists] db_name [character ...

  9. sql date时间加减几天几小时

    //时间转成年月日时分秒select date_format(now(),'%Y%m%d%H%i%S')//时间转成年月日select date_format(now(),'%Y%m%d')//去年此 ...

  10. 快速理解Kafka分布式消息队列框架

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ ==是什么 == 简单的说,K ...