Baca dalam bahasa Inggris

Bagikan melalui


Gambaran umum opsi kerangka kerja

Artikel ini berisi informasi yang Anda butuhkan untuk mulai membangun aplikasi untuk Windows.

Windows menawarkan berbagai bahasa, kerangka kerja, dan alat untuk membangun aplikasi, termasuk WinUI, React Native untuk Desktop, WPF, C++, C#, .NET, dan berbagai kerangka kerja lintas platform. Di sini, kami menyediakan informasi untuk membantu Anda memutuskan opsi mana yang terbaik untuk Anda.

WinUI

.

Kami merekomendasikan WinUI dan SDK Aplikasi Windows untuk membuat aplikasi yang terlihat hebat dan memanfaatkan rilis Windows terbaru. Jika Anda baru menggunakan pengembangan Windows, atau mulai mengerjakan aplikasi Windows baru, WinUI menyediakan sumber daya yang Anda butuhkan untuk membuat aplikasi hebat untuk Windows 11.

WinUI adalah lapisan antarmuka pengguna berbasis markup XAML yang berisi kontrol dan gaya modern untuk membangun aplikasi Windows. Sebagai lapisan UI asli untuk SDK Aplikasi Windows, ini mewujudkan Desain Fasih, memberikan setiap aplikasi Windows nuansa yang dipolihkan yang diharapkan pelanggan.

Catatan

SDK Aplikasi Windows adalah sekumpulan komponen dan alat pengembang baru yang mewakili evolusi terbaru di platform pengembangan aplikasi Windows. SDK Aplikasi Windows menyediakan sekumpulan API dan alat terpadu yang dapat digunakan dengan cara yang konsisten oleh aplikasi desktop di Windows 11 dan downlevel ke Windows 10, versi 1809.

Meskipun WinUI adalah lapisan UI asli, Anda dapat menggunakan SDK Aplikasi Windows dengan aplikasi WPF, WinForms, atau Win32. Jika Anda telah mengembangkan aplikasi untuk Windows sebelumnya, tetapi ingin memulai SDK Aplikasi Windows di aplikasi yang sudah ada, lihat Panduan khusus kerangka kerja.

React Native untuk Desktop

React Native adalah platform pengembangan yang memungkinkan pembuatan aplikasi lintas platform. React Native for Desktop mencakup React Native untuk Windows dan macOS, membawa dukungan React Native ke Windows SDK. React Native for Desktop memungkinkan Anda menggunakan JavaScript untuk membangun aplikasi Windows asli untuk semua perangkat yang didukung oleh Windows 10 dan Windows 11. Ini termasuk PC, tablet, 2-in-1s, Xbox, perangkat Mixed Reality, dll.

Dengan React Native for Desktop, Anda menulis sebagian besar atau semua kode aplikasi Anda di JavaScript - atau TypeScript - dan kerangka kerja menghasilkan aplikasi UWP XAML asli. Jika aplikasi Anda perlu memanggil API platform, Anda biasanya dapat melakukannya melalui salah satu dari banyak modul komunitas, atau jika modul belum ada, Anda dapat dengan mudah menulis modul asli untuk mengeksposnya.

Berikut adalah beberapa alasan untuk memilih React Native for Desktop:

  • Anda ingin berbagi kode di seluruh platform sebanyak mungkin, atau Anda memiliki properti web yang ingin Anda bagikan kodenya.
  • Peningkatan produktivitas pengembang dan perulangan dalam, berkat refresh cepat.
  • Dasar-dasar aplikasi Anda (performa, aksesibilitas, internasionalisasi) sama baiknya dengan aplikasi UWP asli.
  • Anda memiliki pengalaman dengan dan preferensi untuk JavaScript atau TypeScript
  • Anda ingin memanfaatkan pustaka khusus JavaScript di npmjs.com, dan banyak pustaka asli juga.
  • Aplikasi Anda akan menggunakan kontrol asli, tampilan visual, animasi, dan warna, dan oleh karena itu akan terasa terintegrasi ke dalam bahasa desain yang digunakan di Windows. Selain itu, aplikasi React Native for Desktop tidak perlu membahayakan kumpulan API yang dapat mereka panggil, karena kerangka kerja memungkinkan Anda memanggil API platform serta menulis manajer tampilan dan modul asli Anda sendiri.
  • Momentum komunitas yang besar dan berkembang, dengan banyak modul komunitas.

Untuk informasi selengkapnya tentang React Native untuk Desktop, lihat tautan berikut ini:

WPF

WPF adalah kerangka kerja yang dibuat dengan baik untuk aplikasi desktop Windows dengan akses ke .NET atau .NET Framework. Seperti WinUI, ia juga menggunakan markup XAML untuk memisahkan UI dari kode. WPF menyediakan serangkaian fitur pengembangan aplikasi komprehensif yang mencakup kontrol, pengikatan data, tata letak, grafik 2D dan 3D, animasi, gaya, templat, dokumen, media, teks, dan tipografi. WPF adalah bagian dari .NET, sehingga Anda dapat membangun aplikasi yang menggabungkan elemen lain dari .NET API.

Selain itu, Anda sekarang dapat mengintegrasikan lingkungan kotak pasir ke dalam aplikasi WPF paket Anda, memberikan lapisan keamanan tambahan. Peningkatan ini membutuhkan sedikit atau tidak ada perubahan pada kode Anda, berkat fitur keamanan Isolasi Aplikasi Win32 yang baru.

Tip

Jika Anda sudah berinvestasi di WPF, Anda dapat terus menggunakannya dan memanfaatkan opsi modernisasi di .NET 9. Anda dapat membangun aplikasi yang mengetahui bahwa Microsoft terus berinvestasi di WPF. Lihat Tanya Jawab Umum kerangka kerja pengembangan aplikasi klien untuk informasi selengkapnya.

Jika Anda memiliki aplikasi WPF .NET, Anda juga memiliki akses ke fitur platform Windows modern dan API yang disediakan oleh SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat Menggunakan SDK Aplikasi Windows di aplikasi WPF dan Memodernisasi aplikasi desktop Anda.

Tip

Jika Anda memerlukan bantuan lebih lanjut untuk memutuskan kerangka kerja mana yang merupakan pilihan terbaik untuk aplikasi Anda, lihat memilih kerangka kerja aplikasi terbaik untuk modul pelatihan proyek pengembangan Windows.

Opsi platform asli lainnya

Banyak aplikasi untuk Windows ditulis menggunakan Win32, Formulir Windows, atau UWP. Masing-masing kerangka kerja ini didukung dan akan terus menerima bug, keandalan, dan perbaikan keamanan, tetapi berbagai tingkat investasi untuk fitur dan gaya baru. Untuk informasi selengkapnya tentang jenis aplikasi ini, lihat tab berikut.

Aplikasi desktop Win32 (juga terkadang disebut aplikasi desktop klasik) adalah jenis aplikasi asli untuk aplikasi Windows asli yang memerlukan akses langsung ke Windows dan perangkat keras. Ini membuat Win32 menjadi jenis pilihan aplikasi untuk aplikasi yang membutuhkan tingkat performa tertinggi dan akses langsung ke perangkat keras sistem.

Menggunakan API Win32 dengan C++ memungkinkan untuk mencapai tingkat performa dan efisiensi tertinggi dengan mengambil kontrol lebih besar atas platform target dengan kode yang tidak dikelola daripada yang dimungkinkan pada lingkungan runtime terkelola seperti WinRT dan .NET. Namun, menjalankan tingkat kontrol atas eksekusi aplikasi Anda membutuhkan perawatan dan perhatian yang lebih besar untuk mendapatkan yang benar, dan memperdagangkan produktivitas pengembangan untuk performa runtime.

Berikut adalah beberapa sorotan dari apa yang ditawarkan Win32 API dan C++ untuk memungkinkan Anda membangun aplikasi berkinerja tinggi.

  • Pengoptimalan tingkat perangkat keras, termasuk kontrol ketat atas alokasi sumber daya, masa pakai objek, tata letak data, perataan, pengemasan byte, dan banyak lagi.
  • Akses ke set instruksi berorientasi performa seperti SSE dan AVX melalui fungsi intrinsik.
  • Pemrograman generik yang efisien dan aman jenis dengan menggunakan templat.
  • Kontainer dan algoritma yang efisien dan aman.
  • DirectX, khususnya Direct3D dan DirectCompute.
  • Gunakan C++/WinRT untuk membuat aplikasi Win32 desktop modern dengan akses kelas satu ke API Windows Runtime (WinRT).

Selain itu, Anda sekarang dapat mengintegrasikan lingkungan kotak pasir ke dalam aplikasi Win32 Anda, memberikan lapisan keamanan tambahan. Peningkatan ini membutuhkan sedikit atau tidak ada perubahan pada kode Anda, berkat fitur keamanan Isolasi Aplikasi Win32 yang baru.

Anda juga memiliki akses ke fitur platform Windows modern dan API yang disediakan oleh SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat Menggunakan SDK Aplikasi Windows dalam proyek yang sudah ada dan Memodernisasi aplikasi desktop Anda.

Opsi lintas platform lainnya

Jika Anda memerlukan aplikasi anda untuk menjadi lintas platform, selain React Native for Desktop, Anda harus mempertimbangkan .NET MAUI atau Progressive Web App (PWA). Ada banyak pilihan lain yang tersedia (berikut adalah daftar opsi populer), tetapi ini adalah beberapa titik awal yang baik.

.NET MAUI memanfaatkan kekuatan WinUI di Windows, sekaligus mengaktifkan eksekusi pada sistem operasi lainnya. Opsi lintas platform lainnya, Progressive Web Apps (PWAs), adalah situs web yang berfungsi seperti terinstal, aplikasi asli di Windows dan platform lain yang didukung, sambil berfungsi seperti situs web biasa di browser.

Untuk informasi selengkapnya, lihat tab berikut ini.

.NET Multi-platform App UI (MAUI) adalah kerangka kerja lintas platform sumber terbuka untuk membangun aplikasi Android, iOS, macOS, dan Windows yang memanfaatkan UI asli dan layanan setiap platform dari satu basis kode .NET. Karena .NET MAUI mendukung pengalaman asli platform, ia menggunakan WinUI dan SDK Aplikasi Windows sehingga aplikasi mendapatkan pengalaman pengguna terbaru di Windows. Ini memberi aplikasi Anda akses ke semua yang Anda dapatkan dengan WinUI ditambah kemampuan untuk menjangkau ke platform lain.

.NET MAUI untuk Windows adalah pilihan yang bagus jika:

  • Anda ingin berbagi kode .NET sebanyak mungkin di seluruh aplikasi seluler dan desktop.
  • Anda ingin mengirimkan aplikasi Anda di luar Windows ke target desktop dan seluler lainnya dengan pengalaman platform asli.
  • Anda ingin menggunakan C# dan/atau XAML untuk membangun aplikasi lintas platform.
  • Anda menggunakan Blazor untuk pengembangan web dan ingin menyertakan semua atau sebagiannya dalam aplikasi seluler atau desktop.

Untuk informasi selengkapnya tentang .NET MAUI, lihat tautan berikut ini:

Perbandingan fitur kerangka kerja pengembangan aplikasi

Ada berbagai opsi untuk mengembangkan aplikasi untuk Windows. Opsi terbaik untuk Anda tergantung pada persyaratan aplikasi Anda, kode yang ada, dan keakraban Anda dengan teknologi. Tabel berikut mencantumkan kerangka kerja pengembangan aplikasi paling populer yang tersedia di Windows dan fitur yang didukung oleh setiap kerangka kerja.

Fitur .NET MAUI Blazor Hybrid React Native untuk Desktop UWP XAML (Windows.UI.Xaml) Win32 (MFC atau ATL) Formulir Windows WinUI 3 WPF
Bahasa C# C# JavaScript, TypeScript C#, C++, Visual Basic C++, Rust C#, Visual Basic C#, C++ C#, Visual Basic
Bahasa UI XAML/Kode Razor JSX XAML Kode Kode XAML XAML
Perancang UI
(seret & jatuhkan)
Penelusuran kesalahan UI Isi Ulang Panas Isi Ulang Panas Refresh Cepat Isi Ulang Panas - Isi Ulang Panas Isi Ulang Panas Isi Ulang Panas
Desain Yang Fasih ✅ (melalui WinUI 2)
.NET .NET .NET T/A .NET Core & .NET Native T/A .NET & .NET Framework .NET .NET & .NET Framework
SDK Aplikasi Windows ✅ (info lebih lanjut) melalui MAUI ✅ (info lebih lanjut) ✅ (info lebih lanjut) ✅ (info lebih lanjut)
Bagus untuk disentuh
Lintas platform
Aplikasi Xbox/HoloLens
Sandboxing (AppContainer)
Saat ini didukung
Menerima pembaruan ✅ (keamanan &bugfix)
Peta strategi GitHub GitHub GitHub n/a n/a GitHub GitHub GitHub

Pelajari selengkapnya tentang masing-masing opsi ini:

Langkah berikutnya