There’s a recent wave of FOSS projects in .NET landscape going commercial.
Author of AutoMapper and MediatR, Jimmy Bogard, on April 2 announced that both project will be commercialized. Funnily, only 2 months after author firmly and clearly declared that it will never happen.
The same day, MassTransit also announced that the project is moving to commercial licensing model.
Just in the beginning of 2025, FluentAssertions became paid software.
FOSS projects, libraries and frameworks, which .NET community relies on, rapidly choose to abandon “free” part and switch to “paid” model, causing chaos and drama in developer circles. So here are my thoughts about it.
Oh god finally it will die
I hate AutoMapper and MediatR with passion. I don’t want to diss the author, or belittle the importance of those two libs in the .NET world. Both are somewhat cool and probably very useful in many setups. I just believe they are way to much overused, solve the wrong problems and inevitably lead to poor system design and horrible code. This post is not about why I hate though, so if you want to lean more - “The reasons behind why I don’t use AutoMapper” by Cezary Piątek and “You probably don’t need MediatR” by Arialdo Martini.
My first thought when I saw the news - oh god finally.
Finally there’s a hope senior (aged) developers and architects will reconsider the necessity for it.
Large, enterprise, legacy projects will be left holding the bag, while the newer, smaller projects will either migrate away and straight up abandon those two. I have no sympathy to those, who will be pressed to migrate away or pay $$$ for licenses. You shouldn’t have used it in the first place, and the fact you had it already means you had problems with your code.
People pay for THAT?
Walking the fine line of not belittling the libraries, but,
who will want to pay for AutoMapper/MediatR?
In the case of MassTransit, that’s kinda fair. The framework is large, with tens of packages and modules, adaptors for various types of storage, transit and scheduling. That’s a powerful framework in the complex niche, and even though I never used it in my projects, that seems like a fair ask to pay for mission critical orchestration package.
AutoMapper and MediatR, though? Those two are very core libraries and that’s hard to grasp what exactly am I paying for. The functionality behind it is pretty basic. There’s not much support necessary to use those libraries. Even though both are usually used in a critical code paths, there is practically zero risk of some failure because of the library.
Paying for mapping or service calls sounds crazy. What’s next? Pay-per-GUID or DI container subscription fee?
It doesn’t help that both AutoMapper and MediatR can be replicated easily, meaning that there are already many substitutes and analogs.
That’s gonna hurt for adoption
What we have seen in the past with FluentAssertions, MOQ and others, is that commercializing a project is the easies way to lose adoption.
Honestly, it feels that pulling the rug and slapping a fee on a library is basically the last breath before inevitable death of the library. If the project is dying, getting a quick cash out of it might be a good idea.
I am totally convinced no one in the sane mind will be starting a new project with AutoMapper, MediatR if it is paid.
It’s a mess for Microsoft and .NET
I have already mentioned in “TypeScript & Go - My take” that I am a bit sour about state of .NET.
.NET OSS looks like a failure. OSS projects turning into commercial/licensed products doesn’t help with “boring corporate” stereotype about .NET. Microsoft building their own version of many of the large libraries rather than just supporting them isn’t helping either. Looks like we are rapidly moving to the world, where if you are starting a project with .NET, you are stuck with very basic, “demo” version of the platform, and you will need to pay for features. Nobody’s gonna do that, though, apart from behemoth corporates. And I don’t like that. I enjoy free, thriving platforms, suitable for any size of the project.
Wrapping it up
It’s yet another sad week to be a .NET developer. Even though I am not going to miss AutoMapper and MediatR, good grief, it still sucks. Sucks for the community, for the platform, for the ones who will be affected by the changes or slapped with the fees. I wholeheartedly respect the Authors, I probably would do the same if I had the talent to build something meaningful as they did.