2010-02-05 5 views
3

IIS에서 호스트되는 WCF 웹 서비스를 사용하는 다른 플랫폼 용 데이터를 제공하는 백엔드를 C#으로 구현하는 응용 프로그램을 설계하는 초기 단계에 있습니다. 플랫폼 중 하나는 아이폰이다.C# 및 iPhone 용 MongoDB 응용 프로그램

개인 프로젝트이므로 MongoDB를 배우기 위해 사용하고 싶습니다. 이미 MongoDB 및 C# 용 커뮤니티 개발 드라이버가 있다는 것을 알고 있으므로 MongoDB를 사용하여 서버 측에서 지속성을 처리 할 수있었습니다.

MongoDB에서 제공하는 복제 모델을 모르는 사이에 iPhone이 연결되어 있지 않거나 연결 상태가 좋지 않은 경우 데이터를 로컬로 유지하는 간단한 동기화 모델을 생각하고있었습니다.

다음은 질문입니다. MongoDB를 MongoDB C 드라이버를 사용하여 iPhone에서 사용할 수 있습니까? 아무도 이미 그것을 시도 했습니까?

답변

4

일반적인 iPhone 아키텍처는 응용 프로그램에서 웹 서비스를 호출하도록하는 것입니다. 모바일 클라이언트에서 MongoDB 드라이버를 직접 사용할 수 있다고하더라도 필자는 권장하지 않습니다. 몇 가지 이유가 있습니다.

기본적으로 클라이언트 응용 프로그램이 데이터 저장소 (MongoDB)와 직접 대화하는 클라이언트 서버 아키텍처에 대해 이야기하고 있습니다. 보안은 어떻습니까? 인증 된 클라이언트가 데이터 저장소에 직접 대화 할 때 모든 종류의 불량 사항이 발생할 수 있습니다.

클라이언트 응용 프로그램을 특정 데이터 액세스 기술과 직접 밀접하게 연결하는 것은 데이터 액세스 솔루션을 변경해야 할 경우 클라이언트를 다시 작성해야한다는 점에서 위험합니다.

클라이언트 응용 프로그램에 데이터 액세스 계층을 연결하는 것이 더 일반적이며, 인터넷에 관련된 경우이 계층은 종종 엘보를 서버 코드 작성에 사용하려는 경우가 아니면 어떤 종류의 웹 서비스를 포함합니다.

iPhone 클라이언트에 데이터 저장소를 노출하는 RESTful API 작성에 대해 생각해보십시오. 아이폰 죄송합니다

난 당신이 아이폰에 로컬 MongoDB를 실행하고자하는 것을 이해하지 못했다에서 MongoDB를 호스팅에 대한 자세한 - 나는 Open Rasta (C# REST 라이브러리)

편집에 대한 좋은 것들을 들었습니다. MongoDB는 서버입니다. 나는 그것을 in-process 데이터 저장소로 임베딩 할 수 있다고 생각하지 않는다. 그리고 iPhone에서 하나 이상의 프로세스를 실행할 수 없습니다.

C#에 익숙하다면 MonoTouch을 확인해보십시오. 그것은 당신이 아이폰에서 C# 응용 프로그램을 실행할 수 있습니다. iPhone에서 지원하는 SqlLite을 사용하기에 좋은 라이브러리가 있습니다.

+1

아마 내 게시물에 분명하지 않았습니다. 웹 서비스 (WCF)를 통해 서버 데이터를 노출하고 있습니다. iPhone 응용 프로그램은 서버 데이터베이스에 액세스 할 수 없으며 게시 된 웹 서버에만 액세스 할 수 있습니다. 내가하고 싶은 일은 연결이 오프라인 인 경우 iPhone에 로컬 데이터베이스를 가지고 데이터를 보관하는 것입니다. iPhone에서 MongoDB를 사용하고 싶습니다. MongoDB에 C 드라이버가 있지만, iPhone에서 사용할 수 있는지 여부는 모르겠습니다. –

관련 문제