.NET MAUI mimarisini açıklama
Platformlar arası uygulama geliştirme için kullanılan yaygın bir desen, kullanıcı arabiriminden iş mantığını sınamak ve ardından her platform için ayrı kullanıcı arabirimleri ve kullanıcı arabirimi mantığı geliştirmektir. İş mantığı her cihaz türü için değişmeden kalsa da, uygulamayı yönlendiren ve verileri sunan kod farklılık gösterebilir. Bu varyansın nedeni, cihazların sağladığı farklı özellikler, API'ler ve özelliklerdir. Bu şekilde çok platformlu bir uygulama oluşturmak, yalnızca ayrı Yazılım Geliştirme Setleri (SDK' lar) ile değil, tamamen farklı diller ve araç setleriyle de ilgilenmeyi içerir.
.NET MAUI'nin (Çok Platformlu Uygulama Kullanıcı Arabirimi) amacı, çok platformlu uygulama geliştirmeyi basitleştirmektir. .NET MAUI kullanarak, tek bir proje kullanarak çok platformlu uygulamalar oluşturursunuz, ancak gerekirse platforma özgü kaynak kodu ve kaynaklar ekleyebilirsiniz. .NET MAUI'nin temel amacı, uygulama mantığınızı ve kullanıcı arabirimi düzeninizi tek bir kod tabanında mümkün olduğunca çok uygulamanıza olanak tanımaktır.
Bu ünitede .NET MAUI mimarisi ve .NET MAUI uygulamaları oluşturmak için gereken araçlar hakkında bilgi edineceksiniz.
.NET MAUI teknoloji yığını nedir?
.NET, uygulama oluşturmak için platforma özgü bir dizi çerçeve sağlar: Android için .NET, iOS için .NET (ve iPadOS), Mac için .NET ve WinUI 3 (Windows Uygulama SDK'sını kullanarak). Bu çerçevelerin tümü aynı .NET 6 Temel Sınıf Kitaplığı'na (BCL) erişebilir. Bu kitaplık, kaynak oluşturma ve yönetme ve temel alınan cihazın ayrıntılarını genellikle kodunuzdan soyutlama işlevselliği sağlar. BCL, kodunuz için yürütme ortamı sağlamak için .NET çalışma zamanına bağlıdır. .NET çalışma zamanının açık kaynak uygulaması olan Mono, Android, iOS (ve iPadOS) ve macOS ortamlarını uygular. Windows'da Win32, Windows platformu için iyileştirilmiş olması dışında aynı rolü gerçekleştirir.
BCL, farklı cihaz türlerinde çalışan uygulamaların ortak iş mantığını paylaşmasına olanak tanırken, çeşitli platformlarda uygulamanın kullanıcı arabirimini tanımlamanın farklı yolları vardır. Platformlar, kullanıcı arabirimi öğelerinin nasıl iletişim kuracağını ve birlikte çalışacağını belirtmek için çeşitli modeller sağlar. Uygun platforma özgü çerçeveyi (Android için.NET, iOS için .NET, Mac için .NET veya WinUI 3) kullanarak her platform için kullanıcı arabirimini ayrı olarak oluşturabilirsiniz. Ancak bu yaklaşım, her bir cihaz ailesi için bir kod tabanı tutmanızı gerektirir. .NET MAUI, mobil ve masaüstü uygulamaları için URI'leri oluşturmaya yönelik tek bir çerçeve sağlar. Bu çerçeveyi kullanarak kullanıcı arabirimini oluşturursunuz (aşağıdaki diyagramda Ok 1 ile gösterilmiştir) ve .NET MAUI bunu uygun platforma dönüştürme işlemini üstlenir (Ok 2).
Platforma özgü bir özelliği uygulamanız gereken zamanlar olabilir. Bu durumlarda, aşağıdaki diyagramda 3. Ok tarafından vurgulandığı gibi platforma özgü çerçevede yöntemleri çağırabilirsiniz.
.NET MAUI nasıl çalışır?
.NET MAUI, kullanıcı arabirimi öğesinin uygulamasını mantıksal açıklamasından soyutlar. XML tabanlı platformdan bağımsız bir dil olan XAML 'yi (Genişletilebilir Uygulama biçimlendirme dili) kullanarak kullanıcı arabirimini açıklayabilirsiniz. Örneğin, aşağıdaki XAML parçası bir düğme denetiminin açıklamasını gösterir:
<Button Text="Click me"
SemanticProperties.Hint="Counts the number of times you click"
Clicked="OnCounterClicked"
HorizontalOptions="Center" />
Bu örnek düğmenin etiketini tanımlar ("Bana tıklayın") ve kullanıcı düğmeyi seçtiğinde adlı OnCounterClicked
bir yöntemin çalıştırılması gerektiğini belirtir. Diğer özellikler düğmenin ve metnin düzenini değiştirebilir; bu örnekte, metin düğmenin üzerinde ortalanır. Anlam özellikleri, görme bozukluğu olan kullanıcılar için erişilebilirlik desteği sağlar.
.NET MAUI her zaman hedef cihaz için yerel kod oluşturur, böylece en iyi performansı elde edersiniz. .NET MAUI, bir işlemi gerçekleştirmek için her platforma ve UI öğesine özgü işleyicileri kullanır. Örneğin, uygulama için iOS'yi hedeflerseniz, .NET MAUI işleyicisi bu kodu bir iOS UIButton
ile eşler. Android'de çalıştırıyorsanız bir Android AppCompatButton alırsınız. Bu işleyicilere, .NET MAUI tarafından sağlanan denetime özgü bir arabirim aracılığıyla (örneğin, bir düğme için) dolaylı olarak IButton
erişilir.
Not
İsterseniz, C# kodunu kullanarak kullanıcı arabirimini dinamik olarak da oluşturabilirsiniz. Bu yaklaşım, düzeni ortama göre değiştirmenize olanak tanır. Örneğin, kullanıcı uygun bir yetkilendirme düzeyine sahip değilse belirli denetimlerin görünmesini istemeyebilirsiniz.
.NET MAUI, düğmeler gibi yaygın denetimlere erişmeyi kolaylaştırır. Metin girişi alanları, etiketler ve tarih seçiciler gibi diğer yaygın denetimler de oldukça kolaydır. Ancak, tek tek denetimler zengin uygulamalar oluşturmak için iyi bir platform oluşturmak için yeterli değildir. .NET MAUI şunları da sağlar:
- Sayfaları tasarlamaya yönelik ayrıntılı bir düzen altyapısı.
- Çekmeceler gibi zengin gezinti türleri oluşturmak için birden çok sayfa türü.
- Daha zarif ve sürdürülebilir geliştirme desenleri için veri bağlama desteği.
- Kullanıcı arabirimi öğelerinin sunulma şeklini geliştirmek için özel işleyiciler oluşturma özelliği.
- Yerel API'lere doğrudan erişim ve kullanıcı arabiriminden ayrı mobil ve masaüstü uygulamalarının birçok ortak gereksinimlerini özetleyin. Temel bilgiler kitaplığı, bir uygulamanın GPS, ivmeölçer ve pil ve ağ durumları gibi şeylere erişmesini sağlar. Bu kitaplık aracılığıyla mobil geliştirme için ortak olan onlarca algılayıcı ve hizmet de mevcuttur.