Roundup of .NET MAUI. - Week of August 8, 2022

David Ortinau - Aug 15 '22 - - Dev Community

This was a big week for .NET MAUI content, starting with .NET Conf: MAUI! We had a great time bringing your a wide range of .NET MAUI content from our studio in Redmond and speakers around the globe.

Table of Contents:

.NET Conf: MAUI

If you only watch one session, I shamelessly must recommend my keynote presentation with Maddy Montaquila.

The rest of the 24 sessions are nicely catalogued at https://docs.microsoft.com/events/dotnetconf-focus-on-maui/.

Books

Michael Stonis from EightBot has written Enterprise Application Patterns with .NET MAUI and updated the companion eShop application to go with it.

eshop-mobile-client

eshop-mobile-client is a reference .NET MAUI multi-platform client app whose imagined purpose is to serve the mobile workforce of a fictitious company that sells products. The app allows you to manage the catalog, view products, and manage the basket and the orders.

Dependencies

Though eshop-mobile-client mobile app relies on the repo eShopOnContainers for it's backend but by default it uses its internal MockServices for all it's functionalities. For more details refer to the Setup section.

eShopOnContainers

Architecture

The app architecture consists of two parts:

  1. A .NET MAUI mobile app for iOS, macOS, Android, and Windows.
  2. Several .NET Web API microservices which are deployed as Docker containers.

.NET MAUI App

This project exercises the following platforms, frameworks, and features:

  • .NET MAUI
    • XAML
    • Behaviors
    • Bindings
    • Converters
    • Central Styles
    • Animations
    • IoC
    • Messaging Center
    • Custom Controls
    • xUnit Tests
  • Azure Mobile Services
    • C# backend
    • WebAPI
    • Entity Framework
    • Identity Server 4

Backend Services

All the backend…

Libraries

InfiniteScroll

This is a port of Matthew Liebowitz's Xamarin.Forms library that adds this behavior to ListView.

https://www.nuget.org/packages/TheSalLab.MauiInfiniteScrolling

Scandit Barcode Scanning

Scandit has updated their Xamarin.Forms library for .NET 6.

https://www.nuget.org/packages/Scandit.DataCapture.Core.Xamarin.Forms/6.14.0-beta.2#readme-body-tab

LiveCharts

James Montemagno turned me on to this SkiaSharp based charting library last week at .NET Conf, and I really want to check it out.

https://www.nuget.org/packages/LiveChartsCore.SkiaSharpView.Maui/2.0.0-beta.350

KeyboardHookLite

I'm stoked for this library that enables a global keyboard listener! This is a common need I have in desktop applications. Right now it only appears to work with Windows.

https://www.nuget.org/packages/KeyboardHookLite

ZXing Barcode Scanner

Our fearless leader Redth has published a .NET MAUI version of his popular barcode scanning library ZXing. It's primarily for mobile, so the Windows bit is just enough to not crash which is perfect me most of our needs.

If you're poking around in the Point of Sale demo I made for .NET Conf, you'll find this put to use. :)

https://www.nuget.org/packages/ZXing.Net.Maui/

ContextMenuContainer

While the official .NET 7 roadmap includes a ContextMenu, you don't need to wait. This library has support for all 4 .NET MAUI platforms today.

https://www.nuget.org/packages/ContextMenuContainer/1.1.0.2-preview#readme-body-tab

Videos

A Better Pub/Sub Messenger

James brings us a quick rundown on using the new Messenger in CommunityToolkit.Mvvm, and I love it! It reminds me a lot of TinyMessenger.

UI Design for .NET MAUI

Leomaris Reyes provides some great tips for honing your skills to create beautiful UI with .NET MAUI.

Webinar: Create a Shopping UI with .NET MAUI and sqlite

Roulette Game

Nice, simple example of animation.

https://github.com/kei-soft/KJunBlog/tree/master/Maui.RouletteGame

Everything you need to know about CollectionView

Drawing Graphics Controls

Chris makes it sound so easy, and I suspect it is!

iOS App Extensions

DrawingView

Gerald introduces you to this powerful, new control for drawing things in .NET MAUI.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .