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

Откуда: Кокосовые острова
Сообщений: 340
Привет всем! Работаю с базой данных MS SQL при помощи EF database first, слышал про то, что есть и ещё один подход code first, слышал много хорошего))) Очень хочеться перейти на него уж больно он разрекламирован, и кажеться более удобным для меня. Но пержде чем это сделать ни как не магу найти ответы на интересующие меня вопросы
1- что же быстрее работает database first или code first? у какого подхода производительность больше?
2- читал что есть некоторая проблема в случае code first, что если необходимо поменять схему бд, добавить или изменить поле, то просто на просто дропаеться вся бд и пересоздается, есть ли такое и как с этим боряться?

спасибо)
20 авг 13, 16:25    [14731769]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
bazile
Member

Откуда:
Сообщений: 3079
yardie, 1) у обоих подходов одинаковая производительность; 2) читай про migrations
20 авг 13, 16:55    [14731957]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
lbppb
Member

Откуда:
Сообщений: 1051
yardie,

Прежде чем впрягаться во все тяжкие. Вас чем именно не устраивает database first?
20 авг 13, 23:25    [14733299]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
yardie
Member

Откуда: Кокосовые острова
Сообщений: 340
lbppb
yardie,

Прежде чем впрягаться во все тяжкие. Вас чем именно не устраивает database first?


Я просто хочу уйти от тех времен когда мне постоянно приходилось лезть в бд, писать скрипты и прочее, хочу создавать, изменять и удалять таблицы более привычным мне C#. Такой подход позволяет очень сильно сократить время разработки на начальном этапе.
21 авг 13, 13:05    [14735659]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
lbppb
Member

Откуда:
Сообщений: 1051
yardie
lbppb
yardie,

Прежде чем впрягаться во все тяжкие. Вас чем именно не устраивает database first?


Я просто хочу уйти от тех времен когда мне постоянно приходилось лезть в бд, писать скрипты и прочее, хочу создавать, изменять и удалять таблицы более привычным мне C#. Такой подход позволяет очень сильно сократить время разработки на начальном этапе.


Database First и встроенный дизайнер как ни на есть лучшим образом, за исключением некоторых тонкостей (Code First их впрочем не решает), позволяют проектировать базу и ни какие скрипты писать не нужно. Более того, все необходимые классы также создаются автоматически. Более того, Database First позволяет легко обновлять модель из базы, если такое нужно в последствии, а также легко и удобно работать с Stored Proceudres и Views.
21 авг 13, 14:15    [14736167]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
yardie
Member

Откуда: Кокосовые острова
Сообщений: 340
lbppb,

Спасибо, поизучаю database first по подробнее, вполне вероятно что, что-то недоглядел.
21 авг 13, 14:56    [14736557]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: EF работа с code first или database first?  [new]
Alexey2112
Member

Откуда:
Сообщений: 975
Тогда почему МС активно двигает code-first в массы?

Вообще, переход на C# в проектирование БД, в проектирование инсталляторов и т. д. считаю хорошей затеей. Может быть, наконец-то разработчику не надо будет знать целую кучу несовместимых и непохожих языков (C#, SQL, T-SQL, чего-то там в сборщике установщиков Windows Installer или набор тегов XML в WiX), чтобы делать продукты даже не для кроссплатформы, а для одной платформы, или, лучше сказать, для платформ одного вендора (МС).

Почему пихать javascript везде, который гораздо хуже подходит для разработки, можно, а C# - нет?


Что будет с таблицами связей при подходе code-first? Неужели их занесут в красную книгу и разработчики БД на C# забудут о их существовании? На мой взгляд, таблицы связей в проектировании БД выглядят как жирный такой и заметный костыль. То, для чего C# использует просто коллекций сущностей внутри других сущности, SQL должен придумывать новую сущность (каждая таблица связей - такая вполне себе новая сущность), нарушая принцип Оккама.
20 май 15, 14:10    [17666500]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
Alexey2112
Member

Откуда:
Сообщений: 975
Alexey2112
Вообще, переход на C# в проектирование БД, в проектирование инсталляторов и т. д. считаю хорошей затеей. Может быть, наконец-то разработчику не надо будет знать целую кучу несовместимых и непохожих языков (C#, SQL, T-SQL, чего-то там в сборщике установщиков Windows Installer или набор тегов XML в WiX), чтобы делать продукты даже не для кроссплатформы, а для одной платформы, или, лучше сказать, для платформ одного вендора (МС).

Можно ещё добавить, что запросы к БД уже нормальные люди пишут на C# (LINQ).

Итого имеем:

- разработка приложений (мобильных, десктопных, серверных) - C#
- запросы к БД - C# (LINQ)
- разработка инсталляторов - C# (WiX#)
- игры, трёхмерная графика - C# (Unity3D, SlimDX, SharpDX)
- микроконтроллеры, интернет вещей - C# (ардуины и прочие)

в будущем:

- разработка БД - C# (EF code-first)
- веб-разработка - C# (Silverlight 2, web-WPF)
- виртуальная реальность - C# (Hololens API)


А? Ну? Чё?
20 май 15, 14:33    [17666708]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
Alexey2112
Member

Откуда:
Сообщений: 975
Alexey2112
- микроконтроллеры, интернет вещей - C# (ардуины и прочие)

Забыл про интелловские low-power x86 процессоры и Windows 10 IoT.
20 май 15, 14:34    [17666725]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
Артем G
Member

Откуда:
Сообщений: 469
Одназначно Code first. В EF7 уберут Database first по моему.
4 ноя 15, 01:36    [18367459]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
"code first" - не правильное название. надо было назвать "сделали нормальную ОРМ". миграции при групповой разработке, когда у каждого своя тестовая БД, в том или ином виде, всегда были, есть, будут (и связанный с этим геморой, независимо от ОРМ или её отсутствия).

DB-first - это теперь лучше забыть
4 ноя 15, 12:36    [18368364]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
kmaw,

было модель first - забили, так как не вытянули
4 ноя 15, 14:28    [18368811]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
что дб что код ферст- все это жесткий хардкод
а в модель ф можно было без кода обойтись (вернее код был бы в динамике)
4 ноя 15, 14:30    [18368815]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
ViPRos
код ферст


это обычная нормальная ОРМ, какой стал EF
4 ноя 15, 14:33    [18368830]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
kmaw,

ну я и говорю, что не вытянули
а ведь было в начале CSDL, а не код
4 ноя 15, 14:34    [18368833]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
hVostt
Member

Откуда:
Сообщений: 14999
ViPRos
что дб что код ферст- все это жесткий хардкод


код фёрст -- норм. никакого хардкода, сразу решаешь задачи.


ViPRos
а в модель ф можно было без кода обойтись (вернее код был бы в динамике)


не снискало за десятилетия этот динамик популярности... унылые сложные, не тестируемые, глючные решения, нафиг не упали.

как кодили с типизированной моделью, так и кодят, и будут кодить.
4 ноя 15, 17:11    [18369326]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
hVostt
Member

Откуда:
Сообщений: 14999
kmaw
ViPRos
код ферст


это обычная нормальная ОРМ, какой стал EF


ya ya
4 ноя 15, 17:12    [18369332]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
hVostt,

чей то я не видел 10летиями кто динамил, попытки и ляля видел
4 ноя 15, 18:35    [18369649]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
hVostt
Member

Откуда:
Сообщений: 14999
ViPRos
hVostt,

чей то я не видел 10летиями кто динамил, попытки и ляля видел


ну по логике вещей, уже давно должно было выстрелить что-то типа ВИПРОСа и захватить рынок. но либо все такие тупые в этом мире, пипец тупари, от Майкрософт — стадо бездарностей, до Оракла — вообще обезьяны... ну или нахрен никому не упало :) выбирай, что тебе по душе.
4 ноя 15, 23:38    [18370772]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
hVostt,

есть 3-е
после такого дальнейшее обновление "технологий" никто не поймет :)
реально не нужны толпы "программистов"
и т.д. экономические вопросы
5 ноя 15, 02:33    [18371154]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
hVostt
Member

Откуда:
Сообщений: 14999
ViPRos
hVostt,

есть 3-е
после такого дальнейшее обновление "технологий" никто не поймет :)
реально не нужны толпы "программистов"
и т.д. экономические вопросы


вопросом изобретения серебряной пули занимаюс я, подаван

лично я вижу, что применение подхода описания метамодели данных, вместо "хардкодного" программирования — это качественный шаг вперёд, по крайне мере для типовых задач энтерпрайза.

вот только вменяемой реализации подобного я не встречал. всё что видел -- писец какое сложное в применении, монструозное, неповоротливое, и самое главное -- мееееееееееееееееееееееееееееедленное.
5 ноя 15, 06:36    [18371242]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
carrotik
Member

Откуда:
Сообщений: 1336
Артем G
Одназначно Code first. В EF7 уберут Database first по моему.


.. в EF7 это (DatabaseFirst) теперь выполняется командой dnx ef dbcontext scaffold .. и вполне себе работает под Виндой ... вот под Linux-ом иль пока еще лыжи не едут, иль я сам понимаете какой - но не выпиливается .. Хотя сам проект (мигрированный WebApi) билдится и работает
5 ноя 15, 14:14    [18373480]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
hVostt
вот только вменяемой реализации подобного я не встречал. всё что видел -- писец какое сложное в применении, монструозное, неповоротливое, и самое главное -- мееееееееееееееееееееееееееееедленное.


это все не так, во всяком случае не должно быть так
интерпретация модели налету не такая дорогая операция, особенно если хорошо продумано кеширование результатов интерпретации
5 ноя 15, 15:43    [18374358]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
hVostt
Member

Откуда:
Сообщений: 14999
ViPRos
это все не так, во всяком случае не должно быть так
интерпретация модели налету не такая дорогая операция, особенно если хорошо продумано кеширование результатов интерпретации


в теории и на простых задачах ок. сам делал и предпринимал попытки реализации оного.
в реале, например, при интеграции в компанию уровня Газпром (пускай, регионального), это хренобаза (не моя, а естественно большой и уважаемой компании) тормозит так, что сотрудники страдают от переизбытка чая в огранизме, так как приходится себя чем-то занять периодически, пока какой-то воркфлоу отрабатывает.

пока что пришёл к выводу, что нужен компромисс: гибрид, где часть системы выполнена на метамодели (где это реально уместно), в основном тупые реестры без сложных обработок, отчётов, кубов. а боевая лошадка по старинке. и это работает довольно хорошо. вот сейчас именно такой подход применяется по моей инициативе, пока полёт нормальный.
5 ноя 15, 21:09    [18375718]     Ответить | Цитировать Сообщить модератору
 Re: EF работа с code first или database first?  [new]
ViPRos
Member

Откуда:
Сообщений: 9340
hVostt,

почему большая база? что там содержится?
скорее всего неправильная метамодель
все эти одномерные амебные ер, юмл и т.д. не являются инструментом метамоделирования
5 ноя 15, 21:25    [18375763]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить