この質問の前に、古いレガシーシステム(vb6、vba、vb.netからc#.netへの40以上のプログラム)を同じDAL(バーコード端末と1つのWebベースのシステム)15年前のvbaプログラムで、不器用または存在しないビジネスロジックを修正するためにほとんどの日を費やしています。私は最近、流暢な検証を備えたエンティティフレームワークモデルを構築しましたが、少し使用した後はこれに満足することはできませんでした。
小さなチームはWebフォームに精通していますが(それほどではありませんが)、ここ数日、MVCRazorを調査しました。同じページにさらに関数を追加しようとするまでMVCFrameworkが大好きでしたが、その後、Webフォームに配置した最近のシステムを複製するのは難しいように思われました。以前は、顧客とそのすべての子エンティティをロードし、それを顧客の単一ページにバインドして、顧客がすべてにアクセスできるようにしました(これは彼らが望んでいたものです)。それは問題なく動作し、遅くはありません。この単一のページから、すべてのアカウントの詳細/連絡先/電子メール/電話/ジョブを編集できました。
私が行ってMVCで見たすべての例は、単一の更新、単一の編集などを処理しますが、すべてのアクションを新しいビュー/ページに分離することはできませんか?リッチモデルをMVCのビューに渡すことはできますが、すべての異なる子エンティティを更新しようとすると面倒です。
これはおそらくMVCが設計されていない正確な設計であり、これは問題ありません。MVCが今後より優れたプラットフォームになる場合は、それを採用したいと思いますが、この複雑さの追加にどのように対処するつもりですか?私が見たいくつかの方法:
- 部分的なビューがたくさんありますか?子情報をそれらに渡す(またはIDと遅延読み込み)?
<forms>
複数をすべてにラップし、そのようにアクションを処理するメソッドを見てきました。- ほとんどすべてのタスクを分離します
ソリューションがより軽量で保守が容易な場合は、必要なものは何でも調査して、時間を無駄にしていないかどうかを早い段階で確認します。私が尋ねるべき正しい質問へのポインタは大歓迎です。