今天一大早来看到园友分享的福利《分享一个前后端分离方案源码-前端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. SQL中获取最近的N个半年度

    直接上代码: --获取往前推的N个半年度 CREATE FUNCTION F3_GetRecentNHalfYear ( @N INT ) RETURNS @Result TABLE ( Year S ...

  2. P2P行业专业术语(最全)

    网贷:P2P网络借款,指个体与个体之间通过网站实现借贷,中间网站称为网贷平台,简称平台. 角色类 投资者:在网站上把钱借出去的用户,年龄必须是18周岁以上具有中国国籍的公民. 借款者(贷款者):是指有 ...

  3. APP 接口开发及读取静态缓存

    <?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...

  4. C#连接MySql数据库的方法

    1.要连接MySql数据库必须首先下载MySql的连接.net的文件, 文件下载地址为http://download.csdn.net/detail/xiaoliu123586/91455792.解压 ...

  5. six month dormancy test

    source data: accountleg    year_month    amount acc1A    2010-01    100 acc1A    2010-02    100 acc1 ...

  6. B+树的特点

    1.B+树是应文件系统产生的B树的变种.它依然是一颗多路查找树,与B树相比它的不同体现在: (1).如果非叶子节点包含n个关键码,则这个节点有n个子树. (2).非叶子节点仅包含关键码信息,叶子节点包 ...

  7. is A和has A的区别

    is A has A Red is A Color: class Red extends Color{} class Blue extends Color{} class Yellow exrends ...

  8. SpringBoot 快速入门

    本篇文章翻译来源为:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ 首先springboot ...

  9. 实现了一个简单的cage变形器

    今天实现了一个简单变形器,可以用一个网格的形状影响另一个网格的形状. 如图,蓝色网格的形状被灰色网格操控. 当前的算法非常简单,就是计算蓝色网格每个点到灰色网格每个点的距离,以距离x次方的倒数作为权重 ...

  10. 将TP引擎改为smarty引擎

    在common/config文件里设置'TMPL_ENGINE_TYPE'=>'Smarty'即可,但要注意,在模板文件里的css样式{}要用一对{literal}{/literal}标签包裹, ...