2012-03-07 43 views
1

私たちは大きなプロジェクトに取り組んでいます。プロジェクトには複数の外部サイトと複数の内部サイトがSubversionにすべて格納されています。このようなプロジェクトを設定するには、どのような方法が推奨されますか?

外部サイトでは、私たちが提供するさまざまなことを要求したり、公共料金を請求したりすることができます。私たちは、ほとんどの機能が他の機能とはまったく異なるため、これらの機能の多くを切り離すことに決めました。これはWebUIとデータベースレイヤーがそれぞれ2つのプロジェクトに分割されたVisual Studioソリューションの1つです。たとえば、ユーティリティ課金にはUtility.WebUIプロジェクトとUtility.Domainプロジェクトがあります。すべてのDB /ビジネスロジックはドメインプロジェクトに保持されます。

内部サイトは、バックオフィスシステム(IBM i)とWebデータベースの間のギャップを埋めます。また、古いRPGプログラムの一部を置き換える/強化します。理論的には、外部サイトは同じデータベースにアクセスするため、まったく同じデータベースロジックを使用する必要があります。これらのプロジェクトを別のソリューションから参照する最良の方法は何ですか?私はdllへの参照を追加するだけですか、またはそのアプリケーションを外部アプリケーションソリューションから内部アプリケーションソリューションにインポートする必要がありますか?

これは、このプロジェクトで2人の開発者が作業しているということになります。自分自身、私はバックエンドコーディングのほとんどを行います。他の開発者は、ほとんどのGUIコーディングを行います。したがって、このプロジェクトが複数のワークステーションで動作することを確認する必要があります。

これは意味がありますか?何かご意見は?

答えて

1

svn:externalsプロパティを使用して、共有プロジェクトをプロジェクトに参照します。

1)共有プロジェクトのソースコードを含むディレクトリ(csprojとcsファイルの場所)を参照するか、2)共有プロジェクトのビルド出力(アセンブリ/ dll)を含むディレクトリを参照するかを選択する必要があります。

私は通常、共有プロジェクトのソースコードを簡単に変更できるため(Visual Studioの2番目のインスタンスで共有プロジェクトのソリューションを開くことなく変更できます)、方法1)を優先します。共有プロジェクトを頻繁に変更するつもりがない場合は、方法2)が良いかもしれません。コンパイル時間が短縮され、共有プロジェクトのソースコードが誤って変更されるのを防ぎます。どちらの方法も味が良いです。

共有プロジェクトの両方のバージョンをお勧めします。すなわち、バージョン番号を有するタグを作成し、トランクではなくタグを参照する。共有プロジェクトの新しいバージョンが出たら、あなたの他のプロジェクトのsvn:externalsプロパティを新しいバージョン番号で更新し、 "svn update"を実行して共有プロジェクトの新しいバージョンをダウンロードし、再コンパイルすることができます。これは、自動的にタグ付けを行う共有プロジェクト用のビルドサーバーを持っている場合に特に効果的です。

0

一般的なプロジェクトを含む一種の「コモンズ」ソリューションを使用して、SVNトランクのプロジェクトフォルダを指し示すSVN外部を使用して、これらのプロジェクトをメインソリューションで参照できると思います。

Commons SVNリポジトリは、常に安定したコモンプロジェクトを持つために、提案されたリポジトリ構造(トランク、ブランチ、タグ)に従わなければなりません。

このシナリオでは、NPandayやNDependなどの依存関係管理ツールを使用することを検討できます。このツールでは、プロジェクトごとに依存するアセンブリのバージョンを宣言する必要があります。これらのツールを使用すると、参照するバイナリアセンブリのローカルリポジトリ(ArtifactoryやNexusなど)を持つことができます。また、ソースコードを直接参照するためにSVN外観を使用することもできます。

関連する問題