.NET 9 What’s New: A Simple Pictorial Guide

ONUR DİKMEN
3 min readMay 9, 2024

--

What’s New in .NET 9?

.NET 9 is the latest version of .NET, an open-source platform developed by Microsoft. Released in 2023, this version offers many improvements in terms of performance, security, and functionality.

In this article, we will take a look at some of the most important innovations in .NET 9 in a simple and pictorial way.

1. Top-level Statements:

You can now write code in your code files without the main() method. With the top-level statements feature, your code is executed directly at the entry point of the program. This allows you to make your code more organized and readable.

Source: https://learn.microsoft.com/en-us/dotnet/csharp/tutorials/top-level-statements

Code Example:

C#

// This code file does not require a main() method
Console.WriteLine("Hello, world!");// You can also define methods and classes in top-level statements
public class Person
{
public string Name { get; set; }
public int Age { get; set; } public void PrintInfo()
{
Console.WriteLine($"Name: {Name}");
Console.WriteLine($"Age: {Age}");
}
}var person = new Person()
{
Name = "John Doe",
Age = 30
};
person.PrintInfo();

2. Init-only Properties:

Init-only properties are property types that can only be evaluated when an object is created. This prevents the values of these properties from being changed after the object is created. This makes your code more secure and bug-free.

Source: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/init

Code Example:

C#

public class Person
{
public string Name { get; init; } // Init-only property
public int Age { get; set; }
}
var person = new Person()
{
Name = "Jane Doe" // The Name property can only be set here
};
// person.Name = "John Doe"; // This will cause a compiler error

3. Target-typed New Expressions:

You now need to explicitly specify the type of the object when creating new objects. This helps prevent compiler errors and code errors.

Source: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new

Code Example:

C#

// This code will cause a compiler error because the type is not specified
// Person person = new();
Person person = new Person(); // Correct syntax

4. Records:

Records are lightweight and immutable data types that can be used to hold data. Records are simpler and more performant than objects and are typically used to hold data such as settings or state information.

Source: https://learn.microsoft.com/en-us/dotnet/csharp/tutorials/records

Code Example:

C#

public record Person(string Name, int Age);
var person = new Person("Alice", 25);
Console.WriteLine($"Name: {person.Name}");
Console.WriteLine($"Age: {person.Age}");

5. And Much More…

There are many more innovations in .NET 9 than those listed above. These innovations include:

  • Improved performance
  • Enhanced security
  • New APIs and tools
  • Better debugging experience

Conclusion

.NET 9 is a major release that brings many new features and improvements to the .NET platform. These innovations will help .NET developers be more productive and write better code.

I hope this simple pictorial guide has helped you understand the innovations in .NET 9. For more information, you can refer to the official .NET 9 documentation.

Note: This article is for informational purposes only. It is important to read the official documentation and review code examples before starting to use .NET 9.

info

  1. github.com/exercism/csharp
  2. https://blog.ndepend.com/using-c9-record-and-init-property-in-your-net-framework-4-x-net-standard-and-net-core-projects/
  3. https://davecallan.com/target-typed-new-expressions-infer-type-right-csharp9/
  4. https://www.jenx.si/2020/09/26/csharp-9-top-level-statements/

--

--

ONUR DİKMEN
ONUR DİKMEN

Written by ONUR DİKMEN

Technical Team Lead | Business Development Lead at Truzim | Passionate about Innovation and Growth in Tech

No responses yet