Çerçeve seçeneklerine genel bakış
Bu makale, Windows için uygulama oluşturmaya başlamak için ihtiyacınız olan bilgileri içerir.
Windows; WinUI, Masaüstü için React Native, WPF, C++, C#, .NET ve çeşitli platformlar arası çerçeveler dahil olmak üzere uygulama oluşturmaya yönelik çok çeşitli diller, çerçeveler ve araçlar sunar. Burada, hangi seçeneğin sizin için en uygun olduğuna karar vermenize yardımcı olacak bilgiler sağlıyoruz.
WinUI
WinUI ve Windows Uygulama SDK'sının harika görünen uygulamalar oluşturmasını ve en son Windows sürümlerinden yararlanmasını öneririz. Windows geliştirme konusunda yeniyseniz veya yeni bir Windows uygulamasında çalışmaya başlıyorsanız, WinUI Windows 11için harika
WinUI, Windows uygulamaları oluşturmaya yönelik modern denetimleri ve stilleri içeren XAML işaretleme tabanlı bir kullanıcı arabirimi katmanıdır. Windows Uygulama SDK'sı için yerel kullanıcı arabirimi katmanı olarak Fluent Design'i bünyesinde barındırarak, her Windows uygulamasına müşterilerin beklediği şık bir görünüm verir.
Not
Windows Uygulama SDK'sı, Windows uygulama geliştirme platformundaki en son gelişimi temsil eden bir dizi yeni geliştirici bileşeni ve aracıdır. Windows Uygulama SDK'sı, Windows 11'deki masaüstü uygulamaları ve Windows 10, sürüm 1809'a alt düzey ile tutarlı bir şekilde kullanılabilen birleşik bir API'ler ve araçlar kümesi sağlar.
WinUI yerel kullanıcı arabirimi katmanı olsa da Windows Uygulama SDK'sını WPF, WinForms veya Win32 uygulamalarıyla kullanabilirsiniz. Windows için daha önce uygulama geliştirdiyseniz ancak mevcut bir uygulamada Windows Uygulama SDK'sını kullanmaya başlamak istiyorsanız bkz. Framework'e özgü kılavuzlar.
Masaüstü için React Native
React Native, platformlar arası uygulamalar oluşturmaya olanak tanıyan bir geliştirme platformudur. React Native for Desktop, Windows ve macOS için React Native'i kapsar ve React Native desteğini Windows SDK'sına getirir. Masaüstü için React Native, JavaScript kullanarak Windows 10 ve Windows 11 tarafından desteklenen tüm cihazlar için yerel Windows uygulamaları oluşturmanıza olanak tanır. Buna bilgisayarlar, tabletler, 2'leri bir arada cihazlar, Xbox, Karma Gerçeklik cihazları vb. dahildir.
Masaüstü için React Native ile uygulama kodunuzun çoğunu veya tamamını JavaScript veya TypeScript'te yazarsınız ve çerçeve yerel bir UWP XAML uygulaması oluşturur. Uygulamanızın bir platform API'sini çağırması gerekiyorsa, bunu genelliklebirçok
Masaüstü için React Native'i seçmenin bazı nedenleri şunlardır:
- Kodu platformlar arasında mümkün olduğunca paylaşmak istiyorsunuz veya kodu paylaşmak istediğiniz web özelliklerine sahipsiniz.
- Hızlı yenileme sayesinde geliştiricilerin üretkenliği ve iç geliştirme döngüsü iyileştirildi.
- Uygulamanızın temelleri (performans, erişilebilirlik, uluslararasılaştırma) yerel bir UWP uygulaması kadar iyidir.
- JavaScript veya TypeScript ile ilgili deneyiminiz ve tercihleriniz var
- npmjs.comüzerinde yalnızca JavaScript ile çalışan kitaplıklardan ve aynı zamanda birçok yerel kitaplıktan yararlanmak istiyorsunuz.
- Uygulamanız yerel denetimleri, görsel görünümü, animasyonları ve renkleri kullanır ve bu nedenle Windows'ta kullanılan tasarım diliyle tümleştirilmiş hissedecektir. Buna ek olarak, React Native for Desktop uygulamalarının çağırabilecekleri API kümesinden ödün vermesi gerekmez, çünkü çerçeve platform API'lerini çağırmanıza ve kendi görünüm yöneticilerinizi ve yerel modüllerinizi yazmanıza olanak tanır.
- Büyük ve büyüyen bir topluluk momentumuyla, birçok topluluk modülüiçeriyor.
Masaüstü için React Native hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:
- GitHub'da Windows için React Native deposu
- GitHub'da macOS için React Native deposu
- API referans
- Masaüstü kaynakları için React Native
WPF
WPF, .NET veya .NET Frameworkerişimi olan Windows masaüstü uygulamaları için iyi oluşturulmuş bir çerçevedir. WinUI gibi, kullanıcı arabirimini koddan ayırmak için de XAML işaretlemesi kullanır. WPF; denetimler, veri bağlama, düzen, 2B ve 3B grafikler, animasyon, stiller, şablonlar, belgeler, medya, metin ve tipografi içeren kapsamlı bir uygulama geliştirme özellikleri kümesi sağlar. WPF , .NET'in bir parçasıdır, bu nedenle .NET API'sinin diğer öğelerini içeren uygulamalar oluşturabilirsiniz.
Ayrıca, artık bir korumalı alan ortamını paketlenmiş WPF uygulamalarınızla tümleştirerek ek bir güvenlik katmanı sağlayabilirsiniz. Yeni Win32 Uygulama Yalıtımı güvenlik özelliği sayesinde bu geliştirme kodunuzda çok az değişiklik yapılmasını gerektirir.
Bahşiş
WPF'ye zaten yatırım yaptıysanız, bunu kullanmaya devam edebilir ve .NET 9'daki modernleştirme seçeneklerinden yararlanabilirsiniz. Microsoft'un WPF'ye yatırım yapmaya devam ettiğini bilerek uygulamalarınızı oluşturabilirsiniz. Daha fazla bilgi için Windows geliştirici SSS'sine bakın.
WPF .NET uygulamanız varsa, Windows Uygulama SDK'sıtarafından sağlanan modern Windows platformu özelliklerine ve API'lerine de erişebilirsiniz. Daha fazla bilgi için bkz.
Bahşiş
Uygulamanız için en iyi çerçevenin hangisi olduğuna karar verirken daha fazla yardıma ihtiyacınız varsa Windows geliştirme projesi eğitim modülü için en iyi uygulama çerçevesini seçme
Diğer yerel platform seçenekleri
Windows için birçok uygulama Win32, Windows Formsveya UWPkullanılarak yazılır. Bu çerçevelerin her biri desteklenir ve hata, güvenilirlik ve güvenlik düzeltmeleri almaya devam eder, ancak yeni özellikler ve stiller için farklı yatırım düzeyleri alır. Bu uygulama türleri hakkında daha fazla bilgi için aşağıdaki sekmelere bakın.
Win32 masaüstü uygulamaları (bazen klasik masaüstü uygulamaları
Win32 API'sini C++ ile kullanmak, WinRT ve .NET gibi yönetilen bir çalışma zamanı ortamına kıyasla, yönetilmeyen kod ile hedef platform üzerinde daha fazla kontrol sahibi olarak en yüksek performans ve verimlilik düzeylerine ulaşmayı mümkün kılar. Ancak, uygulamanızın yürütülmesi üzerinde böyle bir denetim düzeyi uygulamak, doğru olanı yapmak için daha fazla özen ve dikkat gerektirir ve çalışma zamanı performansı için geliştirme üretkenliğini takas eder.
Win32 API ve C++'ın yüksek performanslı uygulamalar oluşturmanıza olanak tanımak için sunduğu özelliklerden birkaçı aşağıda verilmiştir.
- Kaynak ayırma, nesne yaşam süreleri, veri düzeni, hizalama, bayt paketleme ve daha fazlası üzerinde sıkı denetim de dahil olmak üzere donanım düzeyinde iyileştirmeler.
- İç işlevler aracılığıyla SSE ve AVX gibi performans odaklı yönerge kümelerine erişim.
- Şablonları kullanarak verimli, tür açısından güvenli genel programlama.
- Verimli ve güvenli kapsayıcılar ve algoritmalar.
- DirectX, özellikle Direct3D ve DirectCompute.
- Windows Çalışma Zamanı (WinRT) API'lerine birinci sınıf erişime sahip modern masaüstü Win32 uygulamaları oluşturmak için C++/WinRT kullanın.
Ayrıca artık win32 uygulamalarınızla korumalı alan ortamını tümleştirerek ek bir güvenlik katmanı sağlayabilirsiniz. Yeni Win32 Uygulama Yalıtımı güvenlik özelliği sayesinde bu geliştirme kodunuzda çok az değişiklik yapılmasını gerektirir.
Ayrıca Windows Uygulama SDK'sıtarafından sağlanan modern Windows platformu özelliklerine ve API'lerine de erişebilirsiniz. Daha fazla bilgi için bkz. Var olan bir projede Windows Uygulama SDK'sını kullanma ve masaüstü uygulamalarınızı modernleştirme .
Diğer platformlar arası seçenekler
Uygulamanızın platformlar arası olması gerekiyorsa, Masaüstü için React Native'e ek olarak, .NET MAUI veya Progresif Web Uygulaması (PWA)düşünmelisiniz. Başka birçok seçenek daha vardır (popüler seçeneklerin bir listesi) ancak bunlar bazı iyi başlangıç noktalarıdır.
.NET MAUI, Windows üzerinde WinUI'nin gücünden yararlanırken diğer işletim sistemlerinde yürütmeyi de etkinleştirir. Diğer bir platformlar arası seçenek olan Aşamalı Web Uygulamaları (PWA'lar), tarayıcılardaki normal web siteleri gibi çalışırken Windows'da ve desteklenen diğer platformlarda yüklü, yerel uygulamalar gibi çalışan web siteleridir.
Daha fazla bilgi için aşağıdaki sekmelere bakın.
-
.NET MAUI
- Aşamalı Web Uygulamaları (PWA)
.NET Çok Platformlu Uygulama Kullanıcı Arabirimi (MAUI), tek bir .NET kod tabanından her platformun yerel kullanıcı arabiriminden ve hizmetlerinden yararlanan Android, iOS, macOS ve Windows uygulamaları oluşturmaya yönelik açık kaynaklı, platformlar arası bir çerçevedir. .NET MAUI, platform yerel deneyimlerini tercih ettiğinden, uygulamaların Windows'ta en son kullanıcı deneyimini elde edebilmesi için WinUI ve Windows Uygulama SDK'sını kullanır. Bu, uygulamalarınıza WinUI ile elde ettiğiniz her şeye erişmenin yanı sıra diğer platformlara ulaşma olanağı sağlar.
Windows için .NET MAUI şu durumda harika bir seçimdir:
- Mobil ve masaüstü uygulamalarında mümkün olduğunca çok .NET kodu paylaşmak istiyorsunuz.
- Uygulamanızı yerel platform deneyimleriyle Windows'un ötesinde diğer masaüstü ve mobil hedeflere göndermek istiyorsunuz.
- Platformlar arası uygulamalar oluşturmak için C# ve/veya XAML kullanmak istiyorsunuz.
- Blazor'ı web geliştirme için kullanıyorsunuz ve bunların tümünü veya bir bölümünü bir mobil veya masaüstü uygulamasına eklemek istiyorsunuz.
.NET MAUI hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:
- .NET MAUI belgeleri
- GitHub üzerinde .NET MAUI
- .NET MAUI Ürün Yol Haritası
- .NET MAUI ile Windows uygulamaları geliştirin
- .NET MAUI öğrenmek için
Kaynakları - Video Serisi - Yeni Başlayanlar için .NET MAUI
- Build 2022: .NET ve Visual Studio ile herhangi bir cihaz için yerel uygulamalar oluşturun
Uygulama geliştirme çerçevesi özellik karşılaştırması
Windows için uygulama geliştirmek için çok çeşitli seçenekler vardır. Sizin için en iyi seçenek, uygulama gereksinimlerinize, mevcut kodunuza ve teknolojiye aşina olmanıza bağlıdır. Aşağıdaki tabloda, Windows'ta kullanılabilen en popüler uygulama geliştirme çerçeveleri ve her çerçeve tarafından desteklenen özellikler listelenmektedir.
Özellik | .NET MAUI | Blazor Hybrid | Masaüstü için React Native | UWP XAML (Windows.UI.Xaml) | Win32 (MFC veya ATL) | Windows Forms | WinUI 3 | WPF |
---|---|---|---|---|---|---|---|---|
Dil | C# | C# | JavaScript, TypeScript | C#, C++, Visual Basic | C++, Rust | C#, Visual Basic | C#, C++ | C#, Visual Basic |
kullanıcı arabirimi dili | XAML/Kod | Jilet | JSX | XAML | Kod | Kod | XAML | XAML |
kullanıcı arabirimi tasarımcısı (& bırakın) |
❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ |
kullanıcı arabirimi hata ayıklama | Çalışırken Yeniden Yükleme | Anında Yeniden Yükleme | hızlı yenileme |
Anında Yeniden Yükleme | - | Anında Yeniden Yükleme | Çalışırken Yeniden Yükleme | Anlık Yeniden Yükleme |
Fluent Design | ✅ | ✅ | ✅ | ✅ (WinUI 2aracılığıyla) | ❌ | ❌ | ✅ | ❌ |
.NET | .NET | .NET | YOK | .NET Core & .NET Native | YOK | .NET & .NET Framework | .NET | .NET & .NET Framework |
Windows Uygulama SDK'sı | ✅ (daha fazla bilgi) | ✅ MAUI aracılığıyla | ✅ (daha fazla bilgi) | ❌ | ✅ | ✅ (daha fazla bilgi) | ✅ | ✅ (daha fazla bilgi) |
Dokunmatik için harika | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
Çok platformlu | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Xbox/HoloLens uygulamaları | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Sandboxing (Uygulama Kabı) | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Şu anda desteklenen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Güncelleştirmeleri alma | ✅ | ✅ | ✅ | ✅ (güvenlik & hata düzeltmesi) | ✅ | ✅ | ✅ | ✅ |
Yol Haritası | GitHub | GitHub | GitHub | Yok | Yok | GitHub | GitHub | GitHub |
Bu seçeneklerin her biri hakkında daha fazla bilgi edinin:
- Windows geliştiricisi hakkında SSS
- .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI)
- ASP.NET Core Blazor Hibrit
- React Native Masaüstü için
- Evrensel Windows Platformu (UWP)
- ATL ile MFC Arasında Seçim İçin
Önerileri - Windows Forms
- Windows Presentation Foundation (WPF)
- WinUI'yi, Windows Uygulama SDK'si (WinUI 3) içinde
Sonraki adımlar
-
Windows için uygulama geliştirmeye başlamak için WinUI kullanma
WinUI, Windows uygulamaları için önerilen platformumuzdur ve bu adımlar hızlı bir şekilde başlamanıza yardımcı olur.
-
Windows'da geliştirme ortamınızı ayarlama
Windows yalnızca Windows üzerinde çalışan uygulamalar geliştirmek için mükemmel değildir, aynı zamanda herhangi bir platform için uygulama geliştirmeye yönelik güçlü bir ortamdır. Geliştirmenizi en üst düzeye çıkarmak için kullanılabilen araçlar ve seçenekler hakkında daha fazla bilgi edinin.
Windows developer