Articles

What is .NET? Complete Guide

Learn about the .NET platform that powers C# applications and a wide range of software solutions.

What is .NET?

Formally, .NET is an open source developer platform, created by Microsoft, for building many different types of applications. You can write .NET apps in C#, F#, Visual Basic, or other programming languages.

Informally, .NET is the tool that lets you build and run C# programs and other applications across different operating systems and devices.

When you download .NET, you’re really downloading a bundle of programs that:

  • Translate your code into instructions that a computer can understand

  • Provide utilities for building software, like tools for printing text to the screen and finding the current time

  • Define a set of data types that make it easier for you to store information in your programs, like text, numbers, and dates

Related Course

Build Web Apps with ASP.NET

Jumpstart your career with this skill path, first by learning the C# language, then building web apps with ASP.NET Core and the Razor Pages.Try it for free

Versions of .NET

There are a few versions of .NET. They do the same job, but they are meant for different operating systems:

  • .NET Framework is the original version of .NET that only runs on Windows computers. It’s important to note that .NET Framework development has largely been frozen at version 4.8.x, with Microsoft now focusing all new feature development on the modern .NET platform.

  • .NET (formerly .NET Core) is the new, cross-platform version that runs on Windows, macOS, and Linux computers.

In 2020, Microsoft renamed .NET Core to simply .NET, starting with .NET 5.

How do I get .NET?

So we know we want to work with C#, and we know we need .NET. How do we get the .NET platform on our computers?

The two main ways are:

1. Download Visual Studio, an integrated development environment (IDE) for .NET applications. It comes as an app, like the web browser you’re using to view this article. It comes with the .NET platform, a code editor, and additional tools to help you write code. Visual Studio

2. Download the .NET SDK (software development kit). It also comes with the .NET platform, but it has no code editing tools. Instead of an app on your computer, the SDK is accessed via a command-line interface (CLI) — to use an SDK, you’ll open up a terminal on your computer and type commands instead of clicking buttons. In this example, you can see a terminal in which the user ran commands like dotnet new and dotnet run to build a new application, then ran it (the app just prints out “Hello World!”). .NET SDK via command line interface

Why choose .NET?

There are several compelling reasons to choose .NET for your development projects:

  • Cross-platform compatibility: Modern .NET runs on Windows, macOS, and Linux, allowing you to develop and deploy applications across multiple operating systems.

  • Performance: .NET offers excellent performance with optimized code execution and memory management.

  • Large ecosystem: The platform comes with a vast library of pre-built components and a thriving community that provides packages through NuGet.

  • Enterprise support: Microsoft provides long-term support for .NET, making it a reliable choice for business applications.

  • Modern language features: Languages like C# continually evolve with modern programming paradigms and syntactic improvements.

  • Versatility: .NET supports various application types, from web and mobile to desktop, cloud, and IoT.

Key features of .NET

.NET includes several key features that make it a powerful development platform:

  • Common Language Runtime (CLR): The runtime environment that manages memory, handles exceptions, and provides security for your applications.

  • Base Class Library (BCL): A comprehensive collection of reusable types for common tasks like file handling, database connection, and network communication.

  • Language Interoperability: Code written in one .NET language can work seamlessly with code written in another .NET language.

  • Garbage Collection: Automatic memory management that frees developers from manual memory allocation and deallocation.

  • Just-In-Time (JIT) Compilation: Converts intermediate language code to machine code at runtime for optimized performance.

  • Asynchronous Programming Model: Built-in support for writing asynchronous code that improves responsiveness and scalability.

While C# is the most widely used .NET language, the platform supports several programming languages:

  • C#: A modern, object-oriented language that combines the power of C++ with the simplicity of Visual Basic. It’s the most popular choice for .NET development.

  • F#: A functional-first programming language that makes it easier to write concise, robust, and performant code.

  • Visual Basic .NET: A language designed to be approachable with syntax that resembles plain English, making it beginner-friendly.

  • TypeScript/JavaScript: With ASP.NET Core, you can use JavaScript and TypeScript for client-side development.

  • Python: Through projects like Pythonnet, developers can work with Python in .NET applications.

What about ASP.NET?

If we want to build programs specifically for the web, like websites, you’ll need to add more tools on top of .NET. One of the most popular is ASP.NET. To keep them separate, developers call .NET a platform and ASP.NET a framework. This is all you need to know about ASP.NET to get started with C#: we’ll cover the details in a separate article.

What can you build with .NET?

.NET is incredibly versatile, enabling developers to create a wide range of applications:

  • Web Applications: Using ASP.NET Core, you can build modern, cloud-based, internet-connected applications and APIs.

  • Desktop Applications: Create Windows desktop applications using Windows Forms, WPF (Windows Presentation Foundation), or the newer MAUI (Multi-platform App UI).

  • Mobile Applications: Build cross-platform mobile apps for iOS and Android using .NET MAUI or Xamarin.

  • Cloud Services: Develop microservices, serverless functions, and cloud-native applications that can be deployed to Azure or other cloud platforms.

  • Game Development: Create games using Unity with C# as the scripting language.

  • IoT Applications: Build applications for Internet of Things devices, from Raspberry Pi to industrial IoT solutions.

  • Machine Learning: Use ML.NET to add machine learning capabilities to your .NET applications without requiring expertise in data science.

  • Artificial Intelligence: Integrate AI capabilities through services like Azure Cognitive Services or custom ML.NET models.

Conclusion

.NET represents a comprehensive and versatile platform for building a wide variety of applications. Whether you’re just starting your programming journey or you’re an experienced developer looking to expand your toolkit, .NET offers a robust foundation with modern features, excellent performance, and cross-platform capabilities.

By understanding what .NET is and how it fits into the broader development ecosystem, you’re now better prepared to explore C# programming and build your first .NET application. The combination of powerful languages like C#, extensive libraries, and strong community support makes .NET an excellent choice for both learning programming concepts and developing professional applications.

Frequently asked questions

1. Is .NET free to use?

Yes, .NET is open source and free to use, even for commercial applications. Microsoft provides the entire platform under the MIT license, which means you can use, modify, and distribute it without cost.

2. Is .NET better than Java?

Both .NET and Java are powerful platforms with their own strengths. .NET offers excellent Windows integration, a modern language ecosystem with C#, and has become fully cross-platform in recent years. Java has widespread adoption, platform independence, and a vast ecosystem of libraries. Rather than one being “better” than the other, the choice often depends on specific project requirements, team expertise, and target platforms. Many organizations successfully use both platforms for different types of projects.

3. Do I need to learn C# before using .NET?

While C# is the most common language for .NET development, you can use other languages like F# or Visual Basic. However, most .NET learning resources focus on C#, so it’s often the easiest language to start with in the .NET ecosystem.

4. Can I build mobile apps with .NET?

Yes, you can build mobile applications for iOS and Android using .NET MAUI (Multi-platform App UI) or Xamarin, which are part of the .NET ecosystem. These frameworks allow you to share code across different mobile platforms.

5. Is .NET good for beginners?

.NET can be a good starting point for beginners, especially with languages like C# that have clear syntax and comprehensive documentation. Microsoft provides extensive learning resources, and the Visual Studio IDE offers features that help with code completion and error detection.

Codecademy Team

'The Codecademy Team, composed of experienced educators and tech experts, is dedicated to making tech skills accessible to all. We empower learners worldwide with expert-reviewed content that develops and enhances the technical skills needed to advance and succeed in their careers.'

Meet the full team