😮 Entity Framework или Dapper?
Года два назад задался вопросом. Как решить, что использоваться для взаимодействия с базкой в своем проекте ORM или миниORM?
Вот в Додо исконно принято использовать даппер. Хотя это и не обязательно, и в ряде проектов, к примеру в Базе знаний используется EF. Но почему-то если проект у нас критический, то там используется именно даппер.
В своих пет-проектах я год пользовался EF, ну а в работе понятное дело юзал даппер. И вот к каким выводам я пришел.
Entity Framework:
🟣Практически в любом случае проще и лучше использовать EF.
🟣Для старта любого проекта, на котором большая нагрузка либо не предвидится, либо пока неясно, будет ли она, лучше использовать EF.
Dapper:
🟠Если у вас проект, который использует какие-то особенности базы для работы, то есть у вас сложная иерархия таблиц, с индексами, вьюхами, прости Господи хранимками, и по сути часть вашей бизнес-логики лежит в базе (что я не приветствую), то лучше юзать даппер.
🟠Если у вас меганагруженный проект с огромным количеством (несколько сотен в секунду) чтений из базы и вы по какой-то причине не можете использовать кэширование для оптимизации, то тоже можно использовать даппер.
🟠Если у вас бОльшая часть команды ОЧЕНЬ глубоко знает работу какой-то конкретной базы данных и прям использует по максимуму все её фичи, то тоже даппер.
🅰️ Короче, я для себя пока аккуратно сделал вывод, что по дефолту буду юзать EF, а над использованием Dapper скорее буду думать, надо ли.
Понимаю, что многие делают выбор в сторону даппера из-за скорости. Но как часто действительно важна эта скорость? Ник Чапсас снял видос про то, что EF хорошо ускорился в основных сценариях использования и в принципе не сильно отстает от даппера. То есть скорее всего бутылочным горлышком у вас окажется не библиотечка, а кривой запрос/отсутствие индекса и так далее.
Такие пироги! Если что, это мнение не конечное, и я бы с удовольстием послушал ваш опыт. Было бы пиздатенько, если бы в коментах кто-то рассказл кейс, как EF что-то сломал в проекте, а Dapper даппер или что-то такое это починило. Ну или может еще накидал разных поинтов.
Post #210
454