Opsætningsklassen i MVVMCross spiller en afgørende rolle som en bootstrapper for rammen, der er ansvarlig for at initialisere og konfigurere applikationens infrastruktur. Det er en obligatorisk komponent i hvert platformspecifikt projekt, såsom iOS, Android eller UWP, og betjener flere nøglefunktioner:
1. rammeinitialisering: Opsætningsklassen initialiserer MVVMCROSS-rammen ved at indstille vigtige komponenter som inversionen af Control (IOC) container, databindingsmotor, ViewModel/View-opslag, navigationssystem og plugins. Denne proces forekommer i to hovedtrin: `InitializePrimary 'og' Initializes Condeary '. Førstnævnte initialiserer kernekomponenter på hovedtråden, mens sidstnævnte konstruerer platformtjenester i baggrunden [1] [9].
2. App Class Creation: Opsætningsklassen er ansvarlig for at oprette en forekomst af klassen `app`, der er defineret i kerneprojektet. Klassen 'App` -klassen initialiserer applikationens forretningslogik og ViewModels [4] [10].
3. Service-registrering: Det giver et sted at registrere platformspecifikke tjenester og plugins ved hjælp af IOC-containeren. Dette giver udviklere mulighed for at injicere afhængigheder i deres anvendelse, hvilket gør det lettere at styre kompleks logik på tværs af forskellige platforme [4] [10].
4. Tilpasning: Opsætningsklassen giver muligheder for tilpasning gennem metoder som `InitializeFirstChance 'og` InitializelastChance'. Disse metoder giver udviklere mulighed for at registrere platformspecifikke forretningsobjekter eller -tjenester, såsom krypteringstjenester, inden applikationen initialiseres fuldt ud [10].
5. Debugging og logning: Det er også involveret i opsætning af fejlfindings- og loggingmekanismer, såsom at oprette en 'debugtrace' -instans, som hjælper med at diagnosticere problemer under udvikling [7].
Sammenfattende er installationsklassen vigtig for bootstrapping MVVMCROSS -applikationer, hvilket sikrer, at alle nødvendige komponenter er korrekt initialiseret og konfigureret, før applikationen starter. Det fungerer som en bro mellem det platformspecifikke UI-projekt og den centrale logik, der er defineret i Portable Class Library (PCL) eller .NET Standard Library.
Citater:[1] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarinios-ui-project
[2] https://stackoverflow.com/questions/34329985/
[3] https://coderpad.io/blog/development/a-guide-to-database-unit-testing-with-pytest-and-sqlalchemy/
)
[5] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-thone-build-mvvm-apps-with-xamarin-and-mvvmcross
)
[7] https://www.codeproject.com/articles/863695/introduktion-to-mvvmcross-platform
)
[9] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[10] https://www.mvvmcross.com/documentation/advanced/customizing-sising-app-and-setup
[11] https://stackoverflow.com/questions/48132099/how-is-setup-class-instantiated-in-mvvmcross-in-xamarin