Pergunta

Can .NET (código gerenciado) ler e escrever para CouchDB?

Gostaria de construir uma parte do meu projeto que faz a gestão de documentos usando CouchDB

Foi útil?

Solução

Dê uma olhada na SharpCouch classe de utilitário.

É uma classe wrapper simples para o CouchDB HTTP API.

Outras dicas

É uma resposta final, mas fazer check-out Hammock . É ativo e entrar em uso em produção em vários projetos em breve e está recebendo atualizações regulares e correções. Além persistência objeto básico, Hammock dá-lhe:

  • A verdadeira POCO. Você não precisa mesmo de uma propriedade 'id'; faixas Hammock que internamente.
  • Suporte robusto para pontos de vista, incluindo um fácil de usar API fluente que tanto gera e vistas executado, e suporte para a criação de mapas personalizados / reduzir a vista.
  • Suporte Anexos.
  • Uma classe Repository<> genérico que ajuda a trazer suas consultas / views (ou seja _Design doc), juntamente com seu código C # aplicação. Repositórios são responsáveis ??por manter docs _design, e isso ajuda a manter visualizações do CouchDB do sentimento como procedimentos armazenados .
  • A unidade de teste completo. Este não é um software protótipo.

Sim.

aqui para obter instruções sobre como instalar o CouchDB no Windows.

Aqui está um link para o começando com o artigo C # wiki. Há um link para um .Net invólucro nesse artigo. Seria muito fácil para rolar o seu próprio bem.

Uma vez que você se comunica normalmente com CouchDB sobre REST e JSON, eu imagino que não seria muito difícil de usar JSON.NET e as normais WebClient / HttpWebRequest classes para fazê-lo. Eu não tentei isso sozinho, lembre-se ...

Um pouco tarde para o jogo, mas há um projeto de código aberto para um novo driver escrito em C # sobre o cliente HTTP assíncrono e, por padrão JSON.Net de Newtonsoft para serialização (comutável). MyCouch -. Simples cliente assíncrono CouchDB para .Net

pós Uma Introdução existe aqui: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/

Fique de olho no projeto Otomano um open-source escrito em C #. Ele ainda está em desenvolvimento pesado, mas eu queria indicá-lo como uma opção para projetos em fase de planejamento. Vou atualizar este post como ele fica mais perto da conclusão. Você pode ver a fonte em github . Leia o README para ver exemplos e que é possível com a versão atual.

  • Ao contrário SharpCouch, que utiliza cordas pesadamente, Otomano usa os genéricos para serialização automática e desrialization para mapear um objecto a partir de uma sequência JSON e vice-versa. Tudo isso sem seus objetos que necessitam herdar off uma interface ou base classe.
  • Ele usa Json.Net por baixo para lidar com a serialização JSON e desserialização.
  • Mapas os códigos de erro RESTFul que CouchDB retornos em Exceções.
  • Planejada Feature: Id geradores para gerar para o Id os objetos que estão sendo persistiu
  • Característica planejada: Implícita offline bloqueio otimista via Documento Revisões, Otomano irá utilizar um Identidade Mapa para manter o controle de você e irá lançar uma exceção quando um conflito ocorre.
  • Característica
  • Planned:. Será Mono compatíveis
  • Característica
  • Planned: Esta é a estrada, mas eu faço plano em ter expressões LINQ para Mapa / Reduzir funções que você expressar a CouchDB usando JavaScript.

Ele é um relativamente novo projeto, mas muito ativa. Claro, eu sou um pouco tendencioso também. ; -)

também dar uma olhada em divã - um invólucro leve para a api cdb

Eu tenho usado JSON.NET em conjunto com classe do cliente http do starter kit MS REST para integrar a CouchDB e ele funciona muito bem.

wiki do CouchDB tem uma lista de API para C # (com as suas características) se quiser que o status mais recente: http://wiki.apache.org/couchdb/Getting_started_with_C%23

Muito fácil de usar API .NET para CouchDB incluída em WDK10 que você pode pegar de http: // code.google.com/p/skitsanoswdk/ é muito flexível e permite-lhe lidar com os seus dados sobre objetos e nível JSON puro.

As opções ( ordenados por mais recente update ):

Verifique para fora Relaxe http://www.sharplearningcurve.com/wiki/Symbiote- Relax.ashx. Relax é um

"Net API abstração do (excelente) API RESTful. Ele inclui uma interface baseada em repositório para interação com documentos e um controlador de servidor para as tarefas de tipo administrativo. Do CouchDB"

Uma mais - CouchDBClient: https://github.com/ttutisani/CouchDBClient

Disclaimer:. Eu sou o autor

Eu tentei fazer CouchDBClient mais amigável para o trabalho com objetos personalizados. - Isso é o que geralmente aplicativos armazenar no banco de dados

Quando eu comecei a escrever este quadro, todos os outros que eu encontrei e tentaram estavam fazendo uma impressão de assinaturas de método não-padronizados (nomeado usando várias convenções e mais difícil de adivinhar o que eles fizeram), e não as interfaces unificadas (algumas operações ao redor corda docs, enquanto outros ao redor docs JSON), não muito flexível (alguns trabalhavam apenas com cordas, outros apenas com objetos), ou não muito abstrato (tinha que saber CouchDB API REST primeiro a usá-los corretamente). Estou assumindo e esperando que eles têm amadurecido desde então, mas pelo menos este é projetado para o meu gosto.

Eu estou esperando que CouchDBClient pode criar um sentimento de abstração confortável sem se preocupar com subjacente API demais, e apenas se concentrar em sua aplicação, e como ele armazena e recupera objetos que ele precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top