AutoMapper 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。
中文介绍
中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。
AutoMapper
AutoMapper 是一款基于约定的从对象到对象的映射器。它用于解决对象间进行赋值时编写和测试枯燥乏味的代码。
利用简单的约定规则,AutoMapper 消除了成百上千的代码,这强化了开发者的 DTO 设计,使得其更加容易测试对象映射关系。
项目详情
- 官网地址
- 项目源码
- 项目许可证: MIT
- NuGet
- 项目联系人: Jimmy Bogard, Lucian Bargaoanu, and Tyler Carlson
相关链接
笔者简评
单进程内的多层次结构设计出来之后,对象间映射几乎成为一个不可避免的问题。
直接使用new
和=
就能实现的问题,为何还要采用一个类库来解决呢?
软件开发不变的便是变化,原生的办法并不是不好写,而是改起来困难,特别需要进行字段改动和特殊功能的时候,此时,使用 AutoMapper 这样的类库可以省下不少麻烦。
当然,绝大多数的环境下使用 Profile 和 DynamicMap 几乎就能够满足需求。
但是也千万不要忽略研究 AutoMapper 提供的高级特性:对象扁平化、值工厂、Ioc集成、映射启动时检查等等,利用好这些高级特性,也能减少不少代码量。
英文介绍
AutoMapper
AutoMapper is a convention-based, object-to-object mapper. It replaces that boring object value copying code that’s both tedious to write and test.
With straightforward conventions, AutoMapper removes hundreds or thousands of lines of code, enforcing a policy on your DTO design and making it simple to test your mappings.
Project Details
- Website
- Source
- License: MIT
- NuGet
- Project Leads: Jimmy Bogard, Lucian Bargaoanu, and Tyler Carlson
Quicklinks
以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。
其他项目地址
- Akka.NET - 【Actor开发框架】
- AngleSharp - 【浏览器引擎】
- ASP.NET SignalR - 【Web实时通信框架】
- ASP.NET MVC, Web API and Web Pages Razor - 【Web开发框架】
- ASP.NET Ajax Control Toolkit - 【Ajax开发工具】
- ASP.NET Core - 【新时代Web开发框架】
- AutoMapper - 【对象映射管理】
- Microsoft Azure SDK for .NET - 【SDK】
- Microsoft Azure WebJobs SDK - 【SDK】
- BenchmarkDotNet - 【基准测试框架】
- Cake - 【本地自动化框架】
- Chemistry Add-in for Word - 【Word插件】
- Couchbase Lite for .NET - 【NoSQL引擎】
- DNN Platform - 【CMS系统】
- .NET Compiler Platform Roslyn - 【编译器】
- .NET Micro Framework - 【嵌入式框架】
- .NET SDK For Hadoop - 【SDK】
- DotVVM: Component-based MVVM framework for ASP.NET - 【Web服务端MVVM框架】
- Entity Framework - 【ORM】
- Humanizer - 【工具库】
- IdentityManager - 【身份认证数据管理工具】
- IdentityModel - 【身份认证对接库】
- IdentityServer - 【OAuth服务端】
- SixLabors.ImageSharp - 【2D绘图库】
- DLR/IronPython2/IronPython3 - 【.Net上运行Python】
- Json.NET - 【JSON处理库】
- Kudu - 【自动化框架】
- LLILC - 【语言底层项目】
- MailKit - 【邮件处理工具库】
- Managed Extensibility Framework MEF, MEF2 - 【模块化工具库】
- Microsoft Web Protection Library - 【Web防攻击工具库】
- MimeKit - 【MIME处理工具库】
- ML.NET - 【机器学习框架】
- Cecil - 【语言底层项目】
- Mono - 【语言跨平台底层项目】
- MSBuild - 【本地自动化框架】
- MVVM Light Toolkit - 【客户端MVVM开发框架】
- MvvmCross - 【客户端MVVM开发框架】
- Nancy - 【Web开发框架】
- .NET Core - 【Web开发框架】
- Newtonsoft.Json - 【JSON处理库】
- NuGet - 【包管理框架】
- NUnit Test Framework - 【单元测试框架】
- Open Live Writer - 【博客协作工具】
- Open XML SDK - 【Office SDK】
- Orchard CMS - 【CMS系统】
- Orleans - 【Actor开发框架】
- OWIN Authentication Middleware Katana Project - 【Web开发框架】
- Peachpie Compiler Platform - 【.Net上运行PHP】
- Polly - 【服务调用工具库】
- Prism - 【客户端MVVM开发框架】
- Protobuild - 【项目文件生成工具】
- Reactive Extensions for .NET - 【反应式编程框架】
- ReactiveUI - 【反应式编程UI框架】
- Salesforce Toolkits for .NET - 【SDK】
- SourceLink - 【源码调试支持】
- Steeltoe - 【微服务框架】
- System.Drawing Mono - 【2D绘图工具库】
- Telerik UI for UWP - 【UWP UI框架】
- Umbraco - 【CMS框架】
- UWP Community Toolkit - 【UWP 工具库】
- WCF - 【跨进程通信框架】
- Windows Phone Toolkit - 【WP 工具库】
- Windows Template Studio - 【UWP 项目模板】
- Windows Forms - 【客户端开发框架】
- WiX Toolset - 【安装包制作框架】
- WorldWide Telescope - 【宇宙探索工具】
- Windows Presentation Foundation WPF - 【客户端开发框架】
- Xamarin.Auth - 【移动端身份认证工具库】
- Xamarin.Mobile - 【移动端工具库】
- xUnit.net - 【单元测试框架】