今天是个特殊的日子,我在北京房租价格又上了一个新的台阶。在这个日子我准备开始建立一个开源项目,一个B2C行业的EC系统。

一、关于定位

我要做的不只是一个商城,应该说是一个能满足中小型企业建立电子商务的一套完善的系统。其中的一些模块包括(但不限于)如下:

1. 前台商城

1.1. 前台网站商品的展架模块,包括整个商品的推销策略,包括分类、检索、各类活动形式等。

1.2. 前台的购物流程,包括购物车、定单、支付等。共中的客户可能包括:一般零售客户、大客户、团购客户等。

1.3. 前台用户中心,包括个人信息及商业行为信息等的维护。

2. 后台ECERP系统

1.1. 对前台各展架信息等的维护模块,也就是网站管理模块。对应的操作角色:网站的运维人员

1.2. 商品管理模块,对商品的分类、商品等基元信息进行管理等。对应的操作角色:网站运维人员、采购人员等。

1.3. 活动管理模块,包括优惠券系统等。对应的操作角色为:网站运维人员

1.4. 采购模块,对商品的库存进行管理,一系统的缺断货控制等。对应操作的角色为:采购人员

1.4. 销售定单处理模块,对定单进行处理。对应的操作角色为:客户服务人员、财务人员、主管人员等概据不同角色进行处理。

1.4. 财务模块,财务人员进行销售的收款单处理,采购的付款单处理等。对应的操作角色为:财务人员

1.5. 售后模块,对售后进行管理,商品的退货换货等。对应的操作角色为:客服人员、售后工作人员、物流人员

1.6. 物流模块,对定单的出货、换货、退货等业务进行处理。对应的操作角色为:物流人员

1.7. 仓库管理模块,对仓库进行管理。对应的操作角色为系统管理人员

3. 其他

当然系统还需要权限的支撑。其他的还有很多东西通过增量的方式迭代出来吧。

二、关于开发模式

最好的开发模式就是无模式了,适合自己就好,不过也要有个基本的思路,本系统将采用2个DDD,第一个就是Domain driven design(领域区动设计),

第二个就是Domain driven development(领域区动开发),当然DDD只是个思想,我们不必拘泥于形,每个人都有每个人的想法,还是那句话:适合自

己就好。

这里说一下敏捷开发,我对这个概念理解不深。个人感觉真的没必要理解的“过于深”,个人感觉现在一般的小公司的开发模式“不正规,很敏捷”,由于

没有正规的开发方法论,一直是个迭代的过程。没有文档、口头交流、增量、迭代好像出现了不少这样的名词了。

三、关于架构

架构方面现在只是个初步想法,先贴出来大家参考下。

以上Solution图我一个一个的简要描述一下:

AssionShop.AdminWeb 这个是个WebForm项目,是我们前面提到的ECERP系统的UI层,做这样的信息系统WebForm还是有一定优势的,具体再定。

AssionShop.Caching 系统的缓存层,之所以把缓存独立出来,因为它在项目中的份量挺重要的,对对象的生命进行支持,可以抽象出支持多种缓存架构,

比如asp.net的进程缓存,基于key-value的分布式缓存产品等。

AssionShop.Common 系统的一些公共框架级模块,可能包括字符处理、AOP、IOC、ORM、Log等一系列支撑对象。

AssionShop.DBMap 数据库映射层,可以采用NHibernate框架来解决o-r的阴抗问题。为什么不直接在Repositories里?不为什么。

AssionShop.Domain 领域层,系统的核心业务逻辑对象,不依懒其它任务层,半充血模式。不自身完成持久化,持久化由仓储来负责。

AssionShop.Dto 数据传统对象,里面包括数据传统对象和相应的适配器,注:有可能DTO直接跨越UI和Repositories/DBMap 比如系统的报表等。

AssionShop.Repositories 仓储,负责Domain的工厂生产及生命周期控制,内部调用缓存和数据库完成领域对象的持久化。

AssionServices 这个Services应该是ApplicationService而非DomainService,它调用Domain与Repositories进行轻量的组装,为UI或是SOA提供API,

我把事务控制放在这层,采用MSDTC分布式事务,Services为事务边界我认为是比较合理的。

AssionShop.Web 前台商城WEB项目,初步计划采用asp.net mvc 这层同AdminWeb一样,调用Services以及对DTO对象的引用。

以上就是项目的初步设想与规划定位,有很多不足将通过一步步的深入进行处理。下一章将从需求的《用例模型》开始。

AssionShop开源B2C电子商务系统-概述(转载)的更多相关文章

  1. AssionShop开源B2C电子商务系统-(二)定单流程活动图状态图(转载)

    B2C系统的灵魂所在就是定单的流程了,下面展示下定单的最重要的两个动态图,一个是定单流程活动图.还有一个是简单的定单状态图.通过这两张图,基本可以 了解系统定单流的大概情况了啊.图画的只是初步的设想, ...

  2. AssionShop开源B2C电子商务系统-(一)用例图(转载)

    这篇文章,将有实质的进展.先把大体的需求整理了一份用例图,自认为粒度做的已经很细了,再细就没法搞了.我还是坚信一个原则:自己业余搞的东西千万不要 想一口吃个胖子,这样很容易项目就搞流产了~,废话不多说 ...

  3. 转:国内外著名开源b2c电子商务系统比较包括asp.net和php

    from: http://longdick.iteye.com/blog/1122879 国内外著名开源b2c电子商务系统比较包括asp.net和php 博客分类: 电子商务   国内外著名开源b2c ...

  4. B2C电子商务系统研发——商品SKU分析和设计(一)

    一.SKU及相关概念定义 在设计商品SKU之前,首先让我们熟悉一下SKU和相关的一些概念. # 什么是SKU: SKU=Stock Keeping Unit(库存量单位) 同一型号的商品,或者说是同一 ...

  5. B2C电子商务系统研发——商品SKU分析和设计(二)

    转:http://www.cnblogs.com/winstonyan/archive/2012/01/07/2315886.html 上文谈到5种商品SKU设计模式,本文将做些细化说明. 笔者研究过 ...

  6. B2C电子商务系统研发——产品媒体常见功能点

    产品媒体常见功能点 电商研发系列——产品媒体常见功能点 支持图片.视频和文档等媒体类型 产品图片对清晰度要求比极高,但又不能太大,所以图片一般是jpg格式. 视频一般是flv流媒体格式,如果是嵌入产品 ...

  7. 30个开源电子商务系统(PHP)

    osCommerce osCommerce是一款著名的PHP开源电子商务解决方案,提出“开箱即用”的强大功能,使网上商店安装非常方便快捷,并可以作为GNU通用公共授权的开源项目免费发布.osComme ...

  8. 开源的.NET系统推荐

    C# 源码 AForge.NET     RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的 ...

  9. 【转】B2C电子商务系统设计精选

    B2C电子商务系统研发——促销引擎设计(一)(Promotion Engine) B2C电子商务系统研发——商品SKU分析和设计(一) B2C电子商务系统研发——商品SKU分析和设计(二) 电商后台系 ...

随机推荐

  1. js 封装的自动创建表格的相关操作

    因为要做一个动态输入的表格,现在积累一下资料,在网上找了一些资料,经过总结是使用更加方便些,谁有更好的插件和封装的东西,请大家分享一下. <script type="text/java ...

  2. text-align 属性,输入框数字向右靠

    1.业务需求:金额输入框数字向右靠 2.HTML文件 <td id="otherPay_Td"> <input id="otherPay" t ...

  3. Jenkins和Docker以及Kubernetes结合考虑

    今天搞了一下Jenkins和Docker的结合,我在想几个问题: 构建是经常的,构建最大的目标还是生成一个包或者应用 发布应用也是频繁的,发布本质上是把这个包放到可运行的环境中便于测试 如果每次构建我 ...

  4. 虚拟机选择配置:解决tomcat内存溢出

    用于解决java.tomcat内存溢出:-server -XX:PermSize=128M -XX:MaxPermSize=256m

  5. 关于TagHelper的那些事情——Microsoft.AspNet.Mvc.TagHelpers介绍

    写在开始 在上一篇文章中,简单介绍了什么是TagHelper,怎么使用它.接下来我会简单介绍一下微软随着ASP.NET5一起发布的TagHelpers.它们分别是: AnchorTagHelper C ...

  6. iOS:第三方框架MJPhotoBrowser图片浏览器的使用

    介绍:MJPhotoBrowser这个第三方库是MJ老师封装的一套用来浏览图片的浏览器,可是是本地图片.网络图片.gif图片等,其也依赖了SDWebImage.SVProgressHUD.YLGIFI ...

  7. 一些数据 bandwidth之类

    33ms  2436x1125 full resolution write bandwidth  300MB/s memory bandwidth snapdragon 630 10GB/3   // ...

  8. VB6.0 中 碰到 提示rs对象关闭,不允许操作, 吃一堑长一智

    VB6.0 中 碰到 提示rs对象关闭,不允许操作,  吃一堑长一智 如果碰到 这个错误提示 则请检查 你执行的每一个语句中的数据类型,包括 如果有存储过程的话,还要检查 存储过程中每一个变量和数据表 ...

  9. java HashMap,LinkedHashMap,TreeMap应用

    共同点: HashMap,LinkedHashMap,TreeMap都属于Map:Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复. 不同点: 1.H ...

  10. 【日志处理】logstash性能优化配置

    2W条数据用时4秒完成,每秒5000条左右,昨天是同时写入到文件和标准输出,看起来是output的问题,这块性能应当可以满足性能要求了 后继我会继续把结果输出到tcp,kafka来测试经过grok后的 ...