マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Visual Studioの、「ソリューション」・「プロジェクト」の構成を検討する際のポイントについて説明する。

ソリューション・プロジェクト

Visual Studioでは、開発するプログラムを、ソリューション・プロジェクトという単位で管理する。

  • 1つのプログラムは、1-複数のアセンブリ(EXEやDLLファイル)から構成される場合がある。
  • 1つのWebサイト・Webアプリケーションも、1-複数のアセンブリやコンテンツ ファイルから構成される。
  • また、各アセンブリをコンピュータにインストールするための
    「セットアップ プログラム」・「Webセットアップ プログラム」などがある。

プロジェクト

  • プロジェクトのビルドに関する構成情報を保持している。
  • 1つのアセンブリを作成するには、1つの「プロジェクト」が必要になる。
  • 1つの基本的なプロジェクトは1つのアセンブリを出力する(EXE、DLL)。

プロジェクト ファイル

  • *.csproj(C#用)、*.vbproj(VB用)などの拡張子を持つ。
  • WindowsアプリケーションのVBプロジェクトのプロパティの例
    • アプリケーション
      • アセンブリ
      • 名前空間
      • アプリケーションの種類
      • アイコン
      • スタートアップ フォーム
      • フレームワーク
      • プロパティ
      • ,etc.
  • コンパイル
    • ビルド出力パス
    • 詳細コンパイル オプション
    • Option Explicit,Strict,Compare
    • 警告・エラーの表示
    • ,etc.
  • デバッグ
    デバッグ時の動作の設定をする。
    • スタートアップ
    • コマンドライン引数
    • ,etc.
  • 参照
    アセンブリやCOMコンポーネントなど、
    プロジェクトで使用するコンポーネントの参照設定を設定する。
  • リソース
    プロジェクトのリソースを設定する。
    • 文字列
    • イメージ
    • アイコン
    • オーディオ
    • ファイル
    • ,etc.
  • 設定
    app.configのユーザ セッティング情報を設定する。
  • 署名
    アセンブリに厳密名などのアセンブリ署名をしたりする。
  • セキュリティ、発行
    ClickOnceアプリケーションで使用する設定をする。

分割の意味

  • モジュール単位の変更
  • 配布単位の変更(アセンブリでの配布)

ソリューション

  • 全体のビルドに関する構成情報を保持している。
  • 複数のアセンブリから構成されるアプリケーションを作成できる。
  • このような構成を行う場合、以下の2通りの方法がある。
    • 複数のアセンブリををプロジェクトでまとめる(バイナリ参照)。
    • 複数のプロジェクトをソリューションでまとめる(プロジェクト参照)。

ソリューション ファイル

  • *.slnの拡張子を持つ。
  • ソリューション のプロパティの例

分割の意味

  • ビルド単位の変更
  • 配布単位の変更(MSIでの配布)

参照設定の選択

プロジェクト参照

  • プロジェクトに対して参照設定を行う。
  • ビルド順も自動的に管理され、バージョンの不一致などが起こり難く使い易い。
  • 参照先のプロジェクトの変更・差し替えが容易なので、
    FIXしていないモジュールに対してはプロジェクト参照を使用する。

バイナリ参照

  • 参照先のバイナリの変更・差し替えが面倒なので、
    FIXしたモジュールに対してはバイナリ参照を使用する。

分割のメリット・デメリット

一般的に小規模開発の場合は分割を少なくして、大規模開発の場合に分割を検討する。

メリット

  • 管理が容易になる。
  • 開発作業の分担が可能になる。
  • 部品化等により差し替えが容易になる。
  • 修正箇所毎、ビルド範囲を絞る事ができる。

デメリット

  • 管理が煩雑になる。
  • 開発作業の分担ができなくなる。
  • 部品化等により差し替えができなくなる。
  • 修正箇所毎、ビルド範囲を絞る事ができなくなる。

Webアプリケーション、Webサイト

ASP.NETの構成(Webサイト・Webアプリ)

IISのアプリケーションとの関係

1Webアプリ・サイト ≒ 1IISアプリ

  • 1つのWebアプリケーション・Webサイトは、1つのIISのアプリケーションと対応する。
  • 複数のWebアプリケーション・Webサイトを1つのIISのアプリケーションに纏めることはできない。

複数プロジェクトから1Webアプリ・サイトを構成する方法

1つのWebアプリケーション・Webサイトを複数プロジェクトにまとめる方法

裏ワザ的な方法だと思いますが・・・、

Webアプリ・サイト間でSessionCookie、Cookie認証Ticketを共有する方法

上記のようにサイトを纏めなくても、SessionCookie?、Cookie認証Ticketが共有できれば。

アプリケーション ドメイン

異なるアプリケーション ドメインに画面遷移する方法

  • Server.Transferは不可能。
  • Response.Redirect, LinkなどのGetメソッドは可能。
  • クロスページ ポストバックなどのPOSTメソッドは可能。

異なるアプリケーション ドメインと情報共有する方法

以下の状態管理技術は、異なるアプリケーション ドメインと情報共有できない。

  • Applicationオブジェクト
  • 静的変数
  • Cacheオブジェクト
  • Sessionオブジェクト
  • その他
    • ViewStateは同一WebForm?画面内でのみ有用。
    • HttpContext?は、Server.Transfer画面遷移の間で有用

以下の状態管理技術は、異なるアプリケーション ドメインと情報共有できる。

  • QueryString?
  • Cookie
  • Hidden
  • ASP.NETのForms認証のCookie認証チケット
    ASP.NET2.0から認証チケットを複数のサイト間で共有する仕組みが用意され、複数のサイト間で利用できるようになった。

各状態管理技術については、コチラを参照。

配置方法

Webサイトを本番環境に配置する方法には、

  • ファイル・フォルダのコピー
  • プリコンパイル後のファイル・フォルダのコピー
  • セットアップ プログラムによるインストール

などがある。

ファイル・フォルダのコピー

  • アセンブリが生成されていない状態でアプリケーションを配布した際の初期要求時にJITコンパイルが実行される。
  • JITコンパイルによりアセンブリが生成され、その後にアプリケーションが実行される。
  • JITコンパイルにより生成されたアセンブリは、「%windir%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files」で確認できる。

プリコンパイル後のファイル・フォルダのコピー

  • 事前コンパイルによりアセンブリを生成しておくことで初期要求時のJITコンパイルを不要にできる。
  • この場合、Webサイトのファイル システム上にアセンブリが生成される。
  • プリコンパイルにより生成されたアセンブリは、生成されたWebサイトのフォルダの直下にある「bin」フォルダで確認できる。

セットアップ プログラムによるインストール

Webセットアップ プログラムによるWebサイトのインストールが可能。

ASP.NETの配置(Web Deploy・Web Deployパッケージ)


Tags: :.NET開発


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-07 (水) 16:12:04 (123d)