Pergunta

Eu estava (e ainda estou) procurando um banco de dados incorporado para ser usado em um aplicativo .net (c#).A advertência:O Aplicativo (ou pelo menos o banco de dados) é armazenado em uma unidade de rede, mas usado apenas por 1 usuário por vez.

Agora, minha primeira ideia foi Edição SQL Server Compact.Isso está muito bem integrado, mas não pode funcionar em rede.

Pássaro de Fogo parece ter o mesmo problema, mas a integração .net parece não ser realmente de primeira classe e está em grande parte não documentada.

SQL de peixe preto parece interessante, mas não há teste da versão .net.O preço também está OK.

Quaisquer outras sugestões de algo que funcione bem com .net e funciona em uma rede sem a necessidade de instalar um software de servidor?

Foi útil?

Solução

SQLite veio à minha mente ao ler sua pergunta e tenho certeza de que é possível acessá-la a partir de uma unidade de rede se você mantém a restrição de 1 usuário por vez.

SQLite no .NET – Comece a trabalhar em 3 minutos

Outras dicas

Eu recomendaria o Advantage Database Server (www.advantagedatabase.com).É um banco de dados incorporado maduro com excelente suporte e acessível em muitas linguagens de desenvolvimento além do .NET.A versão "local" é gratuita, é executada em seu aplicativo na forma de uma DLL, não requer instalação no servidor/compartilhamento de rede e oferece suporte a todos os principais recursos do banco de dados.Você pode armazenar todos os arquivos do banco de dados e/ou do aplicativo na rede;não importa onde estão os dados.

Isenção de responsabilidade:Sou engenheiro do grupo de P&D da ADS.Eu prometo, é demais :)

Parece que o ADO/Access é perfeito para suas necessidades.Está integrado na pilha MS, bem temperado e multiusuário.

Você pode criar programaticamente um banco de dados assim:

Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")

Você pode então usar métodos ADO.NET padrão para interagir com o banco de dados.

Você pode usar o firebird incorporado, é apenas uma dll que você precisará enviar com seu aplicativo.

Sobre coisas não documentadas, isso não é verdade, o driver firebird .NET implementa as interfaces ADO, então se você conhece ADO você pode trabalhar com Firebird, basicamente em vez de SQLConnection você usará FBConnection e assim por diante, mas meu conselho é escrever um camada de acesso a dados e use apenas interfaces em seu código, algo como isto:

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
    FbConnection cn = new FbConnection("...");
    return cn;
}

Este exemplo é muito simples, mas você não precisará de muito mais que isso.

Usamos o firebird para todas as nossas aplicações sem problemas, você deveria pelo menos experimentá-lo.

Confira VistaDB.Eles têm um produto muito bom, a versão do servidor (3.4) está em Beta e está muito próxima do lançamento.

Um pouco atrasado para a postagem aqui..E VistaDB já foi mencionado, mas gostaria de ressaltar que o VistaDB é 100% gerenciado (já que seu post foi marcado como .net).Ele pode ser executado a partir de uma unidade de rede compartilhada e tem 1 MB de xcopy implantado.

Como você mencionou o SQL CE, também oferecemos suporte à sintaxe e aos tipos de dados T-SQL (na verdade, mais do que o SQL CE) e temos visualizações atualizáveis, TSQL Procs e outras coisas que faltam no SQL CE.

Por que não usar Edição SQL Server 2005 Express?

Realmente depende do que você entende por "incorporado" - mas você pode redistribuir o SQLServer2005E com seus aplicativos e o usuário nunca precisará saber que ele está lá.

Incorporando o SQL Server Express em aplicativos

Incorporando o SQL Server Express em aplicativos personalizados

Estou confuso.

Você está solicitando um banco de dados incorporado - onde o próprio banco de dados é armazenado no servidor.isso se traduz no armazenamento do arquivo de dados em um compartilhamento de rede.Você então diz que o SQL Compact Edition não funcionará...exceto que se olharmos para este documento:

Documento do Word:
Escolhendo entre SQL Server 2005 Compact Edition e SQL Server 2005 Express Edition

Na página 8, você tem uma grande marca verde ao lado de "Armazenamento de arquivos de dados em um compartilhamento de rede".

Então me parece que seu primeiro pensamento foi o correto.

Há também Valentina.Me deparei com este produto quando estava trabalhando em algum projeto Real Basic.A versão RB é muito boa.

Você já considerou um OODB?Das várias alternativas de código aberto que recomendo db4o (desculpe pela autopromoção :)) que pode ser executado tanto no modo incorporado quanto no modo cliente/servidor.

Melhor

Adriano

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