2010-11-20 15 views
2

異なる機能を提供する複数のインストール可能なモジュールを持つWebアプリケーションを設計中です。ここでは一般的なことがたくさんあります.3つのC#クラスライブラリがあり、それぞれ異なるプロジェクトで使いやすいと思います。再利用のためにASP.NETプロジェクトを構成するにはどうすればいいですか

私が立ち往生しているビットは、実際のウェブサイトそのものです。理想的には、ASP.NET ページライブラリを複数のプロジェクトで再利用できるようにしたいと思いますが、これは不可能であると私は理解しています。

複数のプロジェクトでページを再利用できるようにウェブサイトプロジェクトをどのように構築していますか?今まで私が思いついた唯一の解決策は、SVNでリポジトリを作成し、メインプロジェクトのsvn:externalsプロパティで参照することです。これにより、すべてのウェブサイトに共通するページをそのディレクトリに追加できます。これを使用して他のプロジェクトにチェックアウトすることができます。しかし、私はこれがちょっとしたものではなく、新しいプロジェクトを作成するときに問題を引き起こすと感じています(正しい外部が整っていることを確認して、新しいソリューションを作成するにはいくつかのステップがあります)。

もっと良い解決策はありますか?複数のクライアントプロジェクトで共通のASPXファイルを共有する場合の最良の方法は何ですか?あなたはその変化をどのように管理していますか?

ありがとうございます!

EDIT:彼の応答のためのデビッドへ

感謝します。私はこれについてさらに考えてきたし、私はより具体的なアイデアや懸念のいくつかを挙げたいと思った。まず、プロジェクトについてもう少し詳しく説明します。主に、CMSです。しかし、私たちにはCRMが必要なクライアントもあります。また、どちらも望みませんし、カスタマイズされたシステム全体を徹底的にしたいクライアントもいます。上記の私のオリジナルのポストで

は、私は複数のプロジェクト間でのWebページを簡単に再共有を可能にするためにsvn:externalsを使用して、メインルート(例えば、cms)のサブディレクトリを持っていることについて話を聞きました。私はこれを行う唯一の方法だと考え始めています。クライアントのURLであった場合、私を気に一つのことでした:

http://www.shotgunanddribble.com/cms/content.aspx

しかし、私はクライアントのサイトの構成に応じて、それらを書き換えることで恐ろしいURLを軽減するためにApplication_BeginRequestを使用することができると思います。たとえば、顧客がCMSの場合、トップレベルドメインを/cms/に書き換えることができます。 CRMの場合と同じです。彼らは両方だった場合: - >/cms/

http://crm.shotgunanddribble.com/ -

http://www.shotgunanddribble.com/>/crm/

書き換えのこれらの種類を使用する任意の欠点はありますか?他の人に魔法のアイデアがない限り、svn:externalsは私の唯一の希望です。

答えて

1

実際のコードは他のアセンブリに入れて継承するのは簡単ですが、ASPXファイルはまったく別の話です。ほとんどの表示コンテンツを含むユーザーコントロールの共通ライブラリはどうですか。そして、各プロジェクトは、ほとんどがユーザーコントロールをフレームする独自のページを持っていますか?私はそれを試したことがないので、私はちょうど今描いていないいくつかの "つかみ"があるかもしれません。

+0

こんにちはDavidさん、この返答をありがとうございました。申し訳ありませんが返されるまでには時間がかかりました。はい、私は、一般的な視覚的なものの多くを世話するユーザコントロールの広範な使用を考えていました。何らかの理由でコントロールに*すべて*を入れるのは厄介だと思われますが、これは批判ではなく、単にそれらの感情の一つです:) 'svn:externals'を使う以外に、私はコントロールがこれを行う唯一の方法だと考えています。 –

+0

@ムージュース:私は同意します。 .NETの非常に早い段階で、私はユーザーコントロールをプロジェクトに夢中にしました。デザインに非常に柔軟性があるように見えましたが、メンテナンスは目立たずらいものでした。私はそれがデザインに合うように十分にうまくいくと確信していますが、プロジェクトの他の開発者が特定の規約を文書化して遵守する必要があります。 – David

+0

私は 'svn:externals'とユーザコントロールが解決できる唯一の方法だと思うので、私はこの答えを受け入れるつもりです。前者は一般的なページのサブディレクトリを処理し、可能な限り一般的な方法で新しい顧客固有のものを作り出すことを手助けします。 –

関連する問題