0

遵循KISS 原则,我突然意识到以下几点:

  • 在 .NET 中,您可以使用实体模型框架来包装数据库。
  • 此模型可以通过 WCF 公开为 Web 服务。
  • 该 Web 服务将具有非常标准化的定义。
  • 可以创建一个可以使用任何此类 RESTful Web 服务的客户端应用程序。

我不想重新发明轮子,如果有人已经这样做了,我也不会感到惊讶,所以我的问题很简单:是否有人已经创建了一个可以使用 RESTful 的简单(桌面,而不是 Web)客户端应用程序基于实体框架且允许用户直接向该服务读取和写入数据的服务?

否则,我将不得不自己“发明”这个。:-)


问题是,数据库层和 RESTful 服务已经完成。RESTful 服务只会在其开发阶段保留在项目中,因为我们可以直接从围绕它构建的 Web 应用程序中使用数据库层程序集。部署 Web 应用程序时,RESTful 服务将被排除在部署之外。

但是数据库有很多数据要管理近50多个表。在针对本地数据库进行开发时,我们可以直接访问数据库,因此我不需要这个工具。部署后,Web 应用程序将是访问数据的唯一方式,因此我无法使用此工具。但是我们也有一个测试阶段,其中数据库存储在本地域之外的另一个系统上,并且该数据库对开发人员不可用。只有管​​理员可以直接访问这个数据库,这使得测试更加复杂。

但是,通过 RESTful 服务,我仍然可以直接访问数据。因此,当某些测试出错时,我可以通过此连接修复数据,或者创建数据副本以在本地系统上进行测试。还有很多其他功能,甚至可以直接在 Excel 或 XMLSpy 中打开表服务的 URL 以查看内容。但是当我想写回一些东西时,我必须编写特殊的代码来做到这一点。一个允许我访问数据和修改数据的通用工具会更容易。由于它是围绕 ADO.NET 数据服务的通用设置,因此这也应该相当容易。

因此,我可以做到,但希望其他人已经做过类似的事情。但似乎还没有制造出这样的工具......

4

2 回答 2

5

您指的是ADO.Net 数据服务。它基本上创建了一个实体数据库模型,并使用 ASMX 向服务添加了一个 REST 前端。MSDN提供一篇关于使用 .Net 使用服务的 How To 文章。过去,我也使用 .Net 中通常的 WebClient 类做过同样的事情。

如果您想基于 Entity Framework 自行开发,还可以查看WCF REST Starter Kit 。入门工具包还包含一个方便的新 WebClient 类,可用于与 REST 服务进行通信。

澄清

我知道没有预构建的应用程序客户端会与这些服务通信,因为它们几乎是使用 Web 服务访问数据。微软智能客户端工厂很可能是我使用过的最接近的东西。

我提到了上述 2 个选项,因为它们在 .Net 中已经有库可以直接使用它们,或者作为引用的 Web 服务,或者对于更冒险的人,包括我自己,使用WebClient库或WCF REST 中的新HTTPClient库入门套件。

我在 Windows、Web、Silverlight 和 WCF 中都使用过。后者是最简单的,因为它们专注于 REST。

我们目前正在研究在使用 WCF 进行前端开发时强烈倾向于使用这种方法的Prism 。

假设

关于这个问题,您正在做出一个通用假设,即使用 WCF 服务包装 ADO 实体框架将是通用的。ADO.Net 数据服务是您将获得的最接近的,但是数据库的结构将从根本上改变您与之交互的方式。以“通用”的方式提高一个级别将是危险的,因为这两种技术,单独或一起,已经尽可能通用。

于 2009-09-18T09:25:03.453 回答
2

除了数据服务 (+1),还可以考虑 RIA 服务。它就像 Silverlight 或 WPF 客户端的特定于域的数据服务版本。不如数据服务灵活,但更容易。

于 2009-09-18T13:13:23.477 回答