一种多用户商城的系统构架设计的制作方法

文档序号:14296085阅读:319来源:国知局

本发明涉及移动互联网系统构架设计技术,特别涉及一种多用户商城的系统构架设计。



背景技术:

在ef的默认配置中,业务模型和ef其它部分是在同一目录下。业务模型在项目中是无依赖且被其它几乎所有项目所引用(除core外),业务模型混杂在ef中将导致ef被其它层引用,即整个ef对其它可视,这种引用关系严重破坏了各相邻层之间单向依赖性,因此在himall中我们对ef的配置进行了改进,将ef的映射关系部分与模型代码部分分离到两个独立的项目之中,这样其它层就可以单独对模型进行引用,而不需要引用ef的其它部分。



技术实现要素:

对于大规模的web应用,从规模上通过area划分成小的单元,每个相当于独立的子系统,包含自己的models、views和controller在内的目录结构和配置文件。本框架设计的ui层组织结构也是按此规则,建立了admin、selleradmin以及web三个区域并分别配置路由信息。

本框架设计中使用autofac来实现ioc模式,所有服务层代码分成两个部分,一部分是接口,另一部分为实例,通常情况下,autofac需要通过配置文件指明实现类与接口之间的关系,而himall中采用了默认配置的方式简化此操作,即按一定的规则编写接口和实现类就可以自动建立对应关系;

ioc模式是目前常用的解耦方法之一,它能降低不同层级之间的的耦合度,使以前直接的实例之间的调用变更为对接口的调用,即上层不再依赖于具体实例而依赖于下层所提供的接口,此方式也属于面向接口编程,面向接口而非面向实例可以使程序更加稳定,不会因为实例中的方法修改导致上层代码的级联修改,只要接口不发生变化,则上层代码无需改变。

数据层主要采用微软的entityframework(以下简称ef)做为orm框架,不再有直接的sql语句编写,使用分部类建立了与ef自建模型相对应模型文件。

作为系统的最底层的核心层,不依赖于任何项目,与具体业务无关接口与方法的集合,定义和实现了相关机制,如异常处理、日志处理、定时任务、权限:

1.定时任务机制:定时任务采用开源组件quartz.net,任务的实现代码必须继承于ijob接口,然后在配置文件中对任务的执行周期等参数进行配置,任务即会在指定的时间或周期自动执行;

2.异常处理机制:异常处理机制终结于ui层,异常的终极处理采用aop思想,将对异常处理的实现置于basecontroller的onexception方法中,异常处理时,对于非继承于himallexception的异常将记录日志并返回友好错误消息,对于继承于himallexception的异常将直接返回基异常信息的具体内容;

3.权限控制机制:权限控制机制采用aop思想,在baseadmincontroller和basesellercontroller中的onauthorization方法中统一处理,每个action的权限均在对应的action上进行标记;

4.日志机制分为系统日志和操作日志:

系统日志:采用开源日志组件log4net,支持层级日志体系、可使用xml灵活的进行配置,本设计的系统日志分为三大级别:info、debug和error,三个级别的日志分别通过配置文件写入不同的目录,各级别的日志按天分文件记录;日志的内容主要包括日志记录时的时间、调用日志的方法名、相关自定义日志信息、相关堆栈信息;在本系统中绝大部分写日志的行为都是自动进行的,凡继承于himallexception的异常均会自动记录日志信息,所有未经处理的非继承于系统的异常均会在basecontroller中集中处理并记录日志;

操作日志:操作日志的载体是数据库,系统中所有重要的操作通过action上标记attribute的方式进行记录,记录操作日志的过程是异步的,使得日志记录的过程不会影响到用户操作的响应速度;

5.插件(策略)机制:核心层(core)中对通用插件接口(iplugin)进行了定义,所有具体业务插件接口都须要继承至iplugin;本设计使用策略机制的主要是缓存,默认提供两套缓存机制的实现(asp.net缓存与memcached缓存),通过在web.config中配置加载到系统中。



技术特征:

技术总结
本发明公开了一种多用户商城的系统构架设计,本系统构架包括表现层、服务层、数据层和核心层。表现层基于Area路由映射;服务层代码分为接口和实例两部分,使用AutoFac来实现IOC模式;数据层采用微软的Entity Framework做为ORM框架;作为系统的最底层的核心层,不依赖于任何项目,与具体业务无关接口与方法的集合。

技术研发人员:不公告发明人
受保护的技术使用者:长沙海商网络技术有限公司
技术研发日:2016.10.20
技术公布日:2018.05.01
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1