Rafy 3.85.4140 重构了数据门户,更新内容:
* 重构 DataPortal 内部结构。为 DomainController 更好地应用远程调用而做准备。
* Rafy.Domain.DataPortal 命名空间,升级为 Rafy.DataPortal,并移动到 Env 文件夹中,其与 Domain 不再耦合。
* 添加 IDataPortalTarget、IDataPortalTargetFactory、DataPortalCallInterceptor 等类型。
* 删除一些冗余的远程调用判断逻辑,如 RepositoryInterceptor、DataPortaApi 等。
* 删除了无用的 DataPortalFacade 类型。
* 将 FetchRequest、UpdateRequest 合并为 CallRequest。
* 添加 FakeRemoteProxy。
* EntityRepositoryExt 支持远程调用。
* 支持对指定的参数进行双向传输,如 PagingInfo。
* 属性支持设置其是否可强制序列化的状态。
* 父引用属性默认不支持序列化。(但是贪婪加载时,其会被打开它的强制序列化。)
* BugFix:列表属性的 ManagedPropertyField 在有状态时,使用 MPFV进行序列化,会出现无法反序列化的问题。
重构前的结构:
重构后的类结构:
主要的重构设计内容:
- 解除 DataPortal 与 Domain 中的 EntityRepositoy、Service 等类型的依赖。
- 简化 FinalDataPortal 的调用关系。
- 设计了 IDataPortalTarget 扩展点,方便扩展更多的可远程调用目标类型。