AutoMapper 1.0 RC1 released

It’s been quite a long journey with AutoMapper, with the origins written just over a year ago now.  I’ve focused on stability and performance since the 0.3.1 release back in May, and from here to the 1.0 release, I’ll just be doing bug fixes.  I did work in quite a few new enhancements, but I’m waiting on bigger changes until after the 1.0 release.  From the CodePlex download site:

New Features

  • Added non-generic CreateMap overload
  • Can specify custom mapping ordering for individual destination members
  • Before/After map callbacks for custom pre/post processing
  • Registration of custom pre- and postfixes on member type names (i.e. CustomerKey can map to Customer)
  • Mapping from dictionaries to split out key-value pairs
  • Basic support for IDataReader/IDataRecord
  • Support for custom naming conventions
  • Support for IListSource (for Entity Framework)

Enhancements

  • AllowNullDestinationValues now defaults to "true"
  • Mapping operations thread-safe
  • Performance improvements for mapping pipeline, including late-bound expression trees and Lightweight Code Generation
  • Allowing using the destination value for individual members
  • Lots of internal refactoring around the mapping engine to support various IoC scenarios
  • Assembly marked as CLS compliant
  • Registering global and profile-specific aliases for names
  • Support for custom destination type constructors
  • Upgraded to latest LinFu release

Bug Fixes

  • Validation errors on explicitly implemented interfaces
  • Collections with null elements caused exceptions
  • Readonly destination members were causing validation errors
  • Removed null checking in custom value resolvers

Enjoy!!!

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Jimmy Bogard

I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
This entry was posted in AutoMapper. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • zihotki

    Thanks for your hard work. AutoMapper is an amazing framework. But it uses a lot of reflections and emits as far as I remember. It seems to me that it will not work under medium trust environment, am I right? If it’s so, do you have plans to release a version with support of Medium trust (probably a limited one)?
    Thanks in advance.

  • David Kemp

    Quick Question: You say it’s 1.0 RC1, but the DLL version is 0.4.0.126. Is that right?

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @zihotki

    Medium trust, Silverlight and Mono support are three of the biggest features I’m looking at for the next version. Not sure if it doesn’t work in these three scenarios, but I’ll look at officially supporting it.

    @David

    Yeah, I’m bumping to 1.0 upon official release.

  • http://weblogs.asp.net/morteza mlife

    Thank you for this cool work. I hope developers appreciate you hard work.

  • Prasad

    I am new to Automapper and DTOs. Can any one please let me know how to configure and use Automapper step-by-step approach, pictorially with a simple example, please.

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @Prasad

    Check out the wiki’s Getting Started page:

    http://automapper.codeplex.com/Wiki/View.aspx?title=Getting%20Started

  • http://amandabynesnudiesny.xanga.com lilikindsli

    85KYrC I want to say – thank you for this!

  • Andy

    Very cool library.

    Add me to the list of those wishing for medium trust support so it can be used in shared hosting scenarios. I tested it out on the modified medium trust setup (has some exceptions for stuff like reflection) on shared servers at CrystalTech hosting and got the following exception:

    [VerificationException: Operation could destabilize the runtime.]
    DynamicCreate(IDataRecord ) +470
    AutoMapper.Mappers.DataReaderMapper.Map(ResolutionContext context, IMappingEngineRunner mapper) +209
    AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context) +356

    Thanks,
    Andy