2009-07-17 17 views
0

私はより大きなプロジェクトを計画しているので、いくつかの技術オプションを検討しています。大きなプロジェクトにはどのような技術がありますか?

このプロジェクトでは、3層アーキテクチャの設計が使用されます。プレゼンテーション層はASP.NETになりますが、他の技術でも可能です。これは今のところ問題ではありません。

私の質問は以下のとおりです。私は、Windowsサービスまたは単に通常のアプリケーションを使用する必要がありますaplicationサーバーの場合

  1. プレゼンテーションレイヤーとドメインレイヤーの間の通信にはどうすればよいですか?私は.NETリモーティングを使いたいと思いましたが、リモーティングはWCFの一部です。実際に私はWCFに精通していないので、私は尋ねています。だから.NET RemotingまたはWCF?

私は

答えて

5

アプリケーションサーバーの場合は、今のところWindowsサービスが最善の策だと思います。今すぐ展開する必要がない場合は、.NET 4.0のアドオンである「Dublin」(WAS(Windowsプロセスアクティベーションサーバ)を管理ツールなどで強化する予定です)をご検討ください。これにより、WCFサービスを素敵で非常に強力な方法で実際にホストして管理することができます。

#2 - 私は間違いなくWCFをお勧めします.WCFは、分散システムでの通信のプラットフォームであり、設定性と柔軟性を備えているため、あなたが気にする作業はかなり処理できます。非常に高速のオンマシン通信(NetNamedPipeBinding)からWindows Azure ServiceBus経由の通信処理(「クラウド」の中継サービス)から、強力です!あなたはWCFで間違っていることはできません - それはあなたのすべてのコミュニケーションニーズを処理することができます、私は言うでしょう。 .NET RemotingやASMX、WSE Webサービスなどの廃止予定の技術を学ぶために時間を無駄にしないでください(この議論では$ 0.02です)。

マルク・

2
  1. サービスを移動するための方法であるあらゆるヒントを感謝します。ユーザーが実行するためにログインする必要はありません。彼らは遠隔管理のために設備が整っています。彼らは健康のために監視されるためにもより適しています。

  2. リモートはWCF経由で使用できます。 WCFは、さまざまな通信プラットフォームを集約し、そのための使いやすい構成を提供します。あなたがRemotingに精通していて、それがあなたのすべてのニーズをカバーしていると確信しているなら、WCFを学ぶ方が良い方法でしょう。

    2に答える
1

WCFは、単一のAPIを使用して、異なる通信メカニズムを組み合わせた新しいライブラリです。どのメカニズムが選択されているか(またはWCFでのバインディング)は、要件が何であるかによって異なります。

パフォーマンスに関しては、NetTcpBindingを試すことができます。また、HTTP経由でアクセスできるようにするには、BasicHttpBindingを試すこともできます。 WCF from MSDNの詳細

0

実際、プレゼンテーションレイヤの選択は重要です。

クライアント側のインストールを行っている場合、ドメイン層とクライアント間の通信にWCFを使用することは意味があります。しかし、pure -ASP.NET UIを作成している場合、ローカルにホストされる可能性のあるWebアプリケーションコールWebサービスを持つことは、パフォーマンスに重大な影響を及ぼす(メッセージングとシリアライズ/デシリアライゼーションのオーバーヘッド)。

最近私が両方をサポートする必要があったプロジェクトについて考えると、ASP.NET Webインターフェイスと同じアプリケーションドメイン内でサービスをホストしました。ユーザーはWeb UIを通じてほとんどのインタラクションを行い、クライアント側のより豊かな相互作用が必要になったときに、Webサービスを介して中間層に話しかけた小さなクライアントアプリが起動しました。

+0

実際には、UIとドメイン間のサービス層のパフォーマンスコストはごくわずかです。シリアライゼーションを含まないシナリオ(ドメイン・レイヤーへのアセンブリ参照)に対するシナリオのパフォーマンス・テストでは、複雑なアーキテクチャーであっても、オーバーヘッドが少なくなります。少なくとも、それは私の経験です。 – grenade

0

ご質問のこれらの種類を求めている場合は、その多くは、あなたが知らないあなたのプロジェクト定義に依然として存在しています。本当に問題はありません。たとえあなたがそうしたとしても、あなたがとにかく終了する前に、そのほとんどがおそらく変わるからです。

さらに、あなたが今選択した技術は、あなたが何らかの問題に遭遇することは誰にも起こりませんでしたので、あなたが準備していない重要な欠点があります。

今は技術を選択しないでください。あなたがよく理解し、それを構築する、小さいものと成果のあるものから始めましょう。小さくて管理しやすい部分で開発します。あなたの「顧客」に何を持っているかを頻繁に示し、フィードバックを得る。

実際のトリックは、新しい情報が利用可能になったときに方向を簡単に変更できるように設計しています。ここでは、拡張性のあるアーキテクチャを作成する方法を理解し、すべてのことを引き続き検証するためのテストを作成することをお勧めします。プロジェクトが成長するにつれて、必要となる技術ははるかに明確になります。

1

WCFは、通信に使用する唯一の技術です。 Azureの一部である.NETサービスバスでさえ、WCFを使用することに注意してください。他の「選択肢」については、

何らかの理由で、あなたは.NETを使用して立ち往生している、いない限り、他のインテリジェントな選択は、ありません2.0または.NET 1.1。

関連する問題