MVVMCross의 구성에 대한 컨벤션
크로스 플랫폼 MVVM 프레임 워크 인 MVMCROSS는 "구성에 대한 컨벤션"개념을 활용하여 명시 적 구성의 필요성을 줄임으로써 개발 프로세스를 단순화합니다. 이 접근 방식을 통해 개발자는 응용 프로그램의 전통적인 측면에 집중하여 기본 규칙을 활용하여 일반적인 시나리오를 처리 할 수 있습니다.
기본 원칙
MVVMCross에서는 뷰 및 뷰 모델이 연결되는 방식에 주로 구성에 대한 컨벤션이 적용됩니다. 기본적으로 MVVMCross는 명명 규칙을 사용하여 뷰를 해당 뷰 모델과 연관시킵니다. 예를 들어, 'tipview'가있는 경우 MVVMCross는`팁 뷰 모델 '을 자동으로 찾아 페어와 페어링합니다. 이 컨벤션은 명시 적 구성의 필요성을 제거하여 뷰와 뷰 모델 간의 관계를보다 쉽게 관리 할 수 있도록합니다 [11].
구현
1. ViewModel Naming Convention : MVVMCross는 ViewModel이 일반적으로 "모델"을 뷰 이름에 추가하여 명명되는 특정 명명 규칙을 따릅니다. 예를 들어,`FirstView`는 기본적으로 'FirstViewModel'에 연결되어 있습니다 [5] [11].
2. 자동 연결 :이 컨벤션을 사용할 때 MVVMCross는 적절한 뷰 모델을 자동으로 찾아 링크합니다. 이것은 이러한 관계를 명시 적으로 정의하기 위해 일반 매개 변수를 사용하지 않을 때 특히 유용합니다 [11].
3. 유연성 : MVVMCross는 단순성을 위해 규칙에 의존하지만 유연성도 제공합니다. 개발자는 일반 매개 변수 또는 사용자 정의 구성을 사용하여 필요할 때 이러한 규칙을 무시할 수 있습니다. 이를 통해 특히 복잡한 응용 분야에서 뷰와 뷰 모델이 어떻게 연관되어 있는지를 더 많이 제어 할 수 있습니다 [11].
이익
- 구성 감소 : 컨벤션을 활용하여 개발자는 응용 프로그램 논리에 중점을 둔 구성 코드를 작성하는 데 더 적은 시간을 소비합니다.
- 개선 된 가독성 : 반복적 인 구성 작업이 최소화되면 코드베이스가 더 읽을 수있게됩니다.
- 단순화 된 유지 보수 : 명시 적 구성이 줄어들면 응용 프로그램 유지 관리 및 업데이트가 쉬워집니다.
사용자 정의
MVVMCross는 컨벤션에 크게 의존하지만 사용자 정의도 지원합니다. 개발자는`app '및`setup'과 같은 주요 클래스에서 사용자 정의 로직을 구현하여 기본 동작을 무시할 수 있습니다. 예를 들어, IOC 컨테이너를 사용자 정의하거나 뷰 모델을 구성하고 초기화하는 방식을 변경할 수 있습니다 [9].
요약하면, MVVMCross의 구성에 대한 컨벤션 구현은 일반적인 작업을 자동화하여 개발 프로세스를 간소화하여 개발자가 응용 프로그램의 고유 한 측면에 집중할 수 있도록합니다. 이 접근법은 생산성을 향상시키고 응용 프로그램 유지 관리를 단순화하면서 복잡한 시나리오에 필요한 유연성을 여전히 제공합니다.
인용 :[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-mvvmcross-framework/
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/february/patterns-in-practice-convention-over-configuration
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://github.com/mvvmcross/mvvmcross-samples
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://books.sonatype.com/mvnref-book/reference/installation-conventionconfiguration.html
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-views-and-viewmodels
[12] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview