初识Brn系列商城
1. 简介
Brn系列商城是由石家庄蝶影软件开发有限公司开发的开源Asp.Net商城,包括BrnShop和BrnMall,BrnShop为单店版,BrnMall为多店版。该系列商城以ASP.NET
MVC3为基础开发的一套网上商城,功能丰富,架构稳定,配置灵活,适合企业和个人快速构建个性化的大中型网上商城。官方网站:http://www.brnshop.com
官方微博:http://www.cnblogs.com/wheretime/category/586784.html
2. 官方教程
1、BrnShop开源网上商城第一讲:架构设计
2、BrnShop开源网上商城第二讲:ASP.NET MVC框架
3、BrnShop开源网上商城第三讲:插件的工作机制
4、BrnShop开源网上商城第四讲:自定义插件
5、BrnShop开源网上商城第五讲:自定义视图引擎
6、BrnShop开源网上商城第六讲:扩展视图功能
7、重磅来袭,开源Asp.Net MVC网上商城BrnShop正式发布,提供源码下载
8、BrnMall多店版网上商城正式发布
9、网上商城培训视频(下载)
10、Brn系列网上商城数据库说明文档
11、Brn系列网上商城发布指南
3. 设计框架(以BrnMall为例)
(图片多来源于远博客,侵删!)
解决方案是由4个解决方案文件夹构成的。它们分别是Libraries,Presentation,Strategies和Plugins:
项目目录介绍:
- Libraries:商城基础类库,主要提供系统核心,数据访问,业务逻辑等功能。
- Presentation:商城web展示,提供网站前台和后台实现。
- Strategies:包含各种策略程序集。
Plugins:包含开发授权,支付等插件。 主要功能都在Libraries和Presentation中,而Strategies和Plugins只是提供程序外围的一些服务。
BrnShop.Core项目:
最核心的项目,它提供商城最底层,最基础的服务。其中异步模块,缓存模块,配置模块,数据模块,邮箱模块,随机值模块,Session模块,短信模块这8个模块,BrnShop.Core项目只提供加载和接口,并不包含具体实现。
如邮箱模块:
/// BrnShop邮件管理类 public class BSPEmail{ private static IEmailStrategy _emailstrategy = null;//邮件策略 static BSPEmail(){ Load(); } /// 邮件策略实例 public static IEmailStrategy Instance{ get { return _emailstrategy; } } /// 加载邮件策略 private static void Load(){ try{ string[] fileNameList = Directory.GetFiles(System.Web.HttpRuntime.BinDirectory, "BrnShop.EmailStrategy.*.dll", SearchOption.TopDirectoryOnly); _emailstrategy = (IEmailStrategy)Activator.CreateInstance(Type.GetType(string.Format("BrnShop.EmailStrategy.{0}.EmailStrategy, BrnShop.EmailStrategy.{0}", fileNameList[0].Substring(fileNameList[0].IndexOf("EmailStrategy.") + 14).Replace(".dll", "")),false,true)); }catch{ throw new BSPException("创建\"邮件策略对象\"失败,可能存在的原因:未将\"邮件策略程序集\"添加到bin目录中;将多个\"邮件策略程序集\"添加到bin目录中;\"邮件策略程序集\"文件名不符合\"BrnShop.EmailStrategy.{策略名称}.dll\"格式"); } } }
核心思想就是“约定大于配置”和“策略模式”。这里的“约定大于配置”大家需要注意下,如果大家想自己实现一个策略,例如邮箱策略(其它策略一样),请一定要保证符合约定限制,具体就是程序集名一定要满足“BrnShop.EmailStrategy.{自定义名称}.dll”格式,命名空间满足”BrnShop.EmailStrategy.{自定义名称}”格式,主类名必须是“EmailStrategy”。还有一点就是为了保证策略程序集能正确的编译到BilShop.Web项目的bin文件夹中,一定要配置项目生成的输出路径为“….\Presentation\BrnShop.Web\bin\”
BrnShop.Data项目:
这个项目主要是通过调用BrnShop.Core项目中的BSPData类来和各种数据存储做交互BrnShop.Services项目:
商城的业务功能实现,如果想找商城某个功能的实现可以来这个项目中找,例如购物车的实现(在BrnShop.Service项目中有个Admin文件夹,这个文件夹是商城后台操作要用到的类)。BrnShop.Web.Framework项目:
这个项目主要提供商城web层面的设计。里面都是自定义控制器类,分页,动作筛选器等MVC方面的东西。BrnShop.Web.Admin项目:
商城网站后台,这个项目的类型是类库,不是web项目(但mvc的各部分俱全),所以不能直接启动。(关于网站发布问题,这里提供一个简单的方法,首先将vs的生成配置改成”release”,然后将BrnShop.Web项目中的web.config文件中的compilation节点的debug属性设置成“false”,然后重新生成BrnShop.Web项目,最后把BrnShop.Web项目的文件夹复制并删除无用的文件(例如obj文件夹下的文件)到iis中就可以了。)BrnShop.Web项目:
商城网站前台:使用ASP.NET MVC3实现:
4. 使用
- 从官网下载源码包解压后打开工程。
- (请确保已安装sqlserver 2005或newer版本)首先在你的数据库服务器上创建名为”brnmall”的数据库,然后执行”sqlserver.sql”文件。
- 请在配置文件 \Presentation\BrnMall.Web\App_Data\rdbs.config 中设置你的数据库账号/密码。
现在可以 Ctrl+F5 本地运行了:
如果需要发布:
(1) 将vs的编译方式改为Release:
(2) BrnMall.Web项目下的Web.config文件,将compilation节点的debug值改为”false”:
(3) 重新生成解决方案:
(4) 直接将BrnMall.Web文件夹部署到服务器。
也可以删除如下无关紧要的文件: