Skip to main content
Second iteration [<https://en.wikipedia.org/wiki/IOS>].
Source Link
Peter Mortensen
  • 31.4k
  • 22
  • 110
  • 134

Another way of explaining the difference could be with real world examples, as most of us mere mortals will use existing tools and frameworks (Xamarin, Unity, etc.) to do the job.

So, with .NET Framework you have all the .NET tools to work with, but you can only target Windows applications (UWP, Windows Forms, ASP.NET, etc.). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have fewer tools, but you can target the main desktop platforms (Windows, Linux, and Mac). This is specially useful in ASP.NET Core applications, since you can now host ASP.NET on Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, I don't think that's a good idea.

With .NET Standard you have even fewer tools, but you can target all/most platforms. You can target mobile thanks to Xamarin, and you can even target game consoles thanks to Mono/Unity. It's also possible to target web clients with the UNO platform and Blazor (although both are kind of experimental right now).

In a real-world application you may need to use all of them. For example, I developed a point of sale application that had the following architecture:

Shared both server and slient:

  • A .NET Standard library that handles the models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Since it's a .NET Standard library, it can be used in any other project (client and server).

Also a nice advantage of having the validation on a .NET standard library since I can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server side (Web API):

  • A .NET Standard (could be .NET Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, I can host the application on a Linux server.

Client side (MVVM with WPF + Xamarin.Forms Android/IOSiOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels logic. It is used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. WPF applications can be .NET core now, although they only work on Windows currently. AvaloniaUI is a good alternative for making desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin forms views.

  • A Xamarin Android and Xamarin iOS project.

So you can see that there's a big advantage here on the client side of the application, since I can reuse both .NET Standard libraries (client API and ViewModels) and just make views with no logic for the WPF, Xamarin and iOS applications.

Another way of explaining the difference could be with real world examples, as most of us mere mortals will use existing tools and frameworks (Xamarin, Unity, etc.) to do the job.

So, with .NET Framework you have all the .NET tools to work with, but you can only target Windows applications (UWP, Windows Forms, ASP.NET, etc.). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have fewer tools, but you can target the main desktop platforms (Windows, Linux, and Mac). This is specially useful in ASP.NET Core applications, since you can now host ASP.NET on Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, I don't think that's a good idea.

With .NET Standard you have even fewer tools, but you can target all/most platforms. You can target mobile thanks to Xamarin, and you can even target game consoles thanks to Mono/Unity. It's also possible to target web clients with the UNO platform and Blazor (although both are kind of experimental right now).

In a real-world application you may need to use all of them. For example, I developed a point of sale application that had the following architecture:

Shared both server and slient:

  • A .NET Standard library that handles the models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Since it's a .NET Standard library, it can be used in any other project (client and server).

Also a nice advantage of having the validation on a .NET standard library since I can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server side (Web API):

  • A .NET Standard (could be .NET Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, I can host the application on a Linux server.

Client side (MVVM with WPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels logic. It is used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. WPF applications can be .NET core now, although they only work on Windows currently. AvaloniaUI is a good alternative for making desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin forms views.

  • A Xamarin Android and Xamarin iOS project.

So you can see that there's a big advantage here on the client side of the application, since I can reuse both .NET Standard libraries (client API and ViewModels) and just make views with no logic for the WPF, Xamarin and iOS applications.

Another way of explaining the difference could be with real world examples, as most of us mere mortals will use existing tools and frameworks (Xamarin, Unity, etc.) to do the job.

So, with .NET Framework you have all the .NET tools to work with, but you can only target Windows applications (UWP, Windows Forms, ASP.NET, etc.). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have fewer tools, but you can target the main desktop platforms (Windows, Linux, and Mac). This is specially useful in ASP.NET Core applications, since you can now host ASP.NET on Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, I don't think that's a good idea.

With .NET Standard you have even fewer tools, but you can target all/most platforms. You can target mobile thanks to Xamarin, and you can even target game consoles thanks to Mono/Unity. It's also possible to target web clients with the UNO platform and Blazor (although both are kind of experimental right now).

In a real-world application you may need to use all of them. For example, I developed a point of sale application that had the following architecture:

Shared both server and slient:

  • A .NET Standard library that handles the models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Since it's a .NET Standard library, it can be used in any other project (client and server).

Also a nice advantage of having the validation on a .NET standard library since I can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server side (Web API):

  • A .NET Standard (could be .NET Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, I can host the application on a Linux server.

Client side (MVVM with WPF + Xamarin.Forms Android/iOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels logic. It is used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. WPF applications can be .NET core now, although they only work on Windows currently. AvaloniaUI is a good alternative for making desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin forms views.

  • A Xamarin Android and Xamarin iOS project.

So you can see that there's a big advantage here on the client side of the application, since I can reuse both .NET Standard libraries (client API and ViewModels) and just make views with no logic for the WPF, Xamarin and iOS applications.

Active reading [<en.wiktionary.org/wiki/mere_mortal#Noun> <en.wikipedia.org/wiki/Video_game_console> <en.wikipedia.org/wiki/IOS>]. Used more standard formatting (we have italics and bold on this platform). In English, the subjective form of the singular first-person pronoun, "I", is capitalized.
Source Link
Peter Mortensen
  • 31.4k
  • 22
  • 110
  • 134

Another way of explaining the difference could be with real world examples, as most of us mere mortals will use existing tools and frameworks (XamarinXamarin, UnityUnity, etc.) to do the job.

So, with .NET Framework you have all the .NET tools to work with, but you can only target Windows applications (UWPUWP, WinformsWindows Forms, ASP.NETASP.NET, etc.). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have lessfewer tools, but you can target the main Desktop Platformsdesktop platforms (Windows, Linux, and Mac). This is specially useful in ASP.NET Core applications, since you can now host AspASP.net inNET on Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, iI don't think that's a good idea.

With .NET Standard you have even lessfewer tools, but you can target all/most platforms. You can target Mobilemobile thanks to Xamarin, and you can even target Game Consolesgame consoles thanks to Mono/Unity. Update: It's also possible to target web clients with the UNO platform and Blazor Blazor (although both are kindakind of experimental right now).

In a real world-world application you may need to use all of them. For example, iI developed a point of salepoint of sale application that had the following architecture:

Shared both Serverserver and Clientslient:

  • A .NET Standard library that handles the Modelsmodels of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Also a nice advantage of having the validation on a .NET standard library since iI can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server Sideside (Web API):

  • A .NET Standard (could be .NET Core as well) library that handles all the database database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, iI can host the application on a Linux server.

Client Sideside (MVVMMVVM with WPFWPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels LogicViewModels logic. UsedIt is used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. Update: WPF applications can be .NET core now, although they only work on windowsWindows currently. AvaloniaUI is a good alternative for making Desktopdesktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin Formsforms views.

  • A Xamarin Android and Xamarin IOSiOS project.

So you can see that there's a big advantage here inon the client side of the application, since iI can reuse both .NET Standard libraries (Clientclient API and ViewModels) and just make views with no logic for the WPF, Xamarin and IOSiOS applications.

Another way of explaining the difference could be with real world examples, as most of us mortals will use existing tools and frameworks (Xamarin, Unity, etc) to do the job.

So, with .NET Framework you have all the .NET tools to work with but you can only target Windows applications (UWP, Winforms, ASP.NET, etc). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have less tools but you can target the main Desktop Platforms (Windows, Linux, Mac). This is specially useful in ASP.NET Core applications, since you can now host Asp.net in Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, i don't think that's a good idea.

With .NET Standard you have even less tools but you can target all/most platforms. You can target Mobile thanks to Xamarin, and you can even target Game Consoles thanks to Mono/Unity. Update: It's also possible to target web clients with UNO platform and Blazor (although both are kinda experimental right now).

In a real world application you may need to use all of them. For example, i developed a point of sale application that had the following architecture:

Shared both Server and Client:

  • A .NET Standard library that handles the Models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Also a nice advantage of having the validation on a .NET standard library since i can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server Side (Web API):

  • A .NET Standard (could be Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, i can host the application on a Linux server.

Client Side (MVVM with WPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels Logic. Used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. Update: WPF applications can be .NET core now, although they only work on windows currently. AvaloniaUI is a good alternative for making Desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin Forms views.

  • A Xamarin Android and Xamarin IOS project.

So you can see that there's a big advantage here in the client side of the application, since i can reuse both .NET Standard libraries (Client API and ViewModels) and just make views with no logic for the WPF, Xamarin and IOS applications.

Another way of explaining the difference could be with real world examples, as most of us mere mortals will use existing tools and frameworks (Xamarin, Unity, etc.) to do the job.

So, with .NET Framework you have all the .NET tools to work with, but you can only target Windows applications (UWP, Windows Forms, ASP.NET, etc.). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have fewer tools, but you can target the main desktop platforms (Windows, Linux, and Mac). This is specially useful in ASP.NET Core applications, since you can now host ASP.NET on Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, I don't think that's a good idea.

With .NET Standard you have even fewer tools, but you can target all/most platforms. You can target mobile thanks to Xamarin, and you can even target game consoles thanks to Mono/Unity. It's also possible to target web clients with the UNO platform and Blazor (although both are kind of experimental right now).

In a real-world application you may need to use all of them. For example, I developed a point of sale application that had the following architecture:

Shared both server and slient:

  • A .NET Standard library that handles the models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Also a nice advantage of having the validation on a .NET standard library since I can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server side (Web API):

  • A .NET Standard (could be .NET Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, I can host the application on a Linux server.

Client side (MVVM with WPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels logic. It is used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. WPF applications can be .NET core now, although they only work on Windows currently. AvaloniaUI is a good alternative for making desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin forms views.

  • A Xamarin Android and Xamarin iOS project.

So you can see that there's a big advantage here on the client side of the application, since I can reuse both .NET Standard libraries (client API and ViewModels) and just make views with no logic for the WPF, Xamarin and iOS applications.

added 655 characters in body
Source Link
Dev Kevin
  • 411
  • 4
  • 4

Another way of explaining the difference could be with real world examples, as most of us mortals will use existing tools and frameworks (Xamarin, Unity, etc) to do the job.

So, with .NET Framework you have all the .NET tools to work with but you can only target Windows applications (UWP, Winforms, ASP.NET, etc). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have less tools but you can target the main Desktop Platforms (Windows, Linux, Mac). This is specially useful in ASP.NET Core applications, since you can now host Asp.net in Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, i don't think that's a good idea.

With .NET Standard you have even less tools but you can target all/most platforms. You can target Mobile thanks to Xamarin, and you can even target Game Consoles thanks to Mono/Unity. Update: It's also possible to target web clients with UNO platform and Blazor (although both are kinda experimental right now).

In a real world application you may need to use all of them. For example, i developed a point of sale application that had the following architecture:

Shared both Server and Client:

  • A .NET Standard library that handles the Models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Since it's a .NET Standard library, it can be used in any other project (client and server).

Also a nice advantage of having the validation on a .NET standard library since i can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server Side (Web API):

  • A .NET Standard (could be Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, i can host the application on a Linux server.

Client Side (MVVM with WPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels Logic. Used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. Update: WPF applications can be .NET core now, although they only work on windows currently. AvaloniaUI is a good alternative for making Desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin Forms views.

  • A Xamarin Android and Xamarin IOS project.

So you can see that there's a big advantage here in the client side of the application, since i can reuse both .NET Standard libraries (Client API and ViewModels) and just make views with no logic for the WPF, Xamarin and IOS applications.

Another way of explaining the difference could be with real world examples, as most of us mortals will use existing tools and frameworks (Xamarin, Unity, etc) to do the job.

So, with .NET Framework you have all the .NET tools to work with but you can only target Windows applications (UWP, Winforms, ASP.NET, etc). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have less tools but you can target the main Desktop Platforms (Windows, Linux, Mac). This is specially useful in ASP.NET Core applications, since you can now host Asp.net in Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, i don't think that's a good idea.

With .NET Standard you have even less tools but you can target all/most platforms. You can target Mobile thanks to Xamarin, and you can even target Game Consoles thanks to Mono/Unity.

In a real world application you may need to use all of them. For example, i developed a point of sale application that had the following architecture:

Shared both Server and Client:

  • A .NET Standard library that handles the Models of my application.

Since it's a .NET Standard library, it can be used in any other library.

Server Side (Web API):

  • A .NET Standard (could be Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, i can host the application on a Linux server.

Client Side (MVVM with WPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels Logic. Used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application.

  • A .NET Standard library that handles Xamarin Forms views.

  • A Xamarin Android and Xamarin IOS project.

So you can see that there's a big advantage here in the client side of the application since i can reuse both .NET Standard libraries (Client API and ViewModels) and just make views with no logic for the WPF, Xamarin and IOS applications.

Another way of explaining the difference could be with real world examples, as most of us mortals will use existing tools and frameworks (Xamarin, Unity, etc) to do the job.

So, with .NET Framework you have all the .NET tools to work with but you can only target Windows applications (UWP, Winforms, ASP.NET, etc). Since .NET Framework is closed source there isn't much to do about it.

With .NET Core you have less tools but you can target the main Desktop Platforms (Windows, Linux, Mac). This is specially useful in ASP.NET Core applications, since you can now host Asp.net in Linux (cheaper hosting prices). Now, since .NET Core was open sourced, it's technically possible to develop libraries for other platforms. But since there aren't frameworks that support it, i don't think that's a good idea.

With .NET Standard you have even less tools but you can target all/most platforms. You can target Mobile thanks to Xamarin, and you can even target Game Consoles thanks to Mono/Unity. Update: It's also possible to target web clients with UNO platform and Blazor (although both are kinda experimental right now).

In a real world application you may need to use all of them. For example, i developed a point of sale application that had the following architecture:

Shared both Server and Client:

  • A .NET Standard library that handles the Models of my application.
  • A .NET Standard library that handles the validation of data sent by the clients.

Since it's a .NET Standard library, it can be used in any other project (client and server).

Also a nice advantage of having the validation on a .NET standard library since i can be sure the same validation is applied on the server and the client. Server is mandatory, while client is optional and useful to reduce traffic.

Server Side (Web API):

  • A .NET Standard (could be Core as well) library that handles all the database connections.

  • A .NET Core project that handles the Rest API and makes use of the database library.

As this is developed in .NET Core, i can host the application on a Linux server.

Client Side (MVVM with WPF + Xamarin.Forms Android/IOS):

  • A .NET Standard library that handles the client API connection.

  • A .NET Standard library that handles the ViewModels Logic. Used in all the views.

  • A .NET Framework WPF application that handles the WPF views for a windows application. Update: WPF applications can be .NET core now, although they only work on windows currently. AvaloniaUI is a good alternative for making Desktop GUI applications for other desktop platforms.

  • A .NET Standard library that handles Xamarin Forms views.

  • A Xamarin Android and Xamarin IOS project.

So you can see that there's a big advantage here in the client side of the application, since i can reuse both .NET Standard libraries (Client API and ViewModels) and just make views with no logic for the WPF, Xamarin and IOS applications.

Source Link
Dev Kevin
  • 411
  • 4
  • 4
Loading