Re[5]: Задача такая
От: barn_czn  
Дата: 07.05.19 11:42
Оценка:
Здравствуйте, igor-booch, Вы писали:

IB>>>Вот и всатаёт вопрос. Хочу использовать EntityFramework, с ним разработка быстрее и качественней. Но возможно ли что-то предпринять сейчас, чтобы потом безболезненно перейти на web сервис, оставив при этом максимум плюшек от EntityFramework, максимально заюзать уже написанный код. Или сразу отказываться от EntityFramework? Может есть какие-то готовые ORM или кэши не завязанные на БД, по функциональности похожие на EntityFramework?


_>>Идея хорошая, и посещала уже многих. Но есть серьезное "но". Методы EF — синхронные. Не знаю, может сейчас это исправили. И это ставит(ставило) крест на EF как унифицированном клиенте.


IB>Насколько я понимаю, ты описываешь следующую проблему. На декстопе я могу


IB>1) считать данные

IB>2) показать форму
IB>пользователь вводит данные
IB>3) записать данные

IB>1 и 2 я могу делать параллельно, то есть считывать данные асинхронно.

IB>1 и 3 я могу сделать в одном контексте

IB>В веб приложении считывать данные и одновременно показывать форму затруднительно.

IB>В веб приложении каждый запрос делается в отдельном контексте, поэтому 1 и 3 будут в разных контекстах (решается через отсоединённый сущности).

IB>Правильно?


Нет. Не важно какие там контексты, это технические мелочи. EF — имеет методы, вызов которых сводится к вызову апи DB, т.е. IDbConnection и других таких же типов.
И это работает синхронно. Т.е. по стеку неразрывно. В вебе же все асинхронно, и в стеке нельзя зависнуть в ожидании результата. Так было.


IB>В моём случае веб сервис может потребоваться в первую очередь для мобильного приложения на Xamarin. В нём можно сделать как на десктопе.


Все мобильные клиенты как правило асинхронные и я не слышал там о применении EF.

IB>PS: в EF6 появились асинхронные методы


Если появились то надо копать, здесь я не осведомлен на сколько сложно EF пропустить через веб.

Ну а вообще надо задать себе вопрос — а действительно ли так надо EF или другой ORM? Я понимаю только одну его сильную сторону — ссылочная целостность. Но она нужна на толстых клиентах
с тотальным кешированием, сложной логикой. Клиенты для соцсетей например вряд ли нуждаются в применении ORM.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.