首页 / 知识
WCF DataContracts和基础数据结构
2023-04-16 14:38:00

WCF DataContracts and underlying data structures我想知道与通过WCF服务公开哪些对象有关的意义-我应该向我的业务实体添加WCF序列化规范,还是应该实现一个将我的业务实体映射到我想通过WCF公开的DataContracts的转换器 服务? 现在,我有不同级别的实体:DataAccess,Business和Contract。 我有适当的转换器,可以将实体从DataAccess映射到业务,从业务映射到合同,反之亦然。 实施和维护这些程序非常耗时且乏味。 与此相关的最佳做法是什么? 如果我使用的是诸如NHibernate或Entity Framework之类的OR / M,我应该直接从ORM中公开这些实体,还是应该以与现在相同的方式对其进行抽象? 通常,我认为从最佳实践的角度来看,您不应将业务对象的结构公开为数据合同,而应定义"特定于数据合同的"类,并将业务转换为合同。它可能需要额外的工作,但是从关注点和保护与变更的角度出发,额外的工作可能是值得的。 Microsoft模式和实践" Service Factory建模版"实现了这一点,还提供了自动生成Business <=> Contract Converter类的工具-它是一个出色的VS加载项,并且代表了Microsoft的WCF最佳实践。 由于我喜欢遵守单一责任原则(srp),因此通常不会在网上公开我的业务/数据实体。为了说明,创建了数据实体以映射到基础关系(db)模型。因此,他们应该"更改"的唯一原因是由于关系模型的更改而已。 当您暴露这样的实体以便它们可以越过导线的那一刻,它们有两个作用。看起来似乎有些过激,但可以使事情保持清洁和透明……这可以简化设计。 我也同意一些考虑,但我同意这种分离,但通常会导致"翻译器"或某些类似的代码将数据从DTO复制到业务实体。在这里,像AutoMapper(http://automapper.org/)这样的库就可以派上用场了,并且无需编写翻译层。
只是为了添加以上答案: 最后,这里是装饰DTO的方法,以便当WSDL公开DTO时,名称将反映其代表的实际对象(而不是objectNameDTO或类似的东西)。
|
最新内容
相关内容
纯命令行linux服务器?
纯命令行linux服务器?,密码,服务,系统,命令,终端,地址,百度,情况,状态,公共,在linux下如何访问服务器首先,连接相应linux主机,进入到linux命令行重启服务linux命令?
重启服务linux命令?,网络,系统,服务,设备,工作,标准,名称,工具,命令,管理,Linux的重启命令有哪些1、linux重启命令有五个,分别如下:shutdown。polinux下命令访问服务?
linux下命令访问服务?,服务,密码,状态,信息,地址,网络,认证,系统,号码,名称,linux中远程访问的命令步骤如下:查询\安装SSH服务 (1)登陆linux系统检查linux服务器命令?
检查linux服务器命令?,系统,信息,状态,情况,时间,工具,网络,环境,服务,电脑,如何查看linux服务器的版本和配置信息?1、登录到linux服务器执行llinux7关闭服务命令?
linux7关闭服务命令?,系统,软件,服务,命令,电脑,状态,工具,管理,进程,用户,求Linux关机命令详解shutdown命令 shutdown命令用于安全关闭Linuxlinux服务器域名命令?
linux服务器域名命令?,地址,信息,系统,网络,服务,环境,名称,网站,管理,电脑,linux临时启动域名解析服务的命令是1、在linux环境下能实现域名的服务启动linux命令?
服务启动linux命令?,服务,密码,信息,系统,名称,命令,文件,用户,下面,服务器,linux如何启动mysql服务1、首先,我们需要修改mysql的配置文件,一般linux服务器命令框?
linux服务器命令框?,系统,情况,状态,信息,数据,软件,指标,服务,在线,工具,linux系统怎样查看服务器性能命令1、使用top命令 top命令是一个常用服务器linux命令教程?
服务器linux命令教程?,系统,地址,密码,网络,设备,工作,服务,标准,连续,管理,重启服务器的linux命令1、首先我首要把linux开机, 命令 rebot 这个linux删除服务的命令?
linux删除服务的命令?,服务,系统,软件,平台,名称,管理,环境,产品,命令,文件,在linuxcentos系统里面怎么用命令删除服务1、这里主要解决使用rpmlinux开机服务命令行?
linux开机服务命令行?,系统,工作,地址,信息,服务,设备,数字,第一,设计,发行,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作linux服务器分区命令?
linux服务器分区命令?,系统,管理,信息,设备,时间,命令,基础,首次,平均,情况,linux系统格式化分区用哪个命令Linux的磁盘格式化命令是“mkfs”,