それは小さな(ISH)アプリケーション用の3層アーキテクチャを使用して価値があります

StackOverflow https://stackoverflow.com/questions/517548

質問

私は、比較的小さなasp.netのWebアプリケーション上で働いていると、完全なn層アーキテクチャを採用する必要が本当に存在する場合疑問に思って。サイズの考え方については、約20のデータベーステーブルがあります。

過去には、私は、ビジネスロジックとデータアクセスがUI層を形成するasp.net Webアプリケーションだったし、これが正常に動作するように見えたと単一のクラスライブラリにグループ化されている2層のアプローチを使用しています。

しきい値サイズか、n層を採用すべき親指のいくつかのルールがありますか?

役に立ちましたか?

解決

今は比較的小さいかもしれないが、あなたはそれが今後の成長可能性があると思いますか?あなたのコースのうち、あなたは実用的でなければならないが、あなたはすでにあなたの単一のアセンブリ内の関心の自然な分離を持っている場合、二つ以上のアセンブリにそれを分割するのはとても簡単です。クラス自体は、ビジネスロジックとデータアクセスを組み合わせた場合、あなたはあなたの手でより多くの仕事を持っています。しかし、私はそれが最初の場所で一つの場所にそれをすべてを書くことよりも、必要に応じて並列に、1つの組立およびその他のあなたのビジネスロジックでデータアクセスロジックを記述することはほとんどより多くの仕事だしないと主張していると思います。

他のヒント

あなたはどのような種類の成長や変化が予想される場合は、

、それは今、明示的階層を強化するために役立つだろう。これはあなた自身のプロジェクトであり、あなたが変更または緊密に統合されたコードのコストをアップponying気にしない場合でも、その後、ただ一つの層のようにそれで離れてハックます。

これは、すべての将来のコストについてです。現在では、あなたが行くように、単にプログラミングすることははるかに安いですが、非常によく変化に対応しません。ティア・プランニングでは、そこに先行投資コストだが、それは変更を処理し、最初のアプローチ缶よりも優れた層全体の実装をリッピングすることができます。

だから、親指のあなたのルールが変更とするときのために支払うことになる人に支配されます。

はい、それはそれだけの価値があります。あなたが提案していることは一緒に解決策をハッキングです。私は、これは私の痛みと苦しみをもたらした回数を伝えることはできません。そのコインの反対側には、自社のソリューションをoverbuild astronaught開発者です。あなたにもこれを避けたい。

それはDALにスナップを構築します、私はあなたがSQLにLINQを試してみる勧め、あなたの三つの層を構築し、簡単なもので、その後、あなたはスリムなUIの構築に焦点を当てることができ、かつ重労働を処理しますBLL。それはそれを行うにはもうそのくらいになりませんし、それは後にユニットテストが可能になります。

  

しきい値サイズまたはいくつかのルールがあります   親指のあなたが採用すべき場所   n階層?

私が知ってんだけど、私はこれを捨てるでしょう。

ない1:このWebアプリが成長できるチャンスがあるかどう(またはバックエンドを変更する)、および/または他の誰かがそれを維持することになるかもしれないが、私は行く検討したいですn階層アプローチである。

ただ、可能性、それを維持します。それはやり過ぎ、今、おそらくだが、それは不可能だな状況に自分を書いていません。大規模なリファクタリングが長く、最初からそれを再構築するよりも行くことができます(そしておそらくゼロから再構築し、ちょうどそれになります)。

私は(後半に来た)最後に作業したプロジェクトは、層を破壊することは事実上不可能であったような方法で書かれていました。データ・ロジックは、プレゼンテーションロジックと織り合わさビジネスロジックを織り交ぜ。短期的には、今までそれが数ヶ月撮影しただろう固定されるので、行っていたように良好であった。

それはちょうど可能それを保つ、私が先に言ったようなので、分離のすべてを維持するためにあまりにも難しいことではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top