2011-07-25 19 views
2

私は、MVVMとMVCについてブログで多くのブログを見てきましたが、thay MVVMはWindowsのMVC拡張機能に似ています。Asp.net MVCのViewModelを再開MVC

私は1つの設計上の問題があります。私はMVVMを使用する1つの勝利アプリケーションを作ったので、Webで同じアプリケーションを作成しなければならないので、Asp.netのMVCパターンに決めました。 。

MVCでViewModelsを再利用するにはどうすればよいですか? ViewModelにはSystem.Windows.Inputという名前空間がインポートされているためです。

代替ソウルションはありますか?私の主な要件はアプリケーションロジックの再利用です

http://waf.codeplex.com/ WpfApplicationフレームワークをrefrenceとして使用しました。

ありがとうございます。

答えて

5

実際には、2つは互換性がありません。彼らは(実用的な意味で)とは考えられません。はい、ASP.NET MVCでも再利用できるViewModelを作成できます。しかし、あなたが取り入れなければならない抽象化の量は、運動を役に立たなくするでしょう。

この非互換性について心配するのは時間を無駄にしないでください

あなたは再利用可能なライブラリへのWPFやASP.NETのどちらかに依存関係がない本当に再利用可能なコードを移動している何をすべきか。このコードは、両方のアプリケーションで再利用する必要があります。 ViewModelとControllersは、サービスするように設計されたアプリケーションフレームワークに属します。

2

お客様のビジネスロジックは、モデルにあり、ビューモデルではありません。つまり、再利用したいモデルです。それ以外のものはありません。ビューモデルはWindowsアプリケーションに固有のもので、Webアプリケーション固有のコントローラに相当します。

+1

@Will申し訳ありませんが、「ビジネスロジック」である必要があります。その場合、私はあなたの投稿、すなわち再利用ビジネスロジックに同意しますが、アプリケーションロジックを再利用しようとはしません。 –

+0

ここまでは、このトピックで見つけたベストアドバイスですが、データの注釈や属性の検証やシリアル化などの処理を行うために定義を複製せずに、異なるプラットフォーム間でモデルを共有する方法についてはどうしますか?私はこれらを1つの場所(モデル)で定義し、再利用することでこれを行うための最善の方法についての情報を見つけることはできません。このトピックのアイデアやリソースはどれですか? – SelAromDotNet

+0

@Joshあなたが何をしているのかよくわからないが、モデルを共有し、それを自分のプロジェクトに入れて再利用する。データアノテーションとシリアライゼーション属性はプラットフォームに依存しないように設計されています。つまり、有効なモデルのルールは同じであるため、モデルに宣言します。検証する場所と方法は技術によって異なりますので、ホストアプリケーションから検証を開始してください。 –

関連する問題