、关于NopCommerce

  NopCommerce是国外ASP.Net领域一个高质量的B2C开源电商项目,最新版本4.2基于ASP.NET Core MVC 2.2和EF Core 2.2开发,其强大的功能特性和插件机制使其成为了.NET领域开源电商项目的标杆。当然,还有一些其他的开源电商项目如Smart.Net Store,SimplCommerce等,但是其功能都不如NopCommerce齐全,但是架构上却各有特色。这里我选择NopCommerce,主要目的还是为了学习电商后台的业务功能,以便未来能够吸取其设计并改造为微服务架构构造业务中台。

二、下载NopCommerce

  两种下载方式:

  (1)官方网站:https://www.nopcommerce.com/downloads.aspx

  (2)GitHub:https://github.com/nopSolutions/nopCommerce/releases

  这里我们选择 nopCommerce_4.20_Source.rar,即源代码版本的release。

三、运行NopCommerce

3.1 编译代码

  打开NopCommerce.sln解决方案,可以看到如下图所示的代码结构:

  

  整个项目代码由4个部分组成,核心库、插件库、展示层以及测试。关于每个部分的介绍,可以阅读园友Runable的《基于NopCommerce的开发框架》一文。

  这里借用Runable的一张图,我们可以清晰看到各个层的主要组成部分及其职责。

  先了解这么多,先编译代码吧,肯定是没有Error的,除非你没有安装.NET Core 2.2的SDK。

3.2 第一次调试运行

  编译无误后,我们就可以F5调试运行了,第一次运行时会弹出安装配置页面,如下图所示,我们需要预先输入一个管理员账号,以及数据库的连接信息,这里我事先创建了一个nop_db的MSSQL数据库用于NopCommerce帮我创建tables。

  关于MSSQL数据库,也可以使用docker方式运行,可以参考以下步骤:

  (1)拉取MSSQL镜像

docker pull microsoft/mssql-server-linux

  (2)创建MSSQL实例

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' \
   -p 1433:1433 --name edc-mssql-dbms \
   -d microsoft/mssql-server-linux

  准备工作完成后,点击“安装”按钮就开始了安装,整个过程会持续接近1分钟左右:

  接下来你就进入了NopCommerce的默认商城主页,如下图所示:

  这时我们可以检查一下MSSQL数据库,已经帮我们创建了120张表了:

  除了前端我们常见的商城页面,更强大的是后台系统,通过在默认URL后边跟上Admin,例如:http://localhost:8080/Admin 则会跳转至后台登录页,输入我们在首次配置时配置的邮箱和密码,则进入了Nop的后台系统,如下图所示,商品管理、销售管理、客户管理、促销管理等常见电商后台功能一应具有。

3.3 添加中文语言包

  如果我们觉得英文看着吃力,可以为Nop添加中文语言包。

  (1)到这里下载Nop的中文语言包(一个xml文件)

  (2)到后台系统中,选择Configuration中的Languages菜单,弹出的页面中点击Add New按钮,表单中录入相应内容

  (3)然后单击Import Resource按钮,将中文包导入

  (4)在首页的语言下拉菜单中选中“简体中文”,刷新后就是中文菜单了

四、以Docker方式运行NopCommerce

  NopCommerce 4.2基于ASP.NET Core开发,自然支持Docker方式部署到Linux上,同样两种方式:

  (1)使用官方自带的Dockerfile

# create the build instance
FROM microsoft/dotnet:2.2-sdk AS build  WORKDIR /src
COPY ./src ./   # restore solution
RUN dotnet restore NopCommerce.sln  WORKDIR /src/Presentation/Nop.Web       # build and publish project
RUN dotnet build Nop.Web.csproj -c Release -o /app
RUN dotnet publish Nop.Web.csproj -c Release -o /app/published  # create the runtime instance
FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine AS runtime  # add globalization support
RUN apk add --no-cache icu-libs
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false    WORKDIR /app
RUN mkdir bin
RUN mkdir logs      COPY --from=build /app/published . ENTRYPOINT ["dotnet", "Nop.Web.dll"]

  (2)自行发布Release并上传到Linux上,然后使用以下命令创建Docker实例

docker run -u root --ulimit core=0 --restart=always
-v /etc/localtime:/etc/localtime -d -e
--privileged=true --name=nop_commerce_web
-p 8080:80
-v /Edison/publish/NopCommerce.Web/:/app
-w /app microsoft/dotnet:2.2-aspnetcore-runtime
dotnet Nop.Web.dll;

  由于在配置过程中需要两个文件夹的支持,所以进入docker实例中创建两个文件夹

docker exec -it nop_commerce_web /bin/bash
mkdir bin
mkdir logs

  然后查看docker状态,启动成功

参考资料

Runable,《基于NopCommerce的开发框架》

向坤,《NopCommerce从无到有-01》

Nop,《NopCommerce下载与安装》


NopCommerce 4.2的安装与运行相关推荐

  1. 在Ubuntu 12.04 64bit上配置,安装和运行go程序

    注意: 下面的安装配置均遵从官网或是教材<Go语言程序设计>中的部分内容. 顺便说下,这是一本很难得的Go语言的入门教程,非常基础和全面.起初我因为这本书的封面比较讨厌它,闲置几年之后,一 ...

  2. flume 1.7在windows下的安装与运行

    flume 1.7在windows下的安装与运行 一.安装 安装java,配置环境变量. 安装flume,flume的官网http://flume.apache.org/,下载地址,下载后直接解压即可 ...

  3. RabbitMQ安装和运行

    RabbitMQ在Windows下安装和运行 1.下载Erlang: http://www.erlang.org/downloads/19.2 2.下载Windows版RabbitMq: http:/ ...

  4. Python3入门笔记(1) —— windows安装与运行

    Python3入门笔记(1) -- windows安装与运行 Python的设计哲学是"优雅"."明确"."简单".这也是我喜欢Python ...

  5. Windows下Go语言的安装和运行

    参考:https://blog.csdn.net/SquirrelYuyu/article/details/82776029 Windows下Go语言的安装和运行 文章目录 Go语言的安装与配置 Go ...

  6. python详细安装教程视频-如何安装Python运行环境Anaconda?(视频教程)

    本视频教程针对Windows 7平台,集成3.6版本Python的Anaconda录制. 根据我多次线下编程工作坊获得的反馈经验,发现Python初学者居然在环境安装步骤,就很可能遭受挫折. 如果没有 ...

  7. vc2005运行库彻底卸载_解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法...

    因为VS2005以后程序采用了manifest的生成方式,所以发布的时候要和运行库一起发布.但是我们平时开发和发布的时候如果都要客户安装运行库,那就不太方便了.你可以Microsoft下载:http: ...

  8. Sublime Text 3(中文)在Windows下的配置、安装、运行

    Sublime Text 3(中文)下载.安装.运行! 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) ...

  9. Anaconda:Anaconda安装图文教程及其tensorflow安装、运行、测试之最强详细攻略

    Anaconda:Anaconda安装图文教程及其tensorflow安装.运行.测试之最强详细攻略 导读 能够在进行深度学习之前把这些辅助工具Python.Anaconda.GPU.Tensorfl ...

最新文章

  1. linux c pid获取进程名 进程名获取pid
  2. 信不信这29 个阿里开源项目里肯定有你用过的?
  3. Omi框架学习之旅 - 生命周期 及原理说明
  4. LOAD_TYPE_VERSION_MISMATCH与TYPELOAD_NEW_VERSION错误分析
  5. Java黑皮书课后题第2章:2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度值,将其转为华氏温度,显示结果
  6. ScrollView HorizontalScrollView
  7. 18行代码AC-Leecode 299. 猜数字游戏——Leecode每日一题系列
  8. python绝对导入_[编程基础] Python中的绝对导入与相对导入
  9. Swift学习笔记(10)--枚举
  10. [导入]【翻译】WF从入门到精通(第二章):workflow运行时
  11. C语言中malloc,calloc,realloc,free的语法与作用
  12. 【字幕制作】从IDX/SUB到PGS的小白入门教程
  13. Markdown标题加粗居中写法
  14. 单片机三角波c语言程序,基于51单片机的三角波发生器
  15. mfc 定时器绘制旋转六边形_OpenGL——旋转的六边形(动画)
  16. excel中图片链接利用宏VB转换为图片展示
  17. Linux内核有加网速功能吗,Linux下使用有线网络和WiFi能不能叠加网速?网友评论不一...
  18. 【笔记】Android手机root的概念
  19. python 系统学习实例1.2 - 人民币与美元的转换
  20. 华为linux版能用ps,华为matebookd14能用ps吗

热门文章

  1. 代码评审会议_如何将电话会议(和访问代码)另存为联系人
  2. 火狐web开发清楚缓存_如何使用Firefox的Web开发工具
  3. 【算法】LeetCode算法题-Maximum Subarray
  4. Java中this与super的区别
  5. LinkedIn联合创始人:硅谷也就700万人,为什么能创建这么多瞩目的公司 ?
  6. django基础1--django安装与helloworld测试
  7. Oracle索引扫描四大类的分析
  8. Linux命令——chmod
  9. VForum 2008系列之六:分论坛视频-虚拟世界中的应用
  10. 登陆xp系统,无法显示桌面