.Net standard version for .Net core 2.2 - asp.net-core

Googled a bit but couldn't find the .Net standard version for .Net core 2.2. Only version I got is,
Any hint please?

As you can see in the table you have uploaded, .NET Standard 2.0 is the latest available and it is fully supported by .NET Core v2.0. As you can see in this release doc. section, .NET Standard 2.1 will be supporting .NET Core 3.0 and also .NET Core 2.2. For the whole page check here.
In my opinion, you can go with .NET Standard 2.0 if you do not deal with extreme things (I mean recently added parts of .NET Core). This can yield some errors but still worth the try.

Related

ASP.NET Core Web Application with .NET Framework, I want to switch the target to .NET Core

I'm trying to change ASP.NET Core web application with .NET Framework as a target framework to use .NET Core 3.1.X
I try changing the target framework in the project file (.csproj), I encounter dependency issues, dependency conflict....
Is there any straightforward method to solve this issue?
Before you start your migration, you should know there’s several difference between .net framework and .net core, so please follow the official document to do some Pre-Migration steps.
Then you can follow this official document to migrate your application from framework to .net core 3.1.
Since your ideal .net core version is 3.1, still I suggest you can try to use .net 6. Also, you can use this upgrade tool to reach your goal. In fact, using this upgrade assistant is a batter choice than you doing it by yourself. Even if you are insisting using .net core 3.1, you can use this assistant to upgrade your version to 6 first then change it to 3.1.
Note:
Before you start your migration, please make a backup of your original project. That's because some packages in .net framework may be no longer available in .net core. So if there're some errors occur, you can go back to the original one.

What will happen to the Microsoft.AspNetCore.* namespace in ASP.NET 5.0?

.NET 5.0 will replace .NET Core 3.x when it is released in November—and, thus, ASP.NET 5.0 will replace ASP.NET Core 3.x.
Edit: This question is based on a fundamentally incorrect assumption. While the next version of .NET Core will, in fact, be .NET 5.0, the next version of ASP.NET Core will be ASP.NET Core 5.0. See the answers from #Camilo-Terevinto and #omajid for details.
Despite this, as of Preview 8 (8.20414.8), packages, assemblies, and namespaces still contain AspNetCore in their names. For example, see the following NuGet packages:
Microsoft.AspNetCore.Http.Features
Microsoft.AspNetCore.Authorization
Microsoft.AspNetCore.DataProtection
Microsoft.AspNetCore.Razor.Language
If you go to the documentation for e.g. the Microsoft.AspNetCore.Http.Features namespace on learn.microsoft.com, however, you'll be redirected back to the ASP.NET Core 3.1 documentation with the warning:
The requested page is not available for ASP.NET Core 5.0 Preview. You have been redirected to the newest product version this page is available for.
Question: Do we have any evidence of what these packages, assemblies, and namespaces will be named in the .NET 5.0 release? Will they remain Microsoft.AspNetCore for backward compatibility, as the current namespaces suggest? Will they become Microsoft.AspNet for consistency with the product name, as the documentation suggests? Or does this remain TBD?
Background: Like other developers, I am working on the .NET 5.0 version of an open source library, and we aim to follow the same naming conventions as the underlying framework for the sake of familiarity, discovery, and consistency.
and, thus, ASP.NET 5.0 will replace ASP.NET Core 3.x.
That is not accurate, ASP.NET Core 5.0 will replace ASP.NET Core 3.x. The moniker that will change is .NET Core to .NET. Migration guide ASP.NET Core 3.x to ASP.NET Core 5.0.
Basically:
.NET Framework 4.8 -> .NET 5
.NET Core 3.1 -> .NET 5
ASP.NET Core 3.1 -> ASP.NET Core 5
thus, ASP.NET 5.0 will replace ASP.NET Core 3.x.
No, it won't. It's an unfortunate point of confusion, but it's not true.
Let me quote David Fowler, who is one of the ASP.NET Core architects:
There's no plan to change asp.net core to asp.net.
.NET Core becomes .NET 5, but ASP.NET Core stays as ASP.NET Core.

Dapper Compatibility .Net Core 3.1

Release notes say that Dapper is compatible with .NET Standard 2.0. Why does it work with .Net Core 3.1? Since what release does it work?
OK - I understand. .Net Standard 2.0 asks for a minimum version (.Net core 2.0). 3.1 is therefore compatible.
Thanx DavidG!

Is there a version of NPOI that works with ASP.NET Core 1.1 (not core 2.0)

Is there a version of NPOI that works with ASP.NET Core 1.1 (not core 2.0). Every package is either for the Windows version or Core 2.0, which, in both cases, is not working with Core 1.1.
Thanks for helping
Likely not. The library is probably depending on .NET Standard 2.0 for .NET Core support. The earliest version of .NET Core to be cross-targetable is 2.0. For what it's worth, there's really zero reason to still be on .NET Core 1.1. It's not that big of a deal to upgrade, and honestly .NET Core 1.1 was not really viable for production use.

Backwards compatability between .Net 2.0/3.5 and 4.0

I have an app that I've upgraded from 3.5 to 4.0. But not all my 3rd party assemblies are built on .net 4.0. How is it that I'm still able to reference those assemblies without any problems? For instance, if another assembly references system.dll 2.0, and my upgraded project references system.dll 4.0 how does .net handle this?
Obviosly this wasn't a problem upgrading between 2.0 and 3.5 because they use the same BCL and CLR versions, but 4.0 uses a completely different BCL and CLR right?
Here's an example. I have an app built using WF (Windows Workflow) in v3.5. I've upgraded the app to v4.0, but I wasn't required to implement all the breaking changes in the new version of workflow. It still using the old 3.5 version of WF.
.NET 4.0 can reference .NET 2.0 assemblies, but the reverse is not true.
.NET 4.0 assemblies support everything that 2.0 had, but adds in things like optional parameters, dynamic types, and etc...
So, since 2.0 doesn't have anything that 4.0 doesn't, 4.0 can easily support 2.0.
BCL and CLR are different but not completely different. Basically they worked hard to not break backwards compatibility.
You could also force your 3rd party assemblies to run under 3.5, as described in this post.