asp.net-mvc - 我可以将我的 DTO 类公开给 WCF 客户端,还是应该使用自动生成的类?

标签 asp.net-mvc wcf dto

我目前正在开发一个 N 层应用程序,在 UI 前端使用 MVC4,然后与 WCF 服务通信,然后调用业务层,业务层使用 EF 从 Oracle 获取数据。

我创建了一组从 EF 填充的 DTO 对象,并通过 WCF 服务发送到 UI。我的问题是这样的...

当我在 UI 中添加服务引用时,我在 Reference.cs 中重新创建了部分服务代码的 DTO 类。这样可以吗,还是我应该添加对原始 DTO 类项目的引用?

这纯粹是开发人员的选择,还是有特定的好处或陷阱或任一方法?

任何帮助将不胜感激。

谢谢,尼克

最佳答案

使用原始合约程序集的一个好处是,当合约更改时,您会在客户端程序集中出现编译错误。如果您使用生成的客户端,则会编译然后在运行时崩溃。特别是对于持续集成,您希望尽早发现错误,编译时间非常好。

根据您生成的客户端实现,它可能已经实现了 INotifyPropertyChanged。这可能超出了 DTO 的能力范围。 DTO 不应该实现这一点。因此,如果您打算在客户端再次重新实现所有 DTO 以使用此接口(interface),您可能会认为使用生成的类已经给您带来了这种好处。

所以最终...这纯粹是开发人员的选择。

关于asp.net-mvc - 我可以将我的 DTO 类公开给 WCF 客户端,还是应该使用自动生成的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338144/

相关文章:

c# - MVC 4 Entity Framework 不从SQL Server获取数据库

c# - 在带有水印的输入上使用必填字段验证器

asp.net-mvc - 使用 Azure AD 和 ADAL 3 的 MVC 应用程序 - 身份验证 Cookie 在 1 小时后过期

.net - 使用 UriTemplate 在 WCF 中组合 SOAP/JSON/XML

java - 使用 Java、Dozer 和 Hibernate 将 DTO 映射和更新到数据库

javascript - 单击按钮后重复/添加 div

c# - NServiceBus WCF 服务出现错误 System.InvalidOperationException : Reply is neither supported for Commands nor Events

c# - nHibernate (w/CaSTLe ActiveRecord) with C# interfaces (esp for DTO's)

asp.net-mvc - 我的 ASP.NET MVC 应用程序结构是否正确?

wcf - TCP WCF 服务未执行 Application_Start