当前位置:  开发笔记 > 编程语言 > 正文

KISS:简单的C#应用​​程序,它与RESTful Web服务进行通信

如何解决《KISS:简单的C#应用​​程序,它与RESTfulWeb服务进行通信》经验,为你挑选了1个好方法。

遵循KISS原则,我突然意识到以下情况:

在.NET中,您可以使用实体模型框架来包装数据库.

此模型可以通过WCF作为Web服务公开.

此Web服务将具有非常标准化的定义.

可以创建可以使用任何此类RESTful Web服务的客户端应用程序.

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

否则,我只需要自己"发明"这个.:-)


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

但是数据库有大量数据可以管理近50个表.在针对本地数据库进行开发时,我们可以直接访问数据库,因此我不需要此工具.部署后,Web应用程序将是访问数据的唯一方法,因此我无法使用此工具.但是我们还有一个测试阶段,数据库存储在本地域之外的另一个系统上,而这个数据库不适用于开发人员.只有管​​理员才能直接访问此数据库,从而使测试更加复杂.

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

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



1> BinaryMisfit..:

您指的是ADO.Net数据服务.它基本上创建了一个实体数据库模型,并使用ASMX向服务添加了一个REST前端.有一个如何文章从MSDN availble的位置上使用消耗净服务.我在过去使用.Net中的常规WebClient类也做了同样的事情.

如果要基于Entity Framework自行推出WCF REST入门工具包,也可以查看它.入门工具包还包含一个方便的新WebClient类,可用于与REST服务进行通信.

澄清

没有预先知道的预先构建的应用程序客户端将与这些服务进行通信,因为它们几乎使用Web服务访问数据.有一个微软智能客户端工厂,这很可能是我最接近的工作.

我提到了上面两个选项,因为它们已经在.Net中直接使用了它们,可以作为引用的Web服务,也可以使用WebClient库或者WCF REST中新的HTTPClient库,包括我自己在内的更多adventurious.入门套件.

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

我们目前正在调查Prism,它在使用WCF进行前端开发时强烈倾向于使用此方法.

假设

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

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有