2009-06-02 6 views
3

私は誰かが私に答えを提供できるかどうか疑問に思っていました。私はかなり長い間、私たちの内部アプリケーションをMVCアーキテクチャに交換するよう依頼してきました。 Railsは玩具として絶対に撃墜されましたが、Strutsはあまりにも巨大で、Djangoの名前はこれらの古い人々を緊張させますが、最終的にはMVC 1.0が出ました。MVCの正当性?

Microsoftのテクノロジを使用しているため、BeはPowderであるため、MVCパターンにアプリケーションを移動させることができます。残念ながら、フォームベースの構造をMVCスタイルに置き換える正当な理由はありません。

誰も私の上司に餌を与えるのに十分な正当化と考えることができますか? :-)

+0

あなたは現在何を使用していますか?あなたはそれにどんな問題を抱えていますか? –

+0

ASP.NET 3.5(フォームスタイル)、MS SQL Server 2005およびOracle 11G EE、IIS、Webサービス、DBトリガー、およびほとんどのORMフリーデータベース接続 –

答えて

15

あなたは切り替えるには十分な理由を持っていますか?それはあなたのように聞こえるので、私はあなたがMVC自体のために切り替えているのだろうかと思います。

ASP.NET MVCは、アプリケーションの出力とライフサイクルをより詳細に制御したい場合に役立ちます。多くの場合、これは開発者としてより多くの仕事を意味することに留意してください。 MVCフレームワークは、データ入力が集中的ではないサイトに適しています。つまり、多くのフォームPOSTを処理し、それらのフォームからデータを処理すると、実際にはASP.NET MVCがを作成し、さらにを作成します。

私は厳しいとは言いませんが、ASP.NET MVCに切り替えるのは奇妙に思えますが、その理由は分かりません。

+0

私はこのコメントを高く評価し、すべての種類のロジックを持っているアプリケーションは、コントローラ側のものになります。 アプリの大部分は、ユーザーの入力を受けて結果セットを返すようなことを行います。複雑なビューを扱うのではなく、多数の(たとえば複雑な請求)変数を使用して処理しています。 単体テストはほとんどありません(まだありません)methodolyというフォームにはほとんど当てはまりません(モデル/コントローラがすべてに統合されているため完全にテストできません) –

+0

「大規模アプリケーション」とは、コードの複雑さの点ではどれほど大きいかという点ではなく、ユーザー負荷は軽いですが、ユーザーが提出した後に実際に何が起こるかの複雑さは、キラーです。私のジュニアデベロッパーが見解を守るようにすることと、論理を攻撃してすぐにテストして、それが何をするのかを確かめるために内的な数字を決める「委員会」(刻々と変化するもの) ...ほとんどの請求書のもの、それは非常に目に見えるので –

+0

上記のすべてのことを言っている...私はあなたの最後の質問への答えは:私は他の誰かがそれを通っていたと思ったので質問を投稿したb私は少し自分自身を納得させる必要があったかもしれません:-) –

0

私はこのケースでは、ほとんどの企業がそのように考えているので、OPはMVCに切り替えるための実用的な(利益のある)理由を探していると思います。

最大の利点は、ASP.NET MVCアプリケーションの単体テストを作成する方がずっと簡単です。単体テストの優れたスイートは、Continuous Integrationプロセスの基礎として役立ちます。

なるように権力のためのbottomlineは、インストーラを作成し、デプロイを簡素化し、単一のステップでビルドを作成できるということです、パッチなど

+0

これは素晴らしいアドバイスであり、私はそれを私の議論の基礎として使用すると信じています。意思決定を行っている人々がプログラミング上の心ではなくビジネスの観点から考慮していることを忘れるのは簡単なこともあります。誰もがもっと幸せになるという私の元の考えではなく、彼らの費用便益の感覚にアピールするつもりです。 –

0

RailsとDjangoは両方とてもモデルビューコントローラ(MVC)パターンに従いますあなた自身のための仕事の負荷を作成するように聞こえる。なぜYOUはASP.NET MVCに切り替えるのですか?

1

私は、MVCを「売っている」ということではなく、その利点を理解していると思います。 また、既存のシステムをMVCに移行することが費用対効果に優れているかどうかを真剣に評価する必要があります。 しかし、MVCは多くの利点を持っている - ここで私の頭の上からいくつかある:制御、データとプレゼンテーションを分離

    • アプリケーションはより保守なりますが、比較的後の変更
    • を作ることが容易に短い学習曲線は、他のプログラマーが理解しやすい
  • より良い設計の手段は、新しい機能を導入する方が簡単です。
  • MVCシステムはもっとテスト可能かもしれません(そのため信頼性も高くなるかもしれません) - データのスパゲッティをテストするよりもコントローラをテストするほうがはるかに簡単ですが、コントロールコードとプレゼンテーションコード。
+0

私はあなたが間違いないと確信しています。あなたのような回答やAbsolut40やAndrew Hareのような質問は、私の業界や会社に適用されるように詳細を描くのを助けてくれます。非常に高く評価! –

0

どのようにして、「Strutsは我々が行うアプリケーションのためにはあまりにも巨大ですか」? Strutsは、簡単な内部アプリケーションでさえ、いったんどのように動作するかを学ぶと(これはかなり速い)、当社で開発することを容易にしました。いくつかのJSP、いくつかのアクション、いくつかの簡単なDAOを介してJDBCでバックエンドのデータベースアクセスを行い、ant/mavenとdeployを使って戦争中にバンドルします。完了しました。

+0

私は間違っていません。私はStrutsのファンですが、J2EE(Struts、Spring、Sitemesh、Hibernate、ORM)を説明しようとしています。新しいIDE ala Eclipse/Netbeans、poxを使用しています。xmls、図書館はMicrosoft Wayとは反対の場所にあり、Oracleに結びつけてJUnitを追加していますが、この時点でどこからでも数マイル離れていて、私は理解している人だけです) –

+0

まあ、Spring、Sitemesh、Hibernate/ORM、pox.xmls(なんで、ひどいJPOX JDOのこと?)を使わないでください。 Eclipseは使いにくいものではありません。必要なライブラリは、プロジェクトの/ libというフォルダに入れることができます。 Oracleに接続する - JDBCを使用する。私はあなたが簡単なwebappsを書こうと思った! – JeeBee

0

また、Joelのアドバイスを念頭に置いてください(Things You Should Never Do, Part I):コードを最初から書き直すのは避けてください。

+0

私は原則としてあなたと同意しますが、時々私は厳しい決断を下す必要があります。私たちのケースでは、これらのアプリケーションの一部(ORMなし)は単体テストされておらず、何年もの間、アウトソーシングされた開発者の解約によりスパゲッティに近づいています。私は、これらのアプリケーションを(少なくともいくつかの)アプリケーションで使用して、ORMとユニットテストを使用してMVCを作成し、そのサイクル全体を皆にとってもっと幸せにすることができることを知っています。しかし、これらのプロセスは非常に定着しており、それほど単純ではありません。 –