Используйте CouchDB с .NET
Вопрос
Может ли .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.
Варианты (заказано по последнему обновлению):
- Skitsanos Комплект для разработки веб-программ http://code.google.com/p/skitsanoswdk/source/browse/trunk/WDK10/WDK.API.CouchDb/ последнее обновление, сентябрь.2012 год
- Релакс-сетка/Гамак http://code.google.com/p/relax-net/ последнее обновление ноябрь.2011 год
- CouchDB.Net http://couchdbnet.codeplex.com/ последнее обновление декабрь.2010 год
- Османская https://github.com/sinesignal/ottoman последнее обновление декабрь.2010 год
- Диван https://github.com/foretagsplatsen/Диван последнее обновление июль 2010 г.
- SharpCouch http://code.google.com/p/couchbrowse/source/browse/trunk/SharpCouch/SharpCouch.cs последнее обновление август.2008 год
Посмотрите Релакс 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, а просто сосредоточится на вашем приложении и на том, как оно хранит и извлекает необходимые ему объекты.