0

KISSの原則に従って、私は突然次のことに気づきました。

  • .NETでは、エンティティモデルフレームワークを使用してデータベースをラップアラウンドできます。
  • このモデルは、WCFを介してWebサービスとして公開できます。
  • このWebサービスの定義は非常に標準化されています。
  • このようなRESTfulWebサービスを利用できるクライアントアプリケーションを作成できます。

私は車輪の再発明をしたくありませんし、誰かがすでにこれを行っていても驚かないので、私の質問は単純です:誰かがRESTfulを消費できる単純な(Webではなくデスクトップ)クライアントアプリケーションをすでに作成しましたか? Entity Frameworkに基づいており、ユーザーがこのサービスに直接データを読み書きできるようにするサービスですか?

そうでなければ、私はこれを自分で「発明」する必要があります。:-)


問題は、データベース層とRESTfulサービスがすでに終了していることです。RESTfulサービスは、その周りに構築されたWebアプリケーションから直接データベースレイヤーアセンブリを使用できるため、開発フェーズ中のみプロジェクトに残ります。Webアプリケーションがデプロイされると、RESTfulサービスはデプロイから除外されます。

しかし、データベースには、50を超えるテーブルを管理するための大量のデータがあります。ローカルデータベースに対して開発する場合、データベースに直接アクセスできるため、このツールは必要ありません。デプロイすると、Webアプリケーションがデータにアクセスする唯一の方法になるため、このツールを使用できませんでした。ただし、データベースがローカルドメイン外の別のシステムに保存されており、このデータベースを開発者が利用できないというテストフェーズもあります。管理者だけがこのデータベースに直接アクセスできるため、テストは少し複雑になります。

ただし、RESTfulサービスを使用すると、データに直接アクセスできます。したがって、一部のテストで問題が発生した場合は、この接続を介してデータを修復するか、ローカルシステムでのテスト用にデータのコピーを作成することができます。他にもたくさんの機能があり、ExcelまたはXMLSpyでテーブルサービスのURLを直接開いて、内容を確認することもできます。しかし、何かを書き戻したいときは、それを行うための特別なコードを書かなければなりません。データにアクセスして変更できる汎用ツールの方が簡単です。これはADO.NETデータサービスに関する一般的なセットアップであるため、これもかなり簡単なはずです。

したがって、私はそれを行うことができますが、他の誰かがすでに同様のことをしていることを望みました。しかし、そのようなツールはまだ作られていないようです...

4

2 に答える 2

5

あなたはADO.Net Data Servicesを参照しています。基本的にはエンティティ データベース モデルを作成し、ASMX を使用して REST フロントエンドをサービスに追加します。.Net を使用してサービスを利用する方法については、MSDN hereから入手できるハウツー記事があります。過去に.Netで通常のWebClientクラスを使用して同じことを行ったこともあります。

Entity Framework に基づいて独自のロールを作成する場合は、 WCF REST スターター キットを参照することもできます。スターター キットには、REST サービスとの通信に使用できる便利な新しい WebClient クラスも含まれています。

明確化

Web サービスを使用してほとんどのデータにアクセスしているため、これらのサービスと通信するビルド済みのアプリケーション クライアントはありません。Microsoft Smart Client Factoryがあります。これは、私が扱った中で最も近いものである可能性が最も高いです。

上記の 2 つのオプションについて言及したのは、参照された Web サービスとして直接動作するライブラリが .Net に既にあるためです。または、より冒険的な場合は、 WebClientライブラリを使用するか、代わりに WCF RESTの新しいHTTPClientライブラリを使用します。スターターキット。

Windows、Web、Silverlight、および WCF の両方を使用しました。後者は REST に重点を置いているため、最も簡単です。

現在、WCF をフロントエンド開発に使用する場合に、この方法を使用することに強く依存するPrismを調査しています。

予測

この質問に関しては、ADO Entity Framework を WCF サービスでラップすると汎用になるという一般的な仮定を立てています。ADO.Net Data Services は最も近いものですが、データベースの構造によって、データベースとのやり取りの方法が根本的に変わります。これらの 2 つのテクノロジは、個別に、または組み合わせて、すでに可能な限り一般的であるため、「一般的な」方法でより高いレベルに進むことは危険です。

于 2009-09-18T09:25:03.453 に答える
2

Data Services (+1) に加えて、RIA Services を検討してください。これは、Silverlight または WPF クライアント用のデータ サービスのドメイン固有バージョンのようなものです。柔軟性は劣りますが、Data Services よりも簡単です。

于 2009-09-18T13:13:23.477 に答える