BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

AutoMapper 1.0 For .NET Released

| 作者 Jon Arild Tørresdal 关注 0 他的粉丝 ,译者 王波 关注 0 他的粉丝 发布于 2010年2月7日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Jimmy Bogard编写的开源项目AutoMapper经过一年的开发之后,在近日发布了1.0版本。AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨服务范畴。

AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样。AutoMapper包含以下功能:

  • 平展
  • 投影
  • 配置验证
  • 列表和数组
  • 嵌套映射
  • 自定义类型转换程序
  • 自定义值转换程序
  • 自定义值格式程序
  • Null值替换

AutoMapper是一款单向映射器。这意味着它并没有内建映射对象支持来回写至原始源,除非用户在更新映射对象之后明确地创建逆向反射。这需要通过设计完成,因为让DTO回写到,比方说:域模型或其他东西,就会更改它的持久性,同时人们也认为它是反模式的。在这种解决方案中,命令消息在双向映射中往往是更好的选择。然而,在某些特定环境中,有人可能会为双向映射辩解,比如:非常简单的CRUD应用程序。一个支持双向映射的框架就是Glue

在AutoMapper的路线图上,对Silverlight和Mono的支持优先在列表中出现。同时“一流的反向映射支持”也赫然在列,故InfoQ询问Jimmy是否准备添加双向映射支持时,他回答道:

就我个人而言,我并不想支持双向映射,当然要支持该项功能确实需要ASP.NET MVC中有一流的ActiveRecord支持(这是Rail仍对微软解决方案在很大程度上存在影响之原因)。如果你看看Rail如何处理表单请求的话,你会发现它是一项非常简洁的事情。我不希望添加该项功能,因为我觉得它违背了很多设计理念,例如:POJO/POCO和域模型模式等。然而,越来越多的人需要一份Silverlight的正式版本。

你认为AutoMapper应该添加双向映射吗?

查看英文原文:AutoMapper 1.0 For .NET Released
 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

性能存在一些问题,在使用的时候需要谨慎对待 by 刘 生权

AutoMapper确实是个不错的东西,但是在性能上存在问题,使用的时候还是要谨慎。
Codeplex上还有一个项目叫EmitMapper,效仿AutoMapper,但是不是用反射机制,而是Emit的方式,性能相当不错。不知道有没有哪位老兄试用过EmitMapper?传授一下经验。

Re: 性能存在一些问题,在使用的时候需要谨慎对待 by Chen Zhen-bao

呵呵,自乐一下,没想到我2005年设计的支持双向映射的OOMapper还成这两个玩意的前辈了。

Re: 性能存在一些问题,在使用的时候需要谨慎对待 by Meng Edward

我看了OOMapper的源代码也是使用反射机制去映射,而且没有缓存。所以不会列入考虑的范围。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT