|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
Привет До этого с ORM не сталкивался, а теперь столкнулся с этой необходимостью. Посоветуйте пожалуйста платную/бесплатную ORM для высоконагруженной системы. БД будет использоваться ms sql server 2012 prof. Причем будет 2-е БД, одна для записи, другая для чтения. Они будут синхронизироваться через определенный интервал времени. кол-во инсертов предпологается около 200000 в час, селектов - около 4000000 с подзапросами. Разработка приложения на .net. Архитектура - 3-х звенка. Главные требование: скорость работы по максимум, меньше всего багов, нормальный суппорт, нормальный интерфейс для маппинга, малогеморойный переход на другую БД (если понадобится). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 14:29 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
_=ДОБРЫНЯ=_Привет До этого с ORM не сталкивался, а теперь столкнулся с этой необходимостью. Посоветуйте пожалуйста платную/бесплатную ORM для высоконагруженной системы. БД будет использоваться ms sql server 2012 prof. Причем будет 2-е БД, одна для записи, другая для чтения. Они будут синхронизироваться через определенный интервал времени. кол-во инсертов предпологается около 200000 в час, селектов - около 4000000 с подзапросами. Разработка приложения на .net. Архитектура - 3-х звенка. Главные требование: скорость работы по максимум, меньше всего багов, нормальный суппорт, нормальный интерфейс для маппинга, малогеморойный переход на другую БД (если понадобится). При таких требованиях ORM самоубийство ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:01 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
По-моему, таких ORM пока не существует. Нужно искать другое решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 09:25 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
_=ДОБРЫНЯ=_, FoxPro! ORM - зло! <:o) А если серьезно, ORM это проекция ЯП высокого уровня на ЯП низкого уровня. Это как попросить - "А можно я буду писать на классическом xBase вместо SQL." :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 13:15 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
Это поятно. Ну а каку-то платную орм для оптимизации запросов и генерирование минимальных запросов для работы? Кто-то пользовлся LightSpeed от mindscape? как она в работе? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 14:27 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
_=ДОБРЫНЯ=_, Опять же, есть SQL Manager его для визуального генерирования простых запросов должно хватить :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:34 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
ORM вроде не для этого совсем "для оптимизации запросов и генерирование минимальных запросов для работы"... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 09:40 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
pirovindosORM вроде не для этого совсем "для оптимизации запросов и генерирование минимальных запросов для работы"... согласен. но так же для удобства работы с базой разработчику. Ведь удобно когда за тебя что-то делается и это легко поддерживать. но орм орм-у рознь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 18:51 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
_=ДОБРЫНЯ=_, Надеюсь вас скоро попустит, т.к. написали вы просто фантастические вводные. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 20:17 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
Злой Бобр_=ДОБРЫНЯ=_, Надеюсь вас скоро попустит, т.к. написали вы просто фантастические вводные. Вы с подобным сталкивались? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 23:30 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
По-моему, ORM нужен чтобы скрыть от разработчика "работу с базой". Поэтому предлагаю требования к ORM формулировать не в терминах "кол-во инсертов" или "селектов", а в терминах предоставляемых ORM интерфейсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 11:15 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
_=ДОБРЫНЯ=_согласен. но так же для удобства работы с базой разработчику. Ведь удобно когда за тебя что-то делается и это легко поддерживать. но орм орм-у рознь. Мне как разработчику удобно работать на прямую с БД. Т.к. это намного проще и быстрее. Но, как тому же разработчику, приходиться работать ч/з модели данных ибо АРХИТЕКТУРА. И там где был бы один селект, который ТОЧНО возарщает одну строку, приходиться писать цикл с условием. Есть конечно ORM которые "похожи" на SQL, но это еще большее извращение. Т.к. фактически пишешь тот же селект, но с такими ограничениями, что смысла нет никакого. Как разработчик говорю - ORM это не удобно, не гибко и глюкаво. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 11:04 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
mad_nazgulИ там где был бы один селект, который ТОЧНО возарщает одну строку, приходиться писать цикл с условием проблема, скорее всего, не в ОРМ ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 12:50 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
mad_nazgul_=ДОБРЫНЯ=_согласен. но так же для удобства работы с базой разработчику. Ведь удобно когда за тебя что-то делается и это легко поддерживать. но орм орм-у рознь. Мне как разработчику удобно работать на прямую с БД. Т.к. это намного проще и быстрее. Но, как тому же разработчику, приходиться работать ч/з модели данных ибо АРХИТЕКТУРА. И там где был бы один селект, который ТОЧНО возарщает одну строку, приходиться писать цикл с условием. Есть конечно ORM которые "похожи" на SQL, но это еще большее извращение. Т.к. фактически пишешь тот же селект, но с такими ограничениями, что смысла нет никакого. Как разработчик говорю - ORM это не удобно, не гибко и глюкаво. основная задача ORM, что и указано напрямую в названии - переносить модель БД на объектную модель приложения и обратно, разве нет? Если вы переносите данные из БД в объекты приложения, то это уже ORM, возможно самописный и неосознанно используемый. Топикстартеру, а чем стандартный ORM от microsoft не устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2013, 10:35 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
Old NickПри таких требованиях ORM самоубийство Глупости. 100500 раз уже обсуждали, что не в ORM проблема, а в кривых запросах, которые можно писать и без ORM. При грамотном использовании ORM никаких проблем не возникает. P.S. Автор, используй Entity Framework. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2013, 12:28 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
druffосновная задача ORM, что и указано напрямую в названии - переносить модель БД на объектную модель приложения и обратно, разве нет? Если вы переносите данные из БД в объекты приложения, то это уже ORM, возможно самописный и неосознанно используемый. Так ведь "не лезет". Т.к. Схема БД и объектная модель приложения вещи "ортогональные". Проблема в том, что "объектный подход" и "реляционный" в корне разнятся. Соответственно прямого и универсального отображения объектов на реляционные отношения сделать практически невозможно. Все ORM которые я видел, в т.ч. и от MS были таким убожеством, работая с ними я чувствовал связанным себя по рукам и ногам. Я понимаю, что программистам, которые не знают SQL они могут показаться проще, но у SQL гораздо гибче и богаче любого ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 08:43 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
mad_nazgulВсе ORM которые я видел, в т.ч. и от MS были таким убожеством, работая с ними я чувствовал связанным себя по рукам и ногам. Не нужно какие-то феерические ограничения сопоставлять с убожеством ORM, можно сказать проще - ниасилил. В нормальных ORM всегда есть возможность использовать хранимые процедуры и кастом сиквел код, который типизированно намаплен на контекст. 90% рутинного кода выполняются через классический язык ORM движка, остальные 10% замороченного сиквела решаются через динамику с последующей типизацией. Баян, изъеженный годами. mad_nazgulЯ понимаю, что программистам, которые не знают SQL они могут показаться проще, но у SQL гораздо гибче и богаче любого ORM. Программист, хорошо разбирающийся в ORM, вовсе не означает, что он не разбирается в SQL. Это заблуждение тех же "специалистов", которые так и не осилили ORM и не поняли его сути и предназначения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 11:10 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
МСУВ нормальных ORM всегда есть возможность использовать хранимые процедуры и кастом сиквел код, который типизированно намаплен на контекст. 90% рутинного кода выполняются через классический язык ORM движка, остальные 10% замороченного сиквела решаются через динамику с последующей типизацией. Баян, изъеженный годами. Хранимки можно использовать и без ORM ;-) Зачем использовать лишнюю сущность, когда ее можно не использовать?! Т.е. зачем нужна прослойка м/у SQL и программой? Легкие вещи легко делаются и без ORM, а сложные в ORM не сделаешь. МСУПрограммист, хорошо разбирающийся в ORM, вовсе не означает, что он не разбирается в SQL. Это заблуждение тех же "специалистов", которые так и не осилили ORM и не поняли его сути и предназначения. ORM не поддерживает полностью стандарт SQL, соответственно он просто физически не может использовать все возможности SQL. Зачем ограничивать себя, когда можно этого не делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 12:01 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
ORM не поддерживает полностью стандарт SQL, соответственно он просто физически не может использовать все возможности SQL. И даже вызов ХП (с полноценным SQL) ??? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 16:46 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
mad_nazgulХранимки можно использовать и без ORM ;-) Зачем использовать лишнюю сущность, когда ее можно не использовать?! Слово - типизация. Если не о чём не говорит, дальнейший разговор бесмысленнен. Начни читать отсюда, возможно, не так всё плохо и прозреешь: http://msdn.microsoft.com/en-us/data/gg699321.aspx mad_nazgulЛегкие вещи легко делаются и без ORM, а сложные в ORM не сделаешь. См. выше. mad_nazgulORM не поддерживает полностью стандарт SQL, соответственно он просто физически не может использовать все возможности SQL. Зачем ограничивать себя, когда можно этого не делать? ORM поддерживает любой стандарт SQL в разрезе используемого провайдера БД. Всегда есть выход на нативный DbCommand и DbConnection. Более того, всё это чисто и аккуратно маппится на заранее подготовленные сущности. Вот тут у меня на сайте пример есть: http://codearticles.ru/articles/2147 Даже есть в программе 90% сложного сиквел кода, всё-равно нужно использовать ORM. ORM - это визитная карточка к любой БД. Но тебе пока не понять, я вижу из контекста, что опыта работы с ORM у тебя ноль. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2013, 22:25 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
LSVORM не поддерживает полностью стандарт SQL, соответственно он просто физически не может использовать все возможности SQL. И даже вызов ХП (с полноценным SQL) ??? :) Дык это ХП надо писать. Причем для разных СУБД свой ЯП ХП. А SQL по большей части везде один. ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2013, 07:44 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
МСУСлово - типизация. Если не о чём не говорит, дальнейший разговор бесмысленнен. Начни читать отсюда, возможно, не так всё плохо и прозреешь: http://msdn.microsoft.com/en-us/data/gg699321.aspx Говорит. Возвращаемый RecordSet всегда имеет типизированные поля. Нет вру, в Visual Basic по моему все ч/з Variant делалось. Насчет ХП... Для каждой БД, нужно будет писать свою ХП. Т.о. вы жестко привязаны к конкретной БД. ;-) МСУmad_nazgulЛегкие вещи легко делаются и без ORM, а сложные в ORM не сделаешь. См. выше. Это подтверждает мои слова. Легкие вещи делаются легко, сложные никак. Ах да, у нас есть ХП! Вот только для каждой БД нужно писать свои ХП. Да еще помнить, знает ли наш ORM особенности вызова ХП в данной БД. ;-) МСУORM поддерживает любой стандарт SQL в разрезе используемого провайдера БД. Всегда есть выход на нативный DbCommand и DbConnection. Более того, всё это чисто и аккуратно маппится на заранее подготовленные сущности. Вот тут у меня на сайте пример есть: http://codearticles.ru/articles/2147 Даже есть в программе 90% сложного сиквел кода, всё-равно нужно использовать ORM. ORM - это визитная карточка к любой БД. Но тебе пока не понять, я вижу из контекста, что опыта работы с ORM у тебя ноль. ORM - это не визитная карточка БД. ORM - это всего лишь "синтаксический сахар". Которым удобно пользоваться для несложных вещей. Ну например, вывести табличку в гриде, или создать формочку для редактирования. Для тех кто не знает SQL. Для сложного отчета, ORM чтобы работать нужны ХП. А нет, вы еще забыли про представления. ;-) Когда все можно было бы сделать просто запросом. Для чего в ORM нужен нативный DbCommand и DbConnection. Вот как раз для таких случаев, когда ORM просто не хватает и писать нативный SQL. Я был бы не против, если бы ORM полностью соответствовала SQL, но это не возможно даже теоретически. Т.к. SQL ЯП более высокого уровня, чем ООП ЯП. Соответственно ORM который будет 100% соответствовать SQL просто будет SQL. Вообще работа с ORM мне чем то напоминает работу с xBase. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2013, 08:04 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
mad_nazgul, вы пытаетесь кого-то убедить, что ОРМ - это плохо? или сами себе задаете вопросы? если 1-е - то каждый сам для себя решает, надо ли ему ОРМ, если 2-е - возьмите и покурите какую-либо ОРМ, вопросы отпадут ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2013, 08:08 |
|
Какую ORM посоветуете?
|
|||
---|---|---|---|
#18+
mad_nazgulГоворит. Возвращаемый RecordSet всегда имеет типизированные поля. Нет вру, в Visual Basic по моему все ч/з Variant делалось. Далеко не только всё упирается в поля. Есть еще отношения один-ко-многим, многие-ко-многим и так далее. mad_nazgulНасчет ХП... Для каждой БД, нужно будет писать свою ХП. Т.о. вы жестко привязаны к конкретной БД. ;-) Как правило, "усредненный" проект содержит до 10% кода, который не решается средствами ORM. Этот код будет привязан к конкретной СУБД. Если нужно отмасштабироваться в разрезе смены хранилища, нам нужно переписать всего-лишь сиквел 10% кода. Для этого очень удобно подходит паттерн репозиторий или датасервис. Тут писал: http://codearticles.ru/articles/2155 Так же существует слабосвязность в проекте: http://codearticles.ru/articles/2301 Через которую можно элементарно отстыковывать логику работу с хранилищем и достыковывать новую. Всё это на ура решается с помощью ORM. mad_nazgulЭто подтверждает мои слова. Легкие вещи делаются легко, сложные никак. Ах да, у нас есть ХП! Вот только для каждой БД нужно писать свои ХП. Да еще помнить, знает ли наш ORM особенности вызова ХП в данной БД. ;-) Во-первых, хп писать не обязательно, можно хранить свой версионный код в своих репозиториях. Посмотри на ту же аксапту, ни одной хранимке, вся логика на сервере приложений, что и правильно. Во-вторых, я написал выше, даже если и есть хранимые процедуры, их количество минимально. Учить ORM ничему не надо, нужно использовать просто другой провайдер для подключения к другой БД. Все вызовы нативны. Посмотри тот же NHibernate, сколько он поддерживает БД. mad_nazgulORM - это не визитная карточка БД. ORM - это всего лишь "синтаксический сахар". Которым удобно пользоваться для несложных вещей. Ну например, вывести табличку в гриде, или создать формочку для редактирования. Для тех кто не знает SQL. Им удобно пользовать для любых вещей, и сложных и легких. Нужно просто иметь прямые руки и понимать, как можно гибко всё оборачивать данным механизмом. Вся работа с БД должна вестись через ORM и его прокси классы, которые пробрасываются через IDataService. Никаких проблем. И байдинг к гриду тут вообще не причем, смотри на вещи более абстрактно, а не формочками. mad_nazgulДля сложного отчета, ORM чтобы работать нужны ХП. А нет, вы еще забыли про представления. ;-) Когда все можно было бы сделать просто запросом. Для чего в ORM нужен нативный DbCommand и DbConnection. Вот как раз для таких случаев, когда ORM просто не хватает и писать нативный SQL. Выше написал - храним честный код в своих датасервисах, для отчетов пусть будет SqlReportDataService: IReportDataService. Даже если сменится БД, мы переписываем только этот сервис поставки на OracleReportDataService: IReportDataService. И все отчеты у нас продолжают работать без переписывания их логики. Нужно вставить какой-то фейк или протестировать юниты или модульность - вообще без проблем, подсовываем свой тестовый IReportDataService и репорт начинает рендериться по другой логике. Это как конструктор. mad_nazgulЯ был бы не против, если бы ORM полностью соответствовала SQL, но это не возможно даже теоретически. Т.к. SQL ЯП более высокого уровня, чем ООП ЯП. Соответственно ORM который будет 100% соответствовать SQL просто будет SQL. Вообще работа с ORM мне чем то напоминает работу с xBase. ORM полность соотвествует SQL текущего провайдера, ты просто не умеешь это готовить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2013, 09:33 |
|
|
start [/forum/topic.php?fid=33&fpage=17&tid=1547700]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 198ms |
0 / 0 |