Вопрос

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

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

Это было полезно?

Решение

Взгляните на SharpCouch класс полезности.

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

Другие советы

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

  • Настоящее ПОКО.Вам даже не нужно свойство «id»;Гамак отслеживает это внутренне.
  • Надежная поддержка представлений, включая простой в использовании гибкий API, который генерирует и выполняет представления, а также поддержку создания пользовательских представлений карты/сокращения.
  • Поддержка вложений.
  • Общий Repository<> класс, который помогает донести ваши запросы/представления (т.е._Design doc) вместе с кодом вашего приложения C#.Репозитории отвечают за поддержание документации _design, и это помогает предотвратить ощущение, что представления CouchDB сохраненные процедуры.
  • Полный набор модульных тестов.Это не прототип программного обеспечения.

Да.

Видеть здесь инструкции по установке CouchDB на Windows.

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

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

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

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

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

  • В отличие от SharpCouch, который использует строки, Ottoman использует дженерики для автоматической сериализации и продушки для картирования объекта из строки JSON и наоборот.Все это без ваших объектов, которые должны унаследовать интерфейс или базовый класс.
  • Он использует json.net внизу, чтобы справиться с сериализацией и десериализацией JSON.
  • Карты кодов ошибок RESTFUL, которые CouchDB возвращается в исключения.
  • Планируемая функция:Идентификационные генераторы для генерации идентификаторов для объектов сохраняются
  • Планируемая функция:Скрытый Офлайн -оптимистичная блокировка через пересмотр документов Ottoman будет использоватьКарта идентичности Чтобы отслеживать для вас и бросить исключение, когда произойдет конфликт.
  • Планируемая функция:Он будет совместим с Mono.
  • Планируемая функция:Это в будущем, но я планирую иметь выражения LINQ дляФункции карты/сокращения который вы выражаете на CouchDB, используя JavaScript.

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

также взгляните на диван - легкая оболочка для API cdb

Я использовал json.net в сочетании с классом клиента HTTP Kit от MS Rest Starter Kit для интеграции в CouchDB, и он работает очень хорошо.

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

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

Варианты (заказано по последнему обновлению):

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top