.NET MAUI nedir?

.NET Çok platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI), C# ve XAML ile yerel mobil ve masaüstü uygulamaları oluşturmaya yönelik platformlar arası bir çerçevedir.

.NET MAUI kullanarak, tek bir paylaşılan kod tabanından Android, iOS, macOS ve Windows üzerinde çalışabilen uygulamalar geliştirebilirsiniz.

.NET MAUI supported platforms.

.NET MAUI açık kaynaktır ve performans ve genişletilebilirlik için baştan sona kullanıcı arabirimi denetimleri yeniden oluşturulmuş, mobilden masaüstü senaryolarına genişletilmiş Xamarin.Forms'un evrimidir. Daha önce platformlar arası kullanıcı arabirimleri oluşturmak için Xamarin.Forms kullandıysanız .NET MAUI ile birçok benzerlik fark edeceksiniz. Ancak bazı farklılıklar da vardır. .NET MAUI kullanarak tek bir proje kullanarak çok platformlu uygulamalar oluşturabilirsiniz ancak gerekirse platforma özel kaynak kodu ve kaynaklar ekleyebilirsiniz. .NET MAUI'nin temel amaçlarından biri, uygulama mantığınızı ve kullanıcı arabirimi düzeninizi mümkün olduğunca tek bir kod tabanında uygulamanıza olanak tanımaktır.

.NET MAUI kimin için?

.NET MAUI, şu işlemleri yapmak isteyen geliştiricilere yöneliktir:

  • Visual Studio'daki tek bir paylaşılan kod tabanından XAML ve C# dilinde platformlar arası uygulamalar yazın.
  • Kullanıcı arabirimi düzenini ve tasarımını platformlar arasında paylaşın.
  • Kodu, testleri ve iş mantığını platformlar arasında paylaşın.

.NET MAUI nasıl çalışır?

.NET MAUI, Android, iOS, macOS ve Windows API'lerini tek bir API'de birleştirerek her yerde bir kez yazma çalıştırma geliştirici deneyimi sağlarken, her yerel platformun her yönüne de derin erişim sağlar.

.NET 6 veya üzeri, uygulama oluşturmak için platforma özgü bir dizi çerçeve sağlar: .NET Android, .NET iOS, .NET macOS ve Windows UI 3 (WinUI 3) kitaplığı. Bu çerçevelerin tümü aynı .NET Temel Sınıf Kitaplığı'na (BCL) erişebilir. Bu kitaplık, temel alınan platformun ayrıntılarını kodunuzdan soyutlar. BCL, kodunuz için yürütme ortamı sağlamak için .NET çalışma zamanına bağlıdır. Android, iOS ve macOS için ortam, .NET çalışma zamanının bir uygulaması olan Mono tarafından uygulanır. Windows'da .NET CoreCLR yürütme ortamını sağlar.

BCL, farklı platformlarda çalışan uygulamaların ortak iş mantığını paylaşmasına olanak tanırken, çeşitli platformlar bir uygulama için kullanıcı arabirimini tanımlamanın farklı yöntemlerine sahiptir ve bir kullanıcı arabiriminin öğelerinin nasıl iletişim kuracağını ve birlikte çalıştığını belirtmek için farklı modeller sağlar. Uygun platforma özgü çerçeveyi (.NET Android, .NET iOS, .NET macOS veya WinUI 3) kullanarak her platform için kullanıcı arabirimini ayrı ayrı oluşturabilirsiniz, ancak bu yaklaşım her cihaz ailesi için bir kod tabanı tutmanızı gerektirir.

.NET MAUI, mobil ve masaüstü uygulamaları için URI'leri oluşturmaya yönelik tek bir çerçeve sağlar. Aşağıdaki diyagramda .NET MAUI uygulamasının mimarisinin üst düzey görünümü gösterilmektedir:

.NET MAUI architecture diagram.

Bir .NET MAUI uygulamasında, öncelikli olarak .NET MAUI API'siyle (1) etkileşim kuran kod yazarsınız. .NET MAUI daha sonra doğrudan yerel platform API'lerini (3) kullanır. Ayrıca, uygulama kodu gerekirse platform API'lerini (2) doğrudan alıştırma yapabilir.

.NET MAUI uygulamaları PC veya Mac'te yazılabilir ve yerel uygulama paketlerinde derlenebilir:

  • .NET MAUI kullanılarak oluşturulan Android uygulamaları C# dilinden bir ara dile (IL) derlenir ve uygulama başlatıldığında yerel bir derlemeye tam zamanında (JIT) derlenir.
  • .NET MAUI kullanılarak oluşturulan iOS uygulamaları, C# dilinden yerel ARM derleme koduna derlenmiş tam olarak önceden oluşturulmuş (AOT) uygulamalardır.
  • .NET MAUI kullanılarak oluşturulan macOS uygulamaları, Apple'ın UIKit ile oluşturulmuş iOS uygulamanızı masaüstüne getiren ve gerektiğinde ek AppKit ve platform API'leri ile genişleten bir çözüm olan Mac Catalyst'i kullanır.
  • .NET MAUI kullanılarak oluşturulan Windows uygulamaları, Windows masaüstünü hedefleyen yerel uygulamalar oluşturmak için Windows UI 3 (WinUI 3) kitaplığını kullanır. WinUI 3 hakkında daha fazla bilgi için bkz . Windows Kullanıcı Arabirimi Kitaplığı.

Dekont

iOS ve macOS için uygulama oluşturmak için Mac gerekir.

.NET MAUI'nin sağladığı bilgiler

.NET MAUI verileri görüntülemek, eylemleri başlatmak, etkinliği göstermek, koleksiyonları görüntülemek, veri seçmek ve daha fazlasını yapmak için kullanılabilecek bir denetim koleksiyonu sağlar. .NET MAUI, denetim koleksiyonuna ek olarak şunları da sağlar:

  • Sayfaları tasarlamaya yönelik ayrıntılı bir düzen altyapısı.
  • Çekmeceler gibi zengin gezinti türleri oluşturmak için birden çok sayfa türü.
  • Daha zarif ve sürdürülebilir geliştirme desenleri için veri bağlama desteği.
  • Ui öğelerinin sunulma şeklini geliştirmek için işleyicileri özelleştirme özelliği.
  • Yerel cihaz özelliklerine erişmek için platformlar arası API'ler. Bu API'ler uygulamaların GPS, ivmeölçer ve pil ve ağ durumları gibi cihaz özelliklerine erişmesini sağlar. Daha fazla bilgi için bkz . Cihaz özellikleri için platformlar arası API'ler.
  • Şekilleri ve resimleri çizmeyi ve boyamayı, birleştirme işlemlerini ve grafik nesne dönüşümlerini destekleyen bir çizim tuvali sağlayan platformlar arası grafik işlevselliği.
  • Android, iOS, macOS ve Windows'ı hedeflemek için çoklu hedefleme kullanan tek bir proje sistemi. Daha fazla bilgi için bkz . .NET MAUI Tek projesi.
  • .NET çalışırken yeniden yükleme, böylece uygulama çalışırken hem XAML'nizi hem de yönetilen kaynak kodunuzu değiştirebilir, ardından uygulamayı yeniden derlemeden değişikliklerinizin sonucunu gözlemleyebilirsiniz. Daha fazla bilgi için bkz . .NET çalışırken yeniden yükleme.

Cihaz özellikleri için platformlar arası API'ler

.NET MAUI, yerel cihaz özellikleri için platformlar arası API'ler sağlar. Cihaz özelliklerine erişmek için .NET MAUI tarafından sağlanan işlevlere örnek olarak şunlar verilebilir:

  • Cihazlarda ivmeölçer, pusula ve jiroskop gibi algılayıcılara erişim.
  • Cihazın ağ bağlantı durumunu denetleyebilme ve değişiklikleri algılama olanağı.
  • Uygulamanın üzerinde çalıştığı cihaz hakkında bilgi sağlayın.
  • Uygulamalar arasında metin kopyalayıp sistem panosuna yapıştırın.
  • Cihazdan tek veya birden çok dosya seçin.
  • Verileri anahtar/değer çiftleri olarak güvenli bir şekilde depolayın.
  • Cihazdan metin okumak için yerleşik metin okuma altyapılarını kullanın.
  • Belirli bir uygulama kayıtlı URL'sine geri çağırmayı dinleyen tarayıcı tabanlı kimlik doğrulama akışlarını başlatın.

Tek proje

.NET MAUI tek projesi, uygulama geliştirirken genellikle karşılaştığınız platforma özgü geliştirme deneyimlerini alır ve bunları Android, iOS, macOS ve Windows'u hedefleyebilecek tek bir paylaşılan projede özetler.

.NET MAUI tek projesi, hedeflenen platformlardan bağımsız olarak basitleştirilmiş ve tutarlı bir platformlar arası geliştirme deneyimi sağlar. .NET MAUI tek projesi aşağıdaki özellikleri sağlar:

  • Android, iOS, macOS ve Windows'ı hedefleyebilecek tek bir paylaşılan proje.
  • .NET MAUI uygulamalarınızı çalıştırmak için basitleştirilmiş bir hata ayıklama hedefi seçimi.
  • Tek proje içinde paylaşılan kaynak dosyaları.
  • Uygulama başlığını, kimliğini ve sürümünü belirten tek bir uygulama bildirimi.
  • Gerektiğinde platforma özgü API'lere ve araçlara erişim.
  • Tek bir platformlar arası uygulama giriş noktası.

.NET MAUI tek projesi, çoklu hedefleme ve SDK stilinde projelerin kullanımı kullanılarak etkinleştirilir. .NET MAUI tek projesi hakkında daha fazla bilgi için bkz . .NET MAUI tek projesi.

Çalışırken yeniden yükleme

.NET MAUI, uygulama çalışırken yönetilen kaynak kodunuzu el ile duraklatmanıza veya kesme noktasına basmanıza gerek kalmadan değiştirmenize olanak tanıyan .NET çalışırken yeniden yükleme desteği içerir. Ardından kod düzenlemeleriniz, yeniden derleme olmadan çalışan uygulamanıza uygulanabilir.

.NET MAUI ayrıca XAML dosyalarınızı kaydetmenizi ve değişiklikleri yeniden derlemeden çalışan uygulamanıza yansıtılanları görmenizi sağlayan XAML çalışırken yeniden yükleme desteği içerir. Buna ek olarak, gezinti durumunuz ve verileriniz korunarak uygulamadaki yerinizi kaybetmeden kullanıcı arabiriminizde hızla yinelemenizi sağlar.