.NET MAUI'ye Giriş ve Kullanım: Platformlar Arası Uygulama Geliştirme Rehberi
Günümüz mobil ve masaüstü uygulama geliştirme dünyasında, farklı platformlar için ayrı kod tabanları oluşturmak genellikle zaman alıcı ve maliyetli bir süreçtir. İşte bu noktada Microsoft, tek bir kod tabanıyla iOS, Android, Windows ve macOS uygulamaları geliştirmenize olanak tanıyan güçlü bir çözüm sunuyor: .NET MAUI (Multi-platform App UI).
Bu blog yazısında, .NET MAUI'nin ne olduğunu, temel özelliklerini, projenizi nasıl başlatacağınızı ve basit bir uygulama geliştirirken nelere dikkat etmeniz gerektiğini kapsamlı bir şekilde ele alacağız.
.NET MAUI Nedir?
.NET MAUI, XAML ve C# kullanarak platformlar arası uygulamalar oluşturmanızı sağlayan açık kaynaklı bir UI çerçevesidir. Xamarin.Forms'un evrimi olarak geliştirilen MAUI, .NET 6 ve sonraki sürümlerle birlikte gelir ve size modern, yerel görünümlü ve hissiyatlı uygulamalar oluşturma gücü verir. Temel amacı, geliştiricilerin tek bir proje üzerinden tüm ana platformlara ulaşmasını sağlayarak verimliliği artırmaktır.
.NET MAUI'nin Temel Özellikleri
.NET MAUI'yi öne çıkaran bazı önemli özellikler şunlardır:
Tek Proje Deneyimi: Artık her platform için ayrı projelerle uğraşmak yerine, tek bir .NET MAUI projesi içinde tüm platform hedeflerini yönetebilirsiniz. Bu, geliştirme, derleme ve dağıtım süreçlerini büyük ölçüde basitleştirir.
Yerel Arayüzler: .NET MAUI, platformun kendi yerel kontrollerini (native controls) kullanır. Bu, uygulamanızın her platformda doğal bir görünüm ve hissiyat sunmasını sağlar, performanstan ödün vermeden kullanıcı deneyimini iyileştirir.
C# ve XAML: Hem C# koduyla güçlü arka uç mantığı yazabilir hem de XAML ile deklaratif UI tanımlaması yapabilirsiniz. Bu esneklik, geliştiricilerin tercih ettikleri yaklaşımla çalışmasına olanak tanır.
Sıcak Yeniden Yükleme (Hot Reload): Uygulamanızı çalıştırmadan veya yeniden derlemeden XAML ve C# kodunuzda yaptığınız değişiklikleri anında görebilirsiniz. Bu, UI geliştirme sürecini inanılmaz derecede hızlandırır.
.NET Ekosistemi Entegrasyonu: .NET MAUI, mevcut .NET kütüphaneleri, NuGet paketleri ve araçlarıyla sorunsuz bir şekilde çalışır. Bu sayede geniş .NET topluluğunun ve kaynaklarının avantajlarından faydalanabilirsiniz.
.NET MAUI ile Başlangıç
.NET MAUI uygulamaları geliştirmeye başlamak için aşağıdaki önkoşullara ihtiyacınız vardır:
Visual Studio 2022 (Sürüm 17.3 veya üzeri): “.NET Multi-platform App UI development” iş yükü yüklü olmalıdır.
.NET SDK: Gerekli .NET SDK sürümü genellikle Visual Studio ile birlikte gelir.
Yeni bir .NET MAUI projesi oluşturmak oldukça basittir:
Visual Studio 2022'yi açın.
“Yeni bir proje oluştur” seçeneğini seçin.
Şablonlar listesinde ".NET MAUI Uygulaması"nı arayın ve seçin.
Projenize bir isim verin ve konumunu belirleyin.
Oluştur'a tıklayın.
Basit Bir .NET MAUI Uygulaması: Yapı ve Kullanım
Yeni bir .NET MAUI projesi oluşturduğunuzda, temel bir klasör yapısı ve bazı önceden tanımlanmış dosyalarla karşılaşırsınız:
MauiProgram.cs
: Uygulamanızın başlangıç noktasıdır. Fontları, bağımlılık enjeksiyonunu ve diğer global ayarları burada yapılandırırsınız.App.xaml
veApp.xaml.cs
: Uygulamanızın yaşam döngüsünü ve global kaynaklarını (stiller, şablonlar) tanımlar.MainPage.xaml
veMainPage.xaml.cs
: Uygulamanızın ana sayfasının UI'sını (XAML) ve arka plan mantığını (C#) içerir.Platforms
klasörü: Her platforma özgü kod veya kaynakları barındırır. Genellikle doğrudan düzenlemeniz gerekmez.
İşte basit bir “Merhaba Dünya!” uygulamasının XAML ve C# kodları:
MainPage.xaml:
<!-- MainPage.xaml -->
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyMauiApp.MainPage">
<ScrollView>
<VerticalStackLayout
Padding="30,0"
Spacing="25">
<Image
Source="dotnet_bot.png"
HeightRequest="185"
Aspect="AspectFit"
SemanticProperties.Description="dot net bot in a hovercraft number nine" />
<Label
Text="Merhaba Dünya!"
FontSize="32"
HorizontalOptions="Center" />
<Label
Text="MAUI Uygulamanıza Hoş Geldiniz!"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="CounterBtn"
Text="Tıkla Bana"
SemanticProperties.Hint="Butona tıklama sayısını artırır"
Clicked="OnCounterClicked"
HorizontalOptions="Fill" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
MainPage.xaml.cs:
namespace MyMauiApp;
public partial class MainPage : ContentPage
{
int count = 0;
public MainPage()
{
InitializeComponent(); // XAML'ı başlatır
}
private void OnCounterClicked(object sender, EventArgs e)
{
count++;
if (count == 1)
CounterBtn.Text = $"Butona {count} kez tıklandı.";
else
CounterBtn.Text = $"Butona {count} kez tıklandı.";
SemanticScreenReader.Announce(CounterBtn.Text);
}
}
Bu örnekte, VerticalStackLayout
kullanarak dikey bir düzen oluşturulmuş, içerisine bir Image
, iki Label
ve bir Button
eklenmiştir. Button
'ın Clicked
olayı, OnCounterClicked
metodu ile C# tarafında yakalanmakta ve sayacı artırarak Button
'ın metnini güncellemektedir.
Neden .NET MAUI Kullanmalısınız?
Tek Kod Tabanı, Birden Fazla Platform: Geliştirme süresini ve maliyetini önemli ölçüde azaltır.
Yerel Performans ve Deneyim: Uygulamalarınızın her platformda hızlı ve doğal hissetmesini sağlar.
Geniş .NET Desteği: Mevcut .NET becerilerinizi ve kütüphanelerinizi yeniden kullanabilirsiniz.
Hızlı Geliştirme Döngüsü: Hot Reload gibi özellikler sayesinde UI değişikliklerini anında görebilirsiniz.
Microsoft Desteği ve Topluluk: Güçlü bir Microsoft desteği ve büyüyen bir geliştirici topluluğu ile karşılaşılan sorunlara çözüm bulmak daha kolaydır.
Sonuç
.NET MAUI, platformlar arası uygulama geliştirme alanında iddialı ve güçlü bir çözümdür. Tek bir kod tabanıyla modern, performanslı ve yerel görünümlü uygulamalar oluşturma yeteneği, onu günümüz geliştiricileri için cazip bir seçenek haline getirmektedir. İster mobil, ister masaüstü uygulamalar geliştirin, .NET MAUI, geliştirme sürecinizi hızlandırmak ve hedef kitlenizi genişletmek için size gerekli araçları sunar.
Hemen bir .NET MAUI projesi başlatın ve platformlar arası geliştirmenin gücünü keşfedin!