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

Exploring .NET MAUI 9: HybridWebView Features

.NET MAUI 9 is the next major version of the cross-platform application UI framework. An article detailing the significant features of this version has already been published and can be accessed here.

This release features two prominent enhancements:

The TitleBar support for MacCatalyst is in progress. Track here.

This article will delve into the details of HybridWebView.

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# Code Desktop Developer General Hybrid iOS macOS Mobile Toolkit Web What's New Windows Xamarin Xamarin.Forms

Enhance Gesture Binding with the Shared Toolkit

The year 2024 began with an article outlining the improvements in the Shared Toolkit through the optimization of specifying the Binding as a LINQ expression, without requiring an additional getter or setter.

Mainly, the Binding expression is statically typed, providing better control by aiding in identifying errors during compilation. Furthermore, it preserves the default binding behavior of the View, such as the two-way binding in the case of Entry, enabling editing. This behavior can be modified using the BindingMode parameter.

Categories
.NET .NET 8 .NET 9 .NET MAUI Android Blazor C# Code Desktop Developer Embedding iOS macOS Maps Mobile Quick Fix Toolkit Web Windows Windows 11 WinUI 3 Xamarin Xamarin.Forms

.NET MAUI Community Toolkit Maps in WinUI 3 App

This article provides a comprehensive guide on leveraging the Maps feature from the .NET MAUI Community Toolkit in a WinUI 3 App through the robust Embedding feature.

The CommunityToolkit.Maui.Maps NuGet package provides access to Bing Maps through a WebView on Windows. The Handler definitions for the Windows platform for the .NET MAUI Maps feature are hosted in this package.

To ensure the Maps feature functions correctly on the native WinUI 3 App, it is imperative to slightly adjust the feature initialization in the MAUI pipeline.

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

Using WSA for .NET MAUI Android Development

Windows Subsystem for Android™️ (WSA) enables your Windows 11 device to run Android applications.

Even though optimization techniques such as Intel HAXM are available, there is a marginal performance tradeoff when using the Android Emulator.

The Subsystem has been designed to function as an integral OS component, providing superior performance compared to the Android Emulator.

From my perspective, the only drawback of using WSA is the lack of support for Google Play Services (as it works with Amazon Appstore). So any apps that rely on those services, WSA might not be the best fit. So continue to use the Android Emulator or the Physical device.

Categories
.NET .NET 8 .NET 9 .NET MAUI Android Blazor C# Code Deep Dive Desktop Developer Embedding Hybrid iOS macOS Mobile Quick Fix Web Windows WinUI 3 Xamarin Xamarin.Forms

.NET MAUI – Native Embedding

The Native Embedding feature in .NET MAUI is a charming capability inherited from the legacy of Xamarin.Forms.

The platform project can make use of abstracted .NET MAUI pages and controls directly, showcasing its enhanced capabilities in this aspect.

To gain further insights, please consult my previous article outlining how to implement Blazor Hybrid in the WinUI 3 project.

When compared with the time of Xamarin.Forms, significant progress has been made in the implementation of this feature, such as the definition of a platform-independent extension method called ToPlatform().

Categories
.NET .NET MAUI Android Blazor C# Desktop Developer DevOps Getting Started Hybrid iOS macOS Mobile Visual Studio VS Code Web Windows Xamarin Xamarin.Forms

Using Visual Studio Code for .NET MAUI Development

In August 2023, Microsoft made an official announcement regarding the retirement of Visual Studio for Mac, scheduled to take place by August 31, 2024 (in another 6 months), as stated in a blog post here.

In the same blog post, Visual Studio Code along with the C# Dev Kit is projected as a viable alternative for cross-platform .NET development. For further information on the C# Dev Kit, refer to this article.

And for .NET MAUI too, there’s an officially supported extension hosted on VS Marketplace. To know more about this, take a look at this article. C# Dev Kit is a dependency for this .NET MAUI extension.

In light of the recent announcements, the article has been updated to incorporate info on support for JetBrains Rider IDE at the conclusion.

Categories
.NET .NET 8 .NET MAUI Android Code Desktop Developer iOS Mobile MVVM NuGet Toolkit What's New Windows WinUI 3 Xamarin

Data and Command Bindings – Made Easy with Shared Toolkit

First things first, wishing you all a very happy, healthy, and prosperous new year 2024.

2023 wrapped with the release of a newer version of VijayAnand.Toolkit.Markup (aka SharedToolkit), which comes with the wrapper method that allows specifying the Binding as a LINQ expression without the need to specify an additional getter or setter.