2010-02-05 4 views
3

Je suis dans la phase initiale de la conception d'une application qui aura un backend implémenté en C# qui fournira des données pour d'autres plateformes utilisant les services web WCF hébergés sur IIS. Une des plateformes sera l'iPhone.MongoDB pour l'application C# et iPhone

Comme c'est un projet personnel, je veux l'utiliser pour apprendre MongoDB. Je sais déjà qu'il existe des pilotes développés par la communauté pour MongoDB et C#, donc je pourrais gérer la persistance du côté serveur en utilisant MongoDB. Sans même connaître les modèles de réplication proposés par MongoDB, je pensais à un modèle de synchronisation simple pour garder les données locales si l'iPhone n'est pas connecté ou a une mauvaise connexion.

Voici la question: Peut MongoDB être utilisé dans l'iPhone en utilisant les pilotes MongoDB C? Est-ce que quelqu'un a déjà essayé cela?

Répondre

4

L'architecture typique de l'iPhone consiste à faire en sorte que votre application appelle un service Web. Même s'il est possible d'utiliser un pilote MongoDB directement à partir d'un client mobile, je ne le recommanderais pas. Pour quelques raisons.

Vous parlez essentiellement de l'architecture du serveur client où votre application cliente parle directement au magasin de données (MongoDB). Qu'en est-il de la sécurité? Lorsqu'un client authentifié parle directement au magasin de données, toutes sortes de mauvaises choses peuvent se produire.

Le couplage étroit de votre application client directement à une technologie d'accès aux données donnée est dangereux en ce sens qu'il vous demanderait de réécrire votre client si, pour une raison quelconque, vous deviez modifier votre solution d'accès aux données. Il est plus courant de nos jours que vos applications client passent par un niveau d'accès aux données et lorsque l'Internet est impliqué, ce niveau implique souvent un service Web à moins que vous ne souhaitiez obtenir un code serveur d'écriture profonde. Pensez à écrire une API RESTful exposant votre magasin de données à votre client iPhone. Je l'ai entendu de bonnes choses au sujet Open Rasta (C# bibliothèque REST) ​​

Edition - En savoir plus sur l'hébergement MongoDB sur l'iPhone

Désolé, je ne comprenais pas que vous souhaitez exécuter MongoDB localement sur iPhone. MongoDB est un serveur. Je ne crois pas qu'il soit intégrable en tant que banque de données in-process. Et il n'est pas possible d'exécuter plus d'un processus sur l'iPhone.

Si vous êtes familier avec C#, vous voudrez peut-être vérifier MonoTouch. Il vous permet d'exécuter des applications C# sur iPhone. Il y a une belle bibliothèque pour utiliser SqlLite qui est pris en charge par l'iPhone.

+1

Peut-être que je n'étais pas clair sur mon message. J'expose les données du serveur via les services Web (WCF). L'application iPhone n'aura pas accès à la base de données du serveur, uniquement aux interfaces publiées du serveur Web. Ce que je veux faire est d'avoir une base de données locale dans l'iPhone pour stocker ces données si la connexion est hors ligne. Je veux utiliser MongoDB sur l'iPhone ... Je sais que MongoDB a des drivers C, mais je ne sais pas si ça peut être utilisé (ou si quelqu'un en a d'ailleurs utilisé) dans l'iPhone –