Which .NET, EF and ASP for a new project? - asp.net

I've done a reasonable amount of reading around on .NET Standard v .NET Core, watched a course on PluralSight regarding EF Core and done further reading on EF 6 v EF Core, and done some reading up in ASP.NET Core v ASP.NET.
What I still can't decide is what the recommendation is if I'm about to embark on a new project with a web interface. It's against SQL Server, and will be hosted on Windows and users will be connecting from Windows desktop machines.
As it's all Windows .NET Standard would suffice - though I could use .NET Core, I know that EF Core works against .NET Standard, I assume ASP.NET Core will as well.
At a later date there could be an extension for mobile functionality, but that could be written as an extension/module using Core or similar.
It's vary hard to find a clear answer on this as even on Microsoft's Docs site, the EF initial pages haven't been updated since the release of EF Core 2 and prior to that they seem to suggest that unless you need it, stick with EF 6.
Thanks
Tom

Looks like I was lead astray by some articles I read on .NET Standard.
However, I now have an answer from a post on the MSDN site see here

Related

When Web Forms won't be supported from Microsoft

We are going to create new application using Web Forms and we want to know when Web Forms (ASPX pages) Technology going to be obsolete or not be supported from Microsoft.
https://dotnet.microsoft.com/platform/support/policy/aspnet
So WebForms is part of .Net Framework.
https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies
“.NET Framework 4.8 is the last version of .NET Framework. .NET Framework is serviced monthly with security and reliability bug fixes. .NET Framework will continue to be included with Windows, with no plans to remove it. You don't need to migrate your .NET Framework apps, but for new development, use .NET 5 or later.”
So it's baked into Windows at this point if you want to use it. Everyone will discourage you from using it, as you are essentially mastering out-of-vogue and increasingly obsolete technology, and maybe not doing your career any favors. But if, like me, you have some huge WebForms app for which there is no time nor money to rewrite, then you can at least rest assured that it will continue to run on Windows.
Microsoft will be continuing to support ASP.Net WebForms for some time to come since much of it's functionality is based into the core .Net Framework. There are several locations to get information on which ASP.Net features/technologies such as ASP.Net MVC 4 will be going out of support soon. https://www.asp.net/support lists many of the technologies. For ASP.Net Webforms, it's tied to the Framework versions as best as I understand. https://support.microsoft.com/en-us/lifecycle/search?alpha=.net%20framework
Support policy for ASP.NET is documented here: https://dotnet.microsoft.com/platform/support/policy/aspnet

EntityFramework support for Asp.Net Core

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

How to port to .NET core?

I was looking for possibilities for porting some web projects from Windows .NET framework to Ubuntu linux using open source .NET core
After a lot of struggle with Mono, which I have almost gave up. I was looking at .NET core as a new hope. Have anyone of us ported from .NET to .NET core?
If yes, can the possible problems like the ones I faced with Mono be shared?
Moving from .NET to .NET Core is a huge move, especially if you're going to take advantage of Core. There is not currently a one click port, and I doubt you'll ever get a one-click migration like migrating from a VS 2013 project to a VS 2015 project. The entire startup flow is different, and to automate switching to that would be incredibly difficult. For now, the way I am looking at it is that moving to .NET Core is essentially a rewrite. As to whether that is worth it to you for your project - well that's really hard to say and also probably not well suited to that site.
That said, if you do rewrite you can probably bring along a lot of your business logic. You just will need to redo a lot of the other structure.
There's no easy way to move a project from .NET Framework to .NET Core. Possibly you'll need to rewrite or start from scratch.
There are some major differences between two
Format of configuration files (web.config vs appsettings.json)
Used libraries
Startup files (Global.asax vs Startup.cs)
Lack of static objects in .Net Core. Like Session and Application
objects - which is a good thing btw.
Many of the .Net Framework libraries are dependant on
app.config/web.config files

Does ASP.NET use a different .NET framework than desktop?

I Was just reading this post: http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx
It left me a bit confused since the first picture in the article seems to imply that .NET desktop apps and ASP.NET don't share the same framework implementation. I was always under the impression that it was. Any ideas?
They use the same .NET framework.
But they don't have to. And this is the way the .NET ecosystem is evolving right now - ways to avoid using the full (ever growing) .NET framework for everything.
As a bonus, the new .NET Framework Core is open-sourced. This is not entirely posssible with the whole .NET framework, since it includes a whole lot of licenses and proprietary technologies.
Given all that, it's now possible to deploy very light-weight web applications using ASP.NET, not even having to use IIS (thanks to OWIN). You only have to include the packages you need - instead of having a single monolithic runtime and BCL, there's hundreds of NuGet packages you choose to use (or not).
You will have to better define "the same framework implementation", as they (full .NET Framework and .NET Core) are built from the same code base with different configuration, and also host your web applications in a slightly different way.
The most important getaway of that article should be "ASP.NET 5 can run on both .NET Framework 4.6 and .NET Core 5". You get different benefits from each runtimes,
.NET 4.6 gives you best compatibility against previous .NET runtimes.
.NET Core 5 gives you flexibility on running multiple customized DNX side by side, and portability to Linux and OS X.
Unfortunately Microsoft decides to limit desktop apps to .NET 4.6, but Mono guys have demonstrated possibility to run some (such as WinForms apps) on .NET Core,
https://github.com/akoeplinger/mono-winforms-netcore

Future plans to consider for asp.net mvc 5.2 web application, with releasing asp.net mvc6 (vnext)

I need to get any ideas of how i should be managing our previous asp.net MVC 5.2 web application.. now i am using asp.net mvc-5.2 with entity framework 6.0. and i want to start phase-2 for some of these projects. so should i consider upgrading my mvc 5.2 to be using mvc6 (vnext) first ? and will there be any migration plans ?
second question , when is it expected for vnext to be released? or it is has been officially released ?
third question, will i be able to create a vnext project inside VS 2012 ?
I would simply recommend following the standard best practice of n-tier architecture and keeping logic related to things like querying a database in class libraries. MVC 6 is drastically different from previous versions, so there's no easy migration. You'll basically need to start a brand new project and move over relevant code where you can and spend a good bit of time converting code. For example, child actions are gone and have been replaced with view components. You'll need to go through any child actions you're using currently and create view components out of them. As I said, making sure your current MVC project is as thin as possible (by factoring out code into class libraries and such) will go a long way in reducing the amount of code you need to move/change.
As far as I'm aware, no release date has been set, but at least in the alpha and beta phases of Visual Studio 2015 and ASP.NET 5/MVC 6, Windows 10 has been required, so there won't be an official release likely until Windows 10 is public. However, Visual Studio 2015 has reached release cadidate stage, so I'd say it's definitely close, either launching alongside Windows 10 or shortly after.
Kind of answered this in point 2, but ASP.NET 5/MVC 6 will require VS2015. As far as I'm aware, there's no plans to add support to lesser versions. A lot of that has to do with Rosyln, the new .NET compiler. Trying to bootstrap previous versions of VS with support for an entirely new compiler/syntax engine would be a monstrous task. However, VS has been on an MSDN subscription model for many versions now and as long as you're a current subscriber you can always download the latest version for free. If you're not an MSDN subscriber, you can still download the community edition of VS 2015 for free. It's missing a lot of the more advanced VS features, but it's still totally sufficient for web development work.

Resources