你能解释一下Microsoft .NET RIA服务吗?

时间:2009-08-29 16:59:59

标签: silverlight ria

我读过它并且说实话这对我来说似乎都是一堆胡言乱语。

我不想阅读有关它如何增强您的体验的所有内容,您可以使用它来构建这个和那个。

你能否给我一个明确的定义,它会做什么,那将是非常棒的。

4 个答案:

答案 0 :(得分:5)

当我们编写Windows应用程序时,一切都发生在一台计算机上(除非您从网络获取数据。您单击鼠标,调用事件处理程序,您可以更改显示的内容。

然后,通过互联网,您将拥有一个无状态环境(Javascript暂时搁置一下)所有代码都在服务器上执行。使用ASP.Net生成静态HTML,并将其推送到客户端。作为回报,用户可以采取行动,服务器将获得另一个请求,等等。

随着Silverlight在客户端上发生的一切 - Xap被下载,解压缩并运行。问题是,并非所有事情都可以在Silverlight应用程序中完成 - 它不像Windows应用程序,它可以从硬盘上打开/保存文件 - 它更像是一个Asp.Net应用程序。问题是,数据在服务器上结束,Silverlight应用程序在客户端上。因此开发人员需要编写异步代码(以便UI不会冻结)。这比Windows开发人员习惯的同步事件处理更复杂。此外,每次需要获取数据(例如对用户进行身份验证)时,都会返回服务器进行检查。因此,虽然Silverlight看起来像“浏览器中的WPF”,但它实际上是一种非常不同的编程风格。 Web开发人员会熟悉这一点,但想要开始使用Silverlight的标准业务开发人员会发现这很多开销。

因此.Net RIA服务试图将Windows开发的便利性带到Silverlight。它通过提供一个框架来完成这项工作,例如提供在客户端服务器之间共享.net类型的能力,客户端服务器可以在客户端上以有状态的方式运行,并使用其余的xml / json服务将数据传输回服务器。

为用户身份验证/授权/设置提供了一个示例服务。

我建议您查看this article by Nikhil Kothari以及此(PDF)walkthrough。另请查看一些provided samples并尝试运行/修改它们。

答案 1 :(得分:3)

来自http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx

  

Microsoft .NET RIA Services简化   传统的n层应用程序   模式汇集在一起   ASP.NET和Silverlight平台。该   RIA Services提供了一种模式   编写运行的应用程序逻辑   中间层和控制访问   查询,更改和自定义的数据   操作。它还提供   对常见任务的端到端支持   比如数据验证,   身份验证和角色   与Silverlight集成   客户端和ASP.NET上的组件   在中间层。

所以,我将其归结为现在的形式ASP.Net和Silverlight是独立开发的,并没有明确地相互设计,因此使ASP.Net应用程序和Silverlight应用程序工作并与每个其他需要相当多的管道代码。 Microsoft正在尝试通过创建平台和模式来简化此任务,以支持这种混合Silverlight + ASP.Net后端应用程序开发风格。

答案 2 :(得分:1)

最简单的答案是RIA Services包含一系列服务和实体框架管道代码,您无需自己编写。目的是使您的Silverlight端代码易于编写和理解,就像它是普通的ASP.NET或Windows / WPF应用程序一样。

答案 3 :(得分:1)

除了我们的官方回复之外,将RIA Services视为将服务器和客户端组合在一起的更自动化的方法 - 在大多数主流情况下都是Silverlight + ASP.NET。

现在看待这个问题的一个简单方法就是它要解决的基本问题,首先是“我如何从服务器到客户端获取我的POCO / VO / TO等,而不必自己编写序列化/反序列化逻辑?“ - 回答,.NET RIA Services通过团队已经实施的一些基本代码处理这些代码,并利用ADO.NET数据服务的强大功能。

我个人认为.NET RIA DataServices是Client& amp;服务器和作为其中的一部分,你得到了许多棘手和强大的API,以帮助你来回地编组数据等。

RIA Services的主要工作是让您专注于构建应用程序等,而不是“从头开始设计自己的框架”。

快速ASCII原始图是:

CLIENT(Silverlight) - > ADO.NET数据服务(客户端)< - > CLOUD < - > ADO.NET数据服务(服务器)< - 服务器(ASP.NET)

我们会尽快解释这个问题,并为我们提供良好的反馈。

-
Scott Barnes
Rich Platforms Product Manager
Microsoft.