Soroush Neyestani

Software Engineer

Application Architect

Enterprise Application Developer

Technical Author & Educator

Cross-Platform Application Development with .NET MAUI

Suggested URL Slug

/books/cross-platform-dotnet-maui-development

Suggested Portfolio Type

Technical Book / Cross-Platform Development / .NET Application Architecture

Status

Version 2 Rebuild — Xamarin Concept Modernized to .NET MAUI

Website Card

Title:
Cross-Platform Application Development with .NET MAUI

One-line Description:
A modern Persian guide to building maintainable cross-platform applications with C#, .NET MAUI, XAML, platform services, testing, architecture, and shared-code design.

Categories:

  • Technical Writing
  • Cross-Platform Development
  • .NET
  • Mobile Engineering
  • Application Architecture
  • Developer Education
  • Legacy Modernization

Technology Tags:
.NET · C# · .NET MAUI · XAML · MVVM · Dependency Injection · REST APIs · SQLite · Testing · Android · iOS · macOS · Windows


Hero Introduction

Cross-Platform Application Development with .NET MAUI is the modern successor to an earlier planned Xamarin-focused volume.

The technology landscape changed before the original concept was developed into a permanent publication. Xamarin reached end of support, and Microsoft's supported cross-platform .NET direction moved to modern .NET workloads and .NET MAUI.

Rather than preserving an obsolete framework for historical reasons, the second-generation project follows the architectural intent of the original idea: teaching how to build applications that share substantial code across platforms without pretending that every platform is identical.

The result is a new book concept centered on C#, modern .NET, .NET MAUI, XAML, platform abstraction, dependency injection, application architecture, data access, networking, testing, deployment, and migration from older Xamarin applications.


Why This Volume Changed Technology

The original series envisioned a Xamarin volume because Xamarin represented an important approach to cross-platform mobile development with C#.

That is no longer the correct technology choice for a new modern edition.

Microsoft ended support for Xamarin in 2024 and provides migration paths from Xamarin projects toward modern .NET and .NET MAUI.

For that reason, this project does not attempt to create an “updated Xamarin book.”

It treats Xamarin as historical and migration context and rebuilds the entire volume around the currently supported .NET application platform.

This decision is itself part of the project's modernization philosophy:

A Version 2 rebuild should preserve the problem being solved, not obsolete implementation choices.

The original problem was cross-platform application engineering with shared .NET code.
The modern solution is therefore redesigned around today's .NET ecosystem.


Overview

Cross-platform application development is often described too simply:

Write the code once and run it everywhere.

Real systems are more complicated.

Applications may share domain models, business rules, services, networking, data access, and view-model logic, while still requiring platform-specific behavior for:

  • permissions,
  • notifications,
  • storage,
  • lifecycle,
  • device capabilities,
  • packaging,
  • signing,
  • navigation conventions,
  • user-interface behavior,
  • accessibility,
  • operating-system integrations.

This book is designed to teach where code should be shared, where platform abstraction is useful, and where platform-specific implementation is the correct engineering decision.


Core Topics

1. Modern .NET Foundations

The book begins with the current .NET ecosystem:

  • .NET SDK
  • project structure
  • SDK-style projects
  • workloads
  • NuGet
  • target frameworks
  • build and restore
  • dependency management
  • command-line tooling
  • IDE options
  • configuration
  • environment concepts

The objective is to establish the underlying platform before introducing MAUI abstractions.


2. C# for Application Development

The C# section focuses on features directly relevant to maintainable application development.

Topics include:

  • types
  • classes and records
  • interfaces
  • generics
  • collections
  • delegates
  • events
  • LINQ
  • nullable reference types
  • exceptions
  • async/await
  • tasks
  • pattern matching
  • extension methods
  • attributes
  • dependency-friendly design

Readers with previous programming experience can move quickly through syntax while still gaining the C# concepts that influence architecture.


3. .NET MAUI Project Architecture

The book then explains the structure of a MAUI application.

Topics include:

  • shared project structure
  • target platforms
  • application startup
  • resources
  • platform-specific folders
  • handlers
  • services
  • configuration
  • lifecycle
  • dependency injection
  • package organization
  • build targets

The goal is to eliminate the illusion that a cross-platform project is a single monolithic executable.


4. XAML and Declarative UI

XAML is presented as a UI composition language and not merely markup to memorize.

Topics include:

  • pages
  • layouts
  • controls
  • resources
  • styles
  • templates
  • bindings
  • converters
  • triggers
  • visual states
  • reusable components
  • responsive layout
  • theming

Examples demonstrate how view definitions remain understandable as an application grows.


5. MVVM and Separation of Concerns

MVVM is explained as a tool for separating user-interface representation from application behavior.

Topics include:

  • View
  • ViewModel
  • Model
  • commands
  • binding
  • observable state
  • validation
  • asynchronous operations
  • navigation interaction
  • dependency boundaries
  • testability

The book explicitly distinguishes useful separation from excessive ceremony.

Not every screen requires a complex architecture, but application logic should not become inseparable from the user interface.


6. Dependency Injection

Modern .NET provides strong dependency-injection support, and the book connects it directly to architecture.

Topics include:

  • service registration
  • lifetimes
  • constructor injection
  • interfaces
  • composition root
  • platform services
  • test doubles
  • avoiding service-locator patterns
  • configuration dependencies
  • HTTP clients
  • data services

The objective is to make dependencies explicit and testable.


7. Navigation

Navigation is approached as part of application flow.

Topics can include:

  • Shell concepts where appropriate
  • routes
  • parameter passing
  • modal workflows
  • nested navigation
  • tabs
  • deep links
  • navigation services
  • state preservation
  • testing navigation-dependent logic

The material should show both framework-supported approaches and architectural trade-offs.


8. Networking and APIs

Cross-platform apps frequently share networking logic effectively.

Topics include:

  • HttpClient
  • REST
  • JSON serialization
  • API models
  • authentication concepts
  • cancellation
  • timeouts
  • retries
  • pagination
  • error classification
  • connectivity changes
  • offline behavior
  • service abstractions

Networking examples are kept outside UI code to demonstrate reusable application boundaries.


9. Local Data and Persistence

Topics may include:

  • preferences
  • secure storage
  • files
  • SQLite
  • repository patterns where justified
  • caching
  • serialization
  • schema evolution
  • migrations
  • offline-first considerations
  • synchronization design

The book distinguishes small local settings from durable application data.


10. Platform Services

One of the most valuable parts of a cross-platform book is showing how common logic and platform-specific behavior coexist.

Possible topics:

  • device information
  • connectivity
  • filesystem
  • sensors
  • geolocation
  • media
  • permissions
  • clipboard
  • browser integration
  • sharing
  • notifications
  • application lifecycle
  • secure storage

The emphasis is on isolating platform-specific code behind clear boundaries.


11. Native Platform Integration

Cross-platform does not eliminate native platforms.

The book therefore explains how to extend the shared application when Android, iOS, macOS, or Windows requires specialized behavior.

Topics include:

  • conditional compilation
  • platform-specific services
  • handlers
  • lifecycle hooks
  • native APIs
  • platform permissions
  • platform resources
  • custom controls
  • packaging differences

This chapter is intended to prevent architecture from collapsing when the first non-portable requirement appears.


12. Application Architecture

The architecture section can organize the application into explicit concerns:

Presentation
     ↓
Application / Use Cases
     ↓
Domain
     ↓
Infrastructure
     ↓
Platform / External Services

The exact structure depends on project complexity, but the principles remain:

  • dependencies should be understandable,
  • business logic should not depend unnecessarily on UI frameworks,
  • platform APIs should be isolated,
  • external services should be replaceable,
  • state transitions should be testable,
  • modules should have clear responsibilities.

The book can compare a simple MVVM application with a larger modular design to show how architecture should scale with complexity.


13. Validation and Forms

Business applications frequently contain substantial form logic.

Topics can include:

  • input validation
  • asynchronous validation
  • error presentation
  • reusable validators
  • domain validation versus UI validation
  • form state
  • dirty-state tracking
  • submission workflows
  • server validation
  • accessibility considerations

This gives the material direct relevance to enterprise and internal application development.


14. Authentication and Authorization Concepts

A professional guide should explain application-level identity flows without embedding secrets in the client.

Topics can include:

  • token-based authentication concepts
  • OAuth/OpenID Connect concepts at a high level
  • secure token storage
  • expiration and renewal
  • authenticated API clients
  • authorization-aware UI
  • logout and session clearing
  • handling unauthorized responses

The focus is on safe application architecture rather than implementing an identity provider from scratch.


15. Testing

The project is designed around testable boundaries.

Topics include:

  • unit testing
  • ViewModel tests
  • service tests
  • mocked HTTP dependencies
  • persistence tests
  • validation tests
  • integration testing
  • UI-testing concepts
  • regression suites
  • deterministic asynchronous tests
  • test data builders

This demonstrates that cross-platform code sharing should include testable business logic, not only shared UI.


16. Logging, Diagnostics, and Reliability

Cross-platform applications must be diagnosable after deployment.

Topics can include:

  • structured logging concepts
  • exception handling
  • application-level error boundaries
  • crash-reporting integration concepts
  • connectivity failures
  • retry policies
  • transient versus permanent errors
  • telemetry considerations
  • privacy-aware diagnostics

The goal is to design for failure rather than assuming perfect networks and devices.


17. Performance

Performance topics may include:

  • startup time
  • UI responsiveness
  • image loading
  • list virtualization
  • asynchronous work
  • memory use
  • unnecessary allocations
  • data caching
  • large object graphs
  • platform-specific bottlenecks
  • profiling concepts

Again, optimization is presented as evidence-based engineering.


18. Accessibility and Localization

A cross-platform application must remain usable across different users, cultures, and device configurations.

Topics include:

  • semantic accessibility
  • screen-reader support
  • font scaling
  • contrast
  • localization resources
  • culture-aware formatting
  • right-to-left layouts
  • responsive layout
  • platform-specific accessibility behavior

The Persian edition also provides a practical reason to discuss RTL interfaces thoroughly.


19. Packaging and Distribution

Each platform has different delivery constraints.

The book can introduce:

  • Android packaging
  • iOS signing concepts
  • macOS packaging concepts
  • Windows packaging concepts
  • application identifiers
  • versioning
  • build configurations
  • release builds
  • environment configuration
  • CI/CD
  • store submission concepts

This completes the path from shared source code to actual distributable software.


20. Xamarin-to-.NET Modernization

Because the project originated from a Xamarin concept, the modern edition can include a migration-oriented section.

Topics can include:

  • understanding the historical Xamarin project types,
  • identifying shared and platform-specific code,
  • SDK-style project migration,
  • Xamarin.Forms concepts and their MAUI equivalents,
  • dependency updates,
  • namespace/API changes,
  • custom-renderer modernization,
  • handler-based customization,
  • project restructuring,
  • regression testing,
  • incremental migration strategy.

This gives the volume a valuable legacy-modernization dimension instead of pretending the previous ecosystem never existed.


Example Application Strategy

Project A — Cross-Platform Fundamentals

A small C#/XAML application covering navigation, binding, state, and services.

Project B — API Client

Adds HTTP, authentication concepts, error handling, asynchronous operations, and caching.

Project C — Offline Data Application

Adds SQLite, synchronization strategy, validation, and connectivity-aware workflows.

Project D — Production-Style Application

Adds modular architecture, dependency injection, platform services, tests, logging, accessibility, localization, and release configuration.

The progression demonstrates how architectural needs emerge as complexity increases.


Planned Companion Repository

dotnet-maui-book/
├── csharp/
├── maui-basics/
├── xaml/
├── mvvm/
├── networking/
├── persistence/
├── platform-services/
├── testing/
├── architecture/
├── migration/
└── sample-apps/

The code can be organized by chapter and tagged per publication edition.


Engineering Perspective

This project is particularly useful in a portfolio because it demonstrates architectural thinking across platform boundaries.

The central engineering questions are not framework-specific:

  • What should be shared?
  • What must remain platform-specific?
  • Where should dependencies point?
  • How should UI state be separated from business rules?
  • How can external services be replaced in tests?
  • How can an obsolete platform be migrated without rewriting everything blindly?
  • How can one product maintain consistent behavior across multiple operating systems?

Those are application-architecture questions rather than merely .NET MAUI questions.


Portfolio Engineering Highlights

  • Replaced an obsolete Xamarin-focused V2 concept with a current .NET MAUI architecture rather than preserving outdated technology.
  • Designed the book around shared-code boundaries, platform-specific integrations, MVVM, dependency injection, testing, persistence, networking, and production concerns.
  • Included Xamarin-to-modern-.NET migration as a legacy-modernization case study.
  • Structured examples to evolve from basic shared UI into modular, testable cross-platform applications.
  • Planned a companion repository suitable for executable examples, migration labs, and publication-version tagging.
  • Positioned the work for immediate portfolio value and future commercial expansion.

Intended Reader

The material is intended for:

  • C# developers entering mobile or cross-platform development,
  • Xamarin developers moving to supported modern .NET tooling,
  • developers who need to target multiple operating systems,
  • enterprise developers building internal mobile/desktop applications,
  • programmers who know basic MAUI but need better architecture,
  • Persian-speaking developers looking for a structured cross-platform reference.

Commercial Publication Direction

A future commercial edition could be organized around both learning and migration.

Potential additions:

  • complete sample application source,
  • downloadable migration labs,
  • platform comparison tables,
  • architecture diagrams,
  • exercise sets,
  • project templates,
  • version compatibility notes,
  • troubleshooting reference,
  • publishing checklists,
  • QR-linked repository releases.

This would make the book useful both to new .NET MAUI developers and to teams modernizing Xamarin applications.


Suggested Website Closing

Cross-platform development is not about pretending that Android, iOS, macOS, and Windows are identical. It is about identifying the correct architectural boundary between shared application logic and platform-specific behavior.

This project is built around that distinction.

The second-generation volume replaces its original Xamarin-era technology assumption with modern .NET and .NET MAUI while preserving the larger goal: teaching how to design maintainable applications that can share substantial code without sacrificing platform integration, testability, or architectural clarity.