一、关于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 : --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= --restart=always -v /etc/localtime:/etc/localtime -d -e --privileged=true --name=nop_commerce_web -p : -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下载与安装

作者:周旭龙

出处:http://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

NopCommerce 4.2的安装与运行的更多相关文章

  1. Python 2/3 安装与运行环境设置

    Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/    下载Win版本 https://www.python.org/downloa ...

  2. 使用工具安装,运行,停止,卸载Window服务

    WSWinForm.exe介绍 WSWinForm.exe是我自己开发的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说WSWinForm只是其注册程序的服务外壳,这个特性对 ...

  3. VMware10.06精简版安装后台运行

    VMware10.06精简版安装时会出现一个安装功能选择菜单,里面有一条后台运行必选功能,一般人会跳过条.当你打算在服务器上用vmware时,一定要安装后台运行服务,否则你无法换出正在运行的后台虚拟机 ...

  4. phpstudy 出现“请自行检查是否安装VC9运行库??”问题 -- 缺少vc9库

    phpStudy是一款PHP调试环境的程序集成包,该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便.好用的 ...

  5. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  6. 解决安装vc2005运行库时提示Command line option syntax error.Type Command/?for Help

    安装vc2005运行库时提示 这是因为它要自解压到用户的临时文件夹下,如果用户名中带中文,就会报错. 简单的解决方法是,手动解压之,再安装 当然,你也可以修改用户名或者再新建个用户.

  7. 解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法

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

  8. win7 64下暗黑世界V1.1 服务器端及客户端的安装及运行 成功

    原地址:http://bbs.gameres.com/thread_223717.html 屌丝一枚,没有MAC 更没有XCODE 潜心整了星期六与星期天两天才安装运行成功...只能说安装太复杂了,, ...

  9. Visual Studio 2015 Update 1 成功安装后运行 “出现未能正确加载[XXXX]包,此问题可能是由配置更改或安装另一个扩展导致的。” 可能的解决方法

    作死装Visual Studio 2015 update 1.安装过程中虽然波澜不惊,但是安装之后运行回报未能正确安装[XXXX]包.找了半天,在stackoverflow中找到了相关的问题,在问题描 ...

随机推荐

  1. ElementUi中el-table分页效果

    现实的场景中很经常遇到表格el-table数据过多,为了更好的用户体验,所以我们需要用到分页,一般分页可以视数据量的大小可分为前端控制和后端控制. 先看下效果(已做脱敏处理) 图1 前端el-tabl ...

  2. LeetCode刷题191203 --回溯算法

    虽然不是每天都刷,但还是不想改标题,(手动狗头 题目及解法来自于力扣(LeetCode),传送门. 算法(78): 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明: ...

  3. LeetCode刷题191121

    博主渣渣一枚,刷刷leetcode给自己瞅瞅,大神们由更好方法还望不吝赐教.题目及解法来自于力扣(LeetCode),传送门. 数据库: 编写一个 SQL 查询,来删除 Person 表中所有重复的电 ...

  4. ORA-27468: ""."" is locked by another process

    You have a scheduler job that generated an error. When the error occurred, you attempted to disable ...

  5. 如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)

    How to Add Multiple Partitions in Oracle 12C (Doc ID 1482456.1) APPLIES TO: Oracle Database - Enterp ...

  6. rpm包安装java jar开机自启

    1.安装jdk: rpm -ivh jdk-8u201-linux-x64.rpm 2.配置jdk路径 打开/etc/profile增加以下内容: export JAVA_HOME=/usr/java ...

  7. CountDownLatch(倒计时计数器)使用说明 --并发

    方法说明:   public void countDown()      递减锁存器的计数,如果计数到达零,则释放所有等待的线程.如果当前计数大于零,则将计数减少.如果新的计数为零,出于线程调度目的, ...

  8. Java之多线程创建方式

    多线程的由来 我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计?要解决上述问题,咱们得使用多进程或者多线程来解决. 多线程的好处: ...

  9. 基于V7的emWin多屏显示方案模板,同时驱动LCD和OLED例程

    说明: 1.多屏驱动跟多图层驱动是类似的,可以使用函数GUI_SelectLayer做切换选择. 2.为了避免OLED闪烁问题,创建一个128*64bit的显存空间,然后使用emWin的GUI_TIM ...

  10. go语言之if语句和switch语句和循环语句

    1.if语句 package main import ( "fmt" "io/ioutil" ) func main() { //流程控制 //使用常量定义一个 ...