2009-04-13 16 views
2

同じasmx webserviceを共有する複数のプロジェクトがあります。誰かがこれを行う方法に関するアドバイス/ベストプラクティスを持っていますか?複数のプロジェクトでasmx webservicesを再利用

問題はウェブサービスが絶えず変化しているため、ウェブレファレンスをプロダクションに追加できないことです。また、開発中はローカルマシンを指しているので、危険です。 localhostに私のWeb参照を追加するだけでいいですか?

複数のプロジェクトに散在しているasmxファイルとは対照的に、専用のwebservicesプロジェクトも必要ですか?

おかげ

答えて

2

ウェブサービスの主なポイントの1つは、再利用可能であるため、できる限りどこでも使用できます。

問題は正確にはっきりしていませんが、ネットワークにアクセスできるアプリケーションからWebサービスを使用できるようにする必要があります。

-Edit-

一般的には、専用のWebサービスプロジェクトを持っていることがベストプラクティスと考えられています。複数のWebサービスプロジェクトを作成することができます。これらをどのように分割するかは、あなたとビジネス/技術的な要件に依存します。

これはあなたの主な問題に対処する必要があります。ローカルのWebサービスプロジェクトとそれを使用するローカルプロジェクトがあります。これらのプロジェクトのいずれか、または両方を必要に応じて本番環境に展開します。

+0

個別のWebサービスプロジェクトをお勧めするものを教えてください。 – Ryu

+0

これは、ビジネス層とプレゼンテーション層からデータを分離するN-Tierアーキテクチャの標準設定です。あなたがGoogleのN層とWebサービスを使用している場合は、多くの例があります。 – AaronS

0

ない私はあなたの質問を理解してください。実稼働環境にWebサービスを公開する場合は、Webサービスを必要とする各アプリケーションにWeb参照を追加するだけです。 Webサービスを使用する前提は、開発環境でのみ使用している場合は、標準のC#dllとしてGACに配布または残して使用することを検討したいと思うかもしれません。

0

あなたが必要とするのは、優れたプロセス所有権と、複数のチームまたは部門にわたるこれらのWebサービスの使用に関するドキュメントを作成することだけです。 SOAの世界では、サービスレジストリを作成する必要があります。サービスレジストリは、利用可能なサービスを簡単に表示し、必要に応じて再利用できるようにする必要があります。

0

開発を行うときは、Web参照をローカルマシンにポイントし、Webサービスをローカルで実行してください。私はそれに何の問題も本当に見ません。

+0

私はそれをプロダクションに移してもまだ動作しますか? – Ryu

+0

運用環境では、正しいURLを設定する必要があります。設定ファイルからURLを読み、実行時に設定するだけです。 – ibz

0

私がurの質問を正しく理解していれば、開発WebサービスとプロダクションWebseriveが必要です。本番インスタンスは、最後にデバッグ/チェックされたビルドです。デバッグインスタンスは、現在作業しているビルドです。

これを達成するには、開発者のサブドメインを用意することをお勧めします。 http://www.myapp.com/Service.asmxおよびhttp://dev.myapp.com/Service.asmx。両方のサブドメインはIISの異なるサイトになります。あなたのコードでは、Web参照を(パラメータを変更する場合)更新するために使用するドメインとするため、Web参照をdevサブドメインにバインドします。次に、プロダクション(リリース)コードのウェブサイトオブジェクトURLをwwwサイトに変更するために '#if not debug'を使用します。

この方法で、デバッグサービスを構築することができます。その時点で、ソフトウェアが更新され(パラメータが変更されている場合)、新しいdllをリリースサイトにアップロードすることができます。

デプロイされたアセンブリをシンプルに保つために、私は別個のプロジェクトにWebサービスを保存します。

0

クラスライブラリプロジェクトを作成し、そこにあなたのWebサービスを定義する必要があります。そのプロジェクトをWebアプリケーションに照会し、WebサービスasmxファイルでWebサービスクラスを指します。

関連する問題