Re: ORM CoolStorage.NET
От: Aviator  
Дата: 16.08.07 06:05
Оценка: +1 :)
Здравствуйте, Светлояр, Вы писали:

С>Рекомендую ознакомиться с очень простой ORM CoolStorage.NET.


В 90х любой настоящий программер должен был написать свою оконную систему и программу для бухучёта. А сейчас видимо каждый настоящий программер должен написать свой ORM .
Re[4]: ORM CoolStorage.NET
От: Светлояр Беларусь  
Дата: 02.08.07 17:41
Оценка: 6 (1)
Здравствуйте, Igor Trofimov, Вы писали:

С>>Пох. Главное, что она своё дело делает и очень удобна в тех местах, где не удобен XPO.

iT>Позиция, пожалуй, правильная А можно подробнее об этих местах?


Пока так.
Re[7]: ORM CoolStorage.NET
От: TK Лес кывт.рф
Дата: 16.08.07 06:15
Оценка: 1 (1)
Здравствуйте, Светлояр, Вы писали:

С>Смотрел, имхо, писанины будет больше.


А если через ActiveRecord?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[5]: ORM CoolStorage.NET
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 02.08.07 18:11
Оценка: +1
Здравствуйте, Светлояр, Вы писали:

С>Пока так.


NHibernate щупали?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
HgLab: Mercurial Server and Repository Management for Windows
Re[6]: ORM CoolStorage.NET
От: Аноним  
Дата: 02.08.07 20:41
Оценка: +1
Здравствуйте, Igor Trofimov, Вы писали:

С>>

iT>Остальное оценить сложнее, но первое уже говорит о том, что XPO — это "два", если конечно дело обстоит так, как ты говоришь.

iT>Я что-то был о них лучшего мнения.

iT>Тут тебе правильно советуют посмотреть на NHibernate — все-таки это современная классика ORM.


От себя добавлю про XPO, так как поработал некоторое время:

— нет поддержки хранимок и возможности выполнения сложных запросов (для этого приходилось вытаскивать сначала ID объектов простым DataReader — ом, потом лишь делать select через язык запросов XPO, по вытащенным ранее идентификаторам)
— нет версионности, даже простейшей как в DataRow — т.е. узнать, какой объект — New, Unchanged, Modified — это у них идет в разрез с их unit of work -ами и откатами. Я для этих целей писал базовый класс, в котором перехватывал событие изменения объекта и выставлял вручную состояние (о UOW пришлось забыть)
-1 : 1 (уже писали выше) вообще лажа, в БД для этого должна быть ссылка (FK) в 2-х таблицах друг на друга. Реализовал через private коллекцию с одним элементом
— нет возможности делать case insensitive запросы, т.е. везде в запросах XPO ставит имена колонок в кавычках, а ставить Persistent атрибут каждому полю и класу, то еще удовольствие Для изменения этого поведения нужно писать наследника их провайдера
— XPO не закрывает отчего-то соединение, после выполнения select запроса. Это приводило к тому, что при работе с Oracle вываливалась ошибка, если долго не делать никаких запросов к БД, а потом запросить данные
— нет возможности сделать Undo/Redo. Я так понял для этих целей у них механизм UOW, но это этогда получится одна большая транзакция на сеанс работы
— Persistent классы не ходят через веб-сервисы, т.е. не сериализуются, что в общем-то логично, так как каждый объект должен быть привязан к сессии. Через remoting вроде работает
— INotifyPropertyChanged прикрутили в последней версии
— Кастомные классы не отнаследованные от XPOBaseObject не сериализуются в БД, я так и не смог заставить сохраняться свои классы — летели непонятные исключения о NonSession конструкторе или что-то вроде того (хотя делал как и написано в документации, правда давно с этим возился, может уже пофиксили )
— ну и много чего еще по мелочи

Такое ощущение, что писали XPO для внутренних нужд, а потом решили выложить как коммерческий продукт, а для этого нужен существенный рефакторинг. Суппорт у них, как написали в форуме .NET GUI работает иногда по принципу — моя твоя непонимай.

Существенный плюс — XPO отлично ладит с контролами от DXpress, что в общем-то понятно.

В общем работать можно, но после 1,2 проектов с небольшим запасом велосипедов
ORM CoolStorage.NET
От: Светлояр Беларусь  
Дата: 29.07.07 15:59
Оценка:
Рекомендую ознакомиться с очень простой ORM CoolStorage.NET.


Использую у себя на сайте — жутко понравилась В профессиональной деятельности использую XPO от Devexpress, должен сказать, что CoolStorage.NET ей неплохой конкурент (да и халявный).
Re: ORM CoolStorage.NET
От: asleep  
Дата: 30.07.07 18:30
Оценка:
Как говорится, ничего личного, но при поверхностном взгляде на исходники видно как будто студенческую поделку.
Re[2]: ORM CoolStorage.NET
От: Светлояр Беларусь  
Дата: 30.07.07 20:39
Оценка:
Здравствуйте, asleep, Вы писали:

A>Как говорится, ничего личного, но при поверхностном взгляде на исходники видно как будто студенческую поделку.


Пох. Главное, что она своё дело делает и очень удобна в тех местах, где не удобен XPO.
Re[3]: ORM CoolStorage.NET
От: Igor Trofimov  
Дата: 31.07.07 17:17
Оценка:
С>Пох. Главное, что она своё дело делает и очень удобна в тех местах, где не удобен XPO.

Позиция, пожалуй, правильная А можно подробнее об этих местах?
Re[4]: ORM CoolStorage.NET
От: Светлояр Беларусь  
Дата: 31.07.07 17:35
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

iT>Позиция, пожалуй, правильная А можно подробнее об этих местах?

Пуф... можно я их вспомню и покажу? Буквально пару деньков. Сейчас с другим проектом вожусь.
Re[5]: ORM CoolStorage.NET
От: Igor Trofimov  
Дата: 02.08.07 18:42
Оценка:
С>
Остальное оценить сложнее, но первое уже говорит о том, что XPO — это "два", если конечно дело обстоит так, как ты говоришь.
Я что-то был о них лучшего мнения.

Тут тебе правильно советуют посмотреть на NHibernate — все-таки это современная классика ORM.
Re[6]: ORM CoolStorage.NET
От: Светлояр Беларусь  
Дата: 02.08.07 22:30
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

С>>Пока так.

Н>NHibernate щупали?

Смотрел, имхо, писанины будет больше.
Re[5]: ORM CoolStorage.NET
От: FixBo  
Дата: 15.08.07 19:43
Оценка:
Здравствуйте, Светлояр, Вы писали:

С>
  • В БД появляются дополнительные таблицы (как минимум две) для хранения информациии о используемых Persistent-объектах. И почти перед каждым селектом XPO трахает базу запросами о запрашиваемых типах, да ещё и join'ит их с другими таблицами;

    Во первых таблица всего одна, необхдимая для загрузки типов которые не подняты в текущем домене, А структура бд, при нормальном дизайне прилаги, запрашивается либо один либо ноль раз (читайте мануалы).

    С>
  • Оверхед из XPO'шных библиотек достаточно большой для небольших приложений или сайтов (для v7.2 => 1,5 мб), CoolStorage весит около 150 кб (но, имхо, даже этого функционала вполне достаточно, чтобы написать большинство приложений, которым дозволено работать с ORM);

    По моим подсчетам 1.2 метра, а если начать количество фич ставнивать то CoolStorage явно не в плюсе.

    С>
  • Реализация отношения 1:1 в CoolStorage несколько удобнее, чем в XPO (кому интересно,
    http://www.devexpress.com/Help/Content.aspx?help=XPO&amp;document=CustomDocument2055.htm );

    Если честно — это не разу в жизни не понадобилось...

    С>
  • XPO — вещь платная

    Здесь уж не поспоришь, но наличие суппорта...
  • Re[8]: ORM CoolStorage.NET
    От: Светлояр Беларусь  
    Дата: 16.08.07 09:08
    Оценка:
    Здравствуйте, TK, Вы писали:

    С>>Смотрел, имхо, писанины будет больше.

    TK>А если через ActiveRecord?

    Вот, уже писанины больше
    Re[6]: ORM CoolStorage.NET
    От: Светлояр Беларусь  
    Дата: 16.08.07 09:13
    Оценка:
    Здравствуйте, FixBo, Вы писали:

    FB>Во первых таблица всего одна, необхдимая для загрузки типов которые не подняты в текущем домене, А структура бд, при нормальном дизайне прилаги, запрашивается либо один либо ноль раз (читайте мануалы).


    Ок, разберёмся.

    FB>По моим подсчетам 1.2 метра, а если начать количество фич ставнивать то CoolStorage явно не в плюсе.


    Да, только вопрос в надобности этих фич.

    С>>
  • XPO — вещь платная
    FB>Здесь уж не поспоришь, но наличие суппорта...
    Имхо, для тех проектов где ORM можно использовать он не так уж и часто необходим.
  • Re[2]: ORM CoolStorage.NET
    От: Светлояр Беларусь  
    Дата: 16.08.07 09:16
    Оценка:
    Здравствуйте, Aviator, Вы писали:

    A>В 90х любой настоящий программер должен был написать свою оконную систему и программу для бухучёта. А сейчас видимо каждый настоящий программер должен написать свой ORM .

    Зря смеётесь. Из всего, что перелопатил остановился на работе только с двумя XPO и CoolStorage.
    Re[8]: ORM CoolStorage.NET
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 16.08.07 09:18
    Оценка:
    Здравствуйте, TK, Вы писали:

    TK>А если через ActiveRecord?


    Ентот, что ли?
    ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[9]: ORM CoolStorage.NET
    От: TK Лес кывт.рф
    Дата: 16.08.07 09:20
    Оценка:
    Здравствуйте, Нахлобуч, Вы писали:

    TK>>А если через ActiveRecord?

    Н>Ентот, что ли?

    А есть другие?
    Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
    Re[10]: ORM CoolStorage.NET
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 16.08.07 09:26
    Оценка:
    Здравствуйте, TK, Вы писали:

    TK>А есть другие?


    Знаю как миниум еще SubSonic и LLBLGen
    ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
    HgLab: Mercurial Server and Repository Management for Windows
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.