EntityFramework support for Asp.Net Core - asp.net

I am able to add EntityFramework to ASP.NET Core application that runs on top of .NET Framework (not on .Net Core). The CR operations are working fine, but not able to enable migration since I am using Code First approach. But as per the link
Limited support for EF6 in ASP Net Core
there are some limitations. Is there any work around for this to make happen?
Any help would be deeply appreciated.
Thank you

There is a third party tool that enables EF 6 Migrations with .NET Core https://github.com/mrahhal/Migrator.EF6
More information about EF6 with ASP.NET Core here: https://learn.microsoft.com/en-us/aspnet/core/data/entity-framework-6

Related

Referencing .NetCore project from .Net Framework

.Net Core version (2.0+)
.Net Framework version 4.5+
, Visual studio 2019
Currently i have an issue where the UI is made in .Net framework but the back end code is currently in .net Core.
I looked at standard and it looks like .Net core can reference standard but not the other way around.
Aside from converting the UI to Core or the backend to .Net framework. Is there a way around this issue?
Currently the two (.net framework and core) do not communicate with each other.
What i have is a .Net framework legacy monolith application, which has been revamped in core (but no UI). In the future we'll go web/ cross platform but temporary we'd like the new core code to connect with Desktop Ui as the UI is going to take some time to complete.
Regards
Unfortunately this will not play out exactly as you hope for.
First of all, make sure your projects are targeting .net Standard.
Second, check out this blog here. Theres a matrix of support and compatibility.
Good luck on your endeavor!

How to add EF CLass Library to solution that will work with .net 4.5 and dotnet core

I currently have a webforms website using .net 4.5.
I would like to add a class library with entity framewrok.
I want to make sure that this class library works with dotnet core and my existing webforms project.
With all the versions of .net, it is very confusing.
From what I gathered, dotnet standard maybe used as the middle ware for this type a situation. But I'm not sure this is true.
Any suggestions?
Yes, you'll have to use the .NET Standard and Entity Framework Core. .NET Framework will be able to interface with the .NET Standard
I would start up with https://www.youtube.com/watch?v=ECNLyvxLnuQ
There's not a lot of docs on standard, but this will give you some conceptual understanding
Notice that "ASP.NET vs ASP.NET Core" and "Entity Framework vs Entity Framework Core" are completely different frameworks, even though which were named similarly.
ASP.NET and Entity Framework targets .NET Framework which means they can only work on .NET Framework.
ASP.NET Core and Entity Framework Core targets .NET Standard which means they can work on both .NET Framework and .NET Core.
WebForms bases on ASP.NET, and there is no (and not planned) migration for it on ASP.NET Core, so the old WebForms projects will never be able to work on .NET Core.
It is a great quantity of the task migrating from ASP.NET MVC to ASP.NET Core MVC, and WebForms is even impossible.
If you really need to run your project on .NET Core, there will be a complete refactoring of your whole project:
Refactoring your WebForms project to ASP.NET Core MVC (Completely redevelop the whole project)
Refactoring your Entity Framework data definitions to Entity Framework Core (It only supports code-first and database-first, there is no model-first any more)
Make sure that all referenced .NET libraries target .NET Standard or .NET Core and reference them on nuget. If not, re-target an alternative.
If your project is planned to be hosted on Linux server and referenced some native libraries, you have to get the equivalent .so libraries instead of .dll libraries.

Can I stick with ASP.Net and move from EF6 to EF Core?

I am starting to port a EF6 application to EF Core. The app also uses Microsoft.AspNet.Identity.EntityFramework. However I am unable to find if it is possible to use that package with EF Core. It seems like I need to use
Microsoft.AspNetCore.Identity.EntityFrameworkCore, but this seem to force me to move to Asp.Net Core.
Is it possible to avoid that, i.e. Can I stick with AspNet and move from EF6 to EF Core or do I have to move from AspNet to Asp.Net Core at the same time? I have tried to find an answer in the docs, so any pointers would be helpfull!
You do not need to move your entire application to use the .NET Core because .NET Full Framework can reference .NET Core libraries. The opposite is also true, NET Core 2.0+ can reference full .NET Framework libraries.
However, Microsoft.AspNetCore.Identity.EntityFrameworkCore is dependent on Microsoft.AspNetCore.Identity and will not be able to 'talk' to Microsoft.AspNet.Identity.EntityFramework, at a minimum you would need to isolate your other dependencies on Microsoft.AspNet.Identity. It's not readily apparent if you will run into any conflicts but I would err on the side of caution and refactor your (Full .NET Framework) application to only depend on Microsoft.AspNetCore.Identity (Instead of both AspNet and AspNetCore simultaneously) which is completely feasible.

which version of mvc is using in asp.net core 2.0? is is MVC 6 or use different name?

which version of mvc is using in asp.net core 2.0? is is MVC 6 or use different name ?
What is .net 5?
what is .net standard ?
these questions are from an interview.plz help
The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations.https://learn.microsoft.com/en-us/dotnet/standard/net-standard .ASP.NET5.0 Is Called ASP.NET Core 1.0 and In the ASP.NET Core 1.0 release, Web API is merged with ASP.NET MVC, termed as MVC 6
They're totally unrelated. "MVC 6" was sort of like a codename for Core when it was still in early stages. ASP.NET MVC and ASP.NET Web Api are totally separate from ASP.NET Core. Now, it's just "Core". There is no "MVC" or "Web Api", because Core controllers do both functions. ASP.NET MVC and ASP.NET Web Api live on and although they will probably eventually be deprecated, they could presumably (though not likely at all) get new releases. At the very least, they'll be patched for the foreseeable future.
ASP.NET Core is a complete rewrite from the ground up. It was originally created simply to be a cross-platform alternative to ASP.NET, and I think the original plan was to keep both ASP.NET and ASP.NET Core as potential development options. However, as ASP.NET Core became more competent, it has pretty fully eclipsed ASP.NET; we now have a cross-platform framework that can run on Windows, Mac and Linux and can do virtually anything the Windows-only framework can. Therefore, why keep the Windows-only framework?
Asp.net Core 2.0 is MVC 6 and The framework is 4.6.1
To start with development you need to have VS-2017 and for 1.X you can start with VS-2015.
Please refer the below link for clear presentation of .NetCore 2.0 so that you can get good knowledge to kick start your development.
Official Asp.Net Core Documentation Url

.NET Core project add reference to .NET Framework project. Why it's possible?

I have followings projects:
.NET Core 2.0 Web Application
.NET Standard 2.0 Class library &
.NET Framework 4.5 Class Library.
I add reference of .net framework class library to asp.net core web api project. and it seems it works very well.
I am wondering why it's possible to add reference of .NET Framework class library project to ASP.NET Core Web API or MVC?
It's not supposed to allow adding only Standard or Core libraries references to Core projects?
Is this core Web project with .NET Framework class libraries references still cross platform?
UPDATE
According to Phiter comment:
"If you import a .net framework library to your project it'll no longer be cross platform, but you can do it freely if you want to. They allow it because you might want to use .net core and still be on windows."
So if this is a reason, if I want to bind my project to .NET Framework and remain on windows why I use Core Web Project from the first place?
I thought we use core projects for cross platform ability and if not, the .Net framework is not a better option?
UPDATE
mason comment:
"Nothing funny: ASP.NET Core project doesn't have to run on .NET Core. It can also be run on .NET Framework.
Just because it's called 'Core' doesn't mean they're related. They could have called it ASP.NET FancyPants and had it run on .NET Core and .NET Framework and you wouldn't be as confused. Microsoft just sucks at naming things."
UPDATE (November 12, 2018)
A first look at changes coming in ASP.NET Core 3.0 - Fully leveraging .NET Core
As announced on the .NET Blog earlier this month, .NET Framework will get fewer of the newer platform and language features that come to .NET Core moving forward, due to the in-place update nature of .NET Framework and the desire to limit changes there that might break existing applications. To ensure ASP.NET Core can fully leverage the improvements coming to .NET Core moving forward, ASP.NET Core will only run on .NET Core starting from 3.0. Moving forward, you can simply think of ASP.NET Core as being part of .NET Core.
Customers utilizing ASP.NET Core on .NET Framework today can continue to do so in a fully supported fashion using the 2.1 LTS release. Support and servicing for 2.1 will continue until at least August 21, 2021 (3 years after its declaration as an LTS release) in accordance with the .NET Core support policy.
This was just added as part of .NET Standard/Core 2.0. As long as the .NET Framework dll only references things in the .NET Standard, it will use type forwarding to the .NET Core implementations.
I do not know what made Microsoft allow referencing .net framework class library into .net core project but as a programmer, I am happy with this allowance.
You see allowing .net core application to reference .net framework libraries is useful in case you want to start with windows and are planning to go cross platform in the future.
We are in a stage where many useful open source libraries do not fully support .net core till the date of this post, masstransit is an example, so when I am developing a new software I will be using .net core project that depends on such libraries and I will update them later when they support .net core.

Resources