Использование в CouchDB with.NET

может ли .NET (управляемый код) читать и писать в CouchDB?

Я хотел бы создать часть моего проекта, которая делает управление документами с помощью CouchDB

13 ответов


посмотри SharpCouch служебный класс.

Это простой класс-оболочка для HTTP API CouchDB.


его поздний ответ, но проверьте гамак. Он активен и скоро будет использоваться в нескольких проектах и получает регулярные обновления и исправления. Помимо основной настойчивости объекта, гамак дает вам:

  • True POCO. Вам даже не нужно свойство "id"; гамак отслеживает это внутренне.
  • надежная поддержка представлений, включая простой в использовании fluent API, который генерирует и выполняет представления, и поддержка создания пользовательских отображение/уменьшение видов.
  • поддержка вложений.
  • универсальный репозиторий класс, который помогает привести ваши запросы / представления (т. е. _design doc) вместе с кодом приложения c#. Репозитории отвечают за поддержание _design docs, и это помогает сохранить представления CouchDB от ощущения "сохраненных процессов".
  • полный комплект модульных тестов. Это не прототип программного обеспечения.

да.

посмотреть здесь для получения инструкций по установке CouchDB в windows.

вот ссылка на начало работы с C# wiki статья. В этой статье есть ссылка на оболочку .Net. Было бы довольно легко свернуть свой собственный.


учитывая, что вы обычно общаетесь с CouchDB через REST и JSON, я бы предположил, что было бы не слишком сложно использовать JSON.NET и обычные классы WebClient/HttpWebRequest для этого. Я сам не пробовал, заметьте...


немного поздно для игры, но есть проект с открытым исходным кодом для нового драйвера, написанного на C# через асинхронный HTTP-клиент и по умолчанию Newtonsoft JSON.Net для сериализации (переключаемый). MyCouch-простой асинхронный клиент CouchDb для .Сетка.

сообщение о начале работы существует здесь: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/


следите за Тахта проект с открытым исходным кодом, написанный на C#. Он все еще находится в тяжелом развитии, но я хотел бы отметить его как вариант для проектов на этапах планирования. Я обновлю этот пост, когда он приблизится к завершению. Вы можете просмотреть источник github. Прочитайте README, чтобы увидеть примеры и то, что возможно с текущей версией.

  • в отличие от SharpCouch, который использует строки сильно, Тахта использует дженерики для автоматическая сериализация и десриализация для отображения объекта из строки JSON и наоборот. Все это без твоих нужд. наследовать от интерфейса или базового класс.
  • он использует Json.Net снизу до обрабатывать сериализацию JSON и десериализация.
  • отображает коды ошибок RESTFul, которые CouchDB возвращает в исключения.
  • Запланированная Функция: Id генераторы для генерации идентификаторов для объекты сохраняются
  • планируется Особенность: Неявный автономный режим Оптимистичный Замок через документ Изменения, Ottoman будет использовать Тож Карте следить за вы и будете бросать исключение, когда возникает конфликт.
  • запланированная функция: она будет моно совместима.
  • запланированная функция: это вниз по дороге, но я планирую о наличии выражений LINQ для Map / уменьшить функции что вы Экспресс в CouchDB с помощью JavaScript.

Это справедливо новый проект, но очень активный. Конечно, я тоже немного предвзят. ;-)


посмотрите диванный - легкая оболочка для cdb api


Я использовал JSON.NET в сочетании с класс http-клиента MS REST starter kit для интеграции с CouchDB и это работает очень хорошо.


Вики CouchDB имеет список API для C# (с их функциями), если вы хотите получить последний статус:http://wiki.apache.org/couchdb/Getting_started_with_C%23


очень простой в использовании .NET API для CouchDB, включенный в WDK10, который вы можете захватить изhttp://code.google.com/p/skitsanoswdk/ он очень гибкий и позволяет вам иметь дело с вашими данными об объектах и чистом уровне json.


опции ( заказано по последнему обновлению):


Проверьте Relax http://www.sharplearningcurve.com/wiki/Symbiote-Relax.ashx. Relax является " .Net API абстракция CouchDB (отлично) RESTful API. Он включает в себя интерфейс на основе репозитория для взаимодействия с документами и контроллер сервера для задач административного типа."


еще один-CouchDBClient:https://github.com/ttutisani/CouchDBClient

отказ от ответственности: я автор.

Я попытался сделать CouchDBClient более удобным для работы с пользовательскими объектами-это то, что обычно приложения хранят в базе данных.

когда я начал писать эту структуру, все остальные, которые я нашел и попробовал, производили впечатление нестандартных сигнатур метода (названных с использованием различных соглашений и сложнее угадать что они и сделали), а не унифицированных интерфейсов (некоторых операций по строке "документы", в то время как другие вокруг JSON в документы), не очень гибкая (некоторые работали только со строками, другие только с объектами), или не очень реферат (должен был знать в CouchDB API-интерфейс REST, сначала их правильно использовать). Я предполагаю и надеюсь, что они созрели с тех пор, но, по крайней мере, этот разработан на мой вкус.

Я надеюсь, что CouchDBClient может создать ощущение удобной абстракции, не беспокоясь о базовый API слишком много, и просто фокусируется на вашем приложении, и как он хранит и извлекает объекты, которые ему нужны.