.net - 为什么需要 Web 服务才能从 Silverlight 访问数据库?

标签 .net silverlight web-services data-access-layer

我目前正在研究几个选项来创建一个新应用程序,该应用程序可由多个用户在封闭的 Intranet 中使用浏览器访问。

我考虑过使用 Silverlight,因为它的用户友好性和 WPF 设计非常接近 future 用户习惯的富客户端。

该项目(当然)还需要访问 Intranet 中的数据库,因此我浏览了 Internet 以了解如何处理数据访问。正如 this SO post 中所述,我很惊讶地发现您显然必须使用 Web 服务与数据进行交互。哪些点this tutorial (使用网络服务的多种方式之一)。

已经在一个内部网中创建了各种富客户端,都与数据库交互,我很惊讶被迫使用 Web 服务。

确实,我确实了解网络服务的优势;它提供的安全性以及所有其他功能通常在软件架构中创建了一个良好的 DAL。但是,我不明白为什么不能简单地创建(例如)一个包含 Linq to SQL 类的库,并使用该库作为 silverlight 项目中的引用来直接访问数据,就像使用经典的富客户端应用程序一样。我知道通过这样做,您将访问数据存储在应用程序的连接字符串中,但我不明白为什么它不应该与 silverlight 客户端一起使用。

更新:

那么,两个问题:

  1. 我们真的通过网络服务访问数据吗?
  2. 如果是这样,为什么它与经典的富客户端方法不同?
  3. Silverlight 5 能让我做这样的事情吗?

最佳答案

However, I can't see why you can't simply create (for example) a library containing the Linq to SQL classes and use this library as reference in the silverlight project to access data directly as you can do with classic rich client application.

Silverlight 与 WPF 不同,它不使用或无法访问完整的 .NET Framework。它在自己的受限 CLR 和框架下运行。

在决定包含什么和省略什么时,决定将所有数据访问组件都排除在 Silverlight 之外。实在不行就不能像上面说的那样直接创建“使用SQL的库”。

通过使用 WebServices(或 WCF,这确实是首选方法),您只需要能够创建和访问 Silverlight 支持的服务引用。

关于.net - 为什么需要 Web 服务才能从 Silverlight 访问数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760717/

相关文章:

.net - 如何在 Entity Framework 中为树层次结构建模?

c# - 使用管理员权限执行方法的最简单方法是什么?

c# - 未知服务器标记 'asp:Silverlight'

java - Angular 调用 java web API 中 http.post 的参数传递

java - 在提供 Maven Artifact 的 Wildfly 部署中使用 CXF 库

python - 对 xml 的 SOAP 响应

c# - 通过C#检测耳机是否插入

c# - 该元素已经是 TabControl 中另一个元素的子元素

c# - 将 Debug.WriteLine 流重定向到文本 block

silverlight - 如何将 TLE 信息转换为经纬度和海拔高度以显示在 Bing map 上?