Подтвердить что ты не робот

.NET, JSON, Embedded, бесплатное решение для управления коммерческим использованием данных? Что делать?

Я пытаюсь разработать решение для управления данными для коммерческого продукта, отвечающего нескольким критериям. Критерии и мои рассуждения таковы:

  • Решение должно быть в С# или поддержке С#
  • Управление данными как JSON
  • Обслуживание внешних схем
  • Возможность кэшировать некоторые или все данные в памяти и сохраняться на диске
  • Не требуется дополнительная установка
  • Если решение включает стороннее программное обеспечение, лицензия должна поддерживать бесплатное коммерческое использование

Требование № 1. Мое приложение написано на С#, и я бы предпочел, чтобы любое решение не включало интеграцию с приложениями, библиотеками или кодом на другом языке.

Требование № 2. Существует несколько инструментов и библиотек, основанных на JSON, которые я бы хотел использовать, поэтому мне нужно решение, в котором данные либо легко конвертируются в/из JSON, либо легко конвертируются.

Требование № 3. Я хочу избежать обслуживания схемы, которое поставляется с использованием реляционных баз данных. Я предпочитаю управлять несогласованными сопоставлениями данных в объекте в коде и обновлять старые данные кода вместо управления отдельными обновлениями схемы.

Требование № 4. Мне нужно, чтобы некоторые или все данные загружались в память в любое время и все данные сохранялись на диске. Сохраняются ли данные в памяти или нет, они должны быть необязательными для каждого типа данных.

Требование № 5. При установке моего продукта я не хочу иметь никаких дополнительных установок или других внешних служб, кроме моего приложения. Лучше всего использовать самодостаточное решение.

Требование № 6. Предполагаемое использование предназначено для распределенного коммерческого продукта. Я бы предпочел избежать каких-либо дополнительных сборов или проблем с лицензированием, которые поставляются со многими сторонними решениями.

На сегодняшний день я попробовал несколько решений. Первоначально у меня не было столько ограничений, и я пошел с SQLite.NET, и его использование не было неприятным, но накладные расходы от обслуживания схемы и формата данных были больше, чем я хотел бы. Я исследовал множество решений NoSQL (например, RavenDB), другие сторонние решения (Karvonite) и простые реализации хранилища файлов JSON, но я не удовлетворены любым из них.

Есть ли специальный подход или решение, которые мне не хватает, что кто-то еще успешно использовал? Я надеюсь, что просто пропущу опции, которые мне нужны, и что некоторые эксперты NoSQL и .NET имеют достаточный опыт в этой области, чтобы указать мне в правильном направлении.

EDIT. Если какие-либо исходные комментаторы запутались, я обновил вопрос и заголовок, чтобы лучше придерживаться политик SO.

4b9b3361

Ответ 1

Fluent NHibernate Automapping поверх SQLite будет отвечать всем вашим требованиям, кроме edit # 2 - "NoSQL, предпочтительно все данные являются документом JSON"

Он автоматизирует реляционную схему БД из вашей объектной модели... не использует JSON. edit Возможно, вы сможете сохранить данные JSON как BLOB. (предостережение: я почти ничего не знаю о JSON)

Ответ 2

Вы взглянули на Karvonite Framework? Karvonite Framework предоставляет строго типизированную встроенную систему баз данных, которая включает в себя переносимую библиотечную реализацию для .NET/Windows Store/Silverlight/Windows Phone/Xbox. Я использовал это только для небольших реализаций баз данных, но до сих пор он отвечал всем моим потребностям.