0

私は、会社の Web アプリケーション (C# および ASP.NET で記述) にいくつかの機能を記述することを任されています。

Web アプリケーションの一部により、顧客は Web サイト経由でサポート チケットを発行できます。これらは、WCF Web サービスを介してサーバーにポストされます。

同社が望んでいるのは、顧客がサポート チケットを発行すると、タスク トレイにある Windows フォーム アプリケーションによって技術者に通知され、新しいチケットがあることを示すバルーン ヒントが表示されるメカニズムです。

Web アプリケーション (および WCF サービス) をホストするサーバーは、技術者のマシンとは異なるドメインにあるため、このメカニズムには、リッスンしているすべての Windows フォーム クライアントにメッセージを送信するある種の REST サービスが必要になると思います。

REST サービスに関する多くの記事を調べ、WCF を聞きましたが、あまり進展はありませんでした。

私の質問は次のとおりです。

  • 許容できる最新のアプローチと見なされるものは何ですか?
  • Webアプリケーション(WCF)で採用されている技術を利用できますか?
  • どこから始めればよいですか?
4

2 に答える 2

1

チケットを投稿するための WCF サービスが既に実装されている場合、サービスを拡張してチケットを一覧表示する方法を追加するのに多大な労力がかかるとは思えません。

パフォーマンスのために、日付を受け入れるオーバーロードを使用して、その日付以降に発生したすべてのチケットを取得できます。- これは、最初のリクエストですべてのチケットを取得できることを意味し、最後のリクエストの日付が含まれる以降のリクエストでは、新しいチケットのみが取得されます。

Windows フォーム アプリケーションから新しいメソッドを使用してサービスを利用し、定期的にポーリングします。次に、サービスが新しいチケットを返したら、バルーン チップをポップアップします。

于 2013-02-26T11:16:57.820 に答える
1

DuplexService を作成できます。つまり、技術者が通知を受け取る CallbackContract を指定します。ただし、デュプレックスは少し標準ではありません。

    [ServiceContract(Namespace=ServiceContractNamespaces.ServiceContractNamespace,
                 CallbackContract = typeof(ISupportTicketCallback))]
public interface ISupportTicketService
{
           [OperationContract]
           int CreateSupportTicket (SupportTicket supportTicket);
}
public interface ISupportTicketCallback
{
        [OperationContract]
        void SupportTicketCreated(int supportTicketId);
}

または、WCF サービスは、MSMQ を介して技術者のアプリケーションにメッセージを発行できます。

いずれの場合も、通知はイベント ドリブンになります。ポーリングは必要ありません。非常にクリーンなソリューション:)

于 2013-02-28T06:29:27.770 に答える