Duration 3 days – 21 hrs
Overview
.NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML.
Using .NET MAUI, you can develop apps that can run on Android, iOS, macOS, and Windows from a single shared code-base. The course also teaches you the best practices on how to use Maui in your application.
Objectives
- Overview of .NET MAUI and how it enables you to create multi-platform apps for iOS, Android, macOS, and Windows from a shared C# codebase.
- Introduction to build native, cross-platform desktop and mobile apps with .NET!
- Basic of building your first multi-platform application in C#
- A curated list of samples, tools, and libraries that will make your .NET MAUI development life easier.
- .NET Podcast app is a sample application showcasing .NET 6, ASP.NET Core, Blazor, .NET MAUI, Azure Container Apps, Orleans, and more.
- building the business logic of a back end that pulls down json-encoded data from a RESTful endpoint to creating a .NET MAUI app that displays that data in many different ways and fully theme the application.
- .NET MAUI and more advanced topics such as local data storage and invoking REST-based web services.
- Create a sample app which incorporates it all
- Security and best practices
- Monitoring tools
Audience
- For organizations and individuals who are looking for ways to create intuitive application using .net Maui. You are expected to be fully familiar with the C# programming language.
Pre- requisites
- Prior experience of enterprise application will be helpful
- Knowledge of C# Programming and real-world C# programming experience, is assumed.
Course Content
Introduction to .NET MAUI
- What are .NET MAUI?
- Installation and setup Visual studio
- Initial Project Overview
- Creation of the emulator
- Hello .NET MAUI
- Introduction to XAML Language and its structure and definition
.NET MAUI PAGES
- Introduction
- Setting up the net maui home page
- The ContentPage type
- The NavigationPage type
- The FlyoutPage type
- The TabbedPage type
.NET MAUI Layouts
- Introduction
- StackLayout
- HorizontalStackLayout y VerticalStackLayout
- Grid
- AbsoluteLayout
- FlexLayout
- Other layouts and best practices
.NET MAUI Controls
-
- Controls to present data
- Controls to initiate commands
- Controls to set values
- Controls to edit text
- Controls to indicate activity
- Controls to display collections
Exercise : Project implementing the basic concepts for the same and will be in respect with the type of project client is looking at
Working with External resources
-
- Working with images
- Working with fonts
- Working with font icons
- Working with other file types
-
- Working with miscellaneous files as well
- Defining the main interface
- Working with gradients
- Changing the background of the app dynamically
Data Binding Fundamentals
- Introduction
- Creating your first Binding
- Creating a binding from XAML code
- Binding Context
- Bindings between controls
- Binding modes
- The INotifyPropertyChanged interface
Exercise : application incorporating all the given for the project
MVVM Pattern
-
- Introduction
- Creating your first ViewModel
- Creating bindings to different controls from a ViewModel
- Binding properties to collections
- Value Converter – Convert
- Value Converter – ConvertBack
- The use of Commands in .NET MAUI
- Passing parameters to a Command
- Implementing the INotifyPropertyChanged interface automatically
Navigation in .NET MAUI
-
- Navigating between pages
- Examining the pages in the navigation stack
- Manipulating the navigation stack
- Modal Navigation
- Disabling the button to go to the previous page
- Passing information between pages without ViewModels
- Passing information between pages using ViewModels
- Customizing the NavigationBar
Styles
- Introduction
- Implicit Styles
- Explicit Styles
- Applying styles to derived types
- Global Styles
- Inheritance of styles
- Resource Dictionaries
- Dynamic Styles
- Style classes
Collection View in Detail
- ListView vs CollectionView
- Creating the project and creating the binding to the ViewModel
- Defining the appearance of the elements
- DataTemplates in Resource Dictionaries
- Choosing the row layout at runtime
- Designing the elements on offer
- Implementing the Pull to Refresh functionality
- Loading data incrementally
- Sliding menus
- Linear Listings
- Grid listings
- Header and Footer
- Selecting a single element
- Selecting multiple elements
- Assigning elements in the CollectionView from the ViewModel
- Deleting selections in the CollectionView from the ViewModel
- Showing simple messages in empty lists
- Showing customized views in empty lists
- Selecting a custom view at runtime for empty lists
- Grouping data
- Displaying grouped data
- Customizing the group footer
- Detecting Scrolling
- Scrolling to an element
- Other parameters of the ScrollTo method
- Controlling the scroll position when new elements are added
- Controlling the snap points
Consuming Rest Services
-
- Creating the REST service for testing
- Creating the HTTPClient object
- Getting all the records
- Getting a single record
- Inserting a new record
- Updating a record
- Deleting a record
.NET MAUI and Sqlite
-
- What is SQLite?
- Creating the solution and installing packages nuget
- Configuration of the connection constants
- Configuration of the database file path
- Creating the Customer Model
- Mapping a class to a table through SQLite attributes
- Applying SQLite attributes to a C# class
- Valid data types in SQLite
- Always open connection or not
- Creating a database access class
- The CreateTable method
- Inserting a customer
- Selecting Customers
- Executing SQL queries
- Updating a customer
- Deleting a customer
- Controlling access to the database
- Defining the main layout
- Adding a new customer
- Updating a record
- Deleting a record
- Methods to make queries with Lambda expressions more flexible
- Creating repositories to work with multiple tables
- Installing SQLite Extensions.mp4 package
- One to One Relationships
- Cascade Insert
- Cascade Read.mp4
- Cascade Delete
- One to Many Relationship
- Many to Many Relationship
.NET MAUI Toolkit
- .NET MAUI Community Toolkit – Alerts
- .NET MAUI Community Toolkit – Animations
- .NET MAUI Community Toolkit – Behaviors.wav
- .NET MAUI Community Toolkit – Converters
- .NET MAUI Community Toolkit – Essentials
- .NET MAUI Community Toolkit – Extensions
.NET MAUI Best Practices
- Best Practices
- Monitoring tools and devices
- Managing your Files properly
- Helpful extension
- Programming architecture
- Migrating your project to MAUI
NOTE: All the parts highlighted here will be covered in detail with live examples feedback is most welcome we can incorporate the things of feedback as well