6405


これは一昨年のことですが、ASP.NETサイト開発の新人が入社されて、既存サイトの維持作業から任されました。彼は彼の先輩になぜ、サイトAが立ち上がるのは早いに対して、サイトBは初回のみ立ち上がるのが遅いと聞いたところ、その先輩はサイトBが独自の設定あるので、初回だけ遅いよと答えた。私はちょっと不思議に思いならがコードをみたら、サイトAがWebアプリケーションに対して、サイトBがWebサイトでした。

Webサイトだから、事前コンパイルしなかったら、ランタイムで最初のリクエストでコンパイルするので時間がかかると説明した覚えがあります。日本語のスタック・オーバーフローでこの質問がないようで、私の理解を下記のようにまとめてみました。もし、漏れたポイントまた、アドバスを追伸してもらえる大変ありがたいです。  
![画像の説明をここに入力](https://i.stack.imgur.com/3qN7n.png)

MSDN更新の比較：  
日本語：[Web アプリケーション プロジェクトと Web サイト プロジェクト](https://msdn.microsoft.com/ja-
jp/library/dd547590%28v=vs.100%29.aspx)  
英語：[Web Application Projects versus Web Site Projects in Visual
Studio](https://msdn.microsoft.com/en-us/library/dd547590.aspx)  
![画像の説明をここに入力](https://i.stack.imgur.com/Fh9pD.png)


CC BY-SA 3.0
2015-02-12T14:08:54.693
6393
2015-03-03T08:51:59.890
2015-02-12T18:21:47.147
5987
5987
question
c# .net visual-studio asp.net
ASP.NETのWebサイトと Webアプリケーションの違い


初回ロードタイムについてですが、これは通常

  1. アプリケーションプールの起動
  2. ASP.NETの依存ライブラリのロード
  3. DBコネクション等の初期化

というような非常に時間のかかる処理が含まれており、UI層の差異はあまり問題になりません。質問にある「初回のみ立ち上がるのが遅い」サイトは起動時にキャッシュの作成などを明示的に行っているため時間がかかっているのではないでしょうか。


CC BY-SA 3.0
2015-02-12T14:35:36.210
6394
2015-02-12T14:44:53.240
2015-02-12T14:44:53.240
5750
5750
6393
answer


気になった点を挙げてみます。

## 含まれる/含まれないとは？

aspx, ascx が何に「含まれる」または「含まれない」のかがよくわかりませんでした。

## ネームスペースの手動は Webサイトでは？

ネームスペースは逆ではないでしょうか？  
[こちら](https://msdn.microsoft.com/ja-
jp/library/dd547590%28v=vs.100%29.aspx#summary_of_differences)の表の Webサイトプロジェクト
の名前空間に

> 既定では、明示的な名前空間がページ、コントロール、およびクラスに追加されませんが、手動で追加できます。

とあります。

また、msdnと表の左右どちらを Webアプリケーション / Webサイト にするか合わせた方が良いのでは？

## MVCが Webサイトで可能か

日本語版の冒頭のメモでは

> シナリオによっては、選択の余地がないこともあります。 たとえば、ASP.NET MVC アプリケーションを作成する場合、Web アプリケーション
> プロジェクトを使用する必要があります。

<https://msdn.microsoft.com/ja-jp/library/dd547590%28v=vs.100%29.aspx>

とありますので、MVCが可能と言い切れるかは再考の余地があるかもしれません。

## 推奨されているかを表に掲載しても良いのでは

提示されている英語版で

> For new development, we recommend that you choose web application projects.
>

>> 新規開発においては、webアプリケーションプロジェクトをお勧めする。

>
> ... In addition, as new ASP.NET features are developed, they won’t always be
> made available for web site projects.
>

>> ... さらに、新しいASP.NETの機能が開発されるが、それらは Webサイトプロジェクト向けに作られていない。

など、利点がある事を説明しつつも Webサイトプロジェクトは推奨していないようですので、そこも表に示しておいてもいいかもしれません。


CC BY-SA 3.0
2015-02-12T16:11:48.333
6405
2015-02-12T16:11:48.333
2020-06-17T08:14:45.997
-1
728
6393
answer


いくつか。

MVCはWebサイトで作成することは「できません」  
理由はいろいろ。

あと、Webアプリケーションであっても、aspxファイルは起動時（動作時？）コンパイルです。

推奨については、2.0の登場時はWebサイト推奨、、、というかWebサイトしかない、という状況が一時期あったのですが、SP1でたときにWebアプリケーションが追加されました。  
1.0使ってた企業から突き上げがあったようです（ｗ  
今となってはMVCがWebアプリケーションでないとできない、とかがあって、たぶんそれに引っ張られてWebアプリケーションが推奨なのではないかと。

ちなみにASP.NET 5 になるとWeb Formが。。。ねぇ。。。（ｗ


CC BY-SA 3.0
2015-03-03T08:51:59.890
7374
2015-03-03T08:51:59.890
8653
6393
answer