Microsoft.extensions.
1. MVVMCross Başlatma İşlemi ile Uyumsuzluk: MVVMCross, kurulum işlemi boyunca parçalanma bileşenlerini çözme ve daha sonra daha fazla bileşen kaydetmeye devam etme yeteneğini gerektirir. Ancak, Microsoft.extensions.DecenticenceInjection (Ms.DI), hizmet koleksiyonunda `.build ()` çağrısında bulunmadan önce tüm bileşenlerin kaydedilmesini gerektirir. Bu temel fark iki sistemi, hizmetleri bir kaptan diğerine manuel olarak çevirme gibi ek geçici çözümler olmadan uyumsuz hale getirir [1].
2. İki Aşamalı Başlangıç Süreci: MVVMCross ile MS.DI'dan yararlanmak için geliştiriciler genellikle bir MS.DI servis koleksiyonu oluşturur ve daha sonra hizmetlerini MVVMCross `Imvxiocprovider` örneğine çevirir. Bu yaklaşım, hantal olabilecek ve ek karmaşıklık ve potansiyel sorunlara yol açabilecek iki aşamalı bir başlangıç süreci getirir [1].
3. Bağımlılık Enjeksiyon Sınırlamaları: MVVMCross'un IOC konteyneri, singleton yönünü arayüz seviyesinde, somutlaştırılmış türde değil. Bu, bir sınıfın birden fazla arayüz uygularsa, MVVMCross açıkça yönetilmedikçe her arayüz için ayrı örnekler oluşturabileceği anlamına gelir [4]. Bu doğrudan MS.DI ile ilgili olmasa da, farklı bağımlılık enjeksiyon sistemlerini entegre ederken dikkatli yönetim ihtiyacını vurgulamaktadır.
4. Yükseltme ve uyumluluk sorunları: MVVMCross sürümlerinin yükseltilmesi, bazen temel görünüm modelleri kullanılırken bağımlılık enjeksiyonu ile ilgili sorunları getirebilir. Örneğin, sürümler arasındaki yapıcı seçim mantığındaki değişiklikler, bağımlılıkların nasıl enjekte edildiğini etkileyebilir [2].
Bu zorlukların üstesinden gelmek için, geliştiriciler genellikle çekirdek IOC konteynerini değiştirmeden MVVMCross'un işlevselliğini artırmayı seçerler. Bu, MVVMCross ile birlikte Ms.DI gibi ek bağımlılık enjeksiyon çerçevelerinin kullanılmasına izin verir ve IOC sağlayıcısının seçilmesinde esneklik sağlar [1] [5]. Bununla birlikte, bu, çatışmaları önlemek ve sorunsuz entegrasyon sağlamak için dikkatli kurulum ve yönetim gerektirir.
Özetle, Microsoft.extensions.ypendenceIncections MVVMCross ile bağımlılık mümkün olmakla birlikte, bilinen sorunları önlemek için başlangıç sürecinin, potansiyel uyumsuzlukların ve bağımlılıkların dikkatli bir şekilde yönetilmesini dikkate almayı gerektirir.
Alıntılar:[1] https://github.com/mvvmcross/mvvmcross/issues/4436
[2] https://github.com/mvvmcross/mvvmcross/issues/4183
[3] https://docs.particular.net/nservicebus/depenency-injection/extensions-decenceInjection
[4] https://stackoverflow.com/questions/23700121/possible-bug-with-decence-jection-on-mvvmcross
[5] https://github.com/mvvmcross/mvvmcross/issues/3804
[6] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[7] https://msicc.net/using-microsofts-extensions-decencenceinjection-package-in-xamarin-forms-mvvm-pplications-part-2/
[8] https://www.mvvmcross.com/documentation/fundamentals/dependency-injection