Übereinkommen über die Konfiguration in mvvmcross
MVVMCross, ein plattformübergreifendes MVVM-Framework, verwendet das Konzept der "Übereinkommen über Konfiguration", um den Entwicklungsprozess zu vereinfachen, indem die Notwendigkeit einer explizite Konfiguration verringert wird. Dieser Ansatz ermöglicht es Entwicklern, sich auf unkonventionelle Aspekte ihrer Anwendung zu konzentrieren und die Standardkonventionen zu nutzen, um typische Szenarien zu verarbeiten.
Grundprinzipien
In MVVMCross wird die Übereinkommen über die Konfiguration hauptsächlich in der Verbindung von Ansichten und ViewModels angewendet. Standardmäßig verwendet MVVMCross eine Namenskonvention, um Ansichten mit ihren entsprechenden ViewModels zu verbinden. Wenn Sie beispielsweise über ein `tipView` verfügen, sucht MVVMCROSS automatisch nach einem` tipiewModel`, um sich damit zu kombinieren. Diese Konvention beseitigt die Notwendigkeit einer expliziten Konfiguration, sodass die Beziehung zwischen Ansichten und ViewModels einfacher verwaltet wird [11].
Implementierung
1. ViewModel -Namenskonvention: MVVMCross folgt einer bestimmten Namenskonvention, bei der ein ViewModel normalerweise durch Anhängen von "Modell" zum Namen der Ansicht benannt wird. Beispielsweise ist "FirstView" standardmäßig mit "FirstViewModel" [5] [11] verknüpft.
2. Automatisches Verknüpfung: Bei dieser Konvention findet und verbindet MVVMCross das entsprechende ViewModel automatisch mit seiner Ansicht. Dies ist besonders nützlich, wenn Sie keine generischen Parameter verwenden, um diese Beziehungen explizit zu definieren [11].
3. Flexibilität: Während MVVMCROSS den Einfachheit halber auf Konventionen angewiesen ist, bietet es auch Flexibilität. Entwickler können diese Konventionen bei Bedarf überschreiben, indem generische Parameter oder benutzerdefinierte Konfigurationen verwendet werden. Dies ermöglicht mehr Kontrolle darüber, wie Ansichten und ViewModels verbunden sind, insbesondere in komplexen Anwendungen [11].
Vorteile
- Reduzierte Konfiguration: Durch die Nutzung von Konventionen verbringen Entwickler weniger Zeit mit dem Schreiben von Konfigurationscode und konzentrieren sich stattdessen auf die Anwendungslogik.
- Verbesserte Lesbarkeit: Die Codebasis wird lesbarer, da die sich wiederholenden Konfigurationsaufgaben minimiert werden.
- Vereinfachte Wartung: Mit weniger expliziten Konfigurationen wird die Wartung und Aktualisierung von Anwendungen einfacher.
Anpassung
Während MVVMCROSS stark auf Konventionen angewiesen ist, unterstützt es auch die Anpassung. Entwickler können Standardverhalten überschreiben, indem sie benutzerdefinierte Logik in Schlüsselklassen wie "App" und "Setup" implementieren. Sie können beispielsweise den IOC -Container anpassen oder die Konstruktion von ViewModels ändern und initialisiert [9].
Zusammenfassend lässt sich sagen, dass die Implementierung der Konvention über die Konfiguration durch MVVMCROSS den Entwicklungsprozess durch Automatisierung typischer Aufgaben optimiert wird, sodass Entwickler sich auf einzigartige Aspekte ihrer Anwendungen konzentrieren können. Dieser Ansatz verbessert die Produktivität und vereinfacht die Anwendungswartung und bietet dennoch die Flexibilität, die für komplexe Szenarien erforderlich ist.
Zitate:[1] https://en.wikipedia.org/wiki/convention_over_configuration
[2] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[3] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvmcross-framework/
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/february/patterns--Practice-conventention-over-configuration
[5] https://www.codeprroject.com/articles/863695/Introduction-to-mvmcross-platform
[6] https://github.com/mvvmcross/mvmcross-amples
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://books.sonatype.com/mvnref-book/reference/installation-sect-conventionconfiguration.html
[9] https://www.mvmcross.com/documentation/advanced/customizing-using-app-setup
[10] https://www.mvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-views-and-viewmodels
[12] https://www.mvmcross.com/documentation/getting-started/mvmcross-overview