0

MonoTouch + Mono for Android を使用してクライアント サーバー ソリューションを実装しようとしています。

サーバー側では、ADO.NET エンティティ モデルを使用しています。私の知る限り、これは上記のフレームワークの一部ではありませんが、私の質問は次のとおりです。

クライアント側でエンティティを部分的に再利用するためだけに、クライアントで (一般的な) ADO.NET/EF4 ベースのデータ レイヤー プロジェクトを参照できますか? あるいは、このアーキテクチャの問題に対する別の解決策はありますか?

編集:言うのを忘れていましたが、クライアント側では、POCO テンプレートから自動的に生成される POCO エンティティについて考えています。

4

1 に答える 1

1

そのようなことを行う良い方法は、ADO.NET エンティティ フレームワークのコード ファースト アプローチを採用することです。サーバー上にエンティティを作成し、それらの DataContext 実装を構築したら、次の手順に従ってエンティティを Mono for Android プロジェクトに追加します (Visual Studio を使用している場合)。

  1. Mono for android プロジェクトを右クリックし、[既存のアイテムを追加] を選択します。
  2. 追加するファイルを選択します
  3. [開く] ボタンの横にある小さな矢印をクリックし、[リンク] を選択します。

これで、サーバー プロジェクトまたはクライアントでファイルを編集するときに、同期が維持されます。エンティティから使用できる属性と API のセットは限られていることに注意してください。物事を正しく行うには、少し手間がかかる場合があります。

ヒント:環境固有の動作とデータを追加するには、部分クラスを使用します。エンティティ クラスごとに 2 つ目の .cs ファイルを追加し、クライアント上で不要なメンバーをそのファイルに追加します。サーバー上ではなく、アプリ内でのみ必要なクライアント機能についても同じことが言えます。

上記のすべては、MonoDevelop を使用して Mac で作業する場合にも機能します。このアプリケーションは、.csproj ファイルの場所とは別の場所にあるアイテムのリンクもサポートしています。

于 2012-09-07T15:45:09.387 に答える