Я хотел бы знать, принимаю ли я правильное решение.Я разрабатываю приложение, которое позволяет пользователю смешивать записи базы данных из локальной базы данных (возможно, SQL CE или SQLite) и из удаленной общей базы данных (наиболее вероятно, MySQL).В идеале он должен быть гибким и совместимым с несколькими типами серверов баз данных (статически в соответствии с исходной конфигурацией, не смешивая несколько типов динамически), но это не ограничитель показа.
Код - C #, .NET 4.
Естественно, я думал о NHibernate, так как он имеет LINQ в версии 3.0, плюс для удобочитаемости кода и эффективности, а подход, основанный на модели, является более естественным, чем Entity Framework.У этого также есть Shards для смешанной части базы данных, с которой должно быть намного легче обращаться.Другой вариант - EF 4, который я бы предпочел в противном случае, поскольку он полностью поддерживается в контексте .NET и Visual Studio и имеет многообещающее будущее.
Достаточно ли зрелы Shards?Он уже давно подключен к 3 бета-версии и выглядит как мертвый проект. Развернули ли люди профессиональные приложения на основе этого расширения?Есть ли у него будущее?Или есть другой вариант?
Работает ли NHibernate 3 на Mono?Я так думаю, но фактическое подтверждение было бы здорово.Это было бы еще одним преимуществом по сравнению с EF, если веб-сервер должен быть разработан в качестве альтернативного интерфейса.
Заранее благодарен за любую информацию или обратную связь!
Обновление 1
Очевидно, что .NET 4 является проблемой, и для использования NHibernate .NET 3.5 мудрее.Кроме того, существуют явные проблемы с SQLite и SQL CE или другими частями инфраструктуры, такими как WPF.
Позволяет ли NHibernate использовать шардинги для различных типов баз данных (например, MySQL и SQLite)?
ИтакЯ начинаю верить, что EF 4 безопаснее для клиентской стороны и NHibernate, когда речь идет о возможном интерфейсе ASP.NET.