3

私がやっているすべてのプロジェクトのように、Model View Controllerアーキテクチャを使用しているので、自分のプロジェクトをロールする方法です。代わりがありますか?永続ストレージとユーザーインターフェイスを持つアプリケーションを作成するにはどうすればよいでしょうか?MVCの代替手段は何ですか?

+0

[141912](http://stackoverflow.com/questions/141912/alternatives-to-the-mvc)の重複? – xenoterracide

+0

ここにいくつかの記事を読むことができます: [http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)][cs] [cs]:http://ja.wikipedia.org/wiki/Architectural_pattern_%28computer_science% 29 – Dels

答えて

8

MVCはしばらくありました。テスト済みで実証済みのpatternです。多くのフレームワークはMVC Patternを活用しています。 Martin FowlerはMVCをSupervising PresenterPassive Viewに解体しました。

アーキテクトChristopher Alexanderは最高のそれを言った:

を各パターンが が私たちの 環境の中で何度も繰り返し発生する問題について説明し、その問題への解決策の コアを説明し、 ようにこの ソリューションを百万回以上使用することができます。 これまでと同じように2回行っていません。

MVCから移動したい理由がわかりません。 MVCが雄弁に解決しないという問題が発生していますか? あなたに良い答えを与える私たちはあなたの問題ドメインについてもっと知る必要があります。 パターン/アーキテクチャを検討する際に考慮すべき

物事:あなたはMyspace型アーキテクチャで何かを構築している場合は、堅牢なアーキテクチャ(MVC)が必要でしょう。 Web経由でシンプルなインターフェイスを作成する場合は、ほとんど何でもできます。

MVCではない.Net Webフォーム(太いまたはWebクライアントとは言わないので、私はWebと仮定しています)では、それを維持する悪夢でした。 2年以上住んでいたWeb Formsアプリケーションはbig balls of mudになる傾向がありました。それでも開発者はMVC with web formsを使用する方法を発見しました。

皮肉なことに、ASP.NET WebフォームでのMVCアーキテクチャの欠如は、ASP.Net MVC frameworkの開発につながる運転苦情の1つでした。

MVCeskのアプローチを使用しないと経験から、ソリューションは維持管理が難しくなります。これらのアプリケーションは、遅い痛みを伴う死で死ぬでしょう。

ソリューションが小規模な1回限りのプロジェクトである場合は、必ず何かを一緒に投げます。画面からデータアクセス層までのすべてを生成するツールがあります。仕事を終わらせるためには何があっても。役に立つかもしれない様々なMV *パターンを比較するリンクの

6

VB6やDelphiなどのツールを使用して作成された従来のCRUDアプリケーションには、ユーザーインターフェイス、永続ストレージがあり、MVCは使用しません。それらのほとんどは、データベースフィールドに直接リンクされたデータ認識コントロールを使用しました。

0

ユーザーインターフェイスはビューで、アプリケーションは常にモデルを持ち、2つの間のブリッジはコントローラです。 MVC全体は何も特別なものではありません。なぜなら、これはいつものことです。

ほとんどの場合、コントローラを取り除き、あなたのビューをあなたのモデルと話すことができますが、柔軟性は失われます。

3

MVPモデルビュープレゼンターを調べます。

+0

フードの下にもMVC;) –

0

私は、ASP.NET MVCの代替を開発しました。あなたは同じように疎結合と懸念の分離をしますが、違いはプロジェクトの構築方法です。

私のブログにはビデオ、フレームワークのソースコード、サンプルプロジェクト、いくつかのVS.NETアドイン(新しいプロジェクト項目、新しいビルダーと新しいビュー)があります。

Builder for ASP.NET

いくつかの重要な差別化機能がある 1.テンプレートはHTMLだけではない - 2.テンプレートを選択 の彼らのデザインツールでテンプレートを設計することができますビューと、Webサイトの設計者間でこのように再利用可能なテンプレートと混合して何のコード3.強く型付けされたコード(ViewDataやstuffはありません)を利用することで、洞察力を得ることができます。コンパイル時間のチェック、F12ナビゲーションなど。 4.ページは、インサイドアウトのアプローチではなくビューのコンポジションとして構築します。 5.ビューは、本当の "クラス。 6.すべてが準拠しているため、実行時コンパイルは実行されません。

他にもいくつかの差別化要因があります。理論的には

0

MVCが証明された技術と矢田 - 矢田 - 矢田あり、そしてそれはウェブサイトのための理想的です。

しかし、本当の場合:MVCを使用

重大なプロジェクトは、したがって、あなたがすべての彼らは、制限や制約を持つフレームワークを以下の通り、フレームワークを必要としていました。この時点で、MVCの具体的な実装はルールであり、単純な「ガイドライン」ではありません。

また、単純なPOST/GET以外のモデルに接続しようとしているときにMVCが悲惨に失敗すると、XML非同期で失敗し、ajaxで失敗します。 (*)

(*)一部のパッチは存在しますが、デザインは明確で機能的でなければならず、「パッチを当てる」必要がある場合は、明確でも機能的でもありません。

個人的には、MVCの主な問題は、コントローラに多大な努力を払っていることだと思います。コントローラでは、ほとんどのプロジェクトでコントローラの部分に5行以上を使用しません。

ps:ほとんどの「うまくいった」MVCプロジェクトは3層プロジェクトです。

ps2:いくつかのフレームワークを除いたMVCは単なるバズ雑誌です。深刻な用語ではなく、 "mvcの解釈"のグループに反映されています。

関連する問題