Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ar yra kokių nors efektyvumo skirtumų tarp sklandžių surišimų ir Šveicarijos/Tibeto įrišimų MVVMCross


Ar yra kokių nors efektyvumo skirtumų tarp sklandžių surišimų ir Šveicarijos/Tibeto įrišimų MVVMCross


MVVMCROSS duomenims surišti naudojami tiek laisvai, tiek šveicariškos/Tibeto įrišimai, tačiau jie skiriasi savo požiūriu ir naudojimu. Nors nėra aiškios informacijos apie šių dviejų tipų įrišimų veiklos skirtumus, mes galime išanalizuoti jų savybes, kad suprastume galimas padarinius:

FLUENT įrišimai

Laisvos įrišimai yra C#pagrįsta sintaksė, leidžianti kūrėjams kurti įrišimus kode. Šis požiūris yra ypač naudingas tokiose platformose kaip „iOS“ ir „OSX“, kur XML išdėstymo failai nėra lengvai valdomi žmonėms. Laisvai įrišimai suteikia saugų tipo būdą, kaip surišti savybes, o tai gali padėti sumažinti vykdymo laiko klaidas, sugaudant tipo neatitikimus kompiliavimo metu. Tačiau kadangi jie yra apibrėžti kode, jiems gali prireikti daugiau pridėtinių išlaidų, kalbant apie kodų priežiūrą, palyginti su deklaratyviomis įrišimais, tokiais kaip Šveicarijos/Tibeto.

Šveicarijos/Tibeto įrišimai

Šveicarijos ir Tibeto įrišimai yra deklaratyvūs, tai reiškia, kad jie yra apibrėžti XML arba styginių formatais. Šios įrišimai yra glaustesni ir gali būti lengvai įterpti į išdėstymo failus. Visų pirma „Tibeto“ įrišimo sintaksė siūlo turtingesnę išraiškos kalbą su tokiomis funkcijomis kaip funkcijų vertės keitiklio skambučiai, daugialypiai sujungimai ir paprasta operatoriaus sintaksė. Šis deklaratyvus požiūris gali būti efektyvesnis kodų skaitomumo ir prižiūrimo atžvilgiu, nes įrišimai aiškiai matomi išdėstymo failuose.

VEIKLOS APSATYMAI

Nors nėra konkrečių duomenų apie efektyvumo skirtumus tarp sklandžios ir Šveicarijos/Tibeto rišamųjų, šie veiksniai gali turėti įtakos našumui:

-„Compile-Time“ ir „Runtime Resolution“: Apskritai įrišimai, kurie yra išspręsti kompiliavimo metu (pavyzdžiui, kai kurie sklandžios įrišimo aspektai dėl jų tipo saugaus pobūdžio) gali pasiūlyti geresnį našumą, palyginti su vykdymo laiko skiriamąja geba. Tačiau MVVMCROSS įrišimai paprastai išsprendžiami vykdymo metu.

- Apmąstymų pridėtinės vertės: tiek laisvai, tiek šveitrūs, tiek šveicariški/Tibeto įrišimai, tikėtina, kad turto pavadinimai išspręstų atspindį. Tačiau laisvai įrišimai gali turėti nedidelį pranašumą dėl jų saugaus tipo pobūdžio, todėl gali būti sumažinta plataus atspindžio poreikis vykdymo metu.

- Įrišimo išraiškų sudėtingumas: Tibeto rišimai leidžia sudėtingesnėms išraiškoms, kurios gali sukelti papildomų pridėtinių išlaidų dėl šių išraiškų analizės ir įvertinimo. Tačiau šis sudėtingumas taip pat suteikia galingesnes duomenų įrišimo galimybes.

Apibendrinant, nors nėra aiškių efektyvumo etalonų, kuriuose būtų lyginami laisvai ir šveicariškos/Tibeto rišimai MVVMCross, laisvai įrišimai gali turėti nedidelių pranašumų dėl jų tipo saugaus pobūdžio ir galimo paleidimo laiko atspindžio sumažėjimo. Tačiau Šveicarijos/Tibeto įrišimų deklaratyvus pobūdis gali pagerinti kodų skaitomumą ir prižiūrimumą, o tai gali netiesiogiai paveikti vystymosi efektyvumą ir bendrą taikymo efektyvumą mažinant klaidas ir pagerinant kodo kokybę. Galų gale pasirinkimas tarp šių įrišimo metodų turėtų būti grindžiamas specifiniais projekto poreikiais, tokiais kaip UI sudėtingumas, tikslinė platforma ir pirmenybė teikiant kodams pagrįstus, palyginti su deklaratyviais įrišimais.

Citatos:
[1] http://slodge.blogspot.com/2013/06/tibet-inding.html
[2] https://github.com/mvvmcross/mvvmcross/issues/1342
[3] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-bining/compiled-bindings?view=net-maui-9.0
[4] https://blog.ostebaronen.dk/2018/01/mvvmcross-inding-arget.html
[5] https://stackoverflow.com/questions/46522577/mvvmcross-issues-with-fluent-binding
]
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/August/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[9] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[10] https://stackoverflow.com/questions/48422489/mvvmcross-tibet-inding-to-viewmodel-itself