AutoMapper 1.0 RTW

AutoMapper is now officially 1.0.  You can go grab the latest binaries here:

AutoMapper 1.0 RTW

Here are the release notes:

New Features

  • Changing the null substitute method name and allow any type of null substitute
  • Consolidating custom constructor configuration to just one
  • Adding UseValue option for member mappings when you want to just map from a single custom value
  • Added ValueFormatter<T>

Enhancements

  • Adding custom mapping action objects (in addition to just functions)
  • Removing configuration validation from dynamic mapping
  • Adding overloads for mapping to existing objects for dynamic mapping
  • Modified ITypeConverter to only use ResolutionContext as the input
  • Added TypeConverter to ease generic scenarios
  • Custom value resolvers now have access to the current resolution context
  • Switching the MapFrom from using Expression to just Func, but with the return type retained
  • Some performance improvements around caching and sealing (only for Initialize scenarios)
  • Fixed profiles so you don’t have to provide a name (defaults to type name)

Bugs Fixed

  • Fixed bug where a zero-length sequence would throw an exception
  • Applying patch to fix duplicate CreateMap call issue
  • Fixing bug where type map resolution did not attempt to find a map for the underlying member type
  • Fixed bug where destination collections were not cleared before mapping
  • Integrating patch to fix ambiguous match exceptions on multiple IEnumerable implementors
  • Fixed bug where read-only string destination properties had to be marked as ignored
  • Applied patch to fix issue where the DataReader mapper blew up on nullable fields
  • Fixing bug where a bi-directional relationship with an array was messing up
  • Fixed bug where type-specific formatters were not found correctly at the global level

I tried to get all the documentation done…and failed.  Instead, I’m building up a comprehensive set of examples first.  So what’s up for the next release?  Here’s my current plan of action:

  1. Move source to github – DVCS better suited for OSS anyway
  2. Get build/deployment/TeamCity.CodeBetter migrated to github
  3. Add in patches for SL 3.0, CF and Mono (and integrate into the build)
  4. Look at v.next

And as always, if you have any questions, feel free to post them up on StackOverflow or put them on the mailing list.  The mailing list shows up in my inbox, while the SO posts show up in my feed reader, so I may not personally answer SO posts right away (but others tend to first).  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.
  • http://plaureano.blogspot.com Philip Laureano

    Congratulations on hitting 1.0, Jimmy! If you ever need anything with LinFu.DynamicProxy, just let me know.

    Regards,

    Philip Laureano

  • Rudy Dahbura

    Great work. I’ve been using AutoMapper and its made life much easier.

    One comment though, the depency on LinFu.DynamicProxy is causing me some problems when I want to use LinFu.DynamicProxy directly in my code. When referencing LinFu.DynamicProxy in my project, I get ambiguous reference issues.

    Do you have any suggestions or is there something I should be doing differently?

    Thanks!

    Rudy

  • http://www.pksoftware.net/devblog/ Paul Kohler

    Nice work – it’s a pretty big milestone to hit V1 for an OS project!!
    Congrats – PK :-)

  • http://weblogs.asp.net/shijuvarghese Shiju Varghese

    Congrats Jimmy.

  • Ollie Riches

    Congrats!

  • http://jonkruger.com/blog Jon Kruger

    Congrats, I’m sure you have spent a lot of your free time on this. It really filled a big gap in the .NET space, this would’ve saved me loads of time and money on previous apps. Thanks for all the work.

  • http://www.lucamilan.it Luca Milan

    Thanks! it’a great tools!

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

    @Rudy

    Use the “AutoMapper-unmerged.zip” download. It contains the non-ILMerged AutoMapper and LinFu assemblies.

  • http://www.brunofigueiredo.com Bruno Figueiredo

    Hi Jimmy,
    I’m getting a wierd behavior with automapper. I describe it on the codeplex http://automapper.codeplex.com/WorkItem/View.aspx?WorkItemId=4032.

    Can you help me out. Thanks.