Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Μπορείτε να εξηγήσετε την αλληλεπίδραση μεταξύ των έργων πυρήνα και UI στο MVVMCROSS


Μπορείτε να εξηγήσετε την αλληλεπίδραση μεταξύ των έργων πυρήνα και UI στο MVVMCROSS


Το MVVMCross είναι ένα πλαίσιο cross-platform που διευκολύνει την ανάπτυξη εφαρμογών χρησιμοποιώντας το μοντέλο-View-ViewModel (MVVM). Επιτρέπει στους προγραμματιστές να δημιουργούν χαλαρά συζευγμένες, διατηρήσιμες και δοκιμασμένες κινητές λύσεις διαχωρίζοντας τη λογική εφαρμογής σε δύο κύρια μέρη: το βασικό έργο και το έργο UI.

βασικό έργο

Το βασικό έργο είναι συνήθως μια τυποποιημένη βιβλιοθήκη .NET που περιέχει όλο τον κοινό κώδικα, συμπεριλαμβανομένων:
- ViewModels: Αυτά είναι υπεύθυνα για τη διαχείριση των αλληλεπιδράσεων των χρηστών και της επιχειρησιακής λογικής.
- Μοντέλα: αντιπροσωπεύουν τις δομές δεδομένων που χρησιμοποιούνται σε όλη την εφαρμογή.
- Υπηρεσίες: Παρέχετε πρόσβαση σε δεδομένα, υπηρεσίες ιστού ή άλλους εξωτερικούς πόρους.
- Μετατροπείς: Χρησιμοποιούνται για μετατροπές τύπου δεδομένων.
- Κατηγορία εφαρμογών: Αυτό είναι υπεύθυνο για την προετοιμασία των μοντέλων επιχειρηματικής λογικής και προβολής της εφαρμογής. Διαχειρίζεται επίσης την καταχώριση προσαρμοσμένων αντικειμένων στην αναστροφή του δοχείου ελέγχου (IOC).
- AppStart: Προαιρετικά χρησιμοποιείται για να καθορίσει ποιο μοντέλο προβολής θα παρουσιάσει πρώτα όταν ξεκινά η εφαρμογή.

ui project

Το έργο UI είναι ειδικό για την πλατφόρμα και περιέχει τα στοιχεία διεπαφής χρήστη και τον κωδικό ειδικού για την πλατφόρμα. Για κάθε πλατφόρμα προορισμού (π.χ. iOS, Android), υπάρχει ξεχωριστό έργο UI. Αυτά τα έργα περιλαμβάνουν:
- Προβολές: Κάθε προβολή είναι υπεύθυνη για την παρουσίαση ενός αντίστοιχου μοντέλου προβολής. Οι προβολές έχουν σχεδιαστεί με τη χρήση εγγενών εργαλείων πλατφόρμας (π.χ. XAML για το Xamarin.forms, Axml για το Android).
- Χειρισμός εγγενών εφαρμογών: Αυτό χειρίζεται τα εγγενή συμβάντα κύκλου ζωής. Για παράδειγμα, στο Android, θα ήταν μια τάξη `mainActivity` ή` mainapplication ', ενώ στο iOS θα ήταν μια τάξη appdelegate.
- Κλάση εγκατάστασης: Αυτό είναι υπεύθυνο για την εκκίνηση MVVMCross και την εγγραφή των ειδικών για την πλατφόρμα. Αρχικοποιεί το πλαίσιο MVVMCROSS και ρυθμίζει το δοχείο της ΔΟΕ με υλοποιήσεις ειδικών για την πλατφόρμα.

αλληλεπίδραση μεταξύ έργων πυρήνα και UI

Η αλληλεπίδραση μεταξύ των έργων πυρήνα και UI στο MVVMCross διευκολύνεται από το μοτίβο MVVM και το δοχείο IOC του πλαισίου. Δείτε πώς αλληλεπιδρούν:
- Δεσμεύση ViewModel: Τα έργα UI χρησιμοποιούν το MVVMCross για να δεσμεύσουν τις προβολές για να προβάλλουν μοντέλα. Αυτό γίνεται συνήθως χρησιμοποιώντας μια σύμβαση ονομασίας ή διακοσμώντας τις προβολές με χαρακτηριστικά όπως το [MVXViewFor (TypeOf (homeViewModel))].
- Έγχυση υπηρεσίας: Το βασικό έργο ορίζει τις διεπαφές για υπηρεσίες που εφαρμόζονται διαφορετικά σε κάθε πλατφόρμα. Αυτές οι υπηρεσίες είναι εγγεγραμμένες στο δοχείο της ΔΟΕ και εισάγονται σε μοντέλα προβολής, επιτρέποντας τη λειτουργικότητα ειδικής για την πλατφόρμα χωρίς να αντιγραφεί ο κώδικας.
- Πλοήγηση και παρουσίαση: Το MVVMCROSS παρέχει μηχανισμούς για την πλοήγηση μεταξύ μοντέλων προβολής και παρουσίασης προβολών. Το πλαίσιο χρησιμοποιεί παρουσιαστές (π.χ. `imvxiosviewpresenter`,` imvxandroidviewpresenter ') για να διαχειριστεί τον τρόπο εμφάνισης των προβολών σε κάθε πλατφόρμα.

Διαχωρίζοντας τη λογική εφαρμογής σε έργα πυρήνα και UI, το MVVMCROSS επιτρέπει στους προγραμματιστές να μεγιστοποιούν την επαναχρησιμοποίηση κώδικα σε όλες τις πλατφόρμες, ενώ παράλληλα επιτρέπουν την προσαρμογή και τη βελτιστοποίηση της πλατφόρμας [1] [3] [5].

Αναφορές:
[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
[3] https://leaware.com/creating-cross-platform-xamarin-pplications-using-the-mvmcross-framework/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/