A Look at the .NET Family
Hey guys! Let’s look at .NET and its various frameworks.
.NET is a general purpose development platform. It can be used for any kind of app type or workload where general purpose solutions are used. There are multiple implementations of the .NET depending on the OS platform (Windows, Linux, MacOS, iOS, Android and Windows 10 UWP) and workload type (server/desktop/mobile). Practically, .NET is a set of frameworks sharing common pillars but also with differences between frameworks.
What is the .NET Framework?
.NET Framework is the most known today and it is Microsoft’s primary development platform. It was meant to create applications, which would run on the Windows Platform. It provides the necessary compile time and run-time foundation to build and run any language that conforms to the Common Language Specification (CLS).
The .Net framework can be used to build applications ranging from console applications, across rich client (WPF) applications to scalable web applications. Various sub-frameworks of the .NET Framework includes Windows Forms, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API etc.
What is the .NET Core?
ASP.NET Core is a free and open-source web framework, and the next generation of ASP.NET, developed by Microsoft. It can be used to develop applications on any platform (Windows, Linux, MacOS). ASP.NET Core is a redesign of ASP.NET Framework, with architectural changes that result in a leaner, more modular framework.
The Common Language Runtime in the .NET Core is called CoreCLR. Unlike the .NET Framework that has a single class library, the .NET Core features CoreFX which is a modular collection of libraries. This allows you to include just the libraries that your app needs without the overhead of including those that you don’t need.
ASP.NET Core is open source and community focused. ASP.NET Core MVC provides features to build web APIs and web apps.
What is Xamarin?
Xamarin is a platform for developing native iOS, Android, MacOS and Windows apps using existing .NET skills and codes. Xamarin is based on Mono which is a cross-platform implementation of the Common Language Infrastructure (CLI) and the Common Language Specifications often called Microsoft .NET.
Apps created with Xamarin are native providing similar performance to the apps created with Objective-C/Swift for iOS or Java for Android.
Some features of Xamarin are; Native User Interfaces, Native API Access, Native Performance (they are complied for native performance), Code Sharing (The same logic and UI can be used for iOS/Android/Windows 10 UWP).
-UWP means Universal Windows Platform.
Having talked about the various .NET Frameworks, We can decide on what platform to use when building an application.
.NET Core should be used when looking to;
- Build applications that should run across platforms i.e Windows, Linux and MacOS.
- Build a microservice.
- Develop with heavy use of Command Line
- Build Windows 10 UWP .NET apps.
.NET Framework on the other hand should be used when looking to;
- Build applications that would run on the windows platform.
- Build Forms based/Web based applications and Web services.
Xamarin should be used when looking to create native mobile apps with the best possible UI and performance targeting several OS platforms.
I hope you have been able to learn one or two things from this post. If you have any questions or clarifications, feel free to drop a comment.