.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Перейти к файлу
Shane Neuville 67d484d32a
Sign windows nugets instead of mac (#665)
* Sign windows nugets

* - change destination folder

* - switch
2021-04-06 17:16:25 -05:00
.config Clean up iOS simulators (#545) 2021-03-18 15:13:30 +02:00
.github Add Accessibility Notes to PR (#586) 2021-03-25 10:28:57 +00:00
.nuspec Implement CharacterSpacing property in ButtonHandlers (#607) 2021-04-06 05:35:57 +02:00
Assets Add scripts to run device tests (#13641) 2021-02-11 01:17:57 +02:00
eng Sign windows nugets instead of mac (#665) 2021-04-06 17:16:25 -05:00
src Semantics and some structure changes (#635) 2021-04-06 16:13:21 -05:00
.editorconfig Major code format (#12254) 2020-09-29 11:15:44 +01:00
.gitattributes try to avoid merge conflicts in GitInfo.txt (#5715) 2019-04-03 08:49:40 +02:00
.gitconfig try to avoid merge conflicts in GitInfo.txt (#5715) 2019-04-03 08:49:40 +02:00
.gitignore Added .DS_Store to the gitignore (#512) 2021-03-15 15:29:51 -06:00
Compatibility.ControlGallery.sln remove resizetizer samples (#613) 2021-03-30 09:39:51 +02:00
Directory.Build.props Experiments for Native Lifecycle (#606) 2021-04-05 17:31:32 -04:00
Directory.Build.targets Use .NET 6 AndroidX packages & consolidate versions (#13879) 2021-03-01 17:25:45 -06:00
GitInfo.txt Go back to preview 3 2021-04-01 15:29:43 +01:00
LICENSE Fix license copy 2016-04-29 13:41:50 -04:00
Microsoft.Maui-net6.sln Make the various usage of ConfigureServices more consistent (#615) 2021-04-05 13:49:46 -04:00
Microsoft.Maui.BuildTasks-net6.sln Get the device tests building and running (#414) 2021-03-05 03:45:21 +02:00
Microsoft.Maui.BuildTasks.sln [Handlers] Fonts and Label FontFamily, FontAttributes & FontSize (#13888) 2021-03-03 19:30:32 +00:00
Microsoft.Maui.WinUI.sln Experiments for Native Lifecycle (#606) 2021-04-05 17:31:32 -04:00
Microsoft.Maui.sln remove resizetizer samples (#613) 2021-03-30 09:39:51 +02:00
Microsoft.Maui.sln.DotSettings Rename all of the things... All of them. (#13847) 2021-02-24 23:50:31 +00:00
NuGet.config [Handlers] Register handlers and use Microsoft.Extensions for Hosting and Dependency Injection (#12460) 2021-02-23 20:05:46 +00:00
README.md Typo on ReadMe (#626) 2021-03-31 14:44:19 +01:00
SECURITY.md Add SECURITY.md (#7373) 2019-09-04 10:03:31 -07:00
build.cake Add the LabelHandler for WinUI (#655) 2021-04-06 10:56:33 -05:00
build.cmd Make building easier on Windows by setting PowerShell execution policy (attempt 2) (#6755) 2019-07-02 14:36:22 -06:00
build.ps1 Remove DevopsNuget.config (#13814) 2021-02-22 18:02:09 +00:00
build.sh Remove DevopsNuget.config (#13814) 2021-02-22 18:02:09 +00:00
global.json .NET 6 maui-mobile template (#371) 2021-03-05 05:41:53 +02:00

README.md

Introducing .NET Multi-platform App UI (MAUI)

.NET MAUI is:

  • Multi-platform native UI
  • Deploy to multiple devices across mobile & desktop
  • Using a single project, single codebase
  • Evolution of Xamarin.Forms
  • .NET 6

Build Status

Private Public
Build Status Build Status

Maui.sln

SDKS required

dotnet tool install Cake.Tool -g

Running

IDE

  • If you have Visual Studio 16.9 P4 installed you can open Maui.sln and run it from there.

.NET 6

You can run a Cake target to bootstrap .NET 6 in bin\dotnet and launch Visual Studio:

dotnet cake --target=VS-NET6

NOTE: VS Mac is not yet supported.

You can also run commands individually:

# Provision .NET 6 in bin\dotnet
dotnet build src\DotNet\DotNet.csproj
# Builds Maui MSBuild tasks
.\bin\dotnet\dotnet build Microsoft.Maui.BuildTasks-net6.sln
# Builds the rest of Maui
.\bin\dotnet\dotnet build Microsoft.Maui-net6.sln
# (Windows-only) to launch Visual Studio
.\eng\dogfood.ps1

To build & run .NET 6 sample apps, you will also need to use .\bin\dotnet\dotnet:

.\bin\dotnet\dotnet build src\Controls\samples\Controls.Sample.Droid\Maui.Controls.Sample.Droid-net6.csproj -t:Run
.\bin\dotnet\dotnet build src\Controls\samples\Controls.Sample.iOS\Maui.Controls.Sample.iOS-net6.csproj -t:Run

Try out a "single project", you will need the -f switch to choose the platform:

.\bin\dotnet\dotnet build src\Controls\samples\Controls.Sample.SingleProject\Maui.Controls.Sample.SingleProject.csproj -t:Run -f net6.0-android --no-restore
.\bin\dotnet\dotnet build src\Controls\samples\Controls.Sample.SingleProject\Maui.Controls.Sample.SingleProject.csproj -t:Run -f net6.0-ios --no-restore

Note that --no-restore is a workaround until dotnet#15485 is fixed in a future preview.

Current News

March 11, 2021 - Announcing .NET 6 Preview 2

Watch our March 2021 .NET Community Standup report for the latest information about our progress on .NET MAUI and .NET 6.

Additional live streams and presentations:

Status: Active Development

While Xamarin.Forms continues to be actively supported through November 2022, we are making evolutionary changes based on customer research of what would be most beneficial. Current areas of focus are:

  • Porting renderers to handlers (spec)
  • Adapting layouts for handlers
  • WinUI 3 preview 3 early spike (branch)
  • Mac Catalyst early evaluation (wiki)

Active development is happening today to build Android and iOS SDKs against .NET 6. Samples may be found here.

Goals

  • Improve app performance
  • Improve simplicity of control extensibility
  • Improve simplicity of contributing
  • Enable developer options to use Model-View-Update (MVU) and Blazor

Roadmap

.NET MAUI and mobile SDK support will ship in concert with .NET 6. At present we do not have a shipping schedule for .NET 6.

Milestones

  • .NET MAUI previews Q4 2020 through Q3 2021
  • .NET MAUI release candidate September 2021
  • .NET MAUI general availability November 2021

Xamarin.Forms vs .NET MAUI

Xamarin.Forms .NET MAUI
Platforms
Android API 19+ API 21+
iOS 9-15 10+
Linux Community Community
macOS Community Microsoft
Tizen Samsung Samsung
Windows UWP Microsoft
WPF Community
Microsoft*
Features
Renderers Tightly coupled to BindableObject Loosely coupled, no Xamarin.Forms dependencies
App Models MVVM MVVM
RxUI RxUI
MVU **
Blazor **
Single Project No Yes
Multi-targeting No Yes
Multi-window No Yes
Misc
.NET Xamarin.iOS, Xamarin.Android, Mono, .NET Framework, ... .NET 6+
XAML Hot Reload Experimental: SDK 4.x & Visual Studio 2019 prior to version 16.9
Feature Complete: SDK 5.x & Visual Studio 2019 version 16.9 or newer
Yes
.NET Hot Reload iOS/Android – No
UWP – Limited support for runtime edits using .NET “Edit & Continue”
Yes
Acquisition NuGet & Visual Studio Installer dotnet
Project System Franken-proj SDK Style
dotnet CLI No Yes
Tools
Visual Studio 2019 Yes Yes
Visual Studio 2019 for Mac Yes Yes
Visual Studio Code No Experimental***

* The Windows implementation is expected to be WinUI 3, pending GA release.

** These app models are experimental.

*** Visual Studio Code will work by virtue of .NET unification, however not all experiences that make .NET MAUI development delightful (intellisense for example) may be enabled at the time of .NET 6 release.

FAQs

Do you have questions? Do not worry, we have prepared a complete FAQ answering the most common questions.

How to Engage, Contribute, and Give Feedback

Some of the best ways to contribute are to try things out, file issues, join in design conversations, and make pull-requests. Proposals for changes specific to MAUI can be found here for discussion.

See CONTRIBUTING

Code of conduct

See CODE-OF-CONDUCT