带有mvc或Ria服务的Silverlight?

时间:2011-03-04 21:31:35

标签: asp.net-mvc silverlight wcf-ria-services

我有一个Asp.net MVC应用程序,它在客户端使用html5和jquery。管理层希望尝试使用Silverlight,因为他们认为这会给最终用户提供他们运行桌面应用程序而不是基于Web的应用程序的印象。

我想要的是创建应用程序的silverlight版本,但与返回html视图的MVC应用程序不同,我真的希望Silverlight应用程序返回并使用的数据。因此,每次我转到silverlight应用程序中的新页面时,只返回数据以填充它(我不想返回包含数据的xaml页面)。所以我的所有应用程序逻辑都将在silverlight应用程序中。

由于我们的应用程序将是一个多用户系统,其中一个要求是,当在silverlight应用程序中显示数据网格时,必须定期更新网格,因为其他用户添加和删除记录。目前使用MVC应用程序,我有一个计时器,每隔几秒就会用一次Ajax调用来更新网格。

我不确定我是否可以重复使用mvc控制器和操作,只返回数据或是否应该使用RIA服务,因为它可能为我提供了更丰富的功能。

JD

2 个答案:

答案 0 :(得分:2)

RIA确实提供了更丰富的功能,但是IMO缺乏这里你需要的可重用性(例如与jquery交互)。请参阅Tim Heuer的博客,了解如何将Silverlight用作MVC here的视图,并且可能在您的调用中添加一个额外的参数(?mode = sl)并在控制器中检查它,因此收集所有数据那么你需要你的观点

if (mode == "sl") return Json(data); 
else return View(data);

当然,生活并非如此简单,你会遇到Child Actions,ViewModels等问题。但这是一个开始。

另一方面,如果您正在进行CRUD操作,并且几乎没有将任何业务逻辑写入您的控制器,那么请使用RIA解雇!国际海事组织,其中最重要的是干! (不要重复自己)所以如果你在Controller中有很多代码,那么不要再在SL中用RIA重写它了!

答案 1 :(得分:0)

两个? :)

创建一个或多个存储库以包含您的数据IO和业务逻辑,并让您的MVC操作和域服务方法显示所需的内容。