2009-09-08 63 views
2

我最近进入了Silverlight开发。到目前为止,我已经设法创建了一个Silverlight XAML视图,该视图使用ADO.Net Entity Framework从SQL Server数据库提取数据,并将数据显示在Silverlight DataGrid中。我还可以对数据执行简单的编辑和更新功能,并将其保存回数据库。此时我的理解失败了。从我收集的内容来看,Silverlight客户端应用程序托管在ASP.NET或ASP.Net MVC Web应用程序中。通常我会用ASP.Net MVC构建一个网站,并使用一些jQuery控件等来增加每个视图的接口。我如何去使用我在我的ASP.Net MVC应用程序中创建的这些不同的Silverlight XAML视图,就像他们是MVC视图一样?我在这里完全错过了什么吗?如何使用Silverlight XAML视图,就好像它们是MVC视图

回答

2

RIA模式

有集成的Silverlight(或任何RIA技术)到您的网站两种不同的模式:在简单的网站托管

  • 整个Silverlight应用程序
  • Silverlight控件集成到与其他交互的网站(表单,jQuery等)

任何一种模式都可以正常工作,它取决于您决定哪种方法在您的方案中效果更好。

与服务器

你的Silverlight应用程序的Silverlight通信是在浏览器中托管的插件,所以最好把它像jQuery或其他客户端代码。有几种方式回与服务器通信:

Silverlight支持的WebClient和HttpWebRequest的,所以你可以在你的客户端 - 服务器通信中像你想的那样低级。我真的建议寻找RIA服务,因为它不仅处理通信,还处理验证规则。

与HTML/JavaScript的

的Silverlight Silverlight的整合既可以通话,并可以从Javascript通过HTML bridge调用。这意味着您的Silverlight组件可以与您的网页紧密集成,只要您愿意。 Silverlight还可以直接与DOM进行交互 - 设置和阅读表单值,更改CSS属性等。如果需要,您可以通过HTML桥执行任何关于Javascript的任何操作。

0

为了从您的Silverlight应用程序(在客户机器上运行)更新您的数据模型,需要使用WCF (Windows Communication Foundation)。您的Silverlight应用程序将使用WCF与您的服务器进行通信,而这些与您提供Silverlight应用程序的方式无关(无论您是使用Webforms还是MVC)。

+0

因此,您在ASP.Net或MVC中托管应用程序会变得无关紧要吗? - 基本上,它只是成为一个纯粹的基于Silverlight的网站!? – Goober 2009-09-08 17:04:31

+0

这基本上是正确的。你可以像Flash一样思考Silverlight。 Flash几乎刚刚加载到网页中,但它并没有以任何方式真正连接到网页(反正大多数情况下)。 Silverlight应用程序基本上是自包含的。 – TehOne 2009-09-08 17:11:23

+2

我不同意 - 您可以使用MVC视图将基于REST的信息提供给Silverlight控件,就像使用Javascript/jQuery客户端组件一样。 Silverlight是独立的,但它既可以与服务器通信,也可以与页面上的其他HTML通信(通过DOM桥),因此它可以与您的站点紧密集成,只要您愿意。 – 2009-09-08 17:27:45