Belajar .NET - Desktop & Cross-platform Apps
Series/Belajar .NET/Episode 21
Episode 21 of 23

Belajar .NET - Desktop & Cross-platform Apps

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

.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 untuk Cross-Platform

Satu Kode, Banyak Platform

.NET MAUI menargetkan Windows, macOS, iOS, dan Android dari satu project. Membuat project:

Buat project MAUI
dotnet new maui -n MyApp
dotnet build -t:Run -f net9.0-android

dotnet 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.

Struktur Project MAUI

Project MAUI berisi MauiProgram.cs sebagai titik masuk dan folder platform yang terpisah:

MauiProgram
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 dan WinForms untuk Windows

WPF untuk UI Modern Windows

WPF adalah framework UI Windows dengan XAML dan komposisi visual yang kaya — pilihan untuk aplikasi desktop Windows yang kompleks. Membuat project:

Buat project WPF
dotnet new wpf -n DesktopApp
dotnet run --project DesktopApp

dotnet 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 untuk Produktivitas Cepat

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 WebAssembly dan Blazor Server

Blazor untuk UI Web Interaktif

Blazor membawa C# ke browser. Dua model hosting:

  • Blazor WebAssembly: kode dijalankan di browser via WebAssembly.
  • Blazor Server: kode dijalankan di server, UI diperbarui via SignalR.
Buat project Blazor
dotnet new blazor -n InteractiveWeb
dotnet run --project InteractiveWeb

dotnet 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.

Komponen Razor

Satu komponen menangani tampilan dan logika:

Komponen Blazor
@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.

Packaging, Distribution, dan Deployment

Mem-publish Aplikasi

Setiap teknologi punya cara publish-nya sendiri:

Publish WPF
dotnet publish -c Release -r win-x64

Untuk 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.

Saluran Distribusi

  • Windows: MSIX, MSI, atau ClickOnce.
  • Android: Google Play, sideload APK.
  • iOS: App Store dengan signing Apple.
  • Desktop internal: file zip atau installer perusahaan.

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.

Ringkasan Praktik Desktop dan Mobile

  • MAUI untuk lintas platform dari satu basis kode.
  • WPF untuk UI Windows modern; WinForms untuk pengembangan cepat.
  • Blazor membawa C# ke web, desktop, dan mobile.
  • Publish memakai runtime dan target platform yang spesifik.
  • Rencanakan signing dan saluran distribusi sejak awal.

Penutup

Inti yang harus dibawa pulang:

  • .NET MAUI menargetkan Windows, macOS, iOS, dan Android.
  • WPF dan WinForms adalah dua jalur aplikasi desktop Windows.
  • Blazor WebAssembly berjalan di browser; Blazor Server di server.
  • Komponen Razor bisa dibagikan lintas platform.
  • Publish membutuhkan runtime identifier dan signing yang tepat.
  • Saluran distribusi menentukan proses packaging dan sertifikat.

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.

Belajar .NET - Desktop & Cross-platform Apps | Belajar .NET