ASP.NET2.0の事前コンパイル方法

2006-01-26
このエントリーをはてなブックマークに追加

VisualWebDeveloperを使うと、ビルドしても実行時コンパイルでしかない。VS2003ではビルドすればDLLが生成され、配布時にはそれを配置しておけばよかったのだが、はてさて。まさか実行時コンパイルしかできないなんて寂しい仕様なわけはあるまいに。

で、色々調べてみますと、どうやらコマンドラインでコンパイルするらしい。

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_compiler.exe

環境によってパスは違うかもしれないが、たいていはここでしょう。

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727>aspnet_compiler -v /hoge -p C:InetpubwwwrootWebSite1 C:InetpubwwwrootBin

-vが、仮想ディレクトリの指定
-pが、ソースのあるディレクトリとコンパイルしたプロジェクトを出力するディレクトリ

「hoge」という仮想ディレクトリを作成しておきます。「C:InetpubwwwrootWebSite1」にソースが配置されています。僕の場合は、「hoge」のローカルパスが「C:InetpubwwwrootWebSite1」になっているということです。

「C:InetpubwwwrootBin」というフォルダを作成しておきます。これはもしかするとフォルダが存在しない場合は自動で生成してくれるかもしれません。

で、上記コマンドをコマンドプロンプトから実行すると、「C:InetpubwwwrootBin」にDLLとその他もろもろが生成されるという仕組みです。

実際にやってみればわかると思いますが、VS2003の時はASPXファイルだけは残ったもんですが、ASP.NET2.0になると、ASPXファイルは残骸(マーカーファイルというらしい)のみです。ASPXまでコンパイルされてしまうので、デザイン変更だけでも再コンパイルが必要という、JavaServlet並みのメンテナンス性の悪さです。

製品版では改善されているのでしょうか…。

.NET2.0でのデータベースコネクション

2006-01-26
このエントリーをはてなブックマークに追加

VisualWebDeveloperとSQLServerExpressを使ってASP.NET2.0を試しているのだが、論外な部分でつまずいてしまった。

というかSQLServerExpress側の問題だったのだが、何にも気にしないでインストールしたらインスタンスを勝手に作られてしまったのである。おかげで、サーバ名だけ指定してコネクションしようとすると、「そんなやついねぇよ」と怒られてしまい、つながせてくれないのだ。

_conn.ConnectionString = “Data Source=localhost\sqlexpress;user=ユーザ名;password=パスワード;Initial Catalog=データベース名”;

ASP.NET側の基本的な部分は変更なし。

多分、インストール時の設定しだいでインスタンス作成しないでデータベースサーバを作ることも可能なんでしょうね。ちょっと後日調べてみますわ。