MVVMCross est un framework MVVM multiplateforme polyvalent qui prend en charge diverses plates-formes .NET, notamment Xamarin.ios, Xamarin.Android, Xamarin.mac, Xamarin.Forms, Universal Windows Platform (UWP) et Windows Presentation Framework (WPF) [1]. Il fournit des fonctionnalités telles que l'architecture MVVM, la navigation, la liaison des données, le support spécifique à la plate-forme et l'injection de dépendance [1]. Compte tenu de sa flexibilité et de sa compatibilité avec plusieurs plates-formes, MVVMCross peut être utilisé aux côtés d'autres frameworks .NET comme CSLA.NET.
Utilisation de mvvmcross avec csla.net
CSLA.NET est un cadre d'objets métier qui peut être utilisé pour gérer la logique métier et l'accès aux données. Il prend en charge plusieurs plates-formes et peut être intégrée aux cadres MVVM pour tirer parti des avantages des deux architectures. Lors de la combinaison de CSLA.NET avec MVVMCROSS, les développeurs peuvent utiliser CSLA.NET pour la logique commerciale et la gestion des données tout en utilisant MVVMCross pour les tâches liées à l'interface utilisateur et la compatibilité multiplateforme.
Approche d'intégration:
1. Logique métier avec CSLA.NET: Utilisez CSLA.NET pour définir des objets métier et gérer l'accès aux données. CSLA.NET fournit des fonctionnalités telles que la validation des données, les règles métier et la persistance des données, qui sont essentielles pour une logique commerciale robuste.
2. Prise en charge de l'interface utilisateur et de la plate-forme multipliée avec MVVMCROSS: implémentez MVVMCross pour la couche d'interface utilisateur, en tirant parti de son architecture MVVM, de sa liaison de données et de son support multiplateforme. Cela vous permet de créer une interface utilisateur cohérente sur différentes plates-formes.
3. Intégration ViewModel: Pour intégrer CSLA.NET à MVVMCross, vous pouvez hériter de `ViewModelBase` (non` ViewModel 'de CSLA.NET (pas `ViewModel') et implémenter les exigences de MVVMCross dans la même classe. Cette approche vous permet de combiner les forces des deux cadres tout en maintenant une architecture propre [2].
Défis et considérations:
- Bibliothèques de classe portables (PCL): les objets commerciaux CSLA.NET peuvent ne pas être compatibles avec les PCL en raison de leur complexité, nécessitant une liaison de projet au lieu d'utiliser directement des PCL [2].
- Limitations de la plate-forme: soyez conscient des limitations spécifiques à la plate-forme, telles que les restrictions de réflexion dans certains environnements comme Silverlight ou WP8 [2].
En résumé, MVVMCross peut être utilisé efficacement avec CSLA.NET en tirant parti de CSLA.NET pour la logique métier et MVVMCross pour le support d'interface utilisateur et de plate-forme multiplié. Cette combinaison permet aux développeurs de créer des applications robustes et maintenables sur plusieurs plates-formes.
Citations:[1] https://www.mvvmcross.com/documentation/getting-started/getting-started
[2] https://stackoverflow.com/questions/17373587/how-well-would-mvvmcross-and-csla-net-work-together-in-a-multi-platform-srategy
[3] https://stackoverflow.com/questions/75320482/can-not-install-mvvmcross-9-0-9-net6-creating-a-new-android-project-in-vs2022
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://stackoverflow.com/questions/49688230/mvvmcross-core-platform-5-7-0-was-restored-using-netframework-version-v4-6-1
[6] https://github.com/mvvmcross/mvvmcross
[7] https://www.mvvmcross.com
[8] https://cslanet.com/old-forum/8575.html