1. What is the .NET Framework?
Introduced by Microsoft in 2002, .NET is a huge and one of the most versatile platforms for developing mobile, desktop, web applications, services, IoT, and games. It embraces multiple tools and technologies, as well as 32 coding languages, both front-end and back-end, including C# , managed C++, VB.NET, Visual COBOL, IronPython, IronRuby, and more. It also boasts a systematic ecosystem for developing applications, QA, reengineering, and migration
Before 2016, .NET could only be used for Windows. However, the newly released .NET Core version is cross-platform. You can find a comparison of the .NET Framework and .NET Core further in the text.
2. What is .NET used for?
.NET offers endless possibilities for creating reliable and modern software. Here are examples of what you can develop on its basis, to name just a few:
- Console-based apps
- Windows GUI apps
- Windows services apps
- Web services
- Mobile and PDA (for hand-held devices) apps
- Service-oriented and workflow-enabled apps
In the .Net Customer Showcase from Microsoft, you can find a list of .NET projects with a detailed description of tools, approaches, and business outcomes.
3. What are the advantages of .NET?
The Framework provides work efficiency, time, and cost economy when developing a project thanks to:
- object-oriented programming that eliminates unnecessary code requires fewer efforts
- reusable code and components
- easier post-development deployment due to such features as controlled code sharing, side-by-side versioning, no-impact applications, etc.
- stable and reliable performance
- multi-route integration with legacy systems - the Framework can effortlessly process all types of XML documents and create files of all formats
- security - .NET, is as secure as Java in terms of vulnerability density; it's easy for developers to write secure code and system administrators - to customize code access to protected resources
4. What is a .NET ecosystem?
The .NET ecosystem comprises several significant high-level components - the Framework itself, .NET Core, and Xamarin.
5. What is Xamarin?
Xamarin is an open-source platform, introduced by the eponymous company, for mobile app development (iOS and Android) with .NET and C#. It allows platform-specific hardware acceleration and ahead-of-time (AOT) compilation for enhanced memory sharing and fast native (or near-native) performance. It perfectly matches the modern business demand for a universal app that runs smoothly on all mobile devices. Apart from the possibility of creating a single code, Xamarin gives access to the native APIs and toolkits of all platforms. The usage of C# and .NET provides high productivity, clarity, and simplicity to mobile development. Besides, everything can be done in a single environment -Visual Studio.
There are two development approaches in Xamarin:
Xamarin Forms- allows designing one visual interface, attaching C# logic to it, and sharing the UI and back-end codebase across all platforms with minor tweaks.
Xamarin Native - has separate libraries for different platforms, with unique UI code for each platform and shared back-end code as with Forms.
A sharable codebase significantly shortens time to market and makes Xamarin apps much cheaper. It also provides a considerable economy through app maintainability -all changes and fixes made to the code are automatically applied on all platforms. Another advantage of Xamarin is its advanced testing and monitoring tools - the Xamarin Test Recorder and The Xamarin Test Cloud for revealing performance issues before release.
6. What is Azure, and why use it for .NET apps?
Azure is a complex of hybrid cloud computing services ( SaaS , PaaS , and IaaS) from Microsoft. It helps to create, deploy, and manage apps and is compatible with both Microsoft-specific and third-party software and systems. It provides more than a hundred services that natively support .NET and ensure excellent developer productivity for cloud apps.
We have already mentioned Visual Studio - a default IDE (Integrated Development Environment) for .NET. Azure has powerful integrated Visual Studio tools for developing, debugging, monitoring, optimizing, and one-click deployment of apps in the cloud. It is also effortless to migrate .NET applications to the cloud with free assistance from Microsoft.
7. What is ASP.NET?
The popular UI feature of ASP.NET- Blazor - allows creating interactive apps that can work on the server and client-side. The advantages Blazor gives to developers:
- client and server-side of the app can use common logic
- Visual Studio with embedded patterns makes development faster
Currently, Blazor has two subsystems:
Blazor Server - allows creating server apps and is supported by ASP. NET Core
Blazor Web Assembly - allows creating one-page interactive client-side apps that run in the user's browser with the help of Web Assembly Technology.
8. What are the benefits of .NET core vs .NET framework?
Below we have compared the key features:
Only runs on Windows
Runs on windows, Linux and macOS
Open source but without direct contributions
Libraries, compiler, runtime, libraries, and all open source and are constantly improved by contributors
Automatically updated by Windows on all machines
Use of Microservices
Use of microservices, but more modern approach
Good for high-performance and scalable system without UI
Also good for high-performance and scalable system without UI, but faster
Continuous upgrades and changes
Efficient performance but faster
9. How to choose between the .NET Framework and .NET Core?
NET Framework might be a better option if you already have an ongoing project and a development team with .NET expertise, value stability, and don't want to learn and familiarize yourself with constant upgrades and updates. .NET Core wins if you start a project from scratch, want a cross-platform tool, and are not afraid of adjusting to changes, as it will undergo a maturing process.
Microsoft recommends using the latest stable release of .NET in most cases. As of summer, 2020, it is .NET Core 3.1.
"New applications should be built on .NET Core. .NET Core is where future investments in .NET will happen.", says Scott Hunter, Director of Program Management at Microsoft.
10. What is the future of .NET?
Microsoft has announced .NET 5, which will be available on November 10, 2020. It will be the only version of .NET and will lose the "Core" branding to avoid confusion with multiple versions. It is a merger between .NET Core and Mono/Xamarin in one base class library (BCL) and toolchain (SDK). The new release will be a single platform to use for all modern .NET code, including new versions of C#. It will also have several enterprise-ready improvements as well as an excellent UI framework for building apps across platforms - .NET Multi-Platform App UI (.NET MAUI). .NET 5 will allow using the same .NET APIs and languages to create the widest range of applications for different operating systems and chip architectures. Making changes to the build configuration of apps will be effortless with Visual Studio, Visual Studio for Mac, Azure Devops, Visual Studio Core or at the command line.