0

大規模な vb6/sql データベース アプリ (数百のテーブル、クラス、およびフォーム) を、Web、phonegap、および winform クライアントの両方で c# に移行したいと考えています。一元化したいデータベースとビジネス ロジックがたくさんあります。Web UI プラットフォームとして ASP.Net MVC を好むので、次のことを検討しています。

含める MVC Web プロジェクト:

  • Web UI の MVC Web コントローラーとビュー
  • JSON オブジェクトを phonegap アプリとリッチ html ページに提供する MVC コントローラー
  • MVC コントローラーに BLL サービスを提供するサービス クラス
  • サービス/BLL クラスで使用する永続性と POCO オブジェクトを提供する DAL クラス
  • Service クラスを Winform アプリに公開する Web サービス。彼らはPOCOオブジェクトを受け入れて返します

Winform アプリは、すべてのデータを Web サービスに大きく依存します。私は何百ものデータベース テーブルを持っているので、Web サービスはこのデータを POCO オブジェクト (いくつかはネストされ、いくつかは POCO オブジェクトのリスト) としてクライアントに返します。1) WSDL が巨大になり、アプリが成長し、公開されるクラスの数が増えると、手に負えなくなる (VS がチョークするのでしょうか?)、2) Web サービスを介して POCO オブジェクトを返すと、うまく機能しない可能性があるのではないかと心配しています。 . 私は自分の winform UI から SQL サーバーを直接呼び出すことに慣れているので、すべてがシリアル化されて IIS を通過するため、Web サービスを通過する可能性がボトルネックになる可能性があるようです。

ところで、サービス レイヤーが MVC UI レイヤーから論理的に分離されていることはわかっていますが、デプロイを簡単にするためにそれらを組み合わせました。問題が解決した場合は WCF も検討しますが、私が知る限り、不要な複雑さが追加されます。

これらは正当な懸念ですか?他にアドバイスはありますか?

4

1 に答える 1

0

WinForms が使用するサービスをどのように構築していますか? セットアップ方法によっては、WCF を再検討する必要がある場合があります。BLL を WCF サービスに入れることができます。次に、MVC アプリケーション、WinForms、および PhoneGap アプリケーションはすべて WCF サービスを使用できます。つまり、すべてのビジネス ロジックに単一の場所が存在します。巨大な POCO を扱っておらず、非同期呼び出しを行っている限り、サービスを使用する WinForms アプリで大きなパフォーマンスの問題が発生することはありません。

WCF は、接続するクライアントに基づいてさまざまなエンドポイントを簡単に公開できるため、ここでは非常に便利です。たとえば、MVC および WinForms アプリはバイナリ インターフェイスを使用でき、PhoneGap アプリケーションは REST エンドポイントを利用できます。

サービスが大きくなりすぎることを懸念している場合は、サービスを複数のサービスに分割して、それぞれがデータベースの特定の部分で動作するか、BLL に既に存在する可能性があるその他の論理的な分離を検討することもできます。

また、なぜこの時点で WinForms アプリが必要なのかも不思議です。Webサイトでできないことはありますか?WPF または Silverlight を調べましたか? どちらもサービスで非常に自然に機能します。

于 2012-05-03T02:10:58.563 に答える