powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM vs sql
25 сообщений из 451, страница 10 из 19
ORM vs sql
    #37605641
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыТак язык - это желаемое или необходимое?
Срорее, необходимое.
зыПочему не может быть ORM только для конкретной базы?
Отчего ж не может, может. L2S - для конкретного типа сервера (MSSQL), например.
зыДа пусть работает, я про заявление о строгой типизации базы
Ты ж спросил про "конкретность базы", а теперь говоришь о другом - о типизации. Определись. Типизация априори должна быть в ORM, исходя даже из самого названия - объектный маппинг.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605644
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кусок соственной проги со всеми приблудами кто нить покажет?
или вы все работаете в цру?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605646
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самый симпотный орм - kynetic
...
Рейтинг: 0 / 0
ORM vs sql
    #37605653
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ауууу
скукота :(
...
Рейтинг: 0 / 0
ORM vs sql
    #37605679
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУзыТак язык - это желаемое или необходимое?
Срорее, необходимое.
зыПочему не может быть ORM только для конкретной базы?
Отчего ж не может, может. L2S - для конкретного типа сервера (MSSQL), например.

ок, тогда mybatis/ibatis, получается, тоже не ORM? Там нет собственного языка, транслируемого в XXX. Ну и наверное ещё каких-то свистелок, которые ты называешь необходимыми. Просто ты явно не ответил.

МСУзыДа пусть работает, я про заявление о строгой типизации базы
Ты ж спросил про "конкретность базы", а теперь говоришь о другом - о типизации. Определись.
да что ты, я не спрашивал про "конкретность базы". Я вообще адресовал свой вопрос Lelouch , к тебе у меня были другие. Не люблю смешивать.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605685
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыок, тогда mybatis/ibatis, получается, тоже не ORM? Там нет собственного языка, транслируемого в XXX. Ну и наверное ещё каких-то свистелок, которые ты называешь необходимыми. Просто ты явно не ответил.
Согласен, что "неявно" ответил. И не отвечу, потому что нет однозначного определения ORM. Каждый продукт сам себя позиционирует.
Хибер позиционирует себя как ORM.
Telerik OpenAccess позиционирует себя как ORM.
BLToolkit позиционирует себя как ORM.
EF позиционирует себя как ORM.
...
Enterprise Library Data Access Block позиционирует себя как практику (хелпер, другими словами).

зыда что ты, я не спрашивал про "конкретность базы". Я вообще адресовал свой вопрос Lelouch , к тебе у меня были другие. Не люблю смешивать.
Ок, тогда сорри.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605687
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы, по поводу JdbcTemplate: Доступ к данным в Spring

...Существует много статей о том, как делать инъекцию зависимости в Spring, но очень мало толковой информации о подключениях к базам данных. В Spring это можно делать либо напрямую при помощи JDBC либо использовать ORM технологии, например, Hibernate .

Согласись, очевиден четкий контраст: либо горбатый, либо не горбатый.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605693
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchЗачем мне динамическая типизация если база строго типизирована?
Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :)

Раз уж именно мне, то :

1) Тема топика SQL vs ORM. )))
2) Честно, не сталкивался с нетипизированными хранилищами
3) noSQL бывает типизированным (это ответили до меня)
4) Даже при отсутсвтии строгой типизации в бд использую ORM и получу строгую типизацию.

Подход без строгой типизации (нетипизированный датасет) все равно особых плюсов не имеет - при работе или придется приводить типы, или использовать dynamic, что сильно мешает и может привести к краху в рантайме при попытке использования несуществующего метода / поля / свойства, etc.
Или я не правильно понял вопрос?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605703
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Из примеров по MongoDB, приводимых Вами:
Код: c#
1.
2.
3.
4.
BsonDocument book;
string author = book["author"].AsString;
DateTime publicationDate = book["publicationDate"].AsDateTime;
int pages = book["pages", -1].AsInt32; // default value is -1


Как видите, все равно преобразования типа необходимо.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605704
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*
Код: plaintext
приводимой
...
Рейтинг: 0 / 0
ORM vs sql
    #37605711
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosкусок соственной проги со всеми приблудами кто нить покажет?
или вы все работаете в цру?

Вот вам, маленький запросик которых в приложении сотни.
Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения.
Эффективно.. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605726
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchP.S. Из примеров по MongoDB, приводимых Вами:

Как видите, все равно преобразования типа необходимо.
преобразование необходимо исключительно для работы с данными в строго типизированном языке C#. Если клиентом будет javascript, то преобразование уже не нужно ;) Да и если в одной строке может лежать документ с полем "foo" и значением типа string, а в другой - документ с полем "foo" и значением типа number, то это и называется отсутствие строгой типизации в базе.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605727
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

я все к тому спрашивал, чтобы вляпаться с тобой в очередную игру слов про ORM или не ORM. Если называть инструмент ORM'ом, если у него есть базовый функционал маппинга сырых данных из базы на какую-то модель данных, то да, без ORM сейчас почти никто не обходится и для игнорирования нужны веские причины. Хотя вот в небольшом проекте с NoSQL (для Lelouch заодно) вместо ORM был простой валидатор по динамической схеме данных. Потому что были динамические формы и никакой объектной модели (кроме списка пользователей), и нужно было всего-лишь сохранить форму как документ, и уметь смапить документ обратно на форму для редактирования.

Если настаивать на понятии ORM как на обязательном присутствии свистелок и переделок, то примеров, почему не нужно использовать такой тяжелый инструмент как ORM, уже может быть много. Либо нужен баланс. Для простых модулей типа user management нет смысла изобретать очередной CRUD велосипед, а уже там, где преимущественно нужны быстрые, разнообразные и эффективные выборки с отображением данных, ORM избыточен. Особенно хибернейт.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605728
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"чтобы НЕ вляпаться" конечно же
...
Рейтинг: 0 / 0
ORM vs sql
    #37605740
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонВот вам, маленький запросик которых в приложении сотни.
Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения.
Эффективно.. :)
почему любители compile-time проверок все время любят приводить в пример опечатки в строках? А если я опечатался и написал >= , или вместо нуля единицу? А сколько в адовом 11867369 запросе можно опечаток наделать — я вообще молчу. У тебя же все равно будут юниттесты, правильно? :) они и свалятся в случае ошибки.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605741
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыМСУ, я все к тому спрашивал, чтобы не вляпаться с тобой в очередную игру слов про ORM или не ORM.
Я это почувствовал изначально, поэтому старался "неявно" отвечать. Но когда вопрос стал ребром "горбатый или не горбатый" - я отписался про "самопроизвольную" трактовку вендора.

Но, так или иначе, мы привыкли к тому, что в ORM'ах есть
1. Готовые для работы классы (либо пишем руками, либо кодогенерируем с хранилища)
2. Язык общения с хранилищем (транслятор в SQL)
3. По возможности поддержка различных видов БД (нетрудно реализовать из п.2)
4. По возможности поддержка возможности создания новой БД из набора классов (в хибере делается одной строчкой SchemaExport.Execute())

зыЕсли называть инструмент ORM'ом, если у него есть базовый функционал маппинга сырых данных из базы на какую-то модель данных
Маппинг - это самое последнее и самое простое. Нужна схема, прежде всего. Нужны классы. Нужен движок-транслятор. Вот, что самое сложное.

[quot зы]такой тяжелый инструмент как ORM
В том-то и соль, что он не тяжелый. Он шустр и понятен, как березовый лист. Запросы выполняются там же на сервере, программист же общается с типизированными данными. Скорость та же. Микросекунды на маппинг объектов в коллекции не в счет. Тот же датасет дольше будет заполняться, чем наполнится коллекция того же хибера или EF.
Самое шустрое же - это IDataReader, но работать с ним так или иначе невозможно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605743
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыпочему любители compile-time проверок все время любят приводить в пример опечатки в строках? А если я опечатался и написал >= , или вместо нуля единицу?
Потому, что данный вид ошибки является самым распространенным. А от логической ошибки же (ошибки в бизнес-логике) ничего не спасёт, даже серебряная пуля.
зыУ тебя же все равно будут юниттесты, правильно? :) они и свалятся в случае ошибки.
Точно так же, можно ошибиться в юнит-тесте и написать 0 вместо 1. Так что мы ходим рекурсивно по кругу.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605765
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Точно так же, можно ошибиться в юнит-тесте и написать 0 вместо 1. Так что мы ходим рекурсивно по кругу.
да, и тестеры тоже ошибаются, и так всегда и вываливаются ошибки на продакшн, это реальность но все-таки давай рассматривать юнит-тесты как достаточный уровень защиты от подобных ошибок.

МСУМаппинг - это самое последнее и самое простое. Нужна схема, прежде всего. Нужны классы. Нужен движок-транслятор. Вот, что самое сложное.

маппинг - это результат работы всего, что ты написал выше. Именно что последнее, и базовое :) Транслятор->база->схема->маппинг. Тут именно что ничего тяжелого. Тяжелое и непредсказуемое начинается когда подключают, например, хибернейт. Если он избыточен для задачи, то достаточно jdbctemplate/mybatis для получения результата в виде POJO, с которым уже можно работать дальше используя парадигмы объектов. В основном это некая небольшая простая постобработка на стороне приложения перед выводом на клиент.
Тут нет серебряной пули, так что спор — нужен ORM или нет без конкретной задачи сводится к простому мерянью пиписьками вида "а у меня проект больше и без ORM мы бы его делали в 10 раз дольше".
...
Рейтинг: 0 / 0
ORM vs sql
    #37605777
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыно все-таки давай рассматривать юнит-тесты как достаточный уровень защиты от подобных ошибок.
Ок. Но зачем доводить до последнего рубежа обороны, если можно на начальном этапе отсеять такую ошибку (ошибки именований или типов).
Далее - продуктивность и удобство работы (интелиссенс). Влияет ли на скорость и качество разработки? Или в помойное ведро его, этот подсказыватель? Думаю, тут всё очевидно.

зымаппинг - это результат работы всего, что ты написал выше. Именно что последнее, и базовое :)
Это результат, окончательный расчёт. Но, чтобы его сделать, нужно иметь полноценный движок, вот в нем вся и трудность.

[quot зы]Тяжелое и непредсказуемое начинается когда подключают, например, хибернейт. Если он избыточен для задачи, то достаточно jdbctemplate/mybatis для получения результата в виде POJO, с которым уже можно работать дальше используя парадигмы объектов.[/quot
Не понимаю, всё же. В чём тяжелость и избыточность хибера? Нужно переключиться на другую БД (например, Oracle) - переключаем провайдер в конфиге. Нужно развернуть базу по схеме в инсталляторе - вызываем метод, который по схеме все сделает.

Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом.

зыТут нет серебряной пули, так что спор — нужен ORM или нет без конкретной задачи сводится к простому мерянью пиписьками вида "а у меня проект больше и без ORM мы бы его делали в 10 раз дольше".
Нужен. Тысячу раз нужен, зы. Однозначно нужен, даже если база постоянна и прочие фантики не интересны.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605794
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchP.S. Из примеров по MongoDB, приводимых Вами:
Код: c#
1.
2.
3.
4.
BsonDocument book;
string author = book["author"].AsString;
DateTime publicationDate = book["publicationDate"].AsDateTime;
int pages = book["pages", -1].AsInt32; // default value is -1


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

ну конечно. вы бы еще работу с чистым rest показали.
использовать готовую библиотеку для доступа к MongoDB с поддержкой типов слабо?
хотя бы вот так http://habrahabr.ru/blogs/aspnet_mvc/93598/
...
Рейтинг: 0 / 0
ORM vs sql
    #37605800
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К МСУ добавить нечего, разве что - носить стринги не наша ориентация )
...
Рейтинг: 0 / 0
ORM vs sql
    #37605803
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыДля простых модулей типа user management нет смысла изобретать очередной CRUD велосипед, а уже там, где преимущественно нужны быстрые, разнообразные и эффективные выборки с отображением данных, ORM избыточен. Особенно хибернейт.

ORM не исключает быстрых и эффективных выборок.
его основная задача - маппинг. с этой задачей он отлично справляется. это на порядок удобнее нежели работать с классическим ADO.NET. он снимает кучу рутинной работы.

но и логику на нем строить так же можно, и нужно, если есть необходимость.
для примера. была необходимость отображать все записи из определенных таблиц.
через время появилось требование записи не удалять физически, а маркировать как Deleted. используя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете.

используя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект.

использовать чистый сиквел имеет смысл только тогда, когда нужно обрабатывать огромные объемы данных. обычно это OLAP.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605805
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayLelouchP.S. Из примеров по MongoDB, приводимых Вами:
Код: c#
1.
2.
3.
4.
BsonDocument book;
string author = book["author"].AsString;
DateTime publicationDate = book["publicationDate"].AsDateTime;
int pages = book["pages", -1].AsInt32; // default value is -1


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

ну конечно. вы бы еще работу с чистым rest показали.
использовать готовую библиотеку для доступа к MongoDB с поддержкой типов слабо?
хотя бы вот так http://habrahabr.ru/blogs/aspnet_mvc/93598/

А к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605809
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом.


на самом деле самое ценное в ORM - это возможность работать с объектами, а не строками в таблицах. это существенно при использовании ООП.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605811
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchА к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал?

вы написали что необходимо преобразование. преобразование чего во что?
конечно в том или ином виде оно всегда и везде есть. я уверен что даже внутри сиквела. но используя нормальные ORM, у вас не возникает необходимость делать это самому. и к тому же отпадает необходимость в том коде, что вы привели как пример.
...
Рейтинг: 0 / 0
25 сообщений из 451, страница 10 из 19
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM vs sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]