News

Survey Finds Slow EF Core Adoption, Surprising Dev Team

Microsoft's data dev team recently shipped Entity Framework Core 6.0 Preview 2, which comes a couple months after a survey surprised them with indications many developers are sticking with tech that can be more than 10 years old.

That's surprising because Microsoft is well underway in its transition away from the old, proprietary, Windows-only .NET Framework to the new direction: the open source, cross-platform .NET Core, which morphed into just ".NET 5" and ".NET 6" as part of an all-things-.NET unification project.

In fact, .NET 6, coming in November, will be the culmination of that umbrella unification effort, featuring EF Core 6, the modern take on the familiar Entity Framework object-relational mapping (ORM) component.

Microsoft has invested much time and many resources into educating developers about the transition and encouraging them to hop on board the modernization train, but a recent survey indicates that effort may be coming up short.

The results of the EF Core 2020 survey with nearly 4,000 developer responses were discussed earlier this year in an Entity Framework Community Standup hosted by Jeremy Likness, Arthur Vickers and Shay Rojansky.

At the time of the survey, EF Core 5 was still in preview, said Likness, senior program manager for .NET Data and .NET, so it wasn't surprising that among the 5,716 responses to the question about what EF versions were being used, only 696 were on EF Core 5, with 2,358 on EF Core 3.x.

What was surprising was the number of developers using even older tech.

"Interestingly, second place, EF 6 on .NET Framework, and this for the team is interesting to us just to understand, you know, what is keeping people from migrating onto the new platform ... because in some cases it's challenges with .NET Framework API surface area, in some cases it's challenges with EF Core API surface area," Likness said.

EF Versions Used
[Click on image for larger view.] EF Versions Used (source: Microsoft).

On the question, 334 respondents said they were using versions before Entity Framework 6, the first version to be separated from the old .NET Framework in 2013. These versions include EF 4 (shipped 2010), EF 5 (2012) and "classic."

"I guess the surprise for us was this 'pre-Entity Framework 6 (EF 4, EF 5, classic),' " he said. "That's a pretty solid number of people working on those legacy applications."

Vickers, engineering manager for Entity Framework, replied: "Yeah that was really surprising to me to see that many people basically using stuff that is not, you know, I mean EF 5 is is 10 years old now or something like that. I mean, it's been out there a while and we hardly ever see anybody ask questions on these things. We don't get support requests coming through on these things, so we basically don't hear from anybody pretty much who's using these versions and yet 334 of you are. And so that was kind of surprising to us. So yeah, hopefully we can we can drill into it. If you are using pre-Entity Framework 6, let us know, contact us, and we'd like to talk to you and understand why."

The team did drill down into related questions and found on the migration front, 80 percent of 3,199 respondents had not migrated from EF 6 to EF Core, but Likness said the 20 percent who did migrate was "a pretty solid number."

Biggest migration challenges were (figures are rounded off):

  • Missing features, 33 percent
  • No issues (22 percent)
  • Queries and expressions (13 percent)
  • Relationships (12 percent)
  • Migrations (10 percent)
  • GUI (5 percent)

Results of other survey questions included:

  • Biggest concern with EF 6 to EF Core migration: Features (Addressed in EF Core 5) (24 percent)
  • Top other technology used in conjunction with EF Core: Newtonsoft.Json
    Other Tech Used
    [Click on image for larger view.] Other Tech Used (source: Microsoft).
  • Top app that targets EF Core: ASP.NET Core Web API
    Apps Targeting EF Core
    [Click on image for larger view.] Apps Targeting EF Core (source: Microsoft).
  • Primary OS: Windows (89 percent)
  • Primary development environment: Visual Studio

Many other questions were addressed in the nearly 72-minute presentation, dealing with priority of EF Core providers, in-memory use providers, priorities for missing providers, production database hosting, deploying changes to production and so on.

As far as Entity Framework Core 6.0 Preview 2, Likness last week highlighted these new features for the open source project, linked to their respective GitHub issues:

Update: Microsoft PR on March 22 "wanted to provide some additional information and data to add some more context on the presentation that was given:"

  • "On the EF6 to EF Core Migrations stat โ€“ the 80% who have not migrated includes those who weren't on EF6 to begin with and did not need to migrate to EF Core, or they're running EF6 on .NET Core and therefore don't need to switch to EF Core."
  • "We're seeing great momentum with .NET 5 & .NET Core -- In total, there are over 5 million monthly active .NET developers in Visual Studio family (VS, VS Code, VS4Mac) and of that, over 2 million are on .NET Core / .NET 5. We'll have more momentum to share in the coming months โ€“ stay tuned!"

[Correction: Regarding that first bullet point, in the presentation Likness said: "This question was, 'Have you done it? Have you migrated from EF6 to EF Core?' And 80 percent have not, but 20 percent, which is a pretty solid number, have done that migration."

This article's above reference to that quote was: "The team did drill down into related questions and found on the migration front, 80 percent of 3,219 respondents had not migrated from EF 6 to EF Core, but Likness said the 20 percent who did migrate was 'a pretty solid number.'"

That "3,219" figure actually came from another slide; the actual number of developers who responded to the question was 3,199. The article has been corrected and I regret the error. -- David Ramel]

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus

Featured