Использование в 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.
Это справедливо новый проект, но очень активный. Конечно, я тоже немного предвзят. ;-)
Я использовал 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.
опции ( заказано по последнему обновлению):
- Skitsanos Webware Development Kit http://code.google.com/p/skitsanoswdk/source/browse/trunk/WDK10/WDK.API.CouchDb/ последнее обновление sep. 2012
- Relax-net/гамак http://code.google.com/p/relax-net/ последнее обновление ноября.
- CouchDB.Net http://couchdbnet.codeplex.com/ последние обновление декабря. 2010
- Тахта https://github.com/sinesignal/ottoman последнее обновление декабря. 2010
- диванный https://github.com/foretagsplatsen/Divan последнее обновление июль 2010
- SharpCouch http://code.google.com/p/couchbrowse/source/browse/trunk/SharpCouch/SharpCouch.cs последнее обновление августа. 2008
Проверьте 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 слишком много, и просто фокусируется на вашем приложении, и как он хранит и извлекает объекты, которые ему нужны.