Visual StudioにおけるWebsiteとWebアプリケーションプロジェクトの違い


Visual Studio 2005/2008/2010には、Website(Webサイト)とWebアプリケーションプロジェクト(Webアプリケーションプロジェクト)の2つのWeb開発モデルがあり、多くの初心者はこの2つの違いをよく知らない.今日はまたマイクロソフトの公式MSDNの説明を見て、ここで繰り返します.
1つのwebsiteはweb appと同様にvisual studioのsolutionに現れる.しかし、websiteプロジェクトは緩やかなグループのファイルにすぎず、プロジェクトファイルはなく、bin、Appなどの特殊なフォルダはありません.コードなど.Visual studioは、このプロジェクトが選択したフォルダをプロジェクトのルートディレクトリとして管理します.solutionファイルには、このルートディレクトリのパスしか記録されず、他に余分な構成情報はありません.プロジェクトがパブリッシュされると、すべてのファイルがパブリッシュされます.このような目的は、プロジェクトのパブリケーションが簡単で、すべてのファイルをコピーするだけで、IIS実行はインスタントコンパイルを行い、プリコンパイルしてからパブリッシュすることもできます.
Webアプリケーションプロジェクトは、エンジニアリングファイルによってウェブサイトが組織されており、いくつかの特殊なフォルダbin、App_があります.code、リソースファイル、トピックフォルダなど.手帳でプロジェクトファイルを開くと、プロジェクト内のファイルがすべて表示されます.コードファイル(コンパイルされる)、Webサイトのコンテンツファイル(コンパイルされない場合でも.csファイル)、リソースファイルなど、visual studioで各ファイルのコンパイル時のモードを指定できます.また、各ファイルのパブリッシュ時に除外されるかどうかを指定できます.プロジェクトのコンパイルでは、namespaceによってコンパイル可能なファイルを対応するassemblyファイル(dllファイル)にコンパイルするのが一般的である.
要するに、websiteモードは、ユーザー自身が各ファイルのウェブサイトにおける分散方式を組織し、App proj方式はvisual studioが推奨する方式に従ってファイルを組織する.
vs 2005のWebApplicationとWebSite(変換)
       vs2005     web applicationMS   VS2005     SP1         Web
WebApplication              ,      ,           。WebSite
                ,         ,    aspx
WebApplication    cs        designer.csbaidu
 
WebApplication
       ,         ,          ,            。
      
WebSite:         ,      WebDeployment          
WebApplication:               ,         ,                     、
                 
                   
  VSTS Team Build      
                
 App_GlobalResources  Resource    
      VS2003       
 
WebSite
       ,        ,        (    )
             
           Web     ,           ,       
             
 
 
 
VS2005 SP1WebSite   WebApplication   Web    
WebApplicationWebSite  
 
  web applicationvs2003      ,            ,             。
     web application   ,           。
----------------------------------------------------------------------------
 Visual Studio 2005 "    "   "Web    "  
 
 Visual Studio 2005     Visual Studio 2003     ,
     VS2005"ASP.NET  "VS2003
  2003            Assembly2005
 
VS2005     VS 2005 Web Application Project
     VS2005   2003VS2005 Service Pack 1             VS2005VSVS SP1,         。
   SharePointWeb        ,         ,
VS      ):
 
1WebTestWebApp--ASP.NET Web      
2default.aspx Web.config  
3TestWebApp 
4TestWebApp,  ,      Web    VS2005*.Designer.cs
  CodeBehind  
      App_Code  dataset            
      aspx Designer.csmasterpage
       designer.csVS2005 Designer API   ,       ,
    designer.cs           web
5aspx    codefile     
6namespaceclass-〉           ,       
7aspx    inherits
8、                 ,         

VS 2005のWebSiteとWebApplicationの違い
Visual Studio 2005 sp 1にASPが追加されました.NET Webアプリケーションタイプ.このようなウェブサイトの開発はASPを選ぶことができます.NET Webアプリケーションの種類は、ASPを選択することもできる.NET Web Siteタイプ.どのWEBプログラミングモデルを選ぶべきですか?
Option or Task
Web Application Projects
Web Site Projects
大きなVisual StudioがありますNET 2003 WebアプリケーションはVS 2005に移行する必要がある.
X
 
single-page codeモデルを使ってウェブサイトのページを開発するのが好きです.code-behindモデルを使用してWebサイトのページを作成するのではなく
 
X
ウェブサイトを書くのが好きです:ページを書く時、書く効果を迅速に見ることができるために、このページを動的にコンパイルして、すぐに効果を見ることができて、サイト全体をコンパイルする必要はありません.(つまり、ファイルを保存してブラウザでリフレッシュするだけで、自分が作ったばかりの効果が見えます)
 
X
コンパイル後のアプリケーションセットの名前を制御する必要があります
X
 
ページごとにアプリケーションセットを作成する必要があります
 
X
WEBページまたはWEBユーザーコントロールでは、個別のクラスに使用する必要があります.
X
 
複数のProjectを使用してWebアプリケーションを構築する必要があります.
X
 
pre-buildイベントとpost-buildイベントの処理が必要です(コンパイル前後に独自の追加処理が必要です)
X
 
プロジェクトファイルを新規作成する必要がなく、ディレクトリをWEBアプリケーションとして処理したい.
 
X
この2つのWEBプログラミングモデルの違い:
Scenario
Web Application Project
Web Site Project
Project definition
Visual StudioとNET 2003と同様に、プロジェクトファイルが存在するため、Solution Explorerには、プロジェクトファイルによって参照されるファイルのみが表示されます.これらのファイルのみがコンパイルされます.簡単にASPを1つNETアプリケーションは、複数のVisual Studioプロジェクトに分割されます.プロジェクトとソース管理からファイルを簡単に除外できます.
1つのディレクトリ構造はWEBプロジェクトです.プロジェクトファイルは存在しません.このディレクトリの下のすべてのファイルは、プロジェクトの一部として存在します.実際に導入したWebサイトでは、導入上にプロジェクトファイルは存在しません.このWebサイトを変更したい場合は、このプログラミングモデルを使用すると最適です.私たちはこのWEBサイトの中で、それらのファイルがどのプロジェクトに属しているかを気にする必要はありません.
コンパイルと生成
Visual StudioとNET 2003のWebアプリケーションプロジェクトのコンパイルモードはほぼ同じである.プロジェクト内のすべてのcode-behindクラスファイルと独立クラスファイルは、独立したアプリケーションセットにコンパイルされます.このアプリケーションセットはBinディレクトリの下に置かれています.独立したアプリケーションセットなので、アプリケーションセットの名前、バージョン、出力位置などの情報を指定できます.例えば、Model-View-Controller(MVC)モードはここでよく使用できます.WEBページとWEBユーザーコントロールで独立したクラスを参照できるからです.
コンパイル(Build)コマンドは、このWEBサイトが正しくコンパイルされているかどうかをテストするだけで、WEBサイトのプロジェクトをデバッグするときは、ソースファイルに依存することで、ASP.Netはページとクラスを動的にコンパイルして実現する.プリコンパイルサイトとダイナミックコンパイルサイトは同じcompilation semanticsを使用しており、プリコンパイルによってサイトのパフォーマンスを向上させることができます.ASP.Netダイナミックコンパイルシステムは、デフォルトのbatchコンパイルモデルとfixed-namesコンパイルモデルの2つのモデルを提供します.batchコンパイルモデルでは、複数のアプリケーションセットにコンパイルされる(典型的には、各ディレクトリが1つにコンパイルされる).この場合、アプリケーションセットを見ると、どのディレクトリに対応するか分かりません.fixed-namesコンパイルモデルでは、Webサイトの各ページまたは各ユーザーコントロールがアプリケーションセットにコンパイルされます.
Iterative development
Webページをデバッグしたり実行したりするときは、WEBプロジェクト全体をコンパイルする必要があります.Visual Studioではインクリメンタルコンパイルモードが使用されているため、WEBプロジェクト全体のコンパイルは通常高速です.ファイルが変更された場合にのみ、この部分がインクリメンタルコンパイルされます.
Visual Studio 2005のコンパイルプロパティは、サイト全体のコンパイル、指定されたページのコンパイル、または何もしないように構成できます.最後の場合、WEBサイトを1つ実行すると、Visual Studioはブラウザを1つだけ開き、現在または開始ページにアクセスします.このリクエストが送信されると、ASP.Netはダイナミックコンパイルを開始しました.このモードでは、ページが動的にコンパイルされたり、異なるアプリケーションセットにコンパイルされたりするので、ページをデバッグしたり実行したりするときに、プロジェクト全体がコンパイルされる必要はありません.間違った部分とあなたが使っている部分は互いに干渉しないことができます.デフォルトでは、WEBページを実行またはデバッグすると、Visual StudioはWeb Siteプロジェクトを完全にコンパイルします.これにより、コンパイル時のすべてのエラーが表示されます.しかし、開発プロセスでは、サイト全体を完全にコンパイルするのはかなり遅いです.開発デバッグでは、現在のページのみをコンパイルすることをお勧めします.
配置
すべてのクラスファイルがアプリケーションセットにコンパイルされているため、導入するときは、このアプリケーションセットと.aspxファイル、.ascxファイルおよび他の静的コンテンツファイルを一緒に配置します.このモデルの下で、.aspxファイルはコンパイルされず、ブラウザがこのページにアクセスすると動的にコンパイルされます.ただし、Web Deployment Projects(Visual Studio 2005のプラグインで、VS 2005にデフォルトで含まれていない)を使用すると、aspxファイルも1つのアプリケーションセットにコンパイルされます.小さなコードを1行だけ変更した場合は、プロジェクト全体のすべてのコードをコンパイルし、すべてのコードを含むこのアプリケーションセットをパブリッシュする必要があります.
Visual StudioのPublish Websiteコマンドを使用すると、aspxファイルとcode-behindファイルはアプリケーションセットにコンパイルされているので、コンパイル後のものが見えます.aspxファイルの髪の毛が変わりました.(注意:Buildコマンドは導入可能なアプリケーションセットを与えません)最新バージョンのPublishではcode-behindファイルのみのコンパイルがサポートされ、導入時に変更されません.aspxファイル.デフォルトでは、Binディレクトリの下でいくつかのアプリケーションセットにプリコンパイルされます.典型的には、1つのディレクトリが1つのアプリケーションセットに対応しています.fixed-namesデプロイオプションを使用すると、各WEBページまたは各WEBユーザーコントロールにアプリケーションセットを作成できます.これにより、各ページにデプロイ可能なアプリケーションセットが作成されます.ただし、fixed-namesデプロイオプションはアプリケーションセットの個数を増やし、実際のメモリ使用も増大します.
Visual StudioからNET 2003アップグレード
VS 2003と同様のWEBプロジェクト開発モデルを採用しているので、アップグレードは非常に簡単です.
Web siteプロジェクトのコンパイルオプションが異なるため、Visual Studioと似ています.NET 2003 WEBプロジェクトの大きな違い.マイクロソフトは変換ウィザードを提供していますが、もしあなたのプロジェクトが複雑なVS 2003プロジェクトであれば、この変換ウィザードを使用した後、変換マニュアルと照らし合わせて、多くの仕事をする必要があります.VS 2003からアップグレードする場合は、このWEBサイトでテンプレートを開発しないことをお勧めします.Webアプリケーションプロジェクトを使用します.