在KISS principle之后,我突然意识到以下情况:
我不想重新发明轮子,如果有人已经这样做,我不会感到惊讶,所以我的问题很简单:有没有人已经创建了一个简单的(桌面,而不是网络)客户端应用程序可以使用基于实体框架的RESTful服务,并允许用户直接读取和写入此服务数据?
否则,我只需要自己“发明”这个。 : - )
但是数据库有大量数据需要管理近50个表。在针对本地数据库进行开发时,我们可以直接访问数据库,因此我不需要此工具。部署后,Web应用程序将是访问数据的唯一方法,因此我无法使用此工具。但是我们还有一个测试阶段,数据库存储在本地域之外的另一个系统上,而这个数据库不适用于开发人员。只有管理员才能直接访问此数据库,从而使测试更加复杂。
但是,通过RESTful服务,我仍然可以直接访问数据。因此,当某些测试出错时,我可以通过此连接修复数据,或者只是为我本地系统上的测试创建数据副本。还有很多其他功能,甚至可以直接在Excel或XMLSpy中打开表服务的URL来查看内容。但是当我想要写回东西时,我必须编写特殊代码才能做到这一点。允许我访问数据并对其进行修改的通用工具会更容易。由于它是围绕ADO.NET数据服务的通用设置,因此这也应该是合理的。
因此,我可以这样做,但希望其他人已经做过类似的事情。但似乎还没有这样的工具......
答案 0 :(得分:5)
您指的是ADO.Net Data Services。它基本上创建了一个实体数据库模型,并使用ASMX向服务添加了一个REST前端。有关使用.Net消费服务的MSDN here中有一篇How To文章。我在过去使用.Net中的常规WebClient类也做了同样的事情。
如果您想根据Entity Framework推出自己的WCF REST Starter Kit,也可以查看Microsoft Smart Client。入门工具包还包含一个方便的新WebClient类,可用于与REST服务进行通信。
<强>澄清强>
我知道没有预先构建的应用程序客户端将与这些服务进行通信,因为它们几乎都是使用Web服务访问数据。 WebClient工厂很可能是我最接近的工厂。
我提到了上面两个选项,因为他们已经在.Net中有了直接使用它们的库,可以作为引用的Web服务,也可以使用HTTPClient库或者使用Prism库包含更多的adventurious。 WCF REST Starter工具包中的新{{3}}库。
我在Windows,Web,Silverlight和WCF中都使用了它们。后者是最简单的,因为他们专注于REST。
我们目前正在调查{{3}},它强烈倾向于在使用WCF进行前端开发时使用此方法。
<强>假设强>
关于这个问题,您正在做出一个通用的假设,即使用WCF服务包装ADO实体框架它将是通用的。 ADO.Net数据服务是您最接近的,但数据库的结构将从根本上改变您与之交互的方式。以“通用”方式提高水平将是危险的,因为这两种技术单独或一起已尽可能通用。
答案 1 :(得分:2)
除数据服务(+1)外,请考虑RIA服务。它类似于Silverlight或WPF客户端的特定于域的数据服务版本。比数据服务更灵活,但更容易。