2011-03-04 73 views
1

我有一个Asp.net MVC应用程序,它在客户端使用html5和jquery。管理层希望对Silverlight进行实验,因为他们认为这会给最终用户留下他们运行桌面应用程序而不是基于Web的应用程序的印象。Silverlight with mvc or Ria Services?

我想要的是创建一个Silverlight版本的应用程序,但不同于MVC应用程序的HTML视图返回,我真的希望有数据刚刚返回并由Silverlight应用程序使用。所以每次我去Silverlight应用程序中的一个新页面时,只有数据被返回来填充它(我不想返回一个嵌入了数据的xaml页面)。所以我所有的应用程序逻辑都将在Silverlight应用程序中。

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

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

JD

回答

2

RIA确实与更丰富的功能提供,但IMO缺乏非常重用(互操作使用jQuery为例)你需要在这里。请参阅Tim Heuer的博客,了解如何将Silverlight用作MVC here的View,并且可能会为您的调用添加一个额外的参数(?mode = sl)并在您的控制器中检查它,以收集您需要的所有数据你的看法

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

当然,生活并不是这么简单,你会遇到Child Actions,ViewModels等问题,但这是一个开始。另一方面,如果您只是在进行CRUD操作,并且几乎没有在您的控制器中写入业务逻辑,那么可以使用RIA来解决问题!国际海事组织,其中最重要的是干! (不要重复自己)因此,如果你在Controller中有很多代码,那么不要在RIA中重新编写它!

+0

感谢您的回复。我的控制器将使用具有返回正确数据的业务逻辑的图层。我猜可以在RIA服务中重新使用它。你说的可重用性是什么意思(例如与jquery交互)? – 2011-03-04 21:48:49

+0

我的意思是RIA只能使用SOAP + SL,而一个好的控制器可以处理HTML,从浏览器,Ajax,SL等任何地方的XHTML请求。 – TDaver 2011-03-04 21:53:08

+0

虽然我花了一些时间与MVC应用程序(使用统一/学习JQuery等,以及MVC 2),我们想要的是客户端上的应用程序,而不是被下载的页面。所以我认为RIA是要走的路。 – 2011-03-04 21:57:03

0

Both? :)

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

相关问题