Masaüstü uygulamaları için modern Windows özellikleri

Modern Windows özelliklerinden yararlanmak için WPF, Windows Forms veya Win32 uygulamanızı yeniden yazmanız gerekmez. Windows Uygulama SDK'sı ve daha geniş Windows platformu, kendi hızınızda artımlı olarak benimseyebileceğiniz modüler özellikler sunar.

Bu makalede Windows Çalışma Zamanı (WinRT) API'lerini çağırma, Windows Uygulama SDK'sı ekleme ve MSIX paketlemesini benimseme gibi üç bağımsız modernizasyon yaklaşımı tanıtılarak uygulamanızın çerçevesine göre hangi özellikleri ekleyeceğiniz ve nereden başlayacağınıza karar verilmektedir.

WinUI 3'e UI çerçevesi geçişi

Amacınız uygulamanızın kullanıcı arabirimi katmanını tamamen modernleştirmekse, Windows masaüstü uygulamaları için yerel kullanıcı arabirimi çerçevesi olan WinUI 3'e geçiş yapmanızı öneririz. Başlamak için bkz. İlk WinUI 3 uygulamanızı oluşturma .

Kullanıcı arabirimi katmanınızı değiştirmeden mevcut uygulama çerçevenize (WPF, Windows Forms veya C++ Win32) Windows özellikleri eklemek istiyorsanız, bu makalede açıklanan modernleştirme yaklaşımlarından birini kullanın.

Note

Bu makale, mevcut masaüstü uygulamanıza modern Windows özellikleri eklemeyi kapsar. .NET araç zincirinizi veya C++ derleyicinizi modernleştirmek istiyorsanız GitHub Copilot yükseltme veya C++ taşıma ve yükseltme Microsoft kılavuzuna bakın.

Modernleştirme yaklaşımları

Üç modernleştirme yaklaşımı birbirinden bağımsızdır. Aynı uygulamada bir, iki veya üçünü de kullanabilirsiniz.

Approach Size ne verir? Paketleme gerekiyor mu?
WinRT API'lerini Herhangi bir .NET veya C++ masaüstü uygulamasından Windows platform API'lerine (bildirimler, Bluetooth, sözleşmeyi paylaşma, algılayıcılar ve daha fazlası) doğrudan erişim Hayır, çoğu API için
Windows Uygulama SDK'sı Modern Windows geliştirme özelliklerini (pencereleme, metin işleme, kaynaklar ve daha fazlası) mevcut uygulamalara getiren bir NuGet paketi Hayır, çoğu özellik için
MSIX paketleme Temiz kaldırma, otomatik güncelleştirmeler ve paket kimliğine sahip modern bir yükleyici; kaynak kodunda değişiklik gerektirmez Yok — paketleme yaklaşımıdır

Tavsiye

Belirli bir Windows platformu API'sini çağırmak istiyorsanız WinRT API'leri ile başlayın. Özelliklerine ihtiyacınız olduğunda Windows Uygulama SDK'sı ekleyin (DWriteCore, MRT Core, pencereleme). Paket kimliğine ihtiyacınız olduğunda veya yükleyicinizi modernleştirmek istediğinizde MSIX paketlemesi ekleyin.

WinRT API'leri

Windows Çalışma Zamanı (WinRT) API'leri uygulama bildirimleri, paylaşım sözleşmesi, Bluetooth ve daha fazlası gibi Windows platform özelliklerini kullanıma sunar. Bu API'leri doğrudan WPF, Windows Forms ve C++ Win32 uygulamalarından çağırabilirsiniz.

Masaüstü uygulamalarında Windows Çalışma Zamanı API'lerini çağırma

Windows Uygulama SDK'sı

Windows Uygulama SDK'sı, mevcut projenize eklediğiniz bir NuGet paketi olarak modern Windows geliştirme özellikleri sunar. UI çerçevenizi değiştirmeniz gerekmez.

MSIX paketleme ve paket kimliği

MSIX paketleme, mevcut yükleyicinizin yerini alır ve uygulama paketi kimliğinizi verir. Arka plan görevleri, başlangıç görevleri, dosya ilişkilendirmeleri ve Windows AI Foundry gibi bazı Windows özellikleri, çalışma zamanında paket kimliği gerektirir. Mevcut yükleyicinizi kullanmaya devam etmek istiyorsanız, tam MSIX paketlemesi olmadan da paket kimliği verebilirsiniz — bu yaklaşım bazen dış konumla paketleme veya seyrek paket olarak adlandırılır.

Çerçeveye özgü başlangıç noktaları

Aşağıdaki tabloda, her masaüstü uygulaması çerçevesi için önerilen başlangıç noktası listelenmektedir.

Çerçeveniz Önerilen başlangıç noktası
WPF Mevcut bir projede Windows Uygulama SDK'sını kullanma
Windows Forms Mevcut bir projede Windows Uygulama SDK'sını kullanma
C++ Win32 Mevcut bir projede Windows Uygulama SDK'sını kullanma
C++/WinRT Masaüstü uygulamaları için WinRT API'leri

Masaüstü uygulamasını modernleştirme için özellik kataloğu

Aşağıdaki tablolarda yaygın modernleştirme özellikleri ve her birinin Windows Uygulama SDK'sı veya paket kimliği gerekip gerekmediği listelenmiştir.

AI

Özelliği Windows Uygulama SDK'sı gerekli? Paket kimliği gerekli mi?
Windows AI Foundry No Yes

Kullanıcı arabirimi ve metin

Özelliği Windows Uygulama SDK'sı gerekli? Paket kimliği gerekli mi?
Bir masaüstü uygulamasında WinUI 3 bileşenleri Yes No
XAML Adaları ile WinUI denetimlerini barındırma Yes No
DWriteCore ile metin işleme Yes No
Win32 uygulamalarına Mica veya Akrilik uygulama No No
Yuvarlatılmış köşeleri uygula No No
Windows temaları uygulama No No

Uygulama yaşam döngüsü

Özelliği Windows Uygulama SDK'sı gerekli? Paket kimliği gerekli mi?
Arka plan görevleri (Windows Uygulama SDK'sı) Yes Yes
Başlangıç görevleri No Yes

Windows ile tümleştirme

Özelliği Windows Uygulama SDK'sı gerekli? Paket kimliği gerekli mi?
Paylaşım sayfası entegrasyonu No No
Cihazlar Arası Kişiler API'si No No
Dosya ilişkilendirmeleri No Yes
Windows Pencere Öğeleri No Yes

Security

Özelliği Windows Uygulama SDK'sı gerekli? Paket kimliği gerekli mi?
Kimlik Doğrulama Kasası No No
OAuth 2.0 No No
parmak izi biyometri No No
akıllı kartlar No No
Şifreleme No No

Resources

Özelliği Windows Uygulama SDK'sı gerekli? Paket kimliği gerekli mi?
MRT Core kaynak yönetimi Yes No

Masaüstü uygulamalarında kullanılabilen platform özelliklerinin tam listesi için bkz. uygulama platformuna genel bakış Windows.

Yapay zeka destekli modernleştirme

GitHub Copilot yükseltmesi, desteklenen .NET masaüstü projelerini değerlendirebilir ve yükseltebilir. Yapay zeka destekli Windows özellik benimseme ve kullanıcı arabirimi geçişi için bkz. Yapay zeka destekli modernleştirme.