2010-01-08 30 views
2

当我发现MVC(首先使用ASP.NET MVC)时,我认为这是软件范例的圣杯。Silverlight中的MVC

我最近开始涉足Silverlight,并注意到VS项目的开始页面类似于Forms(Web和Win),代码隐藏在后面,而.xaml作为设计。

Silverlight中是否存在与MVC等效的内容(用于Web和桌面应用程序)?由Microsoft(如ASP.NET MVC)支持的资源和帮助丰富吗?

发现MVC后,我看不到自己返回代码隐藏。对于Silverlight来说,这是一个天真的想法,因为它不同于ASP.NET,并且无法轻松实现MVC?

回答

4

Silverlight与WPF非常接近,其中MVVM design pattern非常适合。不幸的是,SL的当前版本并不完全支持MVVM,因为它缺少某些类型(例如ICommand,IIRC),但对于Silverlight 4,应该完全支持MVVM。

+0

其实SL3支持ICommand(但没有任何具体的实现) – 2010-01-11 08:30:28

+0

我纠正了。不过,在PDC09,我有一个印象,那就是它还没有。至少他们说:“SL 4将有ICommand支持”... – 2010-01-11 08:33:11

2

Silverlight没有Microsoft支持的MVC框架。但是,无论如何,MVC并不是Silverlight应用程序的自然架构。 Silverlight和WPF的隐含体系结构是模型 - 视图 - 视图模型(MVVM),并且这在Silverlight中通过数据绑定基础结构直接支持。在MVVM中,不是让控制器与解耦视图交谈,而是创建视图模型封装数据和行为的类,并且视图使用数据绑定从它们中实现。

最接近微软对Silverlight和WPF MVVM开发的框架是Prism。这远不是一个完整的解决方案,但您可以使用其他第三方工具包(如Josh Smith的MVVM Foundation)进行补充。

+0

棱镜+1(15个字符) – 2010-01-11 08:29:31