0

最後に、これについて答えを得てみてください。

データアクセスにHibernateを使用する単純なASP.NETアプリがあります。GUIは、「CalculateTotalSumOfOrders()」のようなCustomerオブジェクトのメソッドを呼び出すことができます。遅延読み込み(最適ではありませんが)は私にとってはうまくいきます。OrdersおよびOrde​​rLinesコレクションがドメインオブジェクトで参照されると、データベースから自動的にフェッチされます。

ここで、ASP.NETよりも見栄えが良いため、同じアプリをSilverlightに書き直していると仮定します。Silverlightクライアントがブラウザーで実行されているため、遅延読み込みやデータアクセスを実行できなくなりました。Silverlightクライアントにデータを取り込むために使用するサービスの種類についてあまり考えずに、これを解決するにはどうすればよいですか?

4

4 に答える 4

1

Silverlight と Windows クライアントをサポートするオプションの 1 つは、.NET 3.5 SP1の新しいADO.NET Data Servicesです。これらは、WCF インターフェイスを介してデータベース スキーマを公開する一連のサービスです。その後、WCF クライアントを使用して、Silverlight または Windows クライアントからデータを取得できます。

@McWafflestix が言ったように、これ以上遅延読み込みを行うことはできませんが、データの取得は今でははるかに「高価な」操作になっているため、これは良いことだと思います。

于 2008-11-22T04:33:34.357 に答える
1

これらすべてのプラットフォームをサポートするための最善の策は、Web サービスを使用することです。.NET 2.0 Web サービス (ASMX)、WCF、REST など、さまざまな種類から選択できます。Silverlight を使用している場合は、ここで説明されている WCF + LINQ to SQL の使用を検討することをお勧めします。この組み合わせは、ASP.NET (.NET 3.5 で実行している場合) および Windows デスクトップ アプリ (再び .NET 3.5) でも使用できます。

また、InterLinq と呼ばれるオープン ソース プロジェクトも興味深いかもしれません。基本的には、クライアント側で LINQ to SQL クエリを作成し、クエリを実行して結果を返すサーバーに WCF 経由で送信できます。それはここにあります。私は過去にそれを試してみましたが、非常にうまく機能します。

于 2008-11-21T13:07:16.393 に答える
0

データベースと対話して遅延読み込みを行うサーバー側アプリを取得し、多くの作業を行わずにクライアント側アプリに変換しようとしていますか?申し訳ありませんが、うまくいきません。必要なのは、アプリケーションの主要な再設計です。

ごめん...

于 2008-11-20T22:08:02.433 に答える
0

*

「私はまだそこにいるので大丈夫です。最小のオーバーヘッドで ASP.NET、Silverlight、および Windows クライアントの両方をサポートするには、どのように再設計しますか?」

*

私はこの質問の有効期限を過ぎても答えていることを知っています。MVP デザイン パターンを使用することをお勧めします。これは、モデルで動作する複数の「ビュー」を構築するのに役立ちます。Windows クライアントを確実にサポートするには、サービス レイヤー (WCF を参照) を使用してビジネス レイヤーを公開する必要があります。

于 2011-01-12T12:57:52.380 に答える