使用Angular2及WebApi开发SPA类型的企业应用 - Part 3 项目结构
来源:互联网 发布:毛利寿三郎 越知月光 编辑:程序博客网 时间:2024/06/05 02:30
使用Angular2及WebApi开发SPA类型的企业应用 - Part 3 项目结构
作者:techcoaching,翻译:飘落寒冰
原文 有道
注:第一次翻译文章,有错译之处还请多多包涵,欢迎指出以便改进。
本文将介绍如何组织项目文件
从Github上下载源码
该系列的全部文章
- 概览
- 添加新角色
- 项目结构
- 多语言
- 依赖注入和控制反转-为什么和为什么不?
- RESTful & WebApi
- 应用生命周期管理
- 应用构建与部署
简介
本文中,我们将学习如何组织管理我们应用的项目文件
假设我们的app有以下的功能:
本图当中:
- 本App有三大功能:权限管理,HRM,CRM。我们通常称他们为模块。所以本App中有三个模块:权限管理模块,HRM模块,CRM模块。
- 每个模块应当与其他模块隔离开。例如:权限管理模块不应当有职员管理
- 每个模块也应当不依赖于其他模块。
- 模块之间应当使用事件相互通信。例如:Security模块如果需要调用HRM模块的方法。Security模块应当广播一个事件,HRM模块订阅并处理该事件。这种方式能帮助我们减少app的复杂度,让功能易于维护。
- 每个大的功能都包含一些子功能,例如Security包含Permission,User Role, User, …
- 每个子功能(如Permission)可以通过单页或者多页来实现(如Permission列表,创建Permission,更新Permission,…)
项目结构
项目结构如下:
上图所示:
- 每个模块都有自己的路由,菜单项,…”/app/modules//_share/config/module.ts”中规定了这部分信息。
- 每个模块以及他们的子模块都被分配到单独的目录下: /app/modules/。
- 模块的子功能都有对应的文件夹(如permission子功能对应permission文件夹为,包含该功能详细的实现(如Permission列表,创建Permission,更新Permission),这样做有助于管理和维护代码。
- 子功能所调用的Service类(如permissionService )应当放在相应模块的“_share/services”目录中,如permissionService不仅会被子功能内部调用,也会被同一模块下的其他子功能调用(如usergroup, user)。
- 任何子功能所能使用的指令,应当放到“_shared/directives”目录下。如:“permissions”指令可以被Permission下的User子功能使用。
- 如果该指令放到“/app/security/directives”下,在User子功能中,我们需要复制或者导入该指令到子功能中(这样会使User和Permission子功能相互依赖),不推荐这样做。
- 如果该指令存放于”/app/common/directives”,指令目录下的文件会非常多,并且大多数指令只会被一个模块用到。
- 当我们想在模块中通知其他模块时,我们可以触发一个事件。
let eventManager = window.ioc.resolve("IEventManager");eventManager.publish("<event-key>", <event argument>);
- 多语言支持(i18n)相关的资源文件存放于”/app/resources/locales/..json”(如: security.en.json 或 security.vn.json 文件中)。
- 每个模块针对一种语言只能有一个资源文件
- 模块下所有的子功能将必须使用文件中的词条并按如下格式定义“...”。举例来说:”security.permission.permissions.pageTitle”会返回权限模块Permission子功能对应的Permission组件的所使用的PageTitle
HRM, CRM 模块也使用了相同的规则。
授权
本文,以及所包含的源码,文件遵循CPOL协议
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 3 项目结构
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 6- RESTful 和 WebApi
- 使用Angular2及WebApi开发SPA类型的企业应用
- 使用Angular2及WebApi开发SPA类型的企业应用
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 2- 添加新角色
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 4- 多语言
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 5- 依赖注入和控制反转
- 使用Angular2与WebApi开发SPA类型的企业应用 - Part 1- 概览
- 使用 AngularJS 开发一个大规模的单页应用(SPA)
- 使用 AngularJS 开发一个大规模的单页应用(SPA)-接上篇
- angular2项目结构详情
- angular2项目结构详情
- mvc结构中webapi的使用
- angular2开发小型项目
- 项目管理在房地产及商业地产企业的应用
- 《Angular2项目之目录结构》
- 《angular2项目之目录结构》
- 漫谈企业应用项目的软件开发过程
- 【Linux】文件的权限管理
- char * const *(*next)();
- How to access Package Name from JNI/NDK?
- 控制台光标(二):设置光标位置
- js获取html标签
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 3 项目结构
- 【Android】TextView中不同大小字体如何上下垂直居中?
- Android 仿iOS 开关SwitchButton
- CListCtrl高亮显示一行
- js闭包-个人浅理解
- HDU 3395 Special Fish(KM算法)
- LeetCode笔记:260. Single Number III
- java专有名词解释
- MyEclipse的可视化创建Hibernate项目