我即将开始一个新项目并调查是否使用MVC,Silverlight或两者.Silverlight与ASP.NET MVC这个问题是一个很好的起点.但是看看SL3测试版,看起来有两件事情会改变一下.首先,导航功能是Silverlight的直接功能,现在有.NET RIA服务.虽然它实际上不是Silverlight的一部分,但它相当集成,似乎弥合了客户端和服务器操作之间的差距.在我看来,MVC很强大的领域和Silverlight(作为客户端技术)并非如此.我知道你仍然可以使用两者,但是你应该为什么?
简单地说,不.
桌面上的Silverlight和Silverlight更像是刚刚在网络上运行的winforms/wpf应用程序.他们是有状态的,并且与网站的行为截然不同.Silverlight应用程序只能在允许Silverlight运行的计算机上运行.在业务网络设置中,他们可能已设置组策略,因此无法安装Silverlight.那你就遇到了问题.
然而,ASP.NET MVC是一种无状态类型的设计,几乎任何拥有Web浏览器的人都可以使用它而不管平台.使用ASP.NET MVC可以更自由地使用您的站点,因为您没有安装任何类型的运行时的最终用户.
我认为每个人都有自己的位置,而且非常明显.Silverlight非常适合在适用的情况下创建丰富的体验.我怀疑你会看到更多的银色灯泡替换网站.
当我们构建.NET RIA服务时,我们希望开发人员能够基本上构建快速RIA的100%,因此我们将目标用于接管ASP.NET WebForms等的负担.以混合方式使用这两者是可能的,但这是一个问题,你想要接管哪一件重物.
如果您是Silverlight解决方案在实现方面是基本的 - 即仅数据的数据网格 - 那么ASP.NET MVC更适合,因为您不必担心深层链接等(因为它在本机内部免费)基于HTML的方法).
但是,如果你在Silverlight中构建一个更大的RIA解决方案并且正在以特定的方式使用ASP.NET,那么确定没关系,但是你必须要记住,每次刷新页面时都会受到惩罚.当然是页面刷新,其次你需要确保所说的Silverlight实例能够找到回到刷新之前的位置(或者在一个能够让用户找到前进的地方加载).
尽管我们对RIA服务有好处,但它可能有点棘手.
Scott Barnes/Rich Platforms产品经理/微软.