私が理解していることから、MVCは、コントローラーである「接着剤」を介して、クラス定義(モデル)をプレゼンテーション(ビュー)から分離します。コントローラは単一の責任を持つ必要があるため、テスト可能である必要があります。ViewModelsは、複数のエンティティからのデータをまとめ、ビューのコントローラーからのデータを「マッサージ」するために使用されます。
ビジネスロジックには実際には場所がないようです...したがって、サービスの別のレイヤーが適切だと思います。このレイヤーをどこに配置するか、またはサービスを構築する方法がわかりません。これは、多数の関数を含む「サービス」と呼ばれるクラスである必要がありますか?私はMVCに少し慣れていないので、読み物、サンプル、または一般的な新人の種類のヒントは素晴らしいでしょう。