Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 CodeFirst vs DatabaseFirst  [new]
Calabonga
Member

Откуда: Академгородок
Сообщений: 246
Коллеги, подкскажите пожалуйста плюсы и минусы каждого из подходов. Может ссылки какие есть или схемы?
Очень не хотелось бы для бизнеса использовать подход Database First, а если не найду обоснования, то придется! Спасите!
16 май 19, 13:06    [21886152]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Calabonga,
Ну пройдись по обсуждениям и дай сюда свое мнение.
Обсуждали уже.
16 май 19, 13:52    [21886221]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Calabonga
для бизнеса использовать подход Database First
он обычно там где админ есть у заказчика. Причем тут бизнес.
16 май 19, 13:54    [21886227]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2573
Calabonga,

а почему вы так боитесь использовать Database First?
16 май 19, 13:58    [21886235]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
fkthat
Member

Откуда:
Сообщений: 1627
Дмитрий Мух
Calabonga,

а почему вы так боитесь использовать Database First?


Мы не боимся, но, с кодеферст, по опыту, как-то так поприятнее работать. Всяко, модель написанная руками "чище" выходит, чем что-то там нагенеренное.
16 май 19, 14:16    [21886268]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20867
Calabonga,

Просто переведи названия подходов на русский, они ж говорят сами за себя Картинка с другого сайта.

Смотря что ты хочешь и что тебе удобнее - БД пилить или классы
16 май 19, 17:02    [21886475]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Calabonga
Member

Откуда: Академгородок
Сообщений: 246
Shocker.Pro
Calabonga,

Просто переведи названия подходов на русский, они ж говорят сами за себя Картинка с другого сайта.

Смотря что ты хочешь и что тебе удобнее - БД пилить или классы

Ну, вообще-то, я не перевод просил, а "плюсы и минусы" или может быть проблемы, с которыми может кто столкнулся.
Но спасибо за совет, а не за обоснования :)
17 май 19, 08:11    [21886800]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2573
Calabonga
Shocker.Pro
Calabonga,

Просто переведи названия подходов на русский, они ж говорят сами за себя Картинка с другого сайта.

Смотря что ты хочешь и что тебе удобнее - БД пилить или классы

Ну, вообще-то, я не перевод просил, а "плюсы и минусы" или может быть проблемы, с которыми может кто столкнулся.
Но спасибо за совет, а не за обоснования :)

За 15+ лет уже по большому счёту по фигу...

В одном проекте лучше так, в другом сяк, в третьем интеграция со сторонними сервисами, в четвёртом файловое хранилище, в пятом MongoDB, Couchbase, GraphQL...

Вам там виднее, что у вас за проект, какие цели и что использовать для эффективного их достижения.
17 май 19, 08:36    [21886811]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Calabonga
Ну, вообще-то, я не перевод просил
тебе прям на блюдечке аналитику и вопрос по архитектуре.
ТС работает бооьше отвечающих)
17 май 19, 10:03    [21886916]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
Calabonga
Коллеги, подкскажите пожалуйста плюсы и минусы каждого из подходов. Может ссылки какие есть или схемы?
Очень не хотелось бы для бизнеса использовать подход Database First, а если не найду обоснования, то придется! Спасите!


Ну DatabaseFirst
+ База лучше контролируется.
+ Всё предсказуемо.
+\- Можно базу в дезайнере сделать.
- Чтобы что-то изменить, возможно надо кого-то просить.



CF
+ POCO
+ Можно использовать CF FROM DB (это значит, что ты можешь в принципе перейти на CF всегда)
+ Контроль у программиста (на надо лезть в базу)
- Контроль у программиста (в случае команды надо что-то думать )
- Миграции автоматом отрабатывают в простых случаях, чуть что - надо лезть в файлы руками
- У меня миграции слетали несколько раз.
- Если нельзя сгенерить DB заново, то иногда миграция требует шаманства, например - указание имен промежуточных таблиц.
- Не все можно задать классами - надо юзать FLUENT API, а это не та штука, от которой получаешь удовольствие.

От CF скорее впечатление, что это нормально для небольших проектов или на этапе прототипа (быстрый старт).

Сам бы выбрал скорее - DBFirst + CF FROM DB
17 май 19, 11:43    [21887074]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
fkthat
Member

Откуда:
Сообщений: 1627
Агнец за бортом
- Миграции автоматом отрабатывают в простых случаях, чуть что - надо лезть в файлы руками
- У меня миграции слетали несколько раз.


С ними надо просто руку набить. У нас тоже была поначалу эта миграционная попоболь, но потом уже вникли, отработали процесс, и все пошло норм. Там главное понять как они работают, а потом уже становится ясно как в том или ином случае действовать.
17 май 19, 12:09    [21887101]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1318
fkthat
Агнец за бортом
- Миграции автоматом отрабатывают в простых случаях, чуть что - надо лезть в файлы руками
- У меня миграции слетали несколько раз.


С ними надо просто руку набить. У нас тоже была поначалу эта миграционная попоболь, но потом уже вникли, отработали процесс, и все пошло норм. Там главное понять как они работают, а потом уже становится ясно как в том или ином случае действовать.


Ну, степень "набить руку" у всех разная, с этим сложно спорить, но уровне пользователя CF - какие-то вещи решаются только полным сбросом DB, или надо лезть в какие-то кишки.

Например, сущность, имеющая связи "один ко многим" с трёмя другими сущностями, причём эти другие сущности - одного типа. Грубо:

Менеджер:
.Заказы
.Заказы на особом контроле
.Нежелательные заказы

CF щемится дать имена связующим таблицам, просто прибавляя в конце 1/2/3 - и когда откатываешь/накатываешь миграции - иногда наступает конфликт имен.

Пишу по памяти, могу быть неточен.

Надо указывать промежуточным таблицам имена вручную.

И таких нюансов там немало.
17 май 19, 12:19    [21887116]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Агнец за бортом
И таких нюансов там немало.
+1
17 май 19, 12:37    [21887138]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
fkthat
Member

Откуда:
Сообщений: 1627
Агнец за бортом,

Ну у нас с генерацией самих миграций заморок таких не было, но, были в основном из-за разных веток и совместной работы. Потом наконец-то перешли на воркфлов с фича-бренчами и все эти проблемы ушли - там просто нужно не забывать, что когда с другой веткой мержишься, то надо потом саму базу откатить на развилку веток, а потом снова её накатить, т.к. из чужой ветки могут прийти еще и более ранние чужие миграции. Т.е. принцип просто в том, что твоя копия БД должна всегда быть строго синхронизирована с той цепочкой миграций, что есть в твоей рабочей ветке - иначе при генерации очередной будет джоппа.
17 май 19, 13:03    [21887174]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Calabonga
Member

Откуда: Академгородок
Сообщений: 246
Дмитрий Мух
Calabonga
пропущено...

Ну, вообще-то, я не перевод просил, а "плюсы и минусы" или может быть проблемы, с которыми может кто столкнулся.
Но спасибо за совет, а не за обоснования :)

За 15+ лет уже по большому счёту по фигу...

В одном проекте лучше так, в другом сяк, в третьем интеграция со сторонними сервисами, в четвёртом файловое хранилище, в пятом MongoDB, Couchbase, GraphQL...

Вам там виднее, что у вас за проект, какие цели и что использовать для эффективного их достижения.

У меня опыт уже... с 89-го года... сколько это.. Не важно и всё равно я точно знаю, что CodeFirst лучше, ибо логика в классах, а значит - unit-тесты, версионность и прочая хрень... Мне не нужно себя убеждать, мне нужно директора по архитектуре убедить... :)
8 июл 19, 15:29    [21922790]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2573
Calabonga
CodeFirst лучше, ибо логика в классах, а значит - unit-тесты, версионность и прочая хрень...

Всё это по большому счёт к Code First и Entity Framework не имеет никакого отношения

Там, где MongoDB и GraphQL, там тоже логика в классах, unit-тесты, версионность, а ни Code First, ни Database First не применимы :)

Ещё раз: подходите с точки зрения конретного проекта. Почему именно в нём эффективнее использовать Code First?
8 июл 19, 15:55    [21922841]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2573
Calabonga,

а что вы вообще под подходом Database First подразумеваете?
а то прочитав "логика в классах, а значит - unit-тесты, версионность и прочая хрень", начинаешь думать, что что-то своё
типа логика в хранимых процедурах и прочая фигня..
8 июл 19, 16:11    [21922856]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2573
и вообще Database First - это разве не тупо исторически первый подход в рамках Entity Framework?
а Code First с автоматизацией делает его атавизмом по сути?
8 июл 19, 16:14    [21922860]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
fkthat
Member

Откуда:
Сообщений: 1627
Дмитрий Мух
Code First с автоматизацией делает его атавизмом по сути?

Да :)
9 июл 19, 12:06    [21923324]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
hVostt
Member

Откуда:
Сообщений: 16190
Дмитрий Мух
а что вы вообще под подходом Database First подразумеваете?


всё просто. привет из двухтысячных! клепаем БД в менеджере, потом генерируем код на основе созданной БД. никакой девопс не пройдёт!

:)


Дмитрий Мух
Там, где MongoDB и GraphQL, там тоже логика в классах, unit-тесты, версионность, а ни Code First, ни Database First не применимы :)


чёй-то неприменима сразу. MongoDB, GraphQL это как раз Code First only, только без миграций.
11 июл 19, 01:19    [21924477]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
hVostt
Member

Откуда:
Сообщений: 16190
Агнец за бортом
+\- Можно базу в дезайнере сделать.
- Чтобы что-то изменить, возможно надо кого-то просить.


ну hand job... надож чем-то людей занять.
11 июл 19, 01:23    [21924479]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2573
hVostt
чёй-то неприменима сразу. MongoDB, GraphQL это как раз Code First only, только без миграций.

ну, ну... это именно это, но только без этого и того )))
11 июл 19, 09:48    [21924567]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
love_bach
Member

Откуда:
Сообщений: 560
Дмитрий Мух
hVostt
чёй-то неприменима сразу. MongoDB, GraphQL это как раз Code First only, только без миграций.

ну, ну... это именно это, но только без этого и того )))


еще можно добавить (можете, конечно, засрать, типа так "фу-фу") что реляционная таблица для нескольких задач разных разработчиков: один делает миграцию по своим полям (при этом энтити вообще нет, чисто проекции), другой по своим
11 июл 19, 21:45    [21925270]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
love_bach
Member

Откуда:
Сообщений: 560
Дмитрий Мух
Calabonga
CodeFirst лучше, ибо логика в классах, а значит - unit-тесты, версионность и прочая хрень...

Всё это по большому счёт к Code First и Entity Framework не имеет никакого отношения

+146
11 июл 19, 21:47    [21925273]     Ответить | Цитировать Сообщить модератору
 Re: CodeFirst vs DatabaseFirst  [new]
hVostt
Member

Откуда:
Сообщений: 16190
Дмитрий Мух
hVostt
чёй-то неприменима сразу. MongoDB, GraphQL это как раз Code First only, только без миграций.

ну, ну... это именно это, но только без этого и того )))


квадратное оно немножко зелёное )
11 июл 19, 22:20    [21925297]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить