【问题标题】:How to use Silverlight XAML views as if they were MVC Views如何像使用 MVC 视图一样使用 Silverlight XAML 视图
【发布时间】:2009-09-08 16:52:52
【问题描述】:

我最近进入了 Silverlight 开发。到目前为止,我已经设法创建了一个 Silverlight XAML 视图,该视图使用 ADO.Net 实体框架从 SQL Server 数据库中提取数据,并在 Silverlight DataGrid 中显示数据。我还可以对数据执行简单的编辑和更新功能并将其持久化回数据库。在这一点上,我的理解失败了。据我所知,Silverlight 客户端应用程序托管在 ASP.NET 或 ASP.Net MVC Web 应用程序中。通常我会使用 ASP.Net MVC 构建一个网站并使用一些 jQuery 控件等来为每个视图的界面增添趣味。如何使用我在 ASP.Net MVC 应用程序中创建的这些不同的 Silverlight XAML 视图,就像它们是 MVC 视图一样?我在这里完全错过了什么吗?

【问题讨论】:

    标签: asp.net-mvc silverlight


    【解决方案1】:

    RIA 模型

    将 Silverlight(或任何 RIA 技术)集成到您的网站有两种不同的模型:

    • 整个 Silverlight 应用程序托管在简单的网站中
    • Silverlight 控件与其他交互(表单、jQuery 等)集成到网站中

    任何一个模型都运行良好,由您决定哪种模型在您的场景中运行得更好。

    Silverlight 与服务器通信

    您的 Silverlight 应用程序是托管在浏览器中的插件,因此最好将其视为 jQuery 或其他客户端代码。有几种方式可以与服务器进行通信:

    Silverlight 支持 WebClient 和 HttpWebRequest,因此您可以在客户端-服务器通信中获得尽可能低的级别。我真的建议查看 RIA 服务,因为它不仅处理通信,还处理验证规则。

    Silverlight 与 HTML / Javascript 集成

    Silverlight 既可以通过 HTML bridge 从 Javascript 调用也可以被调用。这意味着您的 Silverlight 组件可以与您的网页紧密集成,只要您愿意。 Silverlight 还可以直接与 DOM 交互 - 设置和读取表单值、更改 CSS 属性等。如果您愿意,您可以通过 HTML 桥执行您在 Javascript 中所做的任何事情。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 那么在 ASP.Net 或 MVC 中托管应用程序是否变得无关紧要? - 从本质上讲,它只是变成了一个纯粹基于 Silverlight 的网站!?
      • 这个基本正确。您可以将 Silverlight 与 Flash 相提并论。 Flash 几乎只是加载到网页中,但它并没有以任何方式真正连接到网页(在大多数情况下无论如何)。 Silverlight 应用程序基本上是独立的。
      • 我不同意 - 您可以使用 MVC 视图将基于 REST 的信息提供给 Silverlight 控件,就像您提供 Javascript/jQuery 客户端组件一样。 Silverlight 是自包含的,但由于它既可以与您的服务器通信,也可以与页面上的其他 HTML 通信(通过 DOM 桥),因此它可以与您的站点紧密集成。
      • 是的,您当然可以使用 MVC 视图来提供基于 REST 的信息,但这仍然与 Silverlight 应用程序本身没有太大关系。它只是供 Silverlight 应用程序使用的东西,在这方面它与 Web 服务或 WCF 没有太大区别。正如我所说,在大多数情况下,Flash 或 Silverlight 应用程序不会直接与托管它的页面进行通信。这当然是可能的,但在大多数情况下不会发生。
      • @tehone,我也不同意。在我制作的几乎所有 Silverlight 应用程序中,该应用程序都与页面交互。很多时候,Silverlight 用于补充页面的功能,而不是整个页面。 Silverlight 也可以用来代替 javascript 作为一种操作 DOM 的方式。不同的 MVC 视图可以提供不同的初始化参数来加载 Silverlight 应用程序
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多