0

开发 Windows Store 应用程序的更好框架是什么?

我使用过http://metroprism.codeplex.com/但现在我想将 Caliburn.Micro 或 MVVM light 用于另一个项目。

我已经查看了这些框架的几个应用程序示例,但它们还不够复杂,我无法估计在更大项目中的使用情况。

这两个是完全记录的,但我认为问题在于 winrt 的文档与 WP7、Silverlight 和 WPF 混合在一起,我有点怀疑是否支持完全用于 Windows Store 应用程序的所有功能和实践。

你能给我建议什么是更好的吗?或者在 Prism 中为 WPF 和 Silverlight 提供模块化支持的 Winrt 开发中的良好实践是什么。谢谢。

4

2 回答 2

6

MVVM Light 和 Caliburn.Micro 基本上做同样的事情,但他们在 MVVM 中使用相反的“开发哲学”来做。

MVVM Light 是一种“视图优先”的方法。在这种方法中,ViewModel 由 View 实例化。在 MVVM Light 中,这是通过称为 ViewModelLocator 的东西完成的,这是一个将公共属性直接绑定到 View 的 DataContext 的静态类。

Caliburn.Micro 是一种“视图模型优先”的方法。在这里,您会发现 viewmodel 和 view 是由将两者绑定在一起的 IOC 机制创建的。您从 viewmodel 导航到 viewmodel,并生成视图以响应导航到 ViewModel。

它们都有不同的特点:

MVVM Light 有一个非常好的消息传递系统,允许视图模型以松散耦合的方式相互通信。

MVVM Light 有一个非常简单的机制,可以将设计时数据注入到您的视图中。基本上,它将您的运行时服务替换为设计时服务,这些服务将数据提供给您的视图模型,然后是您的视图。这使得设计时数据非常易于使用。

Caliburn.Micro 有一个惊人的数据绑定设置,它可以为您处理大部分数据绑定脚手架。基本上,它将方法和属性的名称映射到视图中控件的名称并自动装配它们。这可以节省大量代码,并且是一个非常非常好的功能。

Caliburn.Micro 使用“约定优于配置”机制将视图映射到视图模型。MainView 映射到 MainViewModel 等。这意味着您没有配置,您只需要确保您已整理好命名约定。

我使用了这两个框架(用于 WP7 的 Caliburn.Micro 和用于 Windows 8 应用商店应用的 MVVM Light)并且出于不同的原因喜欢它们。MVVM Light 更容易开始使用,但 Caliburn.Micro 可能更强大。我发现它们都足以快速编写中等复杂的应用程序。

于 2012-11-16T16:38:55.267 回答
1

Caliburn.Micro 以一些魔法为代价为您提供干净的 XAML。MVVM Light 是一个干净简单的框架,易于理解且运行良好。Prism 似乎比 MVVM Light 重一些,而且更面向商业应用程序——它不仅仅是 MVVM。有很多事情需要考虑。选择你已经知道的可以让你专注于添加功能,但是学习一个新的框架肯定是一个很好的学习体验,对未来的选择很有帮助——所以如果你想学习的话,你可以选择以前没有使用过的东西。您也可以编写自己的框架,只包含您需要的内容。我通常会在 roll your own 和 MVVM Light 之间徘徊,因为这是我所知道的,但如果我要构建一个更大的企业应用程序 - Prism 可能更适合这项任务。我没用过Caliburn。Micro,因为不同 MVVM 方法的新颖性对我来说已经消失了,我只想创建应用程序。使用 WinRT,滚动你自己的框架方法比使用任何平台更容易,因为基本项目模板已经为您提供了一些基础,正如我在我的简约的 MVVM博客文章。如果您已经尝试过 MVVM 并且只想使用您需要的部分,我会推荐这种方法 - 该框架将随着您的应用程序而增长。如果需要,您可以从其他框架中获取代码片段,或者编写自己需要的模式的实现。

总结

  • 如果你想学习 - 尝试一些你以前没有尝试过的东西或者编写你自己的框架
  • 如果您想快速创建一个应用程序并且它不是一个庞大的应用程序 - 使用您所知道的或极简主义,除了从模板中获得的内容之外不要使用任何东西
  • 如果您正在构建具有许多功能的大型应用程序 - 考虑 Prism 或者首先考虑 Windows Store 是否是适合您的目标平台,因为它似乎更关注简单的进出平板电脑应用程序
于 2012-11-16T16:41:07.170 回答