WebSurfer's Home

トップ > Blog 1   |   ログイン
APMLフィルター

VS2019 で Web サイトプロジェクト作成

by WebSurfer 2020年4月23日 11:44

Visual Studio 2015 以前(VS2017 は不明)では以下の画像のように [File] ⇒ [New] ⇒ [Wen Site...] (日本語版では[ファイル(F)]⇒[新規作成(N)]⇒[Web サイト(W)...]) で ASP.NET Web Forms の Web サイトプロジェクト作成用のテンプレートが表示されました。Visual Studio 2019 ではそのメニューがどこにあるかという話を書きます。

Visual Studion 2015

今は Web アプリケーションプロジェクトを使うのが主流ですが、ASP.NET がリリースされた頃の Web Forms アプリでは Web サイトプロジェクトを使っていました。検証などでページ単位にちょっと試してみたいというような場合は Web サイトプロジェクトが便利なので自分は今でも使っています。

両者の特徴は Microsoft のドキュメント「Web アプリケーションプロジェクトと Web サイトプロジェクト」に詳しく書かれていますので見てください。

Web サイトプロジェクトを使うメリットは、上に紹介した記事に書いてありますように、

"Web アプリケーションのごく一部を変更する場合、アプリケーション全体を再配置する必要はありません。 変更したファイルを運用 IIS サーバーにコピーするだけです。 運用サーバー上でファイルを直接編集することもできます (Web アプリケーション プロジェクトのコード ファイルは単一のアセンブリ ファイルにコンパイルされるため、.aspx ファイルまたは .ascx ファイルのみが変更された場合を除き、少しの変更でもサイト全体を配置する必要があります)。"

・・・ということです。

Web アプリケーションプロジェクトの場合は、特定のページのコードをちょっと変更しただけで全部コンパイルし直さなければならないのですが、コンパイルし直すのに時間がかかるし、一部の変更が他の部分に思わぬ影響を与えることもあるし、あるページは C# で別のページを VB.NET で作るということはできないなど、開発時の検証目的で使う場合はデメリットが大きいと思います。

で、VS2019 ではどのようにすれば Web サイトプロジェクトを作成できるかですが、まず、下の画像のように、ワークロードに「ASP.NET と Web 開発」を選択し「インストールの詳細」で[追加のプロジェクトテンプレート (以前のバージョン)]にチェックを入れてインストールします。

追加のプロジェクトテンプレート

そして、VS2019 の[ファイル(F)]⇒[新規作成(N)]⇒[プロジェクト(P)...]で「新しいプロジェクトの作成」ダイアログを開けば、その中の[ASP.NET Web Forms サイト]という Web サイトプロジェクト用のテンプレートが選択できるはずです。

新しいプロジェクトの作成

上の画面で[ASP.NET Web Forms サイト]を選択して[次へ(N)」をクリックして先に進み、次の画面でプロジェクトの名前、プロジェクトを生成する場所(フォルダ)、フレームワークを設定してから[作成(C)]をクリックすればプロジェクトが自動生成されます。

Default.aspx

上の画像は、生成されたプロジェクトを VS2019 から[デバッグ(D)]⇒[デバッグの開始(S)](または[デバッグなしで開始(H)]) で実行し、Default.aspx を表示したものです。

(注:アドレスバーに表示されているのが Default.aspx ではなくて Default となっている理由は、テンプレートに実装されている Friendly url の機能によるものです。もちろん無効に設定できます)

Tags: ,

DevelopmentTools

VS2019 の Settings.settings 表示

by WebSurfer 2020年4月19日 11:02

Visual Studio Community 2019 で Settings.settings ファイルを開くとデザイナ画面でなく xml コードが表示される問題とその解決方法を書きます。

Settings.settings

Visual Studio でアプリケーションの設定情報を保存するために使われる Settings.settings ファイルは、上の画像のように、ソリューションエクスプローラーで Settings,settings を右クリックし、表示されるダイアログで[開く(O)]を選択するとデザイン画面が表示されるのがデフォルトの設定でした(VS2008, VS2010, VS2015 はそうでした)。

ところが、つい最近気づいたのですが、Visual Studio Community 2019 v16.5.4(もっと前のバージョンからだったのかもしれません)ではデザイン画面ではなく生の xml 形式のコードが表示されてしまいます。

原因が分からず、心当たりもなく、ググって調べても同様の問題の記事はヒットしません。やむを得ず、Visual Studio Installer から修復を行っても解決しませんでした。(汗)

ググって調べた記事の中では Developer Community のスレッド VS 2019 Preview 2 Properties > Settings.settings editor is not opening だけが今回の問題に近かったので、もう一度よく読んでみると "Simple solution : Settings file to be Open With..."Settings Designer" as default" という書き込みがあります。

最初は意味が分からなかったのですが、英語版 Visual Studio では、上の画像の[ファイルを開くアプリケーションの選択(N)...]が "Open With..." になるということに気が付きました。

英語版の "Open With..." すなわち日本語版の[ファイルを開くアプリケーションの選択(N)...]で下の画像のダイアログが表示されます。

プログラムから開く

表示されるダイアログで[設定デザイナー]を選び[規定値として設定(D)]をクリックし、[OK]をクリックすると無事デザイナ画面が開きます。以降は[設定デザイナー]がデフォルトとなるので[開く(O)]でデザイン画面が開くようになります。

このような問題なら同じ事象を経験した人が多々いるはずで、ググればいくつか記事がヒットするのが普通だと思うのですが、上記の Developer Community の記事以外見つからなかったのは何故でしょう? 自分の環境特有のものだったのでしょうか?

Tags: , ,

DevelopmentTools

「常にコピーする」の意味

by WebSurfer 2018年9月29日 13:32

下の画像の「常にコピーする」の「常に」の意味が、Visual Studio 2010 と Visual Studio 2015(以下、VS2010、VS2015 と書きます)では違っているという話を書きます。

出力ディレクトリにコピー

どう違うかと言うと、VS2010 ではソースコードを変更してリビルドしてから実行した場合にコピーされますが、VS2015 ではソースコードは一切変更しなくても実行するたびコピーされます。SQL Server Express のユーザーインスタンスだけでなく LocalDB の場合も同じです。

それを知らないと上記の機能を利用したアプリの開発の際、期待した結果にならなくて焦るかもしれません。何を隠そう自分がそうだったのですが。(笑) どういうことだったかと言うと以下の通りです。

開発中のアプリで DB に INSERT, DELETE, UPDATE 等の操作をしてから一旦アプリを閉じた後、DB に反映された結果を見るために、再度アプリを実行して DB の内容を表示するということがあると思います。

そういう場合、VS2010 では編集結果が表示されますが、VS2015 では編集前の元のファイルがコピーされてそれを見ることになるので、アプリが期待通り動いてないと勘違いして焦るということです。(笑)

話としては以上なのですが、それだけではブログの記事としては書き足りない気がしましたので、少し追加情報を書いておきます。

普通に SQL Server に接続してアプリを開発しようとすると、SQL Server の既定のインスタンス(または、名前付きインスタンス)に接続することになります。

既定のインスタンス(または、名前付きインスタンス)を使えるようにするには SQL Server 側の設定がいろいろ面倒ですし、そこがクリアできても Visual Studio の Express 版からでは接続できないという問題もありました。

なので、SQL Server の Express 版のユーザーインスタンスや LocalDB を使って、アプリを起動する都度 .mdf ファイルをアタッチして接続するというファイルベースの開発を行う機能が提供されています。

その際「出力ディレクトリにコピー」の設定で、出力ディレクトリに .mdf ファイルをコピーを作成してそれをアタッチする設定にすることができます。

出力ディレクトリとは Windows Forms アプリの場合は .exe ファイルが出力されるフォルダ、ASP.NET Web アプリの場合は App_Data フォルダになります。接続文字列では |DataDirectory| と指定されます。

その「出力ディレクトリにコピー」のデフォルトが「常にコピーする」になります。

「常にコピーする」の他に「コピーしない」「新しい場合はコピーする」というオプションがあります。詳しくは、@IT の記事「Visual Studio 2005でデータベースの更新が反映されない場合には?」を見てください。

VS2005 は上の記事によると「再度アプリケーションをデバッグ実行すると、そのDBファイルは上書きされてしまう」とのことです。VS2008、VS2013、VS2017 等ではどうなるか不明です。

Tags: ,

DevelopmentTools

About this blog

2010年5月にこのブログを立ち上げました。主に ASP.NET Web アプリ関係の記事です。

Calendar

<<  2024年3月  >>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

View posts in large calendar