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.
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.
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.
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.
Formulir Windows adalah platform asli untuk aplikasi Windows terkelola dengan model UI ringan dan akses ke .NET atau .NET Framework. Ini unggul dalam memungkinkan pengembang untuk dengan cepat mulai membangun aplikasi, bahkan untuk pengembang yang baru mengenal platform. Ini adalah platform pengembangan aplikasi cepat berbasis formulir dengan koleksi kontrol seret dan letakkan visual dan non-visual bawaan yang besar. Formulir Windows tidak menggunakan XAML, jadi memutuskan nanti untuk menulis ulang aplikasi Anda ke WinUI memerlukan penulisan ulang lengkap UI Anda.
Selain itu, Anda sekarang dapat mengintegrasikan lingkungan kotak pasir ke dalam aplikasi Formulir Windows yang dipaketkan, memberikan lapisan keamanan tambahan. Peningkatan ini membutuhkan sedikit atau tidak ada perubahan pada kode Anda, berkat fitur keamanan Isolasi Aplikasi Win32 yang baru.
Platform Windows Universal (UWP) menyediakan sistem jenis umum, API, dan model aplikasi untuk semua perangkat di Platform Windows Universal. Anda tidak hanya dapat menggunakan UWP untuk membuat aplikasi desktop untuk PC Windows, tetapi UWP juga merupakan satu-satunya platform yang didukung untuk menulis satu aplikasi universal asli yang berjalan di Xbox, HoloLens, dan Surface Hub. Aplikasi UWP dapat asli atau dikelola.
Catatan
Aplikasi UWP Anda yang ada akan terus berfungsi seperti yang diharapkan. Namun, untuk memanfaatkan fitur modern di WinUI 3 dan SDK Aplikasi Windows sebaiknya migrasikan aplikasi Anda.
Anda tidak akan memiliki akses ke API yang disediakan oleh SDK Aplikasi Windows atau .NET 6 dan yang lebih baru. Untuk menggunakan SDK Aplikasi Windows, Anda harus memigrasikan aplikasi UWP Anda ke WinUI dan SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat Migrasi ke SDK Aplikasi Windows.
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.
Progressive Web Apps (PWAs) menyediakan akses ke teknologi web terbuka untuk menyediakan interoperabilitas lintas platform. PWAs memberi pengguna Anda pengalaman seperti aplikasi yang disesuaikan untuk perangkat mereka. PWAs adalah situs web yang semakin ditingkatkan agar berfungsi seperti aplikasi asli yang diinstal pada platform pendukung (termasuk Windows), sambil berfungsi seperti situs web biasa di browser lain.
Saat diinstal di Windows, PWAs sama seperti aplikasi lain. Contohnya:
PWA dapat ditambahkan ke menu Mulai.
PWA dapat disematkan ke Taskbar.
PWAs dapat menangani file.
PWAs dapat berjalan saat pengguna masuk.
PWAs dapat dikirimkan ke Microsoft Store di mana jutaan pengguna Windows dapat menemukan dan dengan mudah menginstalnya bersama aplikasi Windows lainnya.
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.
Windows tidak hanya bagus untuk mengembangkan aplikasi yang berjalan di Windows, ini juga merupakan lingkungan yang kuat untuk mengembangkan aplikasi untuk platform apa pun. Pelajari selengkapnya tentang alat dan opsi yang tersedia untuk memaksimalkan pengembangan Anda.
Berkolaborasi dengan kami di GitHub
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.
Umpan balik Windows developer
Windows developer adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Pengembang Windows memiliki berbagai opsi untuk membuat aplikasi yang berjalan pada Windows. Modul ini memperkenalkan kerangka kerja Windows UI yang tersedia untuk pengembangan Windows. Ini juga memberikan panduan tentang cara memilih kerangka kerja terbaik untuk aplikasi Anda.