3

私は、IIS でホストされている WCF Web サービスを使用して他のプラットフォームにデータを提供する C# で実装されたバックエンドを持つアプリケーションの設計の初期段階にいます。プラットフォームの 1 つに iPhone があります。

個人的なプロジェクトなので、MongoDB の学習に使用したいと考えています。コミュニティで開発された MongoDB と C# 用のドライバーがあることは既に知っているので、MongoDB を使用してサーバー側で永続化を処理できました。

MongoDB が提供するレプリケーション モデルについても知らなかったので、iPhone が接続されていない場合や接続状態が悪い場合にデータをローカルに保持するための単純な同期モデルについて考えていました。

ここで質問があります。MongoDB C ドライバーを使用して、iPhone で MongoDB を使用できますか? 誰かがすでにそれを試しましたか?

4

1 に答える 1

4

典型的な iPhone アーキテクチャは、アプリケーションが Web サービスを呼び出すことです。モバイル クライアントから直接 MongoDB ドライバーを使用できる場合でも、お勧めしません。いくつかの理由があります。

基本的に、クライアント アプリケーションがデータストア (MongoDB) と直接やり取りするクライアント サーバー アーキテクチャを実行することについて話しているのです。セキュリティについてはどうでしょうか。認証されたクライアントがデータストアと直接通信すると、あらゆる種類の悪いことが発生する可能性があります。

クライアント アプリケーションを特定のデータ アクセス テクノロジに直接緊密に結合することは、何らかの理由でデータ アクセス ソリューションを変更する必要がある場合にクライアントを書き直す必要があるという点で危険です。

最近では、クライアント アプリケーションがデータ アクセス層を通過することがより一般的になりました。インターネットが関係する場合、サーバー コードを深く書く必要がない限り、この層には何らかの Web サービスが含まれることがよくあります。

データストアを iPhone クライアントに公開する RESTful API を作成することを考えてみてください。Open Rasta (C# REST ライブラリ)について良いことを聞いた

編集 - iPhone での MongoDB のホスティングの詳細

MongoDB を iPhone でローカルに実行したいということを理解できませんでした。MongoDB はサーバーです。インプロセス データストアとして組み込み可能であるとは思えません。また、iPhone で複数のプロセスを実行することはできません。

C# に精通している場合は、MonoTouchを確認してください。iPhone で C# アプリケーションを実行できます。iPhone でサポートされている SqlLiteを使用するための優れたライブラリがあります。

于 2010-02-06T17:27:01.590 に答える