winrt应用程序框架

Bog*_*nik 0 mvvm-light caliburn.micro windows-runtime

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

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

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

这两个是完整的文档,但我认为问题是winrt的文档混合了WP7,Silverlight和WPF,我对支持所有使用Windows Store应用程序的功能和做法表示怀疑.

你能给我一些建议吗?或者,如果在WPF和Silverlight的Prism中使用模块化支持,Winrt的开发实践是什么?谢谢.

Fas*_*ons 6

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

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

Caliburn.Micro是一种"viewmodel first"方法.在这里,您会发现视图模型和视图是由将两者绑定在一起的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可能更强大.我发现它们都足以快速编写中等复杂的应用程序.