Categories
.NET .NET 10 ASP.NET Core Aspire Automation Azure Blazor C# CLI Code Desktop Developer Getting Started Linux macOS Mobile Visual Studio VS Code Web What's New Windows

Using C# Ignored Directives: A Guide for Programmers

C# – Preprocessor Directives are highly useful for writing code that can be compiled conditionally, depending on factors like the target framework, target platform, or build configuration.

For example:

#if NET9_0_OR_GREATER
// The code within this block will execute only on .NET 9 or higher
#endif

#if ANDROID
// The code within this block will execute only on the Android OS
#endif

#if DEBUG
// The code within this block will execute only in Debug mode
#endif

C# – Ignored Directives have a similar syntax but are ignored by the compiler because they are for tooling.

The real purpose of this feature is to execute a C# source file directly from the CLI. It doesn’t need a project file. Now, even the plain console app requires a project file, despite the much-simplified top-level statements feature.

Categories
.NET .NET 10 .NET MAUI Android Blazor C# Code Deep Dive Desktop Developer Getting Started Hybrid iOS Learn Mobile Preview Visual Studio VS Code Web What's New Windows Xamarin Xamarin.Forms

What’s New in C# 14 – Extension Members – A Comprehensive Guide

Introduced in C# 3.0, extension methods are a valuable feature for external types, especially when those types are sealed, such as string.

Roughly two decades later, C# has now finally unveiled support for extending everything.

With the release of .NET 10 Preview 3 (C# 14), it is now possible to define static methods, instance properties, and static properties too. Support for other members will be incorporated in future releases.

Syntactically, an extension method should be defined within a top-level static class. The type of its first mandatory parameter, the one qualified with the this keyword, determines the type being extended. Henceforth, this will be referred to as the receiver type.

All standard query operators of LINQ are defined as extension methods. They are defined in the Enumerable static class within the BCL (in the System.Linq namespace).

For example, the Where extension method applies to all types that implement IEnumerable<T>. Validations and optimizations aside, the typical implementation is as outlined below.

Categories
.NET .NET 8 .NET 9 .NET MAUI Android Blazor C# Code Desktop Developer General Getting Started Hybrid iOS macOS Made Easy MVVM NuGet Preview Toolkit Visual Studio VS Code What's New Windows Xamarin Xamarin.Forms

MVVM Toolkit v8.4: Custom Access Modifiers for Partial Properties – How To

This article is part of the MVVM – Made Easy series, with a focus on the initial preview release of v8.4 of the CommunityToolkit.Mvvm (aka Microsoft MVVM Toolkit) NuGet package, which includes support for Partial Properties.

Update as of Dec 2024: The v8.4 stable release is now available. For further details, please refer to this blog post.

Here are the links to other articles in this series.

Support for Partial Properties is one of most sought after features in the MVVM toolkit as it allows to define custom access modifier for property accessors and makes code more readable. The need for an analyzer to track the usage of a field instead of a (generated) property is no longer necessary.

Categories
.NET .NET 8 .NET 9 .NET MAUI Android Blazor C# Desktop Developer Events F# General Hybrid iOS macOS Mobile Standup Video Visual Studio VS Code Web What's New Windows Xamarin Xamarin.Forms

Join the .NET MAUI Community Standup This November

This November, join David, Rachel, and a special guest (probably Stephan Arnas) as they discuss the latest developments in the realm of .NET MAUI during the monthly community standup preceding .NET Conf 2024 next week.

Consult the article titled Getting Started with Syncfusion’s .NET MAUI Toolkit to start using this free and open-source toolkit, with support within the All-in-One MAUI Templates for the initial setup.

The exciting news is that the second set of 5 controls is nearing its release.

  • Button
  • Bottom Sheet
  • Calendar
  • Numeric Entry
  • Numeric Up Down

Remember to join live on Thu, Nov 7 at 18:00 UTCClick the link to access the timing in your local or preferred time zone. Note, that it’s an hour behind its usual schedule.

Update: The community links for this month’s standup will be updated here.

Happy coding. Stay connected as we continue to learn and share the experiences from this exciting journey of being a .NET developer.

Categories
.NET .NET 8 .NET 9 .NET Conf .NET MAUI Android Blazor C# Desktop Developer Events General Hybrid iOS macOS Mobile Visual Studio VS Code Web Windows Xamarin Xamarin.Forms

Join .NET Conf 2024 Online: Explore .NET 9 Features

November is set to be an exceptionally significant month for .NET developers globally, as a new version of .NET will be officially released during its annual event, .NET Conf. Similar to previous years, this year’s event will also be conducted virtually, allowing participation online. The highly anticipated .NET 9 is scheduled for release during this conference, which will take place over three days from Tue, Nov 12, 2024, to Thu, Nov 14, 2024. Please mark your calendars accordingly.

.NET Conf 2024 - Annual Virtual Developer Event - Release of .NET 9
.NET Conf 2024 – Annual Virtual Developer Event – Release of .NET 9

Quite like .NET 7, .NET 9 is also a short-term support (STS) release, which will be supported for 18 months till mid-May 2026. Even-numbered releases are LTS whereas odd-numbered are STS. More details on the release lifecycle are here. The support for .NET 6 (the previous LTS release) ends (more details here), with .NET 7 already out of support, and .NET 8, the current LTS release, has another 2 years of support till early Nov 2026.

.NET Release Schedule
.NET Release Schedule

Due to the underlying external dependencies, the support policy of .NET MAUI differs significantly from .NET, each major release will be supported only for 18 months. So, if you’re using .NET MAUI 8, support will cease by mid-May 2025 (in another 6 months). Hence, it’s necessary to plan for your app migration to .NET MAUI 9. An article has already been published detailing the comprehensive features of .NET MAUI 9.

Categories
.NET .NET 8 .NET 9 .NET MAUI Blazor C# Code Desktop Developer General Hybrid Mobile MVVM NuGet Quick Fix Windows Windows 10 Windows 11 WinUI 3 Xamarin Xamarin.Forms

CommunityToolkit.Mvvm: Resolving Windows 10 MVVM Project Build Issues

Undoubtedly, CommunityToolkit.Mvvm, aka Microsoft MVVM Toolkit, has recently become one of the most popular NuGet packages among MVVM developers.

It effectively abstracts away the boilerplate code, enabling developers to concentrate exclusively on the task.

However, after the release of package version 8.3 and later, while building the project referencing this Toolkit has encountered failures, accompanied by perplexing error messages like System.TypeInitializationException or Found conflicts between different versions of 'WinRT.Runtime' that could not be resolved. when targeting the Windows 10 platform.

Categories
.NET .NET 8 .NET 9 .NET MAUI Android Blazor C# Desktop Developer F# General Getting Started Hybrid iOS macOS Mobile NuGet Preview Visual Studio Web What's New Windows Xamarin Xamarin.Forms

SLNX – XML-based Visual Studio Solution Files – No more cryptic GUIDs – How to Manage from CLI

Comprehending the intricacies of a system often requires more than just deciphering the code itself. It also involves understanding the web of dependencies that are inextricably linked to it.

This includes navigating through solution files, project files, package references, static asset management, build configuration, and other related components.

With .NET going cross-platform, SDK-style projects have been introduced. The project files have been significantly simplified. They are now more comprehensible. Due to their XML-based nature, they can be easily modified using a basic text editor.

Nonetheless, the restructuring of the Visual Studio solution file is long overdue due to its intricate layout and obscure GUIDs.

Categories
.NET .NET MAUI Android Blazor C# Desktop Developer Events General Hybrid iOS Learn macOS Mobile MSBuild Web Windows Xamarin Xamarin.Forms

Microsoft Build 2024: AI-Focused Sessions and .NET Highlights

It’s the month of May, so it’s time for Microsoft Build, its annual developer conference, where it’ll showcase the innovative features to the community.

It’s the age of AI, which is disrupting the status quo. So most of the sessions are scheduled along that line as expected.

For .NET MAUI, Blazor, and C#, these are the highly recommended sessions to watch.

Categories
.NET .NET 8 .NET 9 .NET MAUI Android Blazor C# Desktop Developer Extensions General Hybrid iOS macOS Mobile Templates Visual Studio Web Windows Xamarin Xamarin.Forms

.NET MAUI All-in-One Templates Pack – 20K Installs

The .NET MAUI All-in-One Templates Pack Visual Studio 2022 extension has achieved the significant milestone of 20K installations. It’s time to celebrate.πŸŽŠπŸŽ‰πŸŽ‡πŸŽ†

The initial version was released on Jul 18, 2021, and it took 2 years and 8 months to reach this stage with an average of 20 installations every day.

To know more about the features offered, consult this What’s New article.

If you would like to recognize the work, kindly consider sponsoring on the GitHub Sponsor page or Buy Me a Coffee page. Thanks in advance.

Happy coding. Stay connected as we continue to learn and share the experiences from this exciting journey of being a .NET developer.

Categories
.NET .NET 8 .NET 9 .NET MAUI Blazor Desktop Developer Extensions General Getting Started Hybrid NuGet Templates Visual Studio VS Code Web What's New Windows Xamarin

.NET Blazor Hybrid – Windows Desktop Templates

Windows Forms and WPF are proven solid frameworks for creating high-performance Windows desktop client applications.

Blazor, a framework for full-stack web development with C# and Razor.

When these two technologies come together, then it’s certainly a delight for the .NET developers as it paves the way to leverage the skills they’re already familiar with and an option to modernize the existing applications.