どっとねっとふぁん

C# Tips And Samples
in 検索

ASP.NET2.0 Binフォルダとdllファイルについて

最新の投稿は、投稿日時: 09-03-2005, 9:19 午前 投稿者: naoki です。スレッドには 2 件の返答があります。
投稿のソート: 前へ 次へ
  •  09-02-2005, 6:13 午後 348

    ASP.NET2.0 Binフォルダとdllファイルについて

    こんにちわ。
    今VWD2005β2を使ってWebアプリを開発しています。
    IISは使用しないで、ローカルで作業してます。

    今まで気にしないでプログラミングしてしまっていたのですが、ビルドした際にどこにdllあるのかなーと
    フォルダを覗いてみた所、Binフォルダが無い事に気がつきました。
    ビルドする際にどこにdllを作成するなども聞かれなかったのですが、一体どこにあるんでしょうか?

  •  09-02-2005, 6:53 午後 349 返答元: 348

    Re: ASP.NET2.0 Binフォルダとdllファイルについて

    これはVer1.1でbinフォルダに入っているdllがどのようなものであったかがわかって、
    Ver2.0での変更点がわかればなんとなく予想がつきます。
    ただ、この点についての記述は見たことがないので、私の勝手な予想になりますが(w

    で、Ver1.1のdllですけど、これはコードビハインドで作成されたコードファイル(.csや
    .vbファイル)をコンパイルしたdllです。
    Ver1.1ではaspxファイルはコードファイルに書かれたクラスを継承して利用してました。
    ここで、コードファイルの部分はあらかじめコンパイルしておき、aspxファイルは
    最初にアクセスされたときにこのあらかじめコンパイルされたdllを参照するように
    なっていたのです。

    ASP.NET自体はコードファイルを実行時にaspxファイルと一緒にコンパイルする
    仕組みも持ってたんですが、VS.NETではあらかじめcsファイルをコンパイルする
    方法をとっていた、ということになります。

    これがVer2.0になってどう変わったか、というと、コードビハインドが継承ではなく、
    partialクラスを利用することによって実現されるようになりました。
    partialクラスというのは1つのクラスを複数のファイルに分割する仕組みです。
    で、そのクラスをコンパイルする時には分割されたすべてのファイルが必要になります。

    このため、aspxファイルとコードファイルは同時にコンパイルされることになりました。
    具体的には、aspxファイルに最初にアクセスされたときにaspxファイルとコードファイルが
    両方読み込まれてコンパイルされることになったのです。
    こうなると、dllって必要ない、というよりもコードファイルがクラスの1部となっているので、
    コードファイルからdllを作ること自体できなくなってます。

    そんなわけでdllファイルが見た目なくなっているんだと思われます。

    ちなみに、Ver2.0でできるようになったプリコンパイルを行うと、binフォルダができて
    その中にdllが含まれます。
    このdllはVer1.1までのようにコードファイルがコンパイルされたものではなく、
    aspxファイルとコードファイルが一緒にコンパイルされたものになります。

    もうひとつちなみに(w
    上記の話はあくまで作成したアプリケーションのフォルダの中にdllファイルが
    あるかないか、という観点でまとめています。
    実際にASP.NETが実行される際は、aspxファイルが自動的にコードに変換されて
    そのコードがコンパイルされて実行されてます。
    ここでのコンパイルの結果作成されるdllはシャドーコピーという機能で特定の
    フォルダに移され、そこからメモリにロードされて実行されることになります。
    このシャドーコピーされたdllはVer1.1であれVer2.0であれ間違いなく存在します。

     


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
  •  09-03-2005, 9:19 午前 351 返答元: 349

    Re: ASP.NET2.0 Binフォルダとdllファイルについて

    なるほどーーー。
    1.1のdllを理解して、2.0のパーシャル実装を理解すると納得ですね。

    奥が深い反面、知らなくても開発が出来てしまうという技術の進歩に驚愕です。

    #2.0に触れれば触れるほど惚れていっています(笑)

RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems