Opções de armazenamento de dados
Pergunta
Eu criei um aplicativo de servidor dedicado que é enviado com o aplicativo. A partir de agora, ele está armazenando dados em uma mistura de arquivos binários e XML, mas descobri que isso fica muito confuso e lento agora que a quantidade de dados necessários para armazenar cresce continuamente.
Então, quais são minhas opções para armazenar dados em um formato que é mais fácil de pesquisa/editável. Ser capaz de fazer consultas SQL nos dados seriam preferíveis, mas não quero forçar os usuários a instalar um sistema de banco de dados.
Solução
Eu acredito que você está procurando SQL Server Compact.
Você pode implementar facilmente todos os arquivos de suporte em sua instalação, é gratuito, tem um ótimo suporte no .NET e possui uma pequena pegada. É uma ótima alternativa para o que você está usando agora. Obviamente, existem algumas desvantagens, como a falta de suporte de procedimentos armazenados e um pouco de trabalho extra enquanto tentam usar o LINQ, mas esses não devem ser grandes problemas para você.
Sua outra alternativa é algo como Sqlite. O SQLite é rápido e portátil (o Google Chrome o usa) e utilizável no .NET, mas tem um mau apoio à manipulação de data/hora e uma série de outros inconvenientes semelhantes.