如上所述,我正在实现一个多层架构来与 WCF 和 Entity Framework 4(使用 poco)配合使用。由于我已经对 POCO 持久性一无所知,所以我确实需要实现 DTO 或者我可以以其纯粹的方式使用 WCF?
主要引用是 - 我确实需要 DTO 在网络上传递轻量级对象,或者我可以使用我的 POCO 实体。
大家推荐什么?
除非你定义什么是“净道”,否则很难回答。我们是在谈论纯粹的 SOA 还是纯粹的 WCF?
WCF 代理在某种程度上已经是 DTO,因为它们不会在您的服务契约中带来任何业务逻辑。在 WCF 生成的代理类之上创建另一层 DTO 似乎是多余的。
您想要回答的最大问题是“这个解决方案是如何实现 SOA 的?”。如果您希望符合 SOA,则无法跨服务边界共享 POCO 实体。 SOA 完全是关于不同的合同。
如果您完全基于 SOA,那么您会失去很多功能,因为您的 Web 层大多数时间使用的类将是愚蠢的代理。您必须重复大量逻辑,并且丢失了 MVC 2 提供的大量“元数据、约定优于配置”功能。
如果您将 SOA 流行语扔进粉碎机,那么您应该这样做(http://soafacts.com/ http://soafacts.com/),那么您将可以更轻松地跨层共享业务逻辑和元数据信息。如果您的网络服务的唯一消费者是您自己,那么此方法可能是您的最佳选择。
您可以在此处使用 DTO 而不是 POCO 实体通过线路发送。唯一的缺点还是重复逻辑,以及大量毫无作用的样板仪式代码。实际上取决于您的项目的大小。如果规模很小,请忘记 DTO,但如果您有 20 名开发人员使用 200,000 LoC,则 DTO 可能值得创建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)