Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EF Plus stays FREE but now depend on EF Extensions #510

Open
JonathanMagnan opened this issue Aug 20, 2019 · 4 comments

Comments

@JonathanMagnan
Copy link
Member

commented Aug 20, 2019

We have chosen to make Entity Framework Plus (EF Plus) dependent on Entity Framework Extensions (EF Extensions).

That’s a major decision since as most of you know, EF Plus is free and open-source, but EF Extensions is a commercial library.

Don’t worry, EF Plus will remain 100% free and will always be. We just added a dependency to be able to continue to provide good support to our libraries.

This dependency will be added in a few weeks.

Will EF Plus continue to evolve?

Yes, and faster!

In the past, we sometimes restricted ourselves to keep intellectual property inside EF Extensions. For example, TPC and TPT are already supported for Batch Update in EF Extensions but not yet supported in EF Plus. By adding this dependency, we can now easily add it to EF Plus.

Why this decision?

EF Plus has been very fun to create a few years ago, don’t get me wrong.

However, maintaining this library was not amusing at all since we had to support:

  • Different versions of Entity Framework
  • Different versions of Entity Framework Core itself!
  • Different versions of .NET Standard
  • Different versions of Database Provider
  • Many weird special cases 😉

EF Plus doesn’t use public API but mostly internal API that is subject to change from a version to another and hell, EF Core proved that’s true from a preview version to another! Our code now looks so messy and need some love with a big cleanup.

EF Plus has reached a point that we cannot close our eyes anymore about the maintaining cost.

What’s the cost of maintaining a free library?

EF Plus is indeed FREE for you, but that’s a money pit for our company ZZZ Projects.

Over the past 3 years, we answered more than 500 issues on GitHub and more than 1000 emails.

We invested way more than $300,000 USD in development and maintenance and received less than $1,000 USD in donations.

People usually make free library on their free time for fun and eventually stop supporting it to move to something else. However, on our side, we created EF Plus to show you can trust a free library that keeps getting supported over the years.

For example, simply upgrading EF Core 3.0 from a preview to the latest preview version took us more than 100h due to many internal methods modified. These hours have a cost as we need to pay developers to code it. (labor is not cheap in Canada)

Let be honest, adding a dependency to EF Extensions allow us to show our PAID library through our FREE offer (EF Plus). So, it gives us additional reasons and motivation to keep supporting EF Plus. Also, it allows us to reduce the cost to maintain both libraries.

Will EF Plus remain 100% Free?

YES, EF Plus continues to be 100% free and will always be!

Question or Comment?

Please let us know if you have any concerns.

We understand that not everyone will be happy with this decision, but we believe that’s the best decision for the future of EF Plus and our company.

@JonathanMagnan JonathanMagnan pinned this issue Aug 20, 2019

@JonathanMagnan JonathanMagnan self-assigned this Aug 20, 2019

@jasho

This comment has been minimized.

Copy link

commented Aug 20, 2019

First of all, thanks for announcing this upfront.
I have a few questions to clarify:

  1. How exactly will EF Plus work "100% Free" with a dependency on a paid library. Will we be needed to have a license for the library once it becomes dependent on it even if we don't use the features from the paid library anywhere?
  2. If it's not required to have a paid license - will we get the future updates even without the paid library?
  3. If it is required required to have a paid license - is the Starter edition enough to keep the EF Plus running going forward? Or is it necessary to buy the whole Full edition? We're specifically interested in using it with EF Core (the Starter edition states that it requires EF 6).
@JonathanMagnan

This comment has been minimized.

Copy link
Member Author

commented Aug 20, 2019

Thank you @jasho for those questions.

Will we are needed to have a license for the library

No, you will not need a license.

EF Plus will use methods from EF Extensions that don't require a license. For example, the GetModel method in EF Extensions is way more complete than the light version in EF Plus.

We will make very clear in the documentation when a license would be required. For example, to improve performance when saving audit entries.

Will we get the future updates even without the paid library?

Yes, nothing changes. In fact, it now gives us more reason to keep EF Plus up to date.

We started to add some free features recently in EF Extensions such as ToSelfHierarchy and DeleteByKey which doesn't make sense if we have a free library. By having this dependency, it now give us a reason to add future features such as Query Hint in EF Plus instead.

By improving EF Plus, we promote at at same time EF Extensions even if that's not required to make it works. So it will give us a motivation to keep creating features in EF Plus.

Let me know if you have more questions.

@MyEidos

This comment has been minimized.

Copy link

commented Aug 21, 2019

As a EF Plus (free version) consumer, in which way will be I able to check: am I using free functionality or not?

@JonathanMagnan

This comment has been minimized.

Copy link
Member Author

commented Aug 21, 2019

will be I able to check: am I using free functionality or not?

That's a very good question.

We will add something such as EntityFrameworkManager.IsCommunity (we are not sure yet about the option name). When enabling, it will throw an error right away when using a paid functionalities.

At this moment, the only paid functionalities are:

  • BatchSaveChanges
  • BulkSaveChanges
  • BulkInsert
  • BulkUpdate
  • BulkMerge
  • BulkDelete
  • BulkSynchronize

All other methods are already free. It will be very clear in the documentation about what's free and what's not and we will make a comparative table like we did on EF Classic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants
You can’t perform that action at this time.