我正在考虑从 Exirn 1.x 升级到 2.0.0。我阅读了Exrin 2.0.0 quick start,但没有提及更改。从我从快速启动项目中可以看出,基于框架/视图/逻辑/引导程序/操作系统级别实现的项目分组发生了变化。
在升级过程中,我可能需要了解哪些其他变化?
是否值得改用新的项目布局实施?它似乎确实更容易创建和管理,但我担心缺乏项目分离会导致糟糕的设计。这将是个人偏好还是在更新中体现出来的切换是否有好处?
我正在考虑从 Exirn 1.x 升级到 2.0.0。我阅读了Exrin 2.0.0 quick start,但没有提及更改。从我从快速启动项目中可以看出,基于框架/视图/逻辑/引导程序/操作系统级别实现的项目分组发生了变化。
在升级过程中,我可能需要了解哪些其他变化?
是否值得改用新的项目布局实施?它似乎确实更容易创建和管理,但我担心缺乏项目分离会导致糟糕的设计。这将是个人偏好还是在更新中体现出来的切换是否有好处?
Exrin 2.0.0 旨在实现更快的项目设置,但肯定不会消除其任何优势。Exrin 2.0.0 完全向后兼容,这意味着您可以升级现有项目,它仍然可以运行。
我仍然推荐大型项目的项目分离方法。我真的只是想创建一个快速入门,以便人们可以看到 Exrin 的运行情况,然后再将其转移到稍微复杂的架构中。
该版本的变化如下:
在类操作中启用。这仍然允许操作分离的好处,但是您不需要每次都创建一个新类来执行此操作。例如
public IRelayCommand AboutCommand
{
get
{
return GetCommand(() =>
{
return Execution.ViewModelExecute((parameter, token) =>
{
return new NavigationResult(AppViews.About);
});
});
}
}
但是,如果需要,您仍然可以以其他方式进行操作。
删除了通过 ViewModel 传递 VisualState 和 IExrinContainer 的要求。我实际上仍然建议创建 VisualState,没有它 Exrin Inspector 将无法工作。但它现在是可选的,尽管强烈推荐。IExrinContainer 现在是通过 Composition 添加的,您不需要污染自己的 ViewModel,只需将其传递回基础。这只是为了支持不需要 VisualState 的任何场景,即使它们很少见。
如果您只有一个简单的堆栈,则删除了定义 ISingleContainer 的要求。Exrin 现在只是为您自动创建它。但是,如果需要,您仍然可以使用 ISingleContainer。同样,这只是关于 Exrin 为您做的事情,如果可能的话,如果你愿意的话,可以覆盖。
在 beta-2 中,IsBusy 标志的错误修复。建议您使用 IsBusy 标志来显示/隐藏加载或等待指示器。每次运行操作时,它都会将 VisualState.IsBusy 标志设置为 true,然后在完成时设置为 false。在它打开之前有一个 400ms 的延迟(可配置),只是为了避免每次运行一个小操作时都会打开和关闭它。
同样在 beta-2 中,可以向 ViewModel 的 Execution 对象添加 PreCheck 操作。这意味着您可以在每个操作(返回布尔值)上设置一段代码运行,如果它返回 false,则停止操作。例如,您可以添加对 Internet 连接的检查,如果没有,则显示错误消息,但不执行操作。将停止重复每个操作的代码。