Windows geliştiricilerini dinleyerek ve onlarla konuşarak zaman geçirirseniz, özellikle .NET ve UWP (Evrensel Windows Platformu) çevresinde platformun yönü hakkında çok fazla kafa karışıklığı ve hayal kırıklığı olduğunu bilirsiniz. Microsoft, Project Reunion'un Build 2020 duyurusuyla herkesi bir .NET 5 geleceğine getirmeye çalışırken, UWP ile eski Windows SDK'ları arasındaki farkların altında bir çizgi çizmeye çalışıyor, ancak birleşik bir platform sunmak yine de zaman alacak.
Bunların çoğu, Windows platform güncellemelerinin geçmişte nasıl teslim edildiğine bağlıydı: işletim sistemi sürümleriyle birlikte. Project Reunion, WinUI kullanıcı arabirimi bileşenleriyle yapılan çalışmaya dayanır, bunları temeldeki işletim sistemlerinden ayırır ve geliştirici platformunun eskisinden çok daha hızlı gelişmesine izin verir.
Platforma açık kaynak yaklaşımı üzerine inşa etmek, .NET geliştirme modelini (ve kodunuzu) olabildiğince çok platforma getirmek için daha fazla fırsat sunar. Bunun nasıl çalışacağına bir örnek, yakın zamanda üçüncü büyük sürümünü piyasaya süren Uno Platform'un WinUI uygulamasıdır.
Uno Platform 3.0'a Giriş
Daha önce Uno Platform'a bakmadıysanız, onu iOS, Android, macOS ve Web'de çalışan .NET kodu oluşturmanıza izin veren Xamarin'e bir alternatif olarak düşünmek belki de en kolayıdır. Daha önce, WebAssembly ile WinUI ve Microsoft'un Blazor geliştirme çerçevesini kullanarak Web üzerinden tanıdık kullanıcı arabirimleri sunmanın bir yolu olarak Uno hakkında yazmıştım.
Uno Platform 3.0, WinUI 2.0 ile birlikte WinUI 3.0'ı desteklemek için geliştirilmektedir. Bu şekilde, hem WinUI 3.0 hem de sistem düzeyindeki Project Reunion API'lerinin aşamalı olarak kullanıma sunulmasıyla birlikte iyi çalışması gereken bir yaklaşım olan yeni ve mevcut kontrolleri karıştırıp eşleştirebilirsiniz.
Uno'da sevilecek çok şey var, özellikle de çok az öğrenme eğrisi olduğu veya hiç olmadığı. Kod, favori IDE'nizde oluşturulabilir ve mevcut araçları ve çerçeveleri kullanarak tüm kod sürümleriniz için ortak bir UI katmanı sağlar. Doğrudan Windows üzerinde çalışan WinUI kodu ve diğer platformlarda Uno aracılığıyla, iOS, macOS ve Android için Xamarin'in yerel araçlarının üzerine inşa ederek ve Mono-WASM uygulamasını kullanarak C # ve XAML'inizi yalnızca bir kez yazmanız gerekir Ağ.
.NET uygulamalarını macOS'a getirmek için Uno kullanma
Başlık altında, Uno'nun macOS uygulaması, macOS'un AppKit'i ile iOS'un UIKit'i arasındaki benzerliklere dayanıyor. Bu, geliştirme ekibinin mevcut iOS kontrol uygulamalarını yayınlamasına olanak tanır. Bu işe yarasa da, bazı kontrollerin hala sorunları var, bu nedenle kullanıcılarınıza herhangi bir kod dağıtmadan önce denemeye değer. Yine de, mevcut .NET uygulamalarını Windows'tan macOS'a taşımanın etkili bir yoludur. Çekirdek macOS kitaplıkları üzerine inşa ederek, Uno umarım kodunuzun yakın zamanda duyurulan ARM tabanlı Apple silikon üzerinde çalışmasına izin vermelidir.
Uno'da Mac desteği nispeten yenidir, Mayıs 2020'de Windows Hesap Makinesi uygulamasının macOS'ta yeniden uygulanmasıyla ve Apple'ın macOS mağazasında yayınlanır. Mevcut kodunuzun macOS sürümünü oluşturmak için bir dizi yeni Uno şablonu ve Windows .NET komut satırı aracı kullanmanız gerekir. Uno 2.3 veya 3.0 için yeni şablonları yükledikten sonra, hedeflemek istediğiniz projeyle aynı ada sahip bir macOS uygulaması için bir uygulama iskelesi oluşturabilirsiniz.
Daha sonra bu projeyi uygulama dosyalarınızın geri kalanıyla aynı klasöre taşıyabilir ve yeni projeyi mevcut bir Visual Studio çözümüne ekleyebilirsiniz. Mac için Visual Studio kullanarak kodunuzu macOS için derleyin ve iPhone simülatör ayarlarını geliştirme macOS aygıtınızı hedefleyecek şekilde yapılandırın.
Windows WinUI uygulamalarında çalışmak için Mac için Visual Studio'yu kullanamayacağınızdan, macOS ve Windows için kod değişikliklerini yönetebilmeniz için eksiksiz çözümünüz için Git veya benzer bir kaynak kodu kontrol platformu kullanmak iyi bir fikirdir. Uygulamanızın WebAssembly sürümü üzerinde çalışıyorsanız, bunu C # ve JavaScript hata ayıklayıcı uzantılarıyla oluşturmak için Visual Studio Code kullanın. MacOS desteği, tüm ana uygulama mağazalarında bulunan WinUI tabanlı çapraz platform video oynatıcı uygulamasını gösteren en son sürümle hem Uno 2.4 hem de 3.0'da mevcuttur.
WinUI 3.0'ı Uno'da kullanma
WinUI 3.0 ile çalışmayı planlıyorsanız, Uno'nun son 3.0 sürümünü kullanmalısınız. Kodunuz için yapı iskelesi kurmak için Uno Platform'un .NET şablonlarını tekrar kullanın. Mevcut kodu WinUI 3.0'a taşıyorsanız, hem Microsoft kontrolleri hem de Uno kodunuz için kullandığınız ad alanını değiştirmeniz gerekir; bu, Visual Studio'da yerleşik olarak bulunan yeniden düzenleme araçlarını kullanarak yapmak için yeterince kolay bir şeydir.
Uno Platformunun ilginç bir yönü, çift ekranlı cihazları desteklemektir. Mevcut kodu Uno'ya alıp çift ekran denetimlerini ekleyerek, uygulamaları Windows'tan yaklaşan Android tabanlı Surface Duo'ya minimum değişiklikle taşıyabilmelisiniz. Microsoft'un çift ekranlı mobil uygulamalara öncelik vermesi ve gelecekteki Android sürümlerine verilen desteği iyileştirmek için Google ile işbirliği yapması sayesinde, Uno gibi araçlar, Windows'tan mevcut büyük ekran ve tablet deneyimlerini alıp bunları katlanabilir ve çift ekranlı Android donanımına getirmek için önemli bir yol olacak. .
Uno Platform ve .NET uygulama geliştirmenin geleceği
Microsoft'un gelecekle ilgili çok ihtiyaç duyulan netliği sağlamak için WinUI ve Project Reunion kullanarak .NET ekosisteminde uygulamaların nasıl oluşturulacağına ilişkin kafa karışıklığını ortadan kaldırmayı amaçladığı açıktır. Ancak Microsoft bunların teslim edileceğini vaat ettiği gibi, birçok geliştirici için hala çok yavaş olma ihtimalleri devam ediyor. Hem Uno Platformu hem de Xamarin'in MAUI'si, mevcut .NET kodunuzun yanı sıra bu teknolojilere daha hızlı erişim sağlamanın yollarıdır.
.NET'e macOS ve Web UI desteği ekleyerek, Uno Platformu, en az miktarda kod değişikliğiyle olabildiğince çok kullanıcıyı hedeflemek için daha iyi bir seçim gibi görünüyor; Bu, .NET'in geleceğine giden, çok fazla geliştirme süresi kazandırması ve destek yükünü minimumda tutması gereken bir yoldur.
Uno'yu kullanmak, mevcut .NET kodunuzu başka şekillerde de gelecekte korumaya alacaktır. Tarayıcı içi WebAssembly ve bağımsız WASI (WebAssembly System Interface) uygulamaları, kodunuzu yeni nesil uç donanıma, özellikle küçük form faktörüne ve ARM ve diğer düşük güçlü işlemcileri temel alan küçük ekranlı cihazlara getirme sürecini basitleştirmelidir.