|
リリース時のVisual Studio 2005でのASP.NET開発は、Web Site Projectを用いていましたが、SP1にはWeb Application Projectが標準追加されました。 ** Web Site Project [#tb10e009] - Visual Studio 2005からの新形式 - フォルダ(またはaspx)単位で、複数のDLLが生成される。 -- Webアプリケーション全体を再コンパイルしたり再転送することなく、コンポーネント毎にアップデートできる。 - プロジェクトファイル(*.csproj等)やAssemblyInfo.csがない。 - .aspxに対して、.aspx.csのみが付随する。 - FxCopや.Testでは解析できないようだ。DevPartnerは一応解析可能だが…。 - Release Buildできない? -- Microsoft AJAX 1.0のProxy呼び出しJavaScriptのURLが、どうしても"js"ではなく"jsdebug"になってしまう。 ** Web Application Project [#afebccba] - [[MSDN:http://msdn2.microsoft.com/ja-jp/asp.net/aa336618(en-us).aspx]] - [[Scott Guthrie氏のWebサイト:http://webproject.scottgu.com/]] - Visual Studio 2003でのASP.NET開発とほぼ同じ。 - プロジェクトファイル(*.csproj等)やAssemblyInfo.csがあり、プロジェクト1つに対して1つのDLLがビルドされる等、通常のC#プロジェクトと同様に扱える。 - .aspxに対して、.aspx.csと.aspx.designer.csの2ファイルが作成される。 - 静的コード解析ツール等も実施可能。 - ソース変更時には、Webアプリケーション全体を再コンパイルする必要がある。 -- そのためか、開発時、Visual Studioのメモリ消費量大め。 ** Web Site → Web App 変換 [#h7f48acf] - [[Scott Guthrie氏のWebサイト:http://webproject.scottgu.com/CSharp/migration2/migration2.aspx]] が参考になる。 - 基本的には、Web Site Project内の必要なファイルをWeb Application Projectにコピーして、Visual Studioから[Webアプリケーションに変換]処理を実施するだけで問題ない。 - Web Siteでは許されていた記述ルールが、Web Appでは許可されずビルドできないことがある。ソースコードを見直すべき。 ++ Web Site ProjectでASP名前空間に属する型(ユーザーコントロール等)を利用していた場合、Web Site Projectでは利用できない。自動生成される内部クラス型ではなく、公開されたクラス型を利用するように変更すべき。 ++ ASP名前空間をusingしていれば、それもビルドエラーになる。 ++ partial classとして同じ名前空間.クラス名で定義されているクラス内で、同じ名称のフィールド、プロパティ、メソッドが存在する場合、ビルドエラーになる。Web Site Projectの場合はエラーにならない。むしろ、そちらが不自然。 ++ web.configに登録されているユーザーコントロールが、aspxで再登録されていた場合、ビルドエラーになる。Web Site Projectの場合はエラーにならない。登録箇所をどちらかに寄せるべき。 ** Web App → Web Site 変換 [#vb764501] - 不明