Episode ini menjelajahi pengembangan aplikasi desktop dan mobile: .NET MAUI untuk lintas platform, WPF dan WinForms untuk Windows, Blazor WebAssembly dan Blazor Server, serta packaging, distribution, dan deployment aplikasi desktop dan mobile.

.NET tidak hanya untuk server — ia juga membangun aplikasi desktop dan mobile. Episode 21 menjelajahi dunia tersebut: .NET MAUI untuk lintas platform, WPF dan WinForms untuk Windows, serta Blazor yang membawa keterampilan web kalian ke desktop dan mobile.
Tema besarnya adalah satu keahlian, banyak permukaan. Dengan pengetahuan C#, kalian bisa membangun UI native di berbagai platform. Episode ini memberi peta teknologi sehingga kalian memilih yang tepat untuk kebutuhan masing-masing.
.NET MAUI menargetkan Windows, macOS, iOS, dan Android dari satu project. Membuat project:
dotnet new maui -n MyApp
dotnet build -t:Run -f net9.0-androiddotnet new maui -n MyApp membuat project dengan target per platform di .csproj. Satu basis kode UI ditulis dengan XAML, sementara fitur khusus platform bisa diakses lewat komponen seperti Microsoft.Maui.Platform.
Project MAUI berisi MauiProgram.cs sebagai titik masuk dan folder platform yang terpisah:
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder.Services.AddSingleton<MainPage>();
return builder.Build();
}
}MauiApp.CreateBuilder memakai pola yang sama dengan Generic Host — DI dan konfigurasi bekerja seperti di episode 8. XAML halaman mendefinisikan UI secara deklaratif, dan MainPage di-resolve dari container.
WPF adalah framework UI Windows dengan XAML dan komposisi visual yang kaya — pilihan untuk aplikasi desktop Windows yang kompleks. Membuat project:
dotnet new wpf -n DesktopApp
dotnet run --project DesktopAppdotnet new wpf -n DesktopApp menghasilkan project dengan MainWindow.xaml. WPF cocok untuk aplikasi bisnis Windows dengan tata letak kompleks, binding data, dan styling yang kuat.
WinForms menawarkan pengembangan visual drag-and-drop yang cepat — ideal untuk tool internal dan aplikasi sederhana yang memprioritaskan kecepatan pengembangan. Pilihannya sederhana: WinForms untuk kebutuhan sederhana dan cepat; WPF untuk aplikasi yang membutuhkan UI modern dan kaya.
Blazor membawa C# ke browser. Dua model hosting:
dotnet new blazor -n InteractiveWeb
dotnet run --project InteractiveWebdotnet new blazor menghasilkan aplikasi dengan komponen .razor yang mencampur markup dan C#. Komponen yang sama juga bisa dijalankan di desktop lewat Blazor Hybrid — menggabungkan UI web dengan kekuatan native MAUI.
Satu komponen menangani tampilan dan logika:
@code {
private int jumlah = 0;
private void Tambah()
{
jumlah++;
}
}
<button @onclick="Tambah">Klik: @jumlah</button>@code berisi logika C#, dan markup memakai directive seperti @onclick. Komponen bersifat reusable dan bisa di-share antar aplikasi — dari server hingga mobile.
Setiap teknologi punya cara publish-nya sendiri:
dotnet publish -c Release -r win-x64Untuk WPF, dotnet publish -r win-x64 menghasilkan folder yang bisa di-package menjadi installer (MSIX atau MSI). MAUI memakai perintah dotnet publish -f net9.0-android untuk menghasilkan APK/AAB, dan Xcode/App Store untuk iOS.
Setiap saluran punya persyaratan signing dan sertifikat. Rencanakan distribusi sejak awal karena penerbitan ke store membutuhkan proses verifikasi.
Info
Sebelum memilih framework, tanyakan target utama: Windows saja, atau Windows, macOS, Android, dan iOS? Jawabannya menentukan WPF/WinForms versus MAUI atau Blazor.
Inti yang harus dibawa pulang:
Di episode 22 selanjutnya kita akan membahas stable modern features dan future trends — minimal APIs, source generators, hot reload, dan AOT, roadmap rilis dan strategi LTS .NET, tren ekosistem cloud, microservices, AI/ML, dan edge, serta strategi menjaga keahlian .NET tetap relevan.