e-Kitap kullanarak Xamarin.Forms Kurumsal Uygulama Desenleri
Uyarlanabilir, sürdürülebilir ve test edilebilir Xamarin.Forms kurumsal uygulamalar geliştirmeye yönelik mimari kılavuz
Not
Bu e-Kitap 2017 baharında yayımlanmıştır ve o zamandan beri güncelleştirilmemiştir. Kitapta değerli kalan çok şey var, ancak bazı malzemeler güncelliğini yitirmiş.
Bu e-Kitap, gevşek bağlamayı korurken Model-View-ViewModel (MVVM) desenini, bağımlılık eklemeyi, gezintiyi, doğrulamayı ve yapılandırma yönetimini uygulama konusunda rehberlik sağlar. Ayrıca IdentityServer ile kimlik doğrulaması ve yetkilendirme gerçekleştirme, kapsayıcılı mikro hizmetlerden verilere erişme ve birim testi konusunda da rehberlik vardır.
Önsöz
Bu bölümde kılavuzun amacı ve kapsamı ve hedeflenen kişiler açıklanmaktadır.
Giriş
Kurumsal uygulama geliştiricileri, geliştirme sırasında uygulamanın mimarisini değiştirebilecek çeşitli zorluklarla karşı karşıya kalır. Bu nedenle, zaman içinde değiştirilebilmeleri veya genişletilebilmeleri için bir uygulama oluşturmak önemlidir. Bu tür bir uyarlanabilirlik için tasarım zor olabilir, ancak genellikle bir uygulamayı bir uygulamaya kolayca tümleştirilebilen ayrık, gevşek bir şekilde bağlanmış bileşenlere bölmeyi içerir.
MVVM
Model-View-ViewModel (MVVM) deseni, bir uygulamanın iş ve sunu mantığını kullanıcı arabiriminden (UI) temiz bir şekilde ayırmaya yardımcı olur. Uygulama mantığı ve kullanıcı arabirimi arasında temiz bir ayrım yapılması, çok sayıda geliştirme sorununun giderilmesine yardımcı olur ve uygulamanın testini, bakımını yapmasını ve gelişmesini kolaylaştırabilir. Ayrıca kod yeniden kullanım fırsatlarını büyük ölçüde geliştirebilir ve geliştiricilerin ve kullanıcı arabirimi tasarımcılarının bir uygulamanın ilgili bölümlerini geliştirirken daha kolay işbirliği yapmasına olanak tanır.
Bağımlılık Ekleme
Bağımlılık ekleme, somut türlerin bu türlere bağlı koddan ayrıştırılmalarına olanak tanır. Genellikle, arabirimler ve soyut türler ile bu türleri uygulayan veya genişleten somut türler arasındaki kayıtların ve eşlemelerin listesini tutan bir kapsayıcı kullanır.
Bağımlılık ekleme kapsayıcıları, sınıf örneklerinin örneğini oluşturacak ve kapsayıcının yapılandırmasına göre yaşam sürelerini yönetecek bir tesis sağlayarak nesneler arasındaki bağlantıyı azaltır. Nesneleri oluşturma sırasında kapsayıcı, nesnenin gerektirdiği tüm bağımlılıkları buna ekler. Bu bağımlılıklar henüz oluşturulmadıysa kapsayıcı önce bağımlılıklarını oluşturur ve çözer.
Gevşek Bir Şekilde Eşlenen Bileşenler Arasında İletişim
Xamarin.FormsMessagingCenter
sınıfı yayımla-abone ol desenini uygulayarak nesneye ve tür başvurularına göre bağlantı kurması zor olan bileşenler arasında ileti tabanlı iletişime olanak sağlar. Bu mekanizma, yayımcıların ve abonelerin birbirlerine başvuruda bulunmadan iletişim kurmasına olanak tanır ve bileşenler arasındaki bağımlılıkları azaltmaya yardımcı olurken, bileşenlerin bağımsız olarak geliştirilip test edilmesine de olanak tanır.
Gezinti
Xamarin.Forms , genellikle kullanıcının kullanıcı arabirimiyle etkileşiminden veya iç mantık temelli durum değişikliklerinin bir sonucu olarak uygulamanın kendisinden kaynaklanan sayfa gezintisi desteği içerir. Ancak, gezintinin MVVM desenini kullanan uygulamalarda uygulanması karmaşık olabilir.
Bu bölümde, görünüm modellerinden model öncelikli görüntüleme gezintisi gerçekleştirmek için kullanılan bir NavigationService
sınıf sunulur. Görünüm modeli sınıflarında gezinti mantığı yerleştirmek, mantığın otomatikleştirilmiş testler aracılığıyla kullanılabilmesi anlamına gelir. Ayrıca görünüm modeli, belirli iş kurallarının uygulandığından emin olmak için gezintiyi denetlemek için mantık uygulayabilir.
Doğrulama
Kullanıcıların girişini kabul eden tüm uygulamalar girişin geçerli olduğundan emin olmalıdır. Doğrulama olmadan, bir kullanıcı uygulamanın başarısız olmasına neden olan verileri sağlayabilir. Doğrulama, iş kurallarını zorunlu kılar ve saldırganın kötü amaçlı veri eklemesini engeller.
Model-View-ViewModel (MVVM) deseni bağlamında, veri doğrulama gerçekleştirmek ve kullanıcının bunları düzeltebilmesi için görünüme doğrulama hataları göndermek için genellikle bir görünüm modeli veya modeli gerekir.
Yapılandırma Yönetimi
Ayarlar, bir uygulamanın davranışını koddan yapılandıran verilerin ayrılmasına olanak tanıyarak davranışın uygulamayı yeniden oluşturmadan değiştirilmesini sağlar. Uygulama ayarları, bir uygulamanın oluşturduğu ve yönettiği verilerdir ve kullanıcı ayarları, uygulamanın davranışını etkileyen ve sık sık yeniden ayarlama gerektirmeyen, bir uygulamanın özelleştirilebilir ayarlarıdır.
Kapsayıcılı Mikro Hizmetler
Mikro hizmetler, modern bulut uygulamalarının çeviklik, ölçek ve güvenilirlik gereksinimlerine uygun bir uygulama geliştirme ve dağıtım yaklaşımı sunar. Mikro hizmetlerin temel avantajlarından biri, ölçeğin bağımsız olarak genişletilebiliyor olmasıdır; bu da talebi desteklemek için daha fazla işlem gücü veya ağ bant genişliği gerektiren belirli bir işlevsel alanın ölçeklendirilebileceği ve uygulamanın artan taleple karşılaşmayan alanlarını gereksiz yere ölçeklendirmemesidir.
Kimlik Doğrulama ve Yetkilendirme
Kimlik doğrulaması ve yetkilendirmeyi ASP.NET MVC web uygulamasıyla iletişim kuran bir Xamarin.Forms uygulamayla tümleştirmeye yönelik birçok yaklaşım vardır. Burada kimlik doğrulaması ve yetkilendirme, IdentityServer 4 kullanan kapsayıcılı kimlik mikro hizmetiyle gerçekleştirilir. IdentityServer, taşıyıcı belirteç kimlik doğrulaması gerçekleştirmek için ASP.NET Core Identity ile tümleşen ASP.NET Core için açık kaynak bir OpenID Connect ve OAuth 2.0 çerçevesidir.
Uzak Verilere Erişme
Birçok modern web tabanlı çözüm, uzak istemci uygulamalarına işlevsellik sağlamak için web sunucuları tarafından barındırılan web hizmetlerinden yararlanır. Bir web hizmetinin kullanıma sunulan işlemleri bir web API'sini oluşturur ve istemci uygulamaları, API'nin kullanıma oluşturduğu verilerin veya işlemlerin nasıl uygulandığını bilmeden web API'sini kullanabilmelidir.
Birim Testi
Modelleri test etme ve MVVM uygulamalarından modelleri görüntüleme, diğer sınıfların test edilmesiyle aynıdır ve aynı araçlar ve teknikler kullanılabilir. Ancak, model sınıflarını modellemek ve görüntülemek için tipik olan ve belirli birim testi tekniklerinden yararlanabilen bazı desenler vardır.
Topluluk Sitesi
Bu projede soru gönderebileceğiniz ve geri bildirim sağlayabileceğiniz bir topluluk sitesi vardır. Topluluk sitesi GitHub'da bulunur. Alternatif olarak, e-Kitap hakkındaki geri bildirimler adresine dotnet-architecture-ebooks-feedback@service.microsoft.come-posta ile gönderilebilir.