我读过它,老实说,这对我来说似乎是一堆胡言乱语。
我不想阅读有关它如何增强您的体验的所有内容,您可以使用它来构建这个和那个。
你能给我一个明确的定义它的作用吗,那太棒了。
我读过它,老实说,这对我来说似乎是一堆胡言乱语。
我不想阅读有关它如何增强您的体验的所有内容,您可以使用它来构建这个和那个。
你能给我一个明确的定义它的作用吗,那太棒了。
当我们编写 Windows 应用程序时,一切都发生在一台计算机上(除非您从网络获取数据。您单击鼠标,调用事件处理程序,您可以更改显示的内容。
然后,有了互联网,你就有了一个无状态的环境,在这个环境中(暂时不考虑 JavaScript)所有代码都在服务器上执行。使用 ASP.Net 生成静态 HTML,并推送到客户端。作为回报,用户可以采取行动,服务器将获得另一个请求,依此类推。
使用 Silverlight,一切都发生在客户端上 - Xap 被下载、解压缩并运行。问题是,并非一切都可以在 Silverlight 应用程序中完成 - 它不像 Windows 应用程序,可以从硬盘打开/保存文件 - 它更像是 Asp.Net 应用程序。问题是,数据在服务器上,Silverlight 应用程序在客户端上。所以开发人员需要编写异步代码(这样 UI 就不会冻结)。这比 Windows 开发人员习惯的同步事件处理更复杂。此外,每次您需要获取数据时,例如对用户进行身份验证,都会返回服务器进行检查。因此,虽然 Silverlight 看起来像“浏览器中的 WPF”,但它确实是一种非常不同的编程风格。网络开发人员会熟悉这一点,
所以 .Net RIA 服务试图为 Silverlight 带来 Windows 开发的便利。它通过提供一个框架来执行此操作,例如提供在 clientserver 之间共享 .net 类型的能力,它可以在客户端上以有状态的方式运行,并使用 rest xml/json 服务将数据传输回服务器。
为用户认证/授权/设置提供了一个示例服务。
我建议您查看Nikhil Kothari 的这篇文章以及这个 (PDF)演练。还可以查看一些提供的示例并尝试运行/修改它们。
来自http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx:
Microsoft .NET RIA 服务通过将 ASP.NET 和 Silverlight 平台结合在一起,简化了传统的 n 层应用程序模式。RIA 服务提供了一种模式来编写在中间层上运行的应用程序逻辑,并控制对查询、更改和自定义操作的数据的访问。它还通过与客户端上的 Silverlight 组件和中间层上的 ASP.NET 集成,为数据验证、身份验证和角色等常见任务提供端到端支持。
因此,我将其归结为目前的形式 ASP.Net 和 Silverlight 是独立开发的,并且没有明确地相互设计,因此要使 ASP.Net 应用程序和 Silverlight 应用程序相互工作和交互需要一个相当多的管道代码。Microsoft 正试图通过创建一个平台和模式来支持这种混合 Silverlight + ASP.Net 后端应用程序开发的风格来简化这项任务。
最简单的答案是 RIA 服务包括一堆服务和实体框架管道代码,您不必自己编写。目的是使您的 Silverlight 端代码像普通的 ASP.NET 或 Windows/WPF 应用程序一样易于编写和理解。
除了我们的官方回应之外,您还可以将 RIA 服务视为一种更自动化的方法,将您的服务器和客户端组合在一起——在大多数主流情况下,它是 Silverlight + ASP.NET。
现在一个简单的方法来看待这个问题是它想要解决的基本问题,首先是“我如何将我的 POCO/VO/TO 等从服务器获取到客户端并再次返回,而无需编写我自己的序列化/反序列化逻辑?” - 回答,.NET RIA 服务通过团队已经实施的一些基本代码生成为您处理这些问题,并且还利用了 ADO.NET 数据服务的强大功能。
我个人喜欢将 .NET RIA DataServices 视为客户端和服务器之间的粘合剂,作为其中的一部分,您可以获得许多棘手且强大的 API 来帮助您来回编组数据等。
RIA 服务的主要工作是让您专注于构建应用程序等,而不是“从头开始设计自己的框架”。
一个快速的 ASCII 原始图是这样的:
客户端(Silverlight)-> ADO.NET 数据服务(客户端)<->云<-> ADO.NET 数据服务(服务器)<- 服务器(ASP.NET)
我们很快会更好地解释 WHAT,并在这里为我们提供良好的反馈。
-
Scott Barnes
Rich Platforms Product Manager
Microsoft.