ASP.Net 2.0 Web フォームで記述されたシステムがあります。MySQL Server と通信するフレームワークは非常に優れています。サーバーフォームタグまたはパネル内のすべてのコントロールを読み取り、ターゲットテーブルで CRUD 操作を実行します。
CRUD ページを作成するときは、データベース user{id,name,password,createdate} にテーブルを作成するだけで済み、テーブル内の正確な列名になるように id を使用するだけです。コントロールは、入力/選択/オプション/チェックボックス/テキストエリア、またはページ上の FCK エディターまたは CK エディターです。フレームワークは、パネル内のすべてのコントロールをループし、保存/編集/削除します。新しいフィールド (メールとモバイル) を追加したい場合は、ページに 2 つのコントロールを追加し、テーブルにさらに 2 つの列を追加するだけです。それでおしまい。page.aspx.cs ファイル、エンティティ レイヤー、ビジネス レイヤー、またはデータ アクセス レイヤーで何も変更する必要はありません。実装と保守は非常に簡単です。
Entity Framework CT5 で ASP.Net 4 MVC3 を使用するようにシステムをアップグレードしたいと考えています。システム全体をゼロから再構築します。ここの何人かの専門家が私にいくつかの指針を与えてくれることを望んでいました. システムを再構築するには、次の 2 つのオプションが見つかりました。
1. Code First 私たちの新しいシステムは、上記のフレームワークとまったく同じ操作を行います。すべての Request.Forms データをループし、それらをデータベース内の関連テーブルにマップして、すべてのデータを保存/更新/削除します。これを行うには、ビューがフォーム データをポストし、コントローラーがエンティティ クラスで値を受け取り、EF を介してデータベースに保存します。View にデータを表示するには、ViewModel クラスを作成する必要があります。メールやモバイル フィールドをユーザー ページに追加するなどの変更がある場合、エンティティ (ドメイン クラス) と ViewModel の 3 つの場所のビューを変更する必要があります。EF は自動的に ALTER TABLE を実行して 2 つの新しいフィールドを追加するため、データベースを変更する必要はありません。エンティティ クラスとビューモデル クラスの両方のニーズを最小限に抑える方法はまだわかりません。
2. データベース ファースト 私はこの方法を好みませんが、このソリューションがより柔軟な操作を提供する場合はそうします。データベースに列を作成し、システムが動的に ViewModel を作成し (その方法はまだ考え中です)、テーブルのすべての列を読み取り、ページにデータを表示します。ビューがデータをポストするとき、エンティティ クラスを動的に作成し、変更をデータベースに保存する必要があります。
編集: 現在のシステムをアップグレードする理由。
- .Net 4、Linq、Entity Framework、目立たない JavaScript ライブラリ、JSON データの操作がより簡単、リモート検証 (現在のシステムでは RequireFieldValidator、RegExValidator を使用できますが、制限があります。入力チェックボックスとオプションの検証)、var とインターフェイスを使用したダックタイピング。