Is it possible to work with clean architecture in ASP.NET MVC 5 on the .NET Framework 4.5 and 4.7.2? I ask the question because I see more examples on .NET Core.
Thanks
I prefer known work clean architecture for .NET framework 4.7.2 for an ASP.NET MVC 5 project written in C#.
Ive build out a service as a console application, it exists across 2 different projects in the solution, both are in .NET framework. I am wanting to add in an api level to this and am wondering if I should continue to use .NET framework for the web application project, or if I can use .NET Core without messing anything up.
It all depends on the APIs you use in your application. If you only use APIs included in .NET Standard then no problem to use them in an application under .NET 6. Otherwise I join Kirk Woll to migrate your code under .NET 6 especially since the unification of the platform. I think it will remain only .NET 6 aka .NET core in the future.
.NET Framework only supports the Windows platform.
.NET core supports Windows, Linux, and Mac OS.
.NET Core will not support andriod and ios.
.NET 5 supports Windows,MAC OS,LINUX,Anroid and IOS.
Am i correct in all the above points?
This is not a precise answer but good for a newcomer, prone to be confused and overwhelmed by the official and exhausting information.
There are two parallell platforms.
.NET Framework
.NET Core
.NET 5 will merge those two into a single one. So .NET 5 is the next generation (sort of) of .NET Core. But it't also quite more as well. As for the supporting OS's, you're not wrong but you're not quite right, neither. It's not precisely a yes/no issue. It may support certain features of some OS differently well and corresponding to your need or not. It's a jungle and it's constantly changing.
Now, you might have specific considerations like which should you learn at the moment. On that question - you should go with .NET 5. (Unless there's a specific reason, e.g. job requirement, for you to go with .NET Core 3.x, which is the current version, or .NET Framework 4.x, which is its current dito).
You may also wonder how big is the difference between the platforms. To that, there are two answers. For me, it's humongous - basically day and night. For you, assuming the proficiency level suggested by your question, it's negligible - you won't notice even if it kicks you in the nuts. It's a good thing. You can't pick wrongly.
Another issue might be whether you will be able to deploy your product the requested way. You will be. However, picking another framework may make that easier. It also may make that harder. Bottom line is, you won't know until you're there but the general purpose frameworks will never block you.
.NET 5 is a combined platform which includes libraries and frameworks from the following:
.NET Framework
.NET Core
Xamarin
For Cross-platform based development, the .NET Core framework versions 1.0 to 3.1 covers development of web apps, windows forms apps, server based apps, mobile apps and cloud hosted apps.
ASP.NET Core is the open-source version of ASP.NET, that runs on macOS, Linux, and Windows. Versions are from 1.1 to 3.1 within .NET Core and version 5 for .NET 5.
https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core
ASP.NET is the windows version of ASP.NET, a platform that allows development of web applications hosted on windows servers. Versions are from 1.x to 4.x.
https://dotnet.microsoft.com/apps/aspnet
The Xamarin platform (not part of .NET Core) allows cross-platform Android and IOS mobile development and is included as part of the .NET 5 platform.
https://dotnet.microsoft.com/apps/xamarin
For Windows platform based development, the .NET Framework versions 1.0 to 4.8 covers development of windows client and server applications.
https://learn.microsoft.com/en-us/dotnet/framework/get-started/overview
Due to the confusion with renaming some of the .NET Core frameworks to .NET 5 frameworks, Microsoft has kept the name "Core" in some of it's technologies.
For example, ASP.NET Core 3.1 keeps it's Core name with the new ASP.NET Core 5 framework instead of confusing it with ASP.NET 5 or ASP.NET MVC 5, which are still in use by many developers.
Another example is the .NET Framework based ORM provider Entity Framework 5, and the .NET Core based ORM provider Entity Framework Core 5, both of which keep their names to avoid confusion within the .NET 5 platform.
Depending on what your application development goals are (cross-platform, windows, mobile, server etc.) you can choose the project templates and libraries from .NET Core or .NET Framework compatible packages within .NET 5 (and beyond) that will achieve your goals.
We are using Adal as authentication library but we would like to use the policy functionality in Asp.Net Core security in our MVC5 application. The idea is to compile the Asp.Net Core library to .NET 4.6. This works! However, now I need to click the authentication things in my owin application.
Just adding the AuthorizeAttribute from the library doesn't work, it is not executed.
I have also read about the ported version from P. Schaeflein, but I would preffer to use the libraries provided by Microsoft.
Anyone an idea how to get this working?
Asp.net Core / .net core is a total rewrite of asp.net framework and the way it work is very different. For example Asp.net Core is most made around a Dependency Injection. So moving part of a framework that made for Asp.net Core to Asp.net MVC 4.6 made not work and would have to be rebuild to work with Asp.net MVC 4.6.
I am figuring out architectural components for my new web project. I am thinking to go with ASP.NET Core 1.0, EF7 stack. Some people suggest that ASP.NET Core 1.0 is in it's initial stage and it's not recommended to use it in enterprise web applications presently. Same opinions I heard in case of EF7 as well.
Mainly I want to know the disadvantages. Experts please explain the pros and cons of using ASP.NET Core 1.0 at present.
Somewhere they are true and somewhere they are wrong. ASP.NET Core is targeted by 2 frameworks .NET Core and .NET Framework. Both options are available in Visual Studio. You have to carefully choose, what is right for your project. Here are some differences\suggestions with ASP.NET Core and EF Core (EF 7 previously):
All .NET Framework Libraries (BCL or FCL) are not yet available for CoreFx (.NET Core library) but soon they will be available as the .NET team announced.
If your project uses .NET Framework libraries such as MailMessage and others, the use ASP.NET Core targeted with .NET Framework not .NET Core then you will be able to get all the features of .NET Framework in your ASP.NET Core application.
ASP.NET Core uses modern web work-flow for reducing page load times and for other attributes some of them are not available with the previous versions of ASP.NET.
EF Core 1.0 is new and cloud-optimized, it does not include (at least for now) featues which are available in EF 6.x such as Stored Procedures Mapping, Built-In feature for Seeding data and others.
If you want commercial projects that strongly rely on EF 6.x features which are not available now in EF Core, you can use ASP.NET Core 1.0 with .NET Framework with EF 6.x. I've a websites also created with ASP.NET Core with .NET Framework.
Here are some documentations for using ASP.NET Core 1.0 with EF 6.x and suggestions.