Stand with Ukraine. Save peace in the world!

The founder of the project //devdigest, Andrey Gubskiy, launched a charity initiative to raise funds to support Ukraine.  Help »

Cross-Platform C# UI Technologies Part 2

July 07, 2020
 550
Cross-Platform C# UI Technologies Part 2
[DISPLAY_ULTIMATE_SOCIAL_ICONS] The options for building cross-platform phone, desktop, and web-apps with C# are expanding. I previously wrote about Uno Platform, Xamarin.Forms, and Avalonia UI. The recent Microsoft Build conference mentioned Blazor, Uno Platform and MAUI. MAUI is an evolution of Xamarin.Forms that targets .NET 5/6. Whether or not Blazor can be considered a genuinely cross-platform technology is complicated. This article compares the technologies and some others and attempts to clarify some confusion around the future of C# cross-platform development. BrowserPhonesDesktopIdiomMAUI✔✔XAMLUno Platform✔✔✔XAMLAvalonia UI◑✔XAMLBlazor✔Blazor, HTML/CSSMobile Blazor Bindings✔Blazor, XAMLPlatform / Technology Comparison Note: all technologies mentioned are open-source. Read the previous article MAUI MAUI is an evolution of Xamarin.Forms (XF). It is a technology for building native mobile and desktop apps with C# and XAML. There is no preview available yet. This is the roadmap. However, MAUI should take over from Xamarin.Forms when it is ready. Xamarin.Forms is the flagship Microsoft C# cross-platform technology. It is a mature technology that large organizations have implemented to build many quality mobile applications. MAUI runs on the .NET 5/6 runtime while Xamarin.Forms runs on the Mono runtime for phones. .NET 5 is in preview mode so it could be some time before MAUI itself is production ready or even stable enough to experiment with. Platforms: iOS, Android, Tizen, UWP (WinUI) When to use: Your team already has a Xamarin.Forms appYou want the native look and feel of the native platformYou need to build a native phone and desktop app from a single codebaseYou don't need to target the browser Uno Platform Uno is a technology for building native mobile, desktop, and WebAssembly (WASM) apps with C# and XAML. It is a bridge for UWP that brings Windows 10 (WinUI/UWP) apps to phones, macOS, and the browser. UWP XAML, which is the purest evolution of the Microsoft XAML technology. Uno Platform has a lot of crossover with MAUI, but one point of distinction is browser support. Uno Platform targets WASM, which allows developers to deploy web-apps from a UWP based codebase. Uno's XAML paradigm closely models itself after. The second point of distinction between MAUI/XF and Uno is that XF apps look like their native platform by default while Uno styles the app to be identical across platforms by default. Bookmark my upcoming Introduction to Uno Platform Udemy Course.  Platforms: Browsers, iOS, Android, macOS, UWP (WinUI), Linux support on the roadmap When to use: Your team already has a UWP app or is looking to adopt WinUIYou need to target the browserYour team is familiar with the XAML paradigm from WPF, Silverlight or UWPYou need to build a native browser, phone and desktop app from a single codebase Avalonia UI A cross platform XAML Framework for .NET Framework, .NET Core and Monohttps://avaloniaui.net/ Avalonia allows developers to build native applications across Windows, macOS, and Linux. It embraces the XAML paradigm, which is familiar to C# developers who have built WPF applications. It takes on the unique approach of rendering graphics with Skia on Win32, X11 & Cocoa instead of relying on the platform's native controls. The platform also has experimental support for phones, and this promises to make it a strong contender. WASM support is also on the roadmap, which brings it to browsers. Platforms: Windows, macOS, Linux, experimental iOS and Android, browser and full iOS support on the roadmap When to use: Your team already has a WPF appYou need pixel-perfect rendering across platformsYou need to build a cross-platform desktop app from a single codebase (especially Linux)You don't need to target the browser Blazor Blazor is a browser-based technology that uses WASM or SignalR to bring .NET code to the browser. Developers define UI with HTML, and style with CSS, but manipulate the HTML DOM with C# instead of JavaScript. Its popularity has recently surged and strikes a chord with web developers because of the familiarity with HTML DOM access. Blazor apps work like JavaScript apps but with C#. Blazor comes with a syntax called Razor, which is familiar to ASP MVC developers.  Pure Blazor is only a real cross-platform technology insomuch as it runs in most modern browsers. However, Mobile Blazor Bindings (below) bring Blaz...

Hot Vacancies

.NETBack End Developer

Field Complete
.NET

Field Complete is a team of passionate, young & fun-loving professionals looking to change the uneffective way that Servicing Industry works on US markets. Field Complete is growing really fast. We are looking for a Back End Developer to build a top-level modern API, ready for high load. Strong expertise with:

Senior Xamarin Developer

DraftKings
Mobile

You will join a mobile team which is working on two very exciting projects, Sportsbook and Casino. The apps are used by users in the US, where we are working on the regulated markets. We are releasing apps every two weeks. Our apps are generating almost 75% of the company revenue and the user base is growing daily. Technical stack on the project: Xamarin.Forms, MVVM with DI, NewRelic, Azure + App Center etc. Switching to .Net MAUI in the nearest 2-3 months.

Senior .NET Engineer

DraftKings
.NET

You will be working in a large US-oriented company that puts as a priority: security, performance, and stability. The candidate will work on pushing a huge number of changes (several thousand per sec) to several thousand clients in a near real-time manner.

Middle strong .NET developer

SoftServe
.NET

Our customer is an American company that develops software for businesses to help manage their networks, systems, and information technology infrastructure. The company provides purpose-built products for IT professionals, MSPs, and DevOps pros.

Junior .NET Developer

Chudovo OU
.NET

We are looking for a Junior .Net developer for being involved in to further development of the B2B platform for IT companies. You'll work on mostly back-end tasks closely with a Senior level developer.