Future Proof DALs

Мы находимся в начале действительно длительного проекта разработки с несколькими подпроектами. Обычно на разработку каждого подпроекта уходит несколько месяцев. Сам код будет разделен на несколько проектов C #, но физическая база данных будет использоваться всеми проектами.

Проблема заключается в ремонтопригодности. Если мы добавим столбец в таблицу или разделим таблицу на две меньшие таблицы, мы Придется вернуться и изменить наш C # DAL для поддержки этих изменений. Это неприемлемо, так как мы будем постоянно адаптировать БД к потребностям компании в целом, а не только к потребностям отдельной программы. Постоянное изменение старого кода было бы бесконечной задачей.

Наши специалисты по БД высказали иную точку зрения. Мы выполняем все наши CRUD через хранимые процедуры и используем Linq в нескольких таблицах для выполнения наших операторов SELECT. Затем, если мы реструктурируем БД через несколько лет, мы сможем просто предоставить те же хранимые процессы и представления и не будем изменять наш старый код.

У нас возникает вопрос, какой ORM следует использовать для чего-то вроде этого? EF кажется немного излишним (возможно, это не так). Хотел бы с ним что-нибудь вроде SubSonic? • Шаблоны T4 позволяют упростить (и, возможно, быстрее) DAL?

Или, может быть, у кого-то есть идея, как сделать весь этот процесс менее болезненным? Мы не хотели бы добавлять еще один уровень в наше приложение, но мы также не хотим возвращаться и изменять код каждый раз, когда мы вносим изменения в базу данных.

Редактировать 1: Поэтому, когда я сказал: «Я действительно не хочу добавлять больше слоев». В основном это потому, что у нас уже есть несколько слоев. У нас есть представления Silverlight, модели представлений, объекты BLL (через CSLA), затем есть DAL и, наконец, таблицы SQL для них.

8
задан Timothy Baldridge 18 January 2011 в 23:14
поделиться