MVVMCrossの構成に関するコンベンション
クロスプラットフォームMVVMフレームワークであるMVVMCrossは、「コンベンションオーバー構成」の概念を利用して、明示的な構成の必要性を減らすことで開発プロセスを簡素化します。このアプローチにより、開発者はアプリケーションの型破りな側面に集中し、デフォルトの慣習を活用して典型的なシナリオを処理します。
###基本原則
MVVMCrossでは、ビューとビューモデルがどのようにリンクされるかには、主に構成に関する規則が適用されます。デフォルトでは、MVVMCrossは命名規則を使用して、対応するViewModelsにビューを関連付けます。たとえば、「Tipview」がある場合、mvvmcrossは自動的に「tipviewmodel」を探します。この規則は、明示的な構成の必要性を排除し、ビューとビューモデルの関係を容易に管理しやすくします[11]。
### 実装
1. ViewModel Naming Convention:MVVMCrossは、ビューの名前に「モデル」を追加することによって、viewmodelが通常命名される特定の命名規則に従います。たとえば、「FirstView」はデフォルト[5] [11]で「FirstViewModel」にリンクされています。
2。自動リンク:このコンベンションを使用する場合、MVVMCrossは適切なViewModelをそのビューに自動的に見つけてリンクします。これは、一般的なパラメーターを使用してこれらの関係を明示的に定義しない場合に特に役立ちます[11]。
3。柔軟性:MVVMCrossは簡単にするために慣習に依存していますが、柔軟性も提供します。開発者は、一般的なパラメーターまたはカスタム構成を使用して、必要に応じてこれらの規則をオーバーライドできます。これにより、特に複雑なアプリケーションでは、ビューとビューモデルがどのように関連付けられているかをさらに制御できます[11]。
### 利点
- 構成の削減:コンベンションを活用することにより、開発者は構成コードの作成に費やす時間が少なく、代わりにアプリケーションロジックに焦点を当てます。
- 読みやすさの向上:繰り返しの構成タスクが最小化されるため、コードベースはより読みやすくなります。
- 簡素化されたメンテナンス:明示的な構成が少ないと、アプリケーションの維持と更新が容易になります。
###カスタマイズ
MVVMCrossは慣習に大きく依存していますが、カスタマイズもサポートしています。開発者は、「アプリ」や「セットアップ」などのキークラスにカスタムロジックを実装することにより、デフォルトの動作をオーバーライドできます。たとえば、IOCコンテナをカスタマイズしたり、ViewModelの構築と初期化方法を変更したりできます[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-patterns-in-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/fundmentals/viewmodel-lifecycle
[8] https://books.sonatype.com/mvnref-book/reference/installation-sect-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