项目框架
利用搬运工项目模板创建新项目的结构如下:
- PrjName1.Base,客户端基础项目,无任何UI,包括实体、领域服务、数据访问类、接口等
- PrjName1.Entry,含Stub、主窗口、框架UI的入口项目
- App\PrjName1.xxx,头部项目,无任何业务功能,包含一些公共的资源文件、图片、图标等
对于功能少的小型项目,除头部项目外分两个项目已足够,项目少便于快速开发和调试。
对于模块多、功能复杂的项目,建议再增加多个子项目,便于团队协作开发。比如:
- PrjName1.Base,其它项目都引用,无任何UI,包括实体、领域服务、数据访问类、接口等
- PrjName1.Entry,含Stub、主窗口、框架UI的入口项目,无任何业务功能
- PrjName1.UI,多个模块都引用的公共控件,尽可能的小、不经常改动,修改后依赖它的项目都需要重新编译
- PrjName1.ModuleA,模块A的UI和业务逻辑
- PrjName1.ModuleB,模块B的UI和业务逻辑
推荐参考Demo项目的结构,Demo项目是一个完整的搬运工项目,包含了所有的功能模块,便于学习和参考。
当模块项目之间互相有依赖关系时,无法通过直接引用的方式实现。一般通过以下方法:
- 使用接口隔离,Base或UI项目中定义接口,模块内实现,其他模块引用时通过注入获取对象,进行调用。此为传统方法,用起来麻烦,但规范,推荐。
- 将公共的功能抽取到Base或UI项目中,其它模块项目直接引用。此方法会造成公共项目庞大,修改后所有项目都需要重新编译,不利于快速开发和调试,不推荐。
- 使用搬运工提供的共享视图、共享任意对象等功能,此方法简单方便,项目之间无代码耦合,独立编译,但不适合所有场景,推荐。
以下介绍共享视图、共享Tab、共享Form
共享视图
视图共享是粗颗粒度共享,无任何依赖关系的两个项目之间共享带有[View]
标签的窗口或实现 IView
的类型,就是利用系统自带的打开窗口、打开视图功能。
定义共享视图
|
|
在其它项目中打开该视图
|
|
共享任意对象
共享任意对象比较自由,可以是普通对象或UI对象,对于任意使用[Shared]
标签标记的类,系统会自动将其注册到共享对象管理器中,其它任意项目都可使用。
定义共享类型
|
|
在其它项目中打开该视图
|
|
Kit中共享类型相关方法
|
|