将现有(类)库(主要定义CRUD操作)作为服务( WCF服务)公开的最佳,最有效和最快捷的方式是什么? 或 WCF数据服务),以便可以与 Silverlight 或 Ajax 一起使用。是否有工具(代码生成器,RAD工具)可以支持吗? 提前感谢您的帮助和提示。
答案 0 :(得分:2)
最好的方法是使用WCF自己创建一个包装器。
你应该这样做,而不是使用一些自动化来直接公开库,因为:
答案 1 :(得分:1)
如果你的类只是一个愚蠢的数据集合,只需在其上抛出一个DataContract。 (不要忘记命名空间,否则您将在以后踢自己。)然后,您可以使用Web项目公开它。
如果你班上有实际的逻辑,那你就麻烦了。没有很好的方法与Silverlight应用程序共享业务逻辑。他们尝试使用RIA服务,但它只是没有成绩。
答案 2 :(得分:1)
您应该查看WCF数据服务,尤其是在.NET 4中。虽然您必须创建数据上下文类或类以公开您的实体以及公开IQueryable并实现IUpdatable,然后您可以利用WCF数据服务提供的支持框架以及数据有效负载的标准化协议(OData)。
在.NET 4和Visual Studio 2010中,WCF数据服务正变得越来越被接受,并且被Microsoft推动为Silverlight应用程序的良好数据访问工具。
我认为至少值得一试。在MSDN上有很多关于它的信息,虽然我不认为它在某些地方组织得很好。这是MSDN中有关使用内置反射提供程序滚动您自己的WCF数据服务的部分的link。 (该示例仅显示数据检索,因为它比数据更新/插入/删除简单得多,但文章中有关于如何实现IUpdatable的链接。)
通过WCF数据服务公开IQueryable应该非常快。 IUpdatable将花费更多时间(因为您需要为每个实体实现插入/更新/删除)。但是一旦你启动并运行(这不应该花费太长时间),你就可以调整安全设置,添加自定义服务方法,并非常容易地添加其他功能和/或实体。对于你所描述的内容来说,这是一个很好的框架。
我希望这会有所帮助。