Применение:
Я работаю над одним приложением среднего размера, которое будет использоваться в качестве продукта, нам нужно определиться с уровнем DAL. Пользовательский интерфейс приложения находится в Silverlight, а уровень DAL будет позади уровня обслуживания. Мы также продвигаемся с моделью предметной области, поэтому наши таблицы БД и классы предметной области не имеют одинаковой структуры. Таким образом, такие шаблоны, как Data Mapper и Repository, обязательно войдут в картину.
Мне нужно спроектировать слой DAL с учетом нижеупомянутых факторов в приоритетном порядке
- Скорость разработки с показателями выше среднего
- Техническое обслуживание
- Будущая поддержка и стабильность технологии
- Производительность
Ограничение:
1) Поскольку нам нужно строго придерживаться Microsoft, мы не можем использовать NHibernate или любой другой ORM, кроме EF 4.0
2) Мы можем использовать любой инструмент для генерации кода (должен быть с открытым исходным кодом или очень дешевый), но он должен генерировать код только в .Net, чтобы не было проблем с лицензированием для каждой копии.
Вопросы
- Я прочитал так много статей об EF 4.0, с самого начала кажется, что ему все еще не хватает функций из NHibernate, но он значительно лучше, чем EF 1.0
Итак, вы, люди, чувствуете, что мы должны продолжить работу с EF 4.0, или мы должны придерживаться ADO .Net и использовать любой инструмент для генерирования кода, такой как code smith или любой другой, который вам удобнее
Также мне нужно ответить на вопросы, например, сколько времени потребуется для переноса приложения с EF 4.0 на ADO .Net, если в будущем мы остановимся на EF 4.0 для некоторых функций или у нас возникнут серьезные проблемы с производительностью.
В обратном случае, если мы пойдем дальше и выберем ADO .Net, сколько времени потребуется для перехода к EF 4.0
Наконец, когда я просматривал статью, я обнаружил, что подход, основанный только на коде (с классами POCO), кажется, лучше всего подходит для наших требований, поскольку переключение с одной технологии на другую действительно просто.
Пожалуйста, поделитесь своими мыслями о том же и, пожалуйста, проведите по вышеуказанным вопросам