Я новичок в CSLA и Entity Framework. Я создаю новое приложение CSLA / Silverlight, которое заменит 12-летнюю систему Win32 C ++. Старая система использует пользовательскую библиотеку бизнес-объектов DCOM и использует ODBC для доступа к SQL Server. Новая система не сразу заменит старую систему - они должны сосуществовать с одной и той же базой данных на долгие годы.
Сначала я подумал, что EF - это путь, так как он самый новый и лучший. После создания небольшой модели EF и только 2 редактируемых корневых объектов CSLA (у меня в конечном итоге появятся сотни объектов, так как в моей БД более 800 таблиц) я серьезно сомневаюсь в использовании EF.
В существующей системе мне много раз нужно было выполнить тонкую настройку производительности запросов, которую я могу выполнить из-за 100% контроля над сгенерированным SQL. Но в EF кажется, что за кулисами происходит так много всего, что я теряю этот контроль. Статья вроде http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html не помогает моему впечатлению от EF.
Людям, похоже, нравится EF из-за LINQ to EF, но, поскольку мои критерии передаются между клиентом и сервером в качестве объекта критериев, кажется, что я мог бы так же легко строить запросы без LINQ. В WCF RIA я понимаю, что есть проекция запросов (или что-то подобное), где я могу выполнить клиентский LINQ, который перемещается на сервер перед переводом в реальный SQL, поэтому в этом случае я вижу преимущество EF, но не CSLA .
Если я буду использовать сырой ADO.NET, пожалею ли я о своем решении через 5 лет?
Кто-нибудь еще сделал этот выбор в последнее время и каким путем вы пошли?