MVVMCross는 Xamarin.ios, Xamarin.Android, Xamarin.Mac, Xamarin.forms, UWP (Universal Windows Platform) 및 Wind MVVM 아키텍처, 내비게이션, 데이터 바인딩, 플랫폼 별 지원 및 종속성 주입과 같은 기능을 제공합니다 [1]. 여러 플랫폼과의 유연성과 호환성을 고려할 때 MVVMCross는 CSLA.NET와 같은 다른 .NET 프레임 워크와 함께 사용할 수 있습니다.
csla.net과 함께 mvvmcross 사용
CSLA.NET은 비즈니스 로직 및 데이터 액세스를 관리하는 데 사용할 수있는 비즈니스 객체 프레임 워크입니다. 여러 플랫폼을 지원하며 MVVM 프레임 워크와 통합하여 두 아키텍처의 이점을 활용할 수 있습니다. CSLA.NET을 MVVMCross와 결합 할 때 개발자는 UI 관련 작업 및 크로스 플랫폼 호환성에 MVMCROSS를 활용하면서 비즈니스 로직 및 데이터 관리에 CSLA.NET을 사용할 수 있습니다.
통합 접근법 :
1. csla.net을 사용한 비즈니스 로직 : csla.net을 사용하여 비즈니스 객체를 정의하고 데이터 액세스를 관리합니다. CSLA.NET은 강력한 비즈니스 로직에 필수적인 데이터 검증, 비즈니스 규칙 및 데이터 지속성과 같은 기능을 제공합니다.
2. MVVMCross를 통한 UI 및 크로스 플랫폼 지원 : MVVM 아키텍처, 데이터 바인딩 및 크로스 플랫폼 지원을 활용하여 UI 계층에 대한 MVMCROSS 구현. 이를 통해 다른 플랫폼에서 일관된 UI를 만들 수 있습니다.
3. ViewModel 통합 : CSLA.NET을 MVVMCross와 통합하려면 CSLA.NET의`viewModelBase` ( 'viewModel'아님)에서 상속 받고 동일한 클래스에서 MVVMCross의 요구 사항을 구현할 수 있습니다. 이 접근법을 사용하면 깨끗한 아키텍처를 유지하면서 두 프레임 워크의 강점을 결합 할 수 있습니다 [2].
도전 및 고려 사항 :
- 휴대용 클래스 라이브러리 (PCL) : CSLA.NET 비즈니스 객체는 복잡성으로 인해 PCL과 호환되지 않을 수 있으며, PCL을 직접 사용하는 대신 프로젝트 링크가 필요합니다 [2].
- 플랫폼 제한 : Silverlight 또는 WP8과 같은 특정 환경의 반사 제한과 같은 플랫폼 별 한계를 알고 있어야합니다 [2].
요약하면, MVVMCross는 비즈니스 로직 용 CSLA.NET을 활용하고 UI 및 크로스 플랫폼 지원을위한 MVMCROSS를 활용하여 CSLA.NET과 효과적으로 사용할 수 있습니다. 이 조합을 통해 개발자는 여러 플랫폼에서 강력하고 유지 관리 가능한 응용 프로그램을 만들 수 있습니다.
인용 :[1] https://www.mvvmcross.com/documentation/getting-started/getting-started
[2] https://stackoverflow.com/questions/17373587/how-well-wild-mvvmcross-and-csla-net-work-in-amulti-platform-strategy
[3] https://stackoverflow.com/questions/75320482/can-not-install-mvvmcross-9-0-9-0-net6-creating-a-new-droid-project-in-vs2022
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://stackoverflow.com/questions/49688230/mvvmcross-core-platform-5-0-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