Answer14賛否両論について話す前に、それがどのように機能するかについての根本的な違いを知る必要があります。Webサイトプロジェクトでは、実際にページにアクセスしたときにaspxファイルと関連ファイルを動的にコンパイルする、ジャストインタイムコンパイルアプローチを使用しています。コンパイルされたアセンブリはその後ランダムに生成されたdll名でbinフォルダの中に置かれています。Webアプリケーションは、プロジェクトの開発時にページを名前付きのDLLにコンパイルします。このコンパイルがなければ、Webサイトはあなたのサーバーにデプロイすることすらありません(自動コンパイルのメカニズムがないため)。長所と短所:Webサイトプロジェクトのソースは動的なので、何かを変更するために開発マシンを通過する必要はありません(危険なアプローチですが)。これは便利だと言っても、JITコンパイルが関係するため、パフォーマンスがわずかに低下します。MVCやMonoRailベースのプロジェクトのように、ディスパッチ要求の設計のためにWebサイトプロジェクトで実行されないプロジェクトもあります。Webサイトプロジェクトはコンパイルされていないため、ライブラリレベルでTDDする可能性はほとんどありません。Webアプリケーションでコンパイルした単一のDLLをTDDすることはできます。どのようにしてそれが引き起こされるのか忘れていましたが、動的な性質のため、VS2005はより大きなWebサイトプロジェクトをコンパイルするのに永遠に時間がかかる可能性があります。Webアプリケーションはこの問題の影響を受けません。たくさんのものが関係していると私は確信しています、しかし私はこれらがより大きいもののうちのいくつかであると思います。source7Webサイト*主にプログラム要素を持つアドホックWebサイトを操作するためのものです。aspxファイルに存在する顧客固有のコンテンツによって簡単に識別されます。FrontPage拡張)に配置できます。メニューオプション分離コードとクラスは通常、オンデマンドでインメモリにコンパイルするWebサーバーに格納されます。アプリケーションを再起動してセッションを失うことなく、ファイルに変更を加えることができます。対して/に対してクイック編集、テスト、デプロイサイクル実行時の構文エラーアプリをコンパイルまたは再起動する必要はありません。2008で完全に一流の市民になりました。名前が暗示しているように、これらは主にWebアプリケーション用であり、Webインターフェイスを持つ製品またはソリューションを作成したときに使用されます。Webアプリケーションプロジェクトはローカルドライブ上に存在し、他のVSプロジェクトタイプと同様に扱われ、既存のソリューションに追加することができ、それらは完全なコンパイル、検証、およびビルドステップの対象となります。展開は通常MSIインストーラを介して行われますが、追加のWeb展開プロジェクトアドインを使用することもできます。これにより、テスト環境に展開するのに便利なサーバーに直接展開できます。2005を使用している場合、Webアプリケーションプロジェクトはhttp://aspalliance.com/1029_TipTrick_Optimizing_ASPNET_20_Web_Project_Build_Performance_with_VS_2005.2に従ってコンパイルが速くなります。cons]の一人の意見の一覧については、この記事をチェックすることができます。私の個人的な好みは、単にWebサイトプロジェクトを作成することです。私にはこれをする理由は特にありませんが、いつもうまくいくので(デプロイするディレクトリをドラッグアンドドロップするだけでも構いません)私はそれを使い続けます。source0私は最も些細なアプリのためだけにウェブサイトプロジェクトを使うでしょう。複数の開発者を巻き込むその他のことには、msbuildスクリプトが必要です。msbuildはWebアプリケーションプロジェクトを好み、本当にWebサイトプロジェクトを嫌います。それに加えて、私はウェブサイトのプロジェクトが課している命令に満足することは決してありませんでした。私はコードを書く、コンパイル、テスト、デプロイするのが好きです。Webサイトプロジェクトを使用すると、コードの記述、デプロイ、コンパイル、テストができます。私を間違って擦るだけです。Redd]私がこれを始めるのを助けました。彼はWebアプリケーションプロジェクトアプローチを好みます。1.1アプリケーションを3.5にアップグレードすることでした。これは、1.1の動作方法に非常に近いので、Webアプリケーションプロジェクトのルートを選択する方がはるかに簡単です。私はそれに反対しましたが、Webサイトのアプローチでは次のような魅力がありました。ページコントロールを宣言するためのコードはまったく必要ありません(一方、Webアプリケーションプロジェクトでは、これらをデザイナファイルに自動生成します。最終的には、Webアプリケーションプロジェクトのルートを選択した場合は、コードの変更を少なくする必要があります。残念ながら私たちのアプリは静的な方法や他のそのような悪い習慣を通して互いに参照しているページを持っています。Webサイトはコンパイル方式に近づいているため、ネームスペースの設定方法に関係なく、ページを連携させることはできません。私はデザイナーファイルと一緒に暮らすことを学ぶ必要があるだろうと思います。source0チームで開発するときは、常にWebアプリケーションを選択する必要があります。Binディレクトリには参照されているすべてのアセンブリが格納されているため、Binディレクトリをソース管理にチェックインする必要があります(非常に悪い)。Webサイトのコンパイルとソース管理からの更新(別の開発者による変更を伴う)の後に、常に競合が発生します。2008を提供します。この両方の概念をサポートします。http://anishmarokey.blogspot.com/2009/07/web-site-vs-web-application.html[myblog]を読んでください。ここ、http://blogs.vertigosoftware。vbprojファイルすべてのアプリケーションコンテンツを一覧表示します。Webサイトアプリケーションのページにはデザイナーファイルがあります。