Caliburn Micro VS MVVM Light 这些框架是一样的吗?
Caliburn Micro VS MVVM Light are these frameworks the same?
我必须为我的新项目学习 Caliburn.Micro,并且在我过去的项目中对 mvvm light 有一些较早的经验。问题是这两个框架之间的主要区别是什么以及我需要如何开始学习 Caliburn.Micro
为了减少学习曲线?
提前致谢。
最大的区别是 CM 能够通过约定自动绑定到具有 x:Names 的控件,这些控件通常是内置控件(不是第 3 方)。这允许您为字符串编写属性,为事件编写空值。
<Button x:Name="OpenWindow" />
然后在您的视图模型中,对应于该视图的视图将具有 public void OpenWindow(){}
。还可以通过守卫控制按钮点击的执行。 CanOpenWindow
可以是布尔值 属性 或带有参数的方法 Enable/Disable 按钮,直到它满足您输入 CanOpenWindow
的条件,它是 [=32= 的抽象] 从幕后的 ICommand。
有一些重叠,例如 Messenger 相当于 IEventAggregator,用于将事件传递到其他屏幕或整个应用程序,功能取决于您的需要。
IOC/DI 内部处理或者你可以使用别人的容器。内置容器是 MEF 和 SimpleContainer,AutoFac 有第 3 方引导程序包装器,Ninject,Winsor 等等。
3.0 目前正在为跨平台开发而开发。如果您真的想了解更多 https://github.com/Caliburn-Micro/Caliburn.Micro and http://caliburnmicro.com 文档和示例,一旦您对它在幕后的工作有了基本的了解,它确实是一个非常简单的框架。
hth
摩根
我必须为我的新项目学习 Caliburn.Micro,并且在我过去的项目中对 mvvm light 有一些较早的经验。问题是这两个框架之间的主要区别是什么以及我需要如何开始学习 Caliburn.Micro 为了减少学习曲线?
提前致谢。
最大的区别是 CM 能够通过约定自动绑定到具有 x:Names 的控件,这些控件通常是内置控件(不是第 3 方)。这允许您为字符串编写属性,为事件编写空值。
<Button x:Name="OpenWindow" />
然后在您的视图模型中,对应于该视图的视图将具有 public void OpenWindow(){}
。还可以通过守卫控制按钮点击的执行。 CanOpenWindow
可以是布尔值 属性 或带有参数的方法 Enable/Disable 按钮,直到它满足您输入 CanOpenWindow
的条件,它是 [=32= 的抽象] 从幕后的 ICommand。
有一些重叠,例如 Messenger 相当于 IEventAggregator,用于将事件传递到其他屏幕或整个应用程序,功能取决于您的需要。
IOC/DI 内部处理或者你可以使用别人的容器。内置容器是 MEF 和 SimpleContainer,AutoFac 有第 3 方引导程序包装器,Ninject,Winsor 等等。
3.0 目前正在为跨平台开发而开发。如果您真的想了解更多 https://github.com/Caliburn-Micro/Caliburn.Micro and http://caliburnmicro.com 文档和示例,一旦您对它在幕后的工作有了基本的了解,它确实是一个非常简单的框架。
hth
摩根