Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 公约上的配置如何在mvvmcross中起作用


公约上的配置如何在mvvmcross中起作用


MVVMCROSS中配置的大会

MVVMCross是一种跨平台MVVM框架,它利用“构图上的构型”概念通过减少显式配置的需求来简化开发过程。这种方法使开发人员可以专注于其应用程序的非常规方面,利用默认约定处理典型情况。

###基本原理

在MVVMCROSS中,对配置的约定主要应用于视图和视图模型的链接方式。默认情况下,MVVMCross使用命名约定将视图与其相应的视图建模相关联。例如,如果您有“ tipview”,则MVVMCross将自动寻找`tipviewModel`与之配对。本惯例消除了对明确配置的需求,从而更容易管理视图和视图模型之间的关系[11]。

### 执行

1。viewModel命名约定:mvvmcross遵循特定的命名约定,其中查看模式通常是通过将“模型”添加到视图名称的情况下来命名的。例如,``firstView''默认情况下将``firstview''链接到`firstViewModel` [5] [11]。

2。自动链接:使用此约定时,MVVMCROSS会自动找到并将适当的ViewModel链接到其视图。当您不使用通用参数明确定义这些关系时,这一点特别有用[11]。

3。灵活性:虽然MVVMCross依赖于惯例,但它也提供了灵活性。开发人员可以在必要时使用通用参数或自定义配置来覆盖这些约定。这可以更多地控制视图和视图模型如何关联,尤其是在复杂的应用程序中[11]。

### 好处

- 降低配置:通过利用约定,开发人员花费的时间更少,编写配置代码,而是专注于应用程序逻辑。
- 提高的可读性:随着重复配置任务的最小化,代码库变得更加可读。
- 简化的维护:具有更少的明确配置,维护和更新应用程序变得更加容易。

###自定义

尽管MVVMCross在很大程度上依赖惯例,但它也支持自定义。开发人员可以通过在``app''and 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/mmsdn-magazine/2009/february/patterns-inpatrens-in-practice-convention-convention-over-configuration
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://github.com/mvvmcross/mvvmcross-smples
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://books.sonatype.com/mvnref-book/reference/installation-sect-conventionconfiguration.html
[9] https://www.mvvmcross.com/documentation/advanced/customizing-usion-use--app-anp-setup
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-out-views-views-and-viewmodels
[12] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview