2011-03-04 55 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操作和域服務方法顯示所需的內容。

相關問題