nopCommerce_4.40.3
文章平均质量分 85
zhoujian_911
这个作者很懒,什么都没留下…
展开
-
第30章 商品实体的定义实现
DiscountCategoryMapping类,继承于DiscountMapping类,通过该类及其属性成员实例,构建程序中实体实例与折扣实体实例映射关系,实现折扣操作与商品实体的业务逻辑的耦合。 注意: 在实现业务的逻辑中折扣操作是与商品直接相关联的,nopCommerce程序所需要做到的是定义并实现该关联关系,所以nopCommerce程序中所定义的任何与折扣相关的类及其逻辑实现,从本质上来说都是必须与商品相关的定义实现提供相应的数据支撑,即从程序业务逻辑的实现上折...原创 2021-09-19 20:48:09 · 453 阅读 · 0 评论 -
第29章 折扣与多媒体的定义实现
0092 DiscountType、DiscountLimitationType、Discount DiscountType类,通过该枚举的一个指定成员,指定的一个/类商品进行折扣计算操作。 DiscountLimitationType类,通过该枚举的一个指定成员,指定一种类型的用户才可享受商品的折扣。 Discount类,通过该类及其属性成员实例,对程序中的商品实体实例执行折扣操作提供数据支撑。0093 DiscountMapping、DiscountProd...原创 2021-09-19 20:44:50 · 91 阅读 · 0 评论 -
第27章 登录/注销的定义实现
1、重构Nop.Core.Domain.Customers.NopCustomerDefaults类。0086 ActivityLogType、ActivityLog ActivityLogType类,通过该实体类及其属性成员实现当前程序与数据库中活动日志类型表之间的数据交互操作。 ActivityLog类,通过该实体类及其属性成员实现当前程序与数据库中活动日志表之间的数据交互操作。0087 ActivityLogBuilder、ActivityLogTypeB...原创 2021-09-19 20:39:51 · 132 阅读 · 0 评论 -
第26章 自定义身份认证的管道和依赖注入容器
注意: 在.NetCore框架中登录操作的定义实现,是基于内置身份认证的管道和依赖注入容器的,nopCommerce程序通过对内置身份认证的管道和依赖注入容器的扩展,自定义出自己的管道和依赖注入容器,从而保证程序中的登录操作的正常执行。如果不在.NetCore框架中定义/调用内置身份认证的管道和依赖注入容器,而直接执行登录操作,虽然语法上不会有任何的错误,但是在执行过程中在执行了登录操作后的页面跳转操作则会产生500异常页面信息。0085 AuthenticationMiddlewa...原创 2021-09-19 20:37:34 · 134 阅读 · 0 评论 -
第25章 通知服务定义实现
注意:由于计划任务的定义实现需要与插件的定义实现相耦合,而插件的实现以要与其它的基础定义实现相耦合,为了简化实现逻辑和具体实现,本人并不准备在该系列的示例中对插件的定义实现进行整合,所以需要先把Nop.Web.Framework.Infrastructure.Extensions.ApplicationBuilderExtensions.StartEngin方法中的语句://如果当前程序的数据库已经存在于数据库软件,则执行下面的操作。 //if (DataSet...原创 2021-09-19 20:35:41 · 185 阅读 · 0 评论 -
第24章 异步编程
从nopCommerce_4.40程序开始,nopCommerce开者对程序的实现以同步方法实现,重构为以异步方法实现为主。当前(2021年9月6日)的Web开发的主流实现,也是于异步方法来实现的,所以对异步编程进行深入的了解,是我们对nopCommerce_4.40程序进一步加深理解的前提,也是进行一步对基础的夯实,为突破下一层的天花板必要的知识积累。 PS:异步编程的本质就是新开任务线程来处理。约定:异步的方法名均以Async结尾。实际上呢,异步编程就是通过Task.Run...原创 2021-09-19 20:32:30 · 168 阅读 · 0 评论 -
第22章 语言服务、Web工作上下文定义实现
0074 LocalizationSettings、NopLocalizationDefaultsLocalizationSettingsk类,通过该实体类及其属性成员实现当前程序与数据库中设置表(Setting)和本地化资源表(LocaleStringResource)之间的数据交互操作。NopLocalizationDefaults类,通过该类所定义的常量字符串,为当前程序中的通用操作的实现提供相应的数据值。0075 ILanguageService、LanguageServic..原创 2021-09-19 20:26:04 · 118 阅读 · 0 评论 -
第21章 语言、计划任务
0068 IStoreMappingSupported、Language、ScheduleTask Language类,继承于IStoreMappingSupported接口,通过该实体类及其属性成员实现当前程序与数据库中指定表之间的数据交互操作。 ScheduleTask类,通过该实体类及其属性成员实现当前程序与数据库中指定表之间的数据交互操作。0069 LanguageBuilder、ScheduleTaskBuilder LanguageBuilder类,该类通过...原创 2021-09-19 20:21:03 · 124 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解---第20章 常规属性服务、用户代理助手、身份验证服务的定义实现
0063 GenericAttribute、GenericAttributeBuilder GenericAttribute类,一个常规属性实体类,通过该实体类及其属性成员实现当前程序与数据库中指定表之间的数据交互操作。 GenericAttributeBuilder类,该类通过对父类中同名方法进行覆写,对设置实体类、属性成员进行约束关系和规则进行相应的定义,并把这些约束有关系和规则的定义,映射到相应的数据库中新生成的一个常规属性表及其字段上。1、重构Nop.Data.Migra...原创 2021-08-25 21:07:14 · 167 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解--- 第19章 Web助手与Cookie的定义实现
0060 HostingConfig、NopHttpDefaultsHostingConfig类,程序通过该类所设置的常量,来限定客户端浏览器访问当前程序所必须遵循的传输协议,并把该类中所有的默认值,持久化到一个指定的配置文件中(这里特指:appsettings.json)。1、重构Nop.Core.Configuration.AppSettings类,通过本次重构在该类中定义相应的主机配置实例。 NopHttpDefaults类,该类设置了客户端浏览器访问当前程序所必须遵循的传输协议...原创 2021-08-25 21:03:15 · 140 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解--- 第18章 权限的定义实现
0056 PermissionRecord、PermissionRecordCustomerRoleMapping PermissionRecord类,一个权限纪录类,通过该实体类及其属性成员实现当前程序与数据库中指定表之间的数据交互操作。 PermissionRecordCustomerRoleMapping类,一个权限纪录客户角色映射实体类,通过该实体类及其属性成员实现当前程序与数据库中指定表之间的数据交互操作。0057 PermissionRecordBuilder、Per...原创 2021-08-25 21:00:05 · 226 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解---- 第17章 Web/Areas定义实现
1 整体框架的定义实现0051 AreaNamesNopCommonStartup类,该类设置一个常量,该常量指定了保存后台相关操作实现文件夹的名称。0052 BaseAdminController、HomeController、CustomerRoleControllerBaseAdminController类,通过[Area(AreaNames.Admin)]标记把Web/Areas注入到Web层中,从而保证浏览器对后台页面的正常显示。注意.NetCore框架还可以通过s原创 2021-08-25 20:57:05 · 177 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----第16章 缓存的配置实现
定义Nop.Web.Controllers. CustomerRoleController类。 定义Nop.Web\Views\ CustomerRole\ List.cshtml,Razo页面。 重构Nop.Web.Infrastructure.RouteProvider.RegisterRoutes方法。 重构Nop.Services.Customers.NopCustomerServicesDefaults类。 重构Nop.Services.Customers.CustomerService.原创 2021-08-25 20:49:45 · 211 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----第15章 内存缓存和分布式缓存的定义实现
上一章为了简化实现,删除了关于内存缓存和分布式缓存的相关定义,缓存定义的实现做为当前工程性软件的一项必备功能,是必须被定义实现的,下面通过缓存定义的实现对第14章的示例程序进行重构,通过缓存数据实现同样的功能。0046 DistributedCacheType、CacheConfig、DistributedCacheConfigDistributedCacheType类,该枚举定义了3种分布式缓存方式,该枚举实例选定其中的一种缓存方式,对当前程序中的数据进行缓存数据的交互操作,为减少程序对数据库原创 2021-08-25 20:19:57 · 181 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解---- 第14章 加/解密操作的定义实现
0039 UserRegistrationType、CustomerNameFormat、CustomerSettings UserRegistrationType枚举,该枚举定义了用户在注册成功后的4种登录审核状态,该枚举实例选定其中的一种登录审核状态,来限定已经注册成功的用户,在进行了那种登录审核的操作后,才能进行登录操作。 CustomerNameFormat枚举,该枚举定义了用户在注册成功后的4种登录审核状态,该枚举实例选定其中的一种登录审核状态,来限定已经注册成功的用户,...原创 2021-08-25 20:06:38 · 159 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解---- 第13章 设置实体及其相关类的定义实现
在程序中许多操作,都是基于设置实体及其相关类的定义实现的,即设置实体及其相关类与nopCommerce程序中绝大多数其它类的定义,存在着极高程度的耦合关系,这些其它类就包含密码的加/解密类的定义实现,所以在实现加/解密类的定义实现之前,必须先对设置实体及其相关类才进行定义实现。0035 ISettings、SecuritySettings、Setting SecuritySettings类,继承于ISettings接口,通过该类中的属性成员存储当前程序中一些与安全相关的数据信息值。...原创 2021-08-25 20:05:17 · 155 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解---- 第12章 客户与角色默认数据持久化的实现
0031 NopCustomerDefaults、CustomerRole、CustomerCustomerRoleMapping NopCustomerDefaults类,程序通过该类所获取的常量,来限定被持久化到角色表中的角色是一个具有那些权限的角色,实际上这与初始化数据信息构成了双重角色权限的限定,以保证角色数据的正确持久化,而在实际开发中如果不态考虑程序的安全性和健壮性两者只保留其一即可。 CustomerRole类,一个客户角色实体类,通过该实体类及其属性成员实现当前程序...原创 2021-08-25 20:04:02 · 109 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解---- 第11章 轮子与开源
在程序开发发展的初期,按照2/8法则,主导程序开发的属性是其科学属性,一个天才型的人物决定了整个行业的规则和发展进程序,其中最有名的就有图灵。当今一个实用性的程序,虽然有大量的新思想、新科学和新技术会被反映和集成在程序中,但是按照2/8法则,当今决定实用性程序,主导程序开发的属性是其工程属性,其间虽然依然有天才型的人物在程序开发中作出了改变,但是工程属性是实用性程序的决定属性这一条再也没有受到挑战。 实用性程序作为一个特殊工业工程产品,它即具有其特殊性,也有工程产品的共性。下面将会工程这个决定着程...原创 2021-08-25 20:03:02 · 110 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第10章 FluentMigrator中间件简单示例实现
nopCommerce开发者按照健壮性、安全性、可扩展性、兼容性、功能强大和适用范围广等标准,对数据层进行了定义,这也造成了数据层的定义实现及其复杂,学习曲线十分陡峭,下面将通过三个简单的示例以逐步递进的式来讲解nopCommerce开发者,是怎样利用FluentMigrator中间件来实现,程序与指定的数据软件中的数据库及其表进行数据交互操作的,以降低大家对FluentMigrator中间件和nopCommerce数据层的学习曲线。1 Fluentmigration.Demo 1、打开网页:...原创 2021-08-08 12:29:04 · 270 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第9章 生成数据库及其表
下面将会按照自顶向下的开发模式来讲解,怎样自动生成数据及其表。0029 HomeController1、定义HomeController类。2、添加Nop.Web\Views\Home\Index.cshtml,Razo页面。3、重构Nop.Web.Controllers.InstallController类。4、重构Nop.Web.Infrastructure.RouteProvider.RegisterRoutes方法。5、重构Nop.Web.Framework.Infras原创 2021-08-08 12:28:13 · 194 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第8章 数据层数据提供程序定义实现
0025 NopForeignKeyConvention、NopIndexConvention、NopColumnsConvention、NopConventionSetNopForeignKeyConvention类,该类为数据库指定表构建一个外键字段名字符串。 NopIndexConvention类,该类为数据库指定表构建一个索引字段名字符串。NopColumnsConvention类,该类为数据库指定表构建一个列字段。NopConventionSet类,该类对程序中定义的所有...原创 2021-08-08 12:26:28 · 119 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第7章 定义应用设置,重构整个程序
0025 HashHelper HashHelper类,该类通过一些指定的参数实例,创建一个指定散列(哈希)字符串。0026 IConfig、CommonConfig、AppSettings CommonConfig类,继承于IConfig接口,该类用于从指定文件中获取支持当前程序运行的浏览器名称、安装系统、版本、过期时间、错误显示等数据信息。 AppSettings类,该类把程序中所有定义的配置具体实现类,进行初始化/实例化操作,即为这些配置类的实例分配内存空间...原创 2021-08-08 12:25:35 · 137 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第6章 数据层映射与迁移定义实现
0019 ITempDataStorage、TempSqlDataStorage TempSqlDataStorage类,继承于ITempDataStorage接口,该类用于存储指定实体实例的临时数据。0020 LinqToDBPostgreSQLDataProvider LinqToDBPostgreSQLDataProvider类,该类通过拷贝构造方法设置了,查询表达式(Linq)的数据源提供程序为PostgreSQL软件,且版本在9.5及其以上的版本0020 IE...原创 2021-08-08 12:24:31 · 225 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第5章 数据层基本定义与数据库安装页面重构
“nopCommerce_4.30”及其以上的版本,通过第三方FluentMigrator数据交换中间件,实现程序与数据库软件的CURD操作。并对多种数据库软件支撑数据交换操作,这些数据库软件包括:MySQL、Microsoft SQL Server和PostgreSQL。由于在“nopCommerce_4.40.3”中安装本地化服务被定义的展示层,关于Controller的所有定义不能单独的被分割定义在展示层外, 而必须定义在展示层中,不然会造成循环引用错误。删除程序工程中的Controllers原创 2021-08-08 12:22:54 · 254 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第4章 核心层重构与自定义管道实现
程序与数据库进行CURD数据交换操作,不涉及客户端,只在服务器端进行,并且“nopCommerce_4.20”中,使用EFCore中间件,使程序与数据库进行CURD数据交换操作,导致“nopCommerce_4.20”与.NetCore框架中的内置管道中间件方法,没能产生极为紧密的耦合,也可以认为EFCore中间件与内置管道中间件方法,耦合程度极低。所以在“nopCommerce_4.20”程序只需要在内置依赖注入中件方法中,显式的注入相应内置的数据库中间件方法,即可以实现程序与数据库进行CURD数据交换操原创 2021-08-08 12:21:29 · 173 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解-----第1章 基础架构
0001 NopException、SecureRandomNumberGenerator、CommonHelperNopException类,该类继承于系统异常类的,并对系统异常类中相应实现方法进行自定义扩展,使这些方法的功能和对异常信息的显示,满足“nopCommerce”开发者所需要的功能和格式。SecureRandomNumberGenerator类,通过随机数生成器(RandomNumberGenerator ---RNG)实例,来生成一个拥有极高安全性的随机数。虽然通过简单的调用ra原创 2021-08-08 12:13:48 · 521 阅读 · 2 评论 -
nopCommerce_4.40.3 功能实现详解----- 第3章 引擎与依赖注入定义
下面将会按照自底向上的开发模式来讲解,“nopCommerce”开发者是怎样实现引擎与依赖注入定义的,及其“nopCommerce”定义引擎的意图与原理。0007 EngineContext、IEngine、NopEngineNopEngine类,继承于IEngine接口,NetCore框架内置管道实例(IApplicationBuilder)和依赖注入容器实例(IServiceCollection),通过该类实例,对整个程序中自定义扩展的内置管道/依赖注入中间件,和接口/抽象类/类与相应的具体原创 2021-08-08 12:17:41 · 214 阅读 · 0 评论 -
nopCommerce_4.40.3 功能实现详解----- 第2章 构建数据库安装页面并设置为默认启动页面
下面将会按照自顶向下的开发模式来讲解,怎样构建数据库安装页面,并设置其为默认启动页面。在程序中使用MVC模板,新建Nop.Web项,该项是“nopCommerce”工程程序中的展示层,也是整个工程程序中的最顶层。 定义Nop.Web\Views\Install\Index.cshtml,Razo页面。3、重构Nop.Web.Startup.ConfigureServices方法,设置管道方法中的内置MVC中间件方法的默认启动页面为:\Install\Index。4、新建Nop.Web.Frame原创 2021-08-08 12:15:33 · 208 阅读 · 0 评论