2010-08-19 47 views

回答

0

需要考虑的事情是WCF数据服务,您可以通过网络访问您的实体。我不确定这是否符合您的要求或愿望,但这是可能的。如果您使用Entity Framework 4(.NET 4),那么通过WCF Data Services公开实体模型的一部分非常容易。

一些好处

  • 你的CRUD功能;
  • 通过XML或JSON向客户端公开的数据;
  • 您可以将CRUD操作锁定到实体级别(例如,将订单展示为完整的CRUD操作,但仅允许读取和更新产品);
  • 利用REST(例如HTTP动词GET,PUT,POST,DELETE);
  • 一致的OData数据格式(AtomPub);
  • 使用querystring很容易查询你的数据(不知道如果有人认为这是一个专业或con!);
  • 可能多了一些,我差点忘

一些负面

  • 您不必访问完整的WS- *功能,因为这是WCF休息;
  • 在这一点上,安全性有点像你自己的 - 你可以在现有网站的安全模型(比如表单验证)上捎带,也可以从请求头手动插入和读取令牌。 (还有其他关于保护WCF数据服务的博客,所以我可能在这里错过了一些项目);
  • 如果您不使用EF4,那么公开您的实体以进行插入/更新/删除工作会更多,因为您必须实现IUpdateable接口。您还必须通过公开IQueryable方法来公开您的实体以供阅读。

所以我不知道这是你在找什么,但也许这是要考虑的事情。 MSDN上的文档非常好,并且每个月似乎都会变得更好(4-5个月前它相当稀少!)。另外,也可以在线查看OData规格。

MSDN为WCF数据服务 - http://msdn.microsoft.com/library/cc668792.aspx 的OData规范 - http://www.odata.org/ 博客由Pablo CibaroPablo Castrodata services team(他们对认证/授权系列)。

我希望这有助于!

0

你不需要。您只需要使用服务已知的可序列化类型,但它不必是专门用于通信的DTO。 DTO的使用只是应用程序架构的问题。当应用程序的复杂性和暴露的逻辑上升时,您会发现DTO是有用的设计功能,但对于简单的应用程序而言,它只是开销。

相关问题