初识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项目: 
    最核心的项目,它提供商城最底层,最基础的服务。

    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实现:

    BrnShop.Web

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文件夹部署到服务器。 
    也可以删除如下无关紧要的文件: 
    这里写图片描述这里写图片描述这里写图片描述这里写图片描述