none
Projectの分割の方法 RRS feed

  • 質問

  • ASP.NETのプロジェクト分割に関して 教えていただけませんか。

    ※開発環境

    ASP.NET4.0

    VisualStudio2010

    ※現状

    page数100page程のweb systemを1つのprojectで開発しております。

    ※相談したい内容

    前任者が1 projectで使用しておりましたが、システム自体が大きくなりすぎ、

    開発者よりprojectを分割したいといわれております。

    理由としては、以下のようです。

    ・複数人で開発する場合に、開発がしにくい

     (1つのリソースを複数人で触る必要がある場合等、TFSを使用していても困ることがある)

    ・機能別のrelease、deployがしにくい

    私としては後者のほうは理解できるので、一度検討してみたいと考えておりますが、

    以下の点に引っかかっております。

    ・マスターページ、css、javascriptなどはサブシステムのprojectで持つ必要があるため

     version管理が手間になる

    ・部分的にsessionを使用している部分があるため、projectを分割した場合

     そこの部分を別途検討する必要がある

    ・リリース作業が複数回になる

    皆様もしprojectを分割して運用をしたことがあるかたいらっしゃれば、上記を

    どのように解決されたのか また 分割して 成功・後悔どちらだったかなど 教えていただけませんでしょうか。 

    2012年9月14日 16:13

回答

  • Web Forms(MVC でない方)の Web アプリケーションプロジェクト(サイトプロジェクトでない方)でしょうか?

    asp.net multiple projects をキーワードにググルとすぐに見つかるので、すでにご存知かもしれませんが、以下のような手段があるそうです。

    チーム開発用に複数のプロジェクトから ASP.NET アプリケーションを作成する方法
    http://support.microsoft.com/kb/307467/ja

    Separating an ASP.NET Web Application into multiple Web Projects (Assemblies)
    http://www.codeproject.com/Articles/8129/Separating-an-ASP-NET-Web-Application-into-multipl

    上記の方法は自分には経験がないので、既存の単一プロジェクトを分割するのに適当かどうかは分かりません。紹介したページがハズレでしたらすみません。

    次回、新しいプロジェクトを開発する場合は、Web サイトプロジェクトも検討されてはいかがですか。以下のページの「Web サイト プロジェクトのコンパイル モデルの利点は以下のとおりです。 」以下を読んでみてください。

    Visual Studio での Web アプリケーション プロジェクトと Web サイト プロジェクト
    http://msdn.microsoft.com/ja-jp/library/dd547590.aspx




    • 編集済み SurferOnWww 2012年9月14日 23:47 誤字訂正
    • 回答の候補に設定 佐伯玲 2012年9月19日 4:11
    • 回答としてマーク 佐伯玲 2012年9月21日 4:56
    2012年9月14日 23:42
  • プロジェクト分割しています。気になっている点について、僕がやっている方法はこんなかんじです。

    IISを使わず、前準備を行わなくてもデバック出来る環境を作りたくて、小細工をしています。

      • プロジェクト内の構成は、実際のWebサーバーと同じ構成にする。
      • CSSやJSなどシステム共通になるコンテンツに関しては、Visual Studioのリンク共有でプロジェクト内にJSなどを取り込む
      • マスターページや共通のユーザーコントロールなどは、リンク共有用のWebサイトプロジェクトを用意し、DLLは参照設定、マスターページ自体はリンク共有のWebプロジェクトからリンク参照でプロジェクト内に取り込む
      • 2と3はリンク参照のままだと404が発生するので、リンク参照を実ファイルに置き換えるビルド前アクションを定義し、プロジェクト参画者にはプロジェクトテンプレートを配布して使ってもらう

    別プロジェクトで作成したとしても、実際にデプロイするのが単一アプリケーションディレクトリになる場合、セッションは同じ物を利用するはずです。もし別のアプリケーションとしてWebサーバーに配置する場合は、カスタムのセッションプロバイダーを作成してしのぎます。

    4のビルド前アクションの実態は、プロジェクトファイルを解析してリンク参照になっているアイテムの参照元から、対象のファイルを自プロジェクトにコピーして回る単純なものです。


    • 編集済み かるあ 2012年9月15日 1:36
    • 回答の候補に設定 佐伯玲 2012年9月19日 4:11
    • 回答としてマーク 佐伯玲 2012年9月21日 4:56
    2012年9月15日 1:34

すべての返信

  • Web Forms(MVC でない方)の Web アプリケーションプロジェクト(サイトプロジェクトでない方)でしょうか?

    asp.net multiple projects をキーワードにググルとすぐに見つかるので、すでにご存知かもしれませんが、以下のような手段があるそうです。

    チーム開発用に複数のプロジェクトから ASP.NET アプリケーションを作成する方法
    http://support.microsoft.com/kb/307467/ja

    Separating an ASP.NET Web Application into multiple Web Projects (Assemblies)
    http://www.codeproject.com/Articles/8129/Separating-an-ASP-NET-Web-Application-into-multipl

    上記の方法は自分には経験がないので、既存の単一プロジェクトを分割するのに適当かどうかは分かりません。紹介したページがハズレでしたらすみません。

    次回、新しいプロジェクトを開発する場合は、Web サイトプロジェクトも検討されてはいかがですか。以下のページの「Web サイト プロジェクトのコンパイル モデルの利点は以下のとおりです。 」以下を読んでみてください。

    Visual Studio での Web アプリケーション プロジェクトと Web サイト プロジェクト
    http://msdn.microsoft.com/ja-jp/library/dd547590.aspx




    • 編集済み SurferOnWww 2012年9月14日 23:47 誤字訂正
    • 回答の候補に設定 佐伯玲 2012年9月19日 4:11
    • 回答としてマーク 佐伯玲 2012年9月21日 4:56
    2012年9月14日 23:42
  • プロジェクト分割しています。気になっている点について、僕がやっている方法はこんなかんじです。

    IISを使わず、前準備を行わなくてもデバック出来る環境を作りたくて、小細工をしています。

      • プロジェクト内の構成は、実際のWebサーバーと同じ構成にする。
      • CSSやJSなどシステム共通になるコンテンツに関しては、Visual Studioのリンク共有でプロジェクト内にJSなどを取り込む
      • マスターページや共通のユーザーコントロールなどは、リンク共有用のWebサイトプロジェクトを用意し、DLLは参照設定、マスターページ自体はリンク共有のWebプロジェクトからリンク参照でプロジェクト内に取り込む
      • 2と3はリンク参照のままだと404が発生するので、リンク参照を実ファイルに置き換えるビルド前アクションを定義し、プロジェクト参画者にはプロジェクトテンプレートを配布して使ってもらう

    別プロジェクトで作成したとしても、実際にデプロイするのが単一アプリケーションディレクトリになる場合、セッションは同じ物を利用するはずです。もし別のアプリケーションとしてWebサーバーに配置する場合は、カスタムのセッションプロバイダーを作成してしのぎます。

    4のビルド前アクションの実態は、プロジェクトファイルを解析してリンク参照になっているアイテムの参照元から、対象のファイルを自プロジェクトにコピーして回る単純なものです。


    • 編集済み かるあ 2012年9月15日 1:36
    • 回答の候補に設定 佐伯玲 2012年9月19日 4:11
    • 回答としてマーク 佐伯玲 2012年9月21日 4:56
    2012年9月15日 1:34
  • こんにちは、dgi dgi dgi さん
    フォーラムオペレータの佐伯 玲 です。

    SurferOnWww さんと かるあ さんの情報はご確認いただけたでしょうか?

    どちらの情報も、dgi dgi dgi さんの質問に対して参考になる回答と思われましたので
    勝手ながら私のほうで「回答としてマーク」をさせて頂きました。

    宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 佐伯 玲

    2012年9月21日 4:56
  • かるあさま SurferOnWwwさま

    ご返答が遅れ申し訳ございませんでした。

    急遽出張となり、返答ができない状態でありました。

    いただいた返答を参考にさせていただき

    やりざまを検討したく思います。

    2012年9月22日 16:35