|
|
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
При необходимости загрузить данные из БД в слое данных пишу функцию, возвращающую SqlDataReader или DataSet. Всегда делал так, пока не сказали что это неправильно. Слой данных якобы не должен возвращать эти объекты в приложение, а должен возвращать бизнес-объекты типа: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 15:05 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
а ты еще послушай,каких нито,преподов,которые читают программирование столь высокго уровня,а сами не писали ,чтото такого уровня. забей :) если бы тебе сказали,в чем суть правильного,тада была бы тема :) а тебе предложили еще один вариант из многих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 15:11 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_ScorpionОбъясните чем удобнее работать с такими объектами нежели со стандартными объектами ADO.NET? А вы какие-то неудобства испытываете что ли? Сравните: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. и Код: plaintext 1. 2. 3. 4. 5. 6. 7. Какой из этих вариантов наглядней, проще в понимании и в поддержке, разработке и в отлове ошибок, лучше в архитектурно-дизайнерском отношении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 15:15 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Начнём с простой задачи. Допустим мне надо загрузить даные пользователя. Делаю я это так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 15:31 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
хм... ну строчек кода одинаково в обоих случаях :) нельзя дать ответа где лучше. автор не говорил,что он работает с коллекциями какие то сущностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 15:34 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_ScorpionКак этоже самое сделать удобнее, используя бизнес-объекты? Используя, например, BLToolkit: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 16:46 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
AlexeiKнельзя дать ответа где лучше. Это вы сейчас серьезно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 16:46 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
да серьезно. вы просто уточняйте условия ,где это лучше.ну короче вопрос утопия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 17:47 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
AlexeiKда серьезно. вы просто уточняйте условия ,где это лучше.ну короче вопрос утопия. Не смешите. Когда в Codebehind'е ASP.NET-страниц творится то, что нам Dark_Scorpion показал, какие могут быть сомнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 17:52 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
да тут надо не забывать о стиле.можно он соло разработчик. ну примитивная структура в приведенном примере,просто примитивная структура. передать ее куда то ,да это хорошо. но в рамках его кода,это пустая трата времени в первую очередь головы.надо думать об этом. человеку думает. значит я буду общаться с httpcontext через структуру,а не на прямую как сейчас. вдруг та ,структура нигде больше не нужна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 18:00 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
НахлобучИспользуя, например, BLToolkit: Код: plaintext 1. 2. 3. 4. 5. 1) а что такое BLToolkit? 2) А можно посмотреть содержимое GetCategories()? Код: plaintext 4) Какую надостройку можно использовать над ADO.NET, чтобы более просто можно было работать с данными? Нашёл Rsdn.Framework.Data - только эта разработка 2003 года. Может за 5 лет что-то посвежее и удобнее сделали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 18:28 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_Scorpion 1) а что такое BLToolkit? Первый результат в гугле Dark_Scorpion 2) А можно посмотреть содержимое GetCategories()? Код: plaintext 1. 2. 3. 3) Допустим у меня в слое данных функция выдаёт не DataTable, а бизнес объект CategoryInfo. То встаёт вопрос: где объявляется класс бизнес-объекта - а) объявляется дважды: один раз в слое данных, а второй раз на *.aspx.cs страничке, на которой принимаются данные; б) или создаётся специальная библиотека (помойка), где объявляются всевозможные классы бизнес-объектов. Ведь если таблиц в БД 100+, то количество таких классов будет ещё больше. Первый вариант вообще работать не будет. В помойку ее может превратить только программист. У нас, например, в проекте в пространстве имен ***.ObjectModel.Business.Object уже 135 классов, и никаких неудобств не испытываем. Dark_Scorpion 4) Какую надостройку можно использовать над ADO.NET, чтобы более просто можно было работать с данными? Нашёл Rsdn.Framework.Data - только эта разработка 2003 года. Может за 5 лет что-то посвежее и удобнее сделали? NHibernate, BLToolkit, iBATIS.NET, SubSonic, Castle.ActiveRecord... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 18:45 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Rsdn.Framework.Data NHibernate BLToolkit iBATIS.NET SubSonic Castle.ActiveRecord Посоветуйте что из этого следует освоить и применять на практике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 19:26 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Rsdn.Framework.Data -- это уже "забытый" проект, его эволюционно-революционное развитие -- BLToolkit. Ознакомиться стоит. ActiveRecord и SubSonic основаны на NHibernate, так что можно изучить только NH и потом уже первые два пойдут гораздо проще. Ну а iBATIS мне никак не понравился, но посмотреть стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 19:53 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
НахлобучУ нас, например, в проекте в пространстве имен ***.ObjectModel.Business.Object уже 135 классов, и никаких неудобств не испытываем. а сколько таблиц в базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 21:31 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Castle.ActiveRecord является надстройкой над nHibernate , является реализацией паттерна ActiveRecord (активная запись). Сами классы получаются не POCO, но зато получается хорошая абстракция над некоторыми деталями nHibernate которые могут спугнуть разработчика начинающего использовать ORM. Dark_Scorpion Посоветуйте что из этого следует освоить и применять на практике? Посмотрите все. но для начала следует ознакомиться с темой, например если еще доступно то здесь есть ссылка на неплохой источник: http://www.sql.ru/forum/actualthread.aspx?tid=475182&pg=21&hl= Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 21:52 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
и вот еще какой вопрос. просле установки одной из этих приблуд к БД можно будет обращаться только через ее экземпляр/кластер/пофигу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 22:24 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe и вот еще какой вопрос. просле установки одной из этих приблуд к БД можно будет обращаться только через ее экземпляр/кластер/пофигу? как хотите так и обращайтесь. но вся фишка и состоит в том, чтобы абстрагироваться от БД. отныне вы работаете с неким репозиторием объектом, где эти объекты брать проблема "приблуды" Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 22:52 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Saотныне вы работаете с неким репозиторием объектом, где эти объекты брать проблема "приблуды" объекты кешируются или нет? как она узнает о том, что я руками удалил запись, которую она вчера выдернула из базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 23:09 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe объекты кешируются или нет? как она узнает о том, что я руками удалил запись, которую она вчера выдернула из базы? это уже специфический вопрос. технология более чем живая, поэтому вопросы кэширования и уж тем более банальных CRUD операций проработаны серьезно. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 23:22 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Saэто уже специфический вопрос. oh, i see... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 23:40 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
да есть ощущение,что у когото пыль в глазах :) со всеми этими надстройками утопическими. ну это мое мнение и оно исходит от того,что люди испльзуют эти надстройки,потому что в своих программах у них нету своего "движка". это такая ж утопия как typed dataset. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 09:45 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exeа сколько таблиц в базе? Около 110. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:23 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
AlexeiKда есть ощущение,что у когото пыль в глазах :) со всеми этими надстройками утопическими. ну это мое мнение и оно исходит от того,что люди испльзуют эти надстройки,потому что в своих программах у них нету своего "движка". это такая ж утопия как typed dataset. Чего сказать-то хотели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:24 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
НахлобучNHibernate, BLToolkit, iBATIS.NET, SubSonic, Castle.ActiveRecord... Может я не в теме, но почему LINQ все время забывают? Я сейчас на распутье, стоимт ли переходить с NHibernate на LINQ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:35 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч calc.exeа сколько таблиц в базе? Около 110. 135 классов из 110 таблиц. чудненько. если можно, вычтите из таблиц справочники и объясните разницу с количеством объектов. откуда появились бизнес -объекты, у которых нет identity в БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:46 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
DmitddЯ сейчас на распутье, стоимт ли переходить с NHibernate на LINQ Вот интересно мне, во что это вам выйдет. POCO-классы, используемые в NH, засорять всякими EntityRef<T>'ами и прочей специфичной для LINQ 2 SQL бурдой... Для NHibernate уже вовсю пишут IQueryable, так что есть шанс, что отказываться от него не придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:47 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe135 классов из 110 таблиц. чудненько. если можно, вычтите из таблиц справочники и объясните разницу с количеством объектов. откуда появились бизнес -объекты, у которых нет identity в БД? Вы бы прежде чем язвить подумали немного. Словосочетание "Table per Class Hierarchy" вам о чем-нибудь говорит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:49 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч Вы бы прежде чем язвить подумали немного. Словосочетание "Table per Class Hierarchy" вам о чем-нибудь говорит? говорит. разные сущности свалены в одну таблицу. больше вопросов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 12:00 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exeговорит. разные сущности свалены в одну таблицу. больше вопросов нет. Прелестно. Как у вас все радикально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 12:02 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч AlexeiKда есть ощущение,что у когото пыль в глазах :) со всеми этими надстройками утопическими. ну это мое мнение и оно исходит от того,что люди испльзуют эти надстройки,потому что в своих программах у них нету своего "движка". это такая ж утопия как typed dataset. Чего сказать-то хотели? про пыль в глазах я хотел сказать. пыль это ваши nhibernate и другие утопические надстройки. и бизнес объект :) это не любой код. надо это понимать. бизнес объект не относиться никак к ООП надстройкам и их внутренним объектам. они относяться к бизнессу. просто тот кто посоветовал тому человеку юзать бизнесс объекты в коде,не понял ,что это такое и запутал Dark_Scorpion а. и 1 ответ данные Dark_Scorpion был не правильным ответом.в этом примере лишь показано,как можно умело использовать ООП. автор,выложил сюда свое непонимание ,того что ему посоветовали.посоветовал человек далекий.раз скрестил все в вместе. так что о чем вести речь,в этом топике дальше для меня не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 12:02 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
AlexeiKпро пыль в глазах я хотел сказать. пыль это ваши nhibernate и другие утопические надстройки. Ну откройте тогда нам глаза уже; расскажите, что же не пыль. AlexeiK и бизнес объект :) это не любой код. надо это понимать. бизнес объект не относиться никак к ООП надстройкам и их внутренним объектам. они относяться к бизнессу. Вот отсюда поподробней. AlexeiK просто тот кто посоветовал тому человеку юзать бизнесс объекты в коде,не понял ,что это такое и запутал Dark_Scorpion а. и 1 ответ данные Dark_Scorpion был не правильным ответом.в этом примере лишь показано,как можно умело использовать ООП. автор,выложил сюда свое непонимание ,того что ему посоветовали.посоветовал человек далекий.раз скрестил все в вместе. так что о чем вести речь,в этом топике дальше для меня не понятно. Словосочетание "бизнес-объекты" действительно ничего по сути не выражает. Правильно будет говорить "объектная модель предметной области". Поскольку в правильно заданном вопросе содержится половина ответа, то спросив "а зачем использовать объектную модель предметной области, если можно обойтись датасетами и датаридерами и все делать с их помощью", товарищ Темный_Скорпион получил бы исчерпывающий ответ -- как здесь, так и в литературе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 12:07 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
НахлобучВот интересно мне, во что это вам выйдет. POCO-классы, используемые в NH, засорять всякими EntityRef<T>'ами и прочей специфичной для LINQ 2 SQL бурдой... Для NHibernate уже вовсю пишут IQueryable, так что есть шанс, что отказываться от него не придется. Опять я чего-то не понимаю. Кто мешает, используя LINQ, вынести маппинг в XML-файл? Кроме того, мне показалось, что и в NHibernate удобнее пользоваться атрибутами, а не файлами маппинга. Или я не о том? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 12:54 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Объясните чем удобнее работать с такими объектами нежели со стандартными объектами ADO.NET? Какое отношение имеют бизнес объекты и ADO.NET? Адо-Нет (или сраный LINQ) - это одно колесо, хоть и прорезиненное и с подшибником - благодаря нормальному уровню сервиса в SQL. А бизнес- объект - это автомобиль. Вот какое соотношение между этими понятиями. В самом самом простейшем и вырожденном случае - они совпадают. Бизнес обьекты: 1. это логика формирования этого РекордСета РАЗНАЯ в зависимости от параметров, которые выбрал юзер на форме - http://www.job57.narod.ru/asp2/23/index.htm 2. это обработка одинакового рекордсета Ado.NET приницпиально РАЗНЫМИ алгоритмами, меняющимися в зависимости от параметров, выбранных на форме - http://www.job57.narod.ru/asp2/24/index.htm настолько разными, что в данном случае они вынесены в отдельные сборки и эту логика вообще на этапе проэктирования системы неизвестна. Она будет сделана вообще позже - на этапе использования системы - уже самими юзерами 3. это сложные коллекции - набиваемые юзером на ходу тычками по форме - которые вообще никогда в базу не попадают - http://www.job57.narod.ru/asp2/2/index.htm 4. И многое-многое другое... Автомобили ведь разные бывают - гоночные, грузовые, пожарные... А колеса (LINQ или ADO.NET или SqlDataSource) - это лишь крошечный-крошечный обьект автомобиля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:08 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
sysadm2000 пшнх ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:14 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
А зачем использовать объектную модель предметной области, если можно обойтись датасетами и датаридерами и все делать с их помощью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:56 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
давайте без пшнх. короче,одно отдельно,другое тоже отдельно. не надо путаться средства для реализации бизнесс объектов с самими БО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:58 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_ScorpionА зачем использовать объектную модель предметной области, если можно обойтись датасетами и датаридерами и все делать с их помощью? когда глаза в пыли,то видны лишь укрупненные формы :) такие как NHibernate и другие большие надстройки :) Нахлобуч не принимай близко мое высказывание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 15:01 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_ScorpionА зачем использовать объектную модель предметной области, если можно обойтись датасетами и датаридерами и все делать с их помощью? ответ 2: твой вопрос можно так озвучить,а зачем использовать ООП,если у меня и так все инструменты рождены через ООП. хз че ответить. Нахлобуч,ответ выше,от меня,был не корректен. просто тут Dark_Scorpion опять мешает все в подряд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 15:05 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_ScorpionА зачем использовать объектную модель предметной области, если можно обойтись датасетами и датаридерами и все делать с их помощью? или ответ3: вот вам легко использовать ООП инструменты(датаридер и другие) для решения задач. представьте ,что есть человек который решает задачи чуть крупнее ваших,но за счет инструментов,которые вы дадите ему. вот из вашего стиля вытекает,что тот человек не получит от вас никаких объектов таких как датасет или датаридер. он будет писать все тоже самое ,что и вы,и добавлять свое.добавлять свое,потому что ваш код можно взять лишь через copy & paste ,а вот ООП инструментов из вашего кода не родишь. допустим вы поняли фишку :) и переписали свой код ,так чтобы он представлял набор ООП инструментов,для дяди ,который решает задачки чуть крупне ваших,тогда понимаете как ему будет просто? ему так же будет просто,как и вам юзать datareader & dataset ,а не писать всю подложку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 15:11 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_ScorpionА зачем использовать объектную модель предметной области, если можно обойтись датасетами и датаридерами и все делать с их помощью? чтобы вытащить бизнес-логику из БД на апп-сервер. потому что не умеют написать ее на sql. не слушайте их, забросайте их камнями )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 15:28 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Да, спор не получился. Пока все эти схемы маппинга и т.д. ВИДНЫ они особой реальной пользы не несут. Другое дело, если бы прогер там или кто еще, описывет предметную область на каком-тои языке моделирования и это описание автоматом и прозрачно трансформируются в код оптимально нацеленый на нижний уровень (ОС,СУБД,...). Пока этого нет, надо работать с каждым уровнем так, как это оптимально и проще для прогера, конечно если этот прогер сам себе хозяин при выборе средств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 19:46 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dmitdd НахлобучВот интересно мне, во что это вам выйдет. POCO-классы, используемые в NH, засорять всякими EntityRef<T>'ами и прочей специфичной для LINQ 2 SQL бурдой... Для NHibernate уже вовсю пишут IQueryable, так что есть шанс, что отказываться от него не придется. Опять я чего-то не понимаю. Кто мешает, используя LINQ, вынести маппинг в XML-файл? Кроме того, мне показалось, что и в NHibernate удобнее пользоваться атрибутами, а не файлами маппинга. Или я не о том? Нахлобуч, Вы соскочили с темы или не заметили? Интересно Ваше мнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 10:37 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
DmitddОпять я чего-то не понимаю. Кто мешает, используя LINQ, вынести маппинг в XML-файл? Кроме того, мне показалось, что и в NHibernate удобнее пользоваться атрибутами, а не файлами маппинга. Или я не о том? Да, проглядел. Вы действительно не о том. Сам по себе LINQ 2 SQL (да и тем более LINQ) -- это далеко на ORM, коим является NHibernate, и даже вместе с ADO.NET EF (или как там она нынче называется) до NH они не дотягивают. Посему имеет смысл использовать LINQ -- по вполне понятным причинам -- в качестве замены Criteria API и HQL. Подробней -- тут . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 10:56 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовПока все эти схемы маппинга и т.д. ВИДНЫ они особой реальной пользы не несут. Не понял мысли :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 10:58 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч Да, проглядел. Вы действительно не о том. Сам по себе LINQ 2 SQL (да и тем более LINQ) -- это далеко на ORM, коим является NHibernate, и даже вместе с ADO.NET EF (или как там она нынче называется) до NH они не дотягивают. Посему имеет смысл использовать LINQ -- по вполне понятным причинам -- в качестве замены Criteria API и HQL. Подробней -- тут . Ну это понятно. До ОРМ ему далеко. А вот мое мнение про POCO, что основной принцип "классы должны быть как можно проще" - не означает, что они не должны засоряться атрибутами, а означает, что никакой бизнес-логики, только описание класса. Согласитесь, что неудобно дергаться постоянно между классом и файлом маппинга. И следующий проект, который буду делать с NHibernate, буду маппинг прописывать прямо в классе с помощью атрибутов. Хотя вот тут боюсь ошибиться и буду признателен, если вовремя отговорите. А вот мои доводы в пользу LINQ: 1) придется менять работу, а я с ним не работал - минус при приеме 2) у меня на работе никто и не слышал про NHibernate, зато как появился LINQ, все стали говорить, какая крутая это и полезная вещь, а про хибернейт так и не хотят ничего слышать. Видно, что оба довода имеют одни корни - продукт толкается Microsoft, а потому его ну никак не проигнорировать и ему обеспечено блестящее будущее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 11:37 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dmitdd А вот мое мнение про POCO, что основной принцип "классы должны быть как можно проще" - не означает, что они не должны засоряться атрибутами, а означает, что никакой бизнес-логики, только описание класса. Согласитесь, что неудобно дергаться постоянно между классом и файлом маппинга. И следующий проект, который буду делать с NHibernate, буду маппинг прописывать прямо в классе с помощью атрибутов. Хотя вот тут боюсь ошибиться и буду признателен, если вовремя отговорите. Начнем с того, что вам вместе со сборкой с вашими теперь уже псевдо-POCO-классами придется тянуть сборку с определениями этих атрибутов. Во-вторых, отдельные файлы маппингов все же удобней -- не мешаются в одну кучу код и разметка. В-третьих, атрибутами не все можно описать. В-четвертых, я не знаю, как там обстоят дела с HQL-запросами. Их текст тоже в атрибуты запихивать? Dmitdd А вот мои доводы в пользу LINQ: От Линка я и не отговариваю -- наоборот, он прекрасно сосуществует с NHibernate. Пользуйтесь наздоровье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 11:42 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч Начнем с того, что вам вместе со сборкой с вашими теперь уже псевдо-POCO-классами придется тянуть сборку с определениями этих атрибутов. Во-вторых, отдельные файлы маппингов все же удобней -- не мешаются в одну кучу код и разметка. В-третьих, атрибутами не все можно описать. В-четвертых, я не знаю, как там обстоят дела с HQL-запросами. Их текст тоже в атрибуты запихивать? Здесь прям разрекламировали здесь и назвали xml файлы nasty. Мне и самому привычнее пользоваться отдельными файлами маппинга. Думал, что использование аттрибутов - это следующий шаг в прогрессе хибернэйта. Нахлобуч От Линка я и не отговариваю -- наоборот, он прекрасно сосуществует с NHibernate. Пользуйтесь наздоровье. Посему имеет смысл использовать LINQ -- по вполне понятным причинам -- в качестве замены Criteria API и HQL Можно маленький примерчик того, где есть смысл стыковать LINQ и NHibernate? Что-то до меня не дойдет, зачем заменять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 12:04 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dmitdd Можно маленький примерчик того, где есть смысл стыковать LINQ и NHibernate? Что-то до меня не дойдет, зачем заменять? Я ж дал ссылку. Например, так: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 12:16 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
и что, это добро преобразуется в SQL и зашлется таким образом в базу, или отфильтруется на клиенте? т.е. иначе говоря, товарищи уже написали свой клевый парсер дерева LINQ выражений для хибернейта, над которым в МС пухли пару лет? вообще хибернейт мне не очень нравится, этакий аццкий зверь из явы. Все знают, что это круто, но мало кто умеет им пользоваться. В результате гавна и тормозов обычно огрести очень легко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 15:33 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зы вообще хибернейт мне не очень нравится, этакий аццкий зверь из явы. Все знают, что это круто, но мало кто умеет им пользоваться. В результате гавна и тормозов обычно огрести очень легк вообще то я не был бы столь категоричен, тем более в таком форме.. тем более что вы вне темы. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 15:56 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Sa вообще то я не был бы столь категоричен, тем более в таком форме.. ко всему надо относиться с долей иронии и категоричности :) Sa тем более что вы вне темы. а на этом, пожалуйста, поподробней (с) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 18:23 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
а что подробнее... вы сами об этом сказали: зы вообще хибернейт мне не очень нравится, этакий аццкий зверь из явы. Все знают, что это круто, но мало кто умеет им пользоваться. из чего я делаю вывод, что вы не в тем по поводу хибернейт... поверьте умеют, пользуются и более чем успешно. и ничего там ацкого нет, все более чем вменяемо. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 19:03 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
>Dark_Scorpion > ...Слой данных якобы не должен ... Вы попробуйте посмотрить на бизнес-объект примерно так: 1. Бизнес-объект - это объект класса данных. В предельном случае, здесь нет методов. Но могут присутствовать данные в разных структурах - и DataSet, и списки, и массивы и пр. пр. 2. На уровне серверов приложений сей класс ассоциируется с некоторым множеством функциональных классов, методы которых позволяют "набить" объект данных информацией из сервера данных, и соответственно наоборот, возможно, предварительно обработав. "Набитый" объект данных сериализуется, сжимается (и возможно шифруется) и передается клиентскому приложению. Здесь информация объекта данных отображается в графических компонентах и возможно как-то обрабатывается. Потом сериализуется, сжимается (шифруется) и отправляется серверам приложений. Для случая обработки с объектом данных ассоциируется некоторое другое множество функциональных классов. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 19:07 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зыи что, это добро преобразуется в SQL и зашлется таким образом в базу, или отфильтруется на клиенте? Это вопрос конкретной реализации. зы т.е. иначе говоря, товарищи уже написали свой клевый парсер дерева LINQ выражений для хибернейта, над которым в МС пухли пару лет? Строго говоря, там нужен не парсер, а транслятор из Expression Tree в объекты Criteria API, что уже сильно проще. А пухли в МС надо всем Линком в целом, а не над этой отдельной частью. зы вообще хибернейт мне не очень нравится, этакий аццкий зверь из явы. Все знают, что это круто, но мало кто умеет им пользоваться. В результате гавна и тормозов обычно огрести очень легко. Позволю себе вспомнить хрестоматийную аллегорию про топор, которым можно и дом построить, и пальцы поотрубать . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 22:48 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
уважаемые, а у вас у всех такие же бизнес-объекты, как у Владимира из Редкино? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 22:58 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч Позволю себе вспомнить хрестоматийную аллегорию про топор, которым можно и дом построить, и пальцы поотрубать . нет, я не в коем случае не против хибернейта и ORM в целом :) я просто говорю о том, что если тут несут такую чушь по поводу бизнес-логики и про использование типизированных датасетов, советовать им хибернейт крайне опасно. Поверь, я видел много проектов с хибернейтом. Вопрос не в том что сложно сделать по первой всякие там маппинги и прочее, с этим обычно все справляются. Вопрос в последующей настройке, поддержке, а, главное, умелом использовании. Не знаю как в с .net его портом, но в яве по настройкам хибернейта, кеша и прочего, есть огромные доки, которые надо курить и курить, чего сидящие тут индивидуумы явно не умеют. Поэтому упаси боже давать им ссылку на этого монстра :) ибо глюков в написанном кривовато софте я видел немало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 00:04 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
+1 это я, я против хибернейта и ORM в целом :) предельный случай этой этого мракобесия - объектно-ориентированные СУБД, а они известно в какой караганде. и вот что пишет об этом их главный шаман: "В большинстве случаев, однако, объектно-ориентированные базы данных применения не находят, и основная причина такого положения вещей — риск. За реляционными СУБД стоят тщательно разработанные, хорошо знакомые и проверенные жизнью технологии [...] Если у вас нет возможности или желания воспользоваться объектно-ориентированной базой данных, то [...]" // М.Фаулер, Архитектура корпоративных программных приложений. логика железная: если вам не нравится это гуано, то давайте напишем еще одно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 16:33 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe логика железная: если вам не нравится это гуано, то давайте напишем еще одно и какой собственный вывод-то? лучше держать всю логику в хранимках или на сервере баловаться с ридерами и таблицами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 16:52 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
если это альтернативы, то конечно в хранимках. проблема в том, что иногда логика с трудом пишется на sql или выходит за его рамки. но настоящие мужики не будут из-за этого мапить ВСЮ базу на объекты :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 18:49 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exeесли это альтернативы, то конечно в хранимках. да, как говорится, п*здеть - не мешки ворочать поподробней пожалуйста, мы все хотим услышать умных и законченных идей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 20:05 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
нет, зы, баловаться с ридерами и таблицами не надо. я с трудом понимаю как именно и с какой целью ты это делаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 20:17 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
тяжелый случай... будем дальше ходить вокруг да около или расскажешь что-нибудь? чтоб немного просветлить твой разум, то подправлю тебя - не я делаю, а я всего-лишь предположил что это твое предпочтение :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 20:40 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зыбудем дальше ходить вокруг да около или расскажешь что-нибудь? видимо, нет. проблему огласите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 20:56 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe это я, я против хибернейта и ORM в целом :) предельный случай этой этого мракобесия - объектно-ориентированные СУБД, а они известно в какой караганде. и вот что пишет об этом их главный шаман: .... Вообщето давайте не будем смешивать ORM и OODBMS - потому что это разные вещи. ООСУБД действительно не прижились, одна из причин отсутствии готовых специалистов, другая наличие тех самых ORM. Концепция реляционной БД вполне устраивает Фаулера и меня тоже, вкупе с готовым ORM работать становится проще и интереснее. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 21:28 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
нет, вам показалось. я не смешивал ORM и OODBMS. я говорил о том, что ORM + RDBMS является жалким функциональным суррогатом OODBMS. а OODBMS находится там где находится из-за того, что шаманов как грязи, а теории нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 22:01 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exeнет, вам показалось. я не смешивал ORM и OODBMS. я говорил о том, что ORM + RDBMS является жалким функциональным суррогатом OODBMS. а OODBMS находится там где находится из-за того, что шаманов как грязи, а теории нет. Какая еще теория? Ну есть объекты, их можно классифицировать, могут быть межобъектные и межклассовые отношения и т.д. Що еще надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 22:10 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe функциональным суррогатом OODBMS. а OODBMS находится там где находится из-за того, что шаманов как грязи, а теории нет. ORM + реляционная БД = рабочий на 100 процентов набор, конечно не для всех типов задач. OODBMS = лично не пробовал, но судя по отзывам не приживается. В итоге, Рабочее != Нерабочее. Функционально и похожи, но исполнение разное. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 22:10 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовКакая еще теория? Ну есть объекты, их можно классифицировать, могут быть межобъектные и межклассовые отношения и т.д. Що еще надо? правильно. какая еще теория, что такое реляционная модель данных и кто такой Кодд. так и написаны все OODBMS :) SaВ итоге, Рабочее != Нерабочее. вы уж как-нибудь определитесь. или нерабочее, или дело в отсутствии специалистов по классификации объектов )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 22:51 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe Сахават ЮсифовКакая еще теория? Ну есть объекты, их можно классифицировать, могут быть межобъектные и межклассовые отношения и т.д. Що еще надо? правильно. какая еще теория, что такое реляционная модель данных и кто такой Кодд. так и написаны все OODBMS :) SaВ итоге, Рабочее != Нерабочее. вы уж как-нибудь определитесь. или нерабочее, или дело в отсутствии специалистов по классификации объектов )) РМ и Кодд такая же туфта как и ОО... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 22:58 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов РМ и Кодд такая же туфта как и ОО... Вас не поймут На Маркса-Энгельса-Ленина-Сталина замахнулись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 23:31 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe вы уж как-нибудь определитесь. или нерабочее, или дело в отсутствии специалистов по классификации объектов )) брр.... Резюме: 1) выше уже написано мое ИМХО в виде двух факторов почему OODBMS не прижилась/не приживается => нерабочее. 2) Говорить что OODBMS = RDBMS + ORM некорректно. 3) Fowler пропагандирует подход Domain Driven Design в качестве СУБД рассматривается РСУБД, + ORM для Domain Model. Поэтому с его стороны противоречий тоже никаких нет. Итак, тему OODBMS - как пример неудачной технологии с попыткой примешать сюда до кучи ORM, можно больше не затрагивать Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 00:04 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
SaГоворить что OODBMS = RDBMS + ORM некорректно. кажеццо у меня вместо равно написано " жалкий функциональный суррогат ", а у автора вот что: Если у вас нет возможности или желания воспользоваться объектно-ориентированной базой данных, то, делая ставку на модель предметной области, вы должны серьезно изучить варианты приобретения инструментов отображения объектов в реляционные структуры. вы невнимательны, будьте внимательны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 00:32 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe SaГоворить что OODBMS = RDBMS + ORM некорректно. кажеццо у меня вместо равно написано " жалкий функциональный суррогат ", а у автора вот что: Если у вас нет возможности или желания воспользоваться объектно-ориентированной базой данных, то, делая ставку на модель предметной области, вы должны серьезно изучить варианты приобретения инструментов отображения объектов в реляционные структуры. вы невнимательны, будьте внимательны да,просто движков нету. поэтому всякие утопические надстройки юзают. прям всех тут вижу,задевает это утопическое направление. видать многие погрязли в нем . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 10:25 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
calc.exe вы невнимательны, будьте внимательны хорошо пусть будет так. смысла зарубаться за буковки не вижу. свое мнение по поводу OODBMS я высказал. ваша точка зрения тоже понятна. по поводу высказывания Фаулера к чему оно относится и кто спорит с ним? Я тоже считаю что надо стараться использовать ORM, более того, для .NET и Java приобретать ORM уже не нужно , так как достаточно бесплатных. P.S. одно время я не рассматривал возможность приобретения готовых ORM, а делал, в том числе с использованием книги Фаулера - PoEAA, собственный. сейчас считаю что зря потратил время тогда. Хотя то решение работает до сих пор. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 10:30 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Вобщем, насколько я понял есть следующая альтернатива: а) Изучить SQL и делать всю логику в хранимках + DataTable + DataReader б) изучить ряд смежных технологий (nhibernate, linq…), построить объектную модель для всей БД + сделать для неё маппинг Так понимаю большинство участников дискуссии поддерживают второй способ. Но я не понимаю чем он лучше первого. После того как объектная модель построена, появляется возможность следующим образом работать с данными: Код: plaintext 1. 2. 3. 4. 5. AlexeiKвот вам легко использовать ООП инструменты(датаридер и другие) для решения задач. представьте ,что есть человек который решает задачи чуть крупнее ваших,но за счет инструментов,которые вы дадите ему. вот из вашего стиля вытекает,что тот человек не получит от вас никаких объектов таких как датасет или датаридер. он будет писать все тоже самое ,что и вы,и добавлять свое.добавлять свое,потому что ваш код можно взять лишь через copy & paste ,а вот ООП инструментов из вашего кода не родишь. Для каждой сущности я разрабатываю класс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Один раз разработав такой класс – его может использовать любой. Также в этих методах реализован механизм кэширования. Всё через DataTable, DataReader + хранимки 2) В чём ущербность моего подхода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 11:01 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_Scorpionа) Изучить SQL и делать всю логику в хранимках + DataTable + DataReader Вы вспотеете писать на T-SQL (или PL/SQL) сложную логику. Плюс поимеете проблемы с версионностью. Плюс банально неудобно -- нет такой поддержки IDE, как для того же C#. Dark_Scorpion 1) Какой в этом плюс? Тоже самое можно было написать и на обычном SQL который все знают. Да хотя мы compile-time проверки уже многого стоят. И все вышеперечисленные причины. Dark_Scorpion Для каждой сущности я разрабатываю класс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Фигня, а не класс. Объяснить или сами справитесь? Dark_Scorpion Также в этих методах реализован механизм кэширования. Вот за такое убивать на месте. Не должен ничего этот класс знать о кешировании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 11:08 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_Scorpion есть еще вариант.подумать головой,а не брать не пойми что. вариант своего движка. ведь 1 и 2 пункты:) это просто надстройки над данными. они не решают задачу бизнесс объектов.в этом и есть ньанс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 11:21 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч Вы вспотеете писать на T-SQL (или PL/SQL) сложную логику ту логику, которую уж очень сложно сделать на SQL пишу в web-приложении, работая с DataTable. Хотя так полагаю, что если логика сложна и на SQL её проблемно написать, то при использовании объектной модели БД эта задача также решается с потугами. НахлобучФигня, а не класс. Объяснить или сами справитесь? Объясните. НахлобучВот за такое убивать на месте. Не должен ничего этот класс знать о кешировании. А где реализовывать логику кэширования как не здесь? Если в кэше есть объект, то метод user_list достанет его из кэша и не полезет в БД. А допустим метод user_update почистит кэш, т.к. данные были изменены. AlexeiK есть еще вариант.подумать головой,а не брать не пойми что. вариант своего движка. ведь 1 и 2 пункты:) это просто надстройки над данными. они не решают задачу бизнесс объектов.в этом и есть ньанс. я использую первый пункт, это вариант моего «движка», который как раз и реализует надстройку над данными. Я не говорю что мой способ лучше. Я хочу понять чем он хуже, и имеет ли мне смысл полностью менять стиль проектирования web-приложений переходя на новые технологии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 12:27 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
>Dark_Scorpion >2) В чём ущербность моего подхода? Да нет здесь никакой ущербности. Локальная база данных (DataSet) это один из представителей бизнес-объектов. Ничем не хуже и ничем не лучше. Но это только данные. Если для Ваших целей этого достаточно (Вы их на клиенте только отображаете) и ладно. Если нет, добавте функционал в виде множеста функциональных классов с методами. Какой функционал? Определяется задачей. Со строками таблиц DataSet можно работать как с массивом. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 12:27 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
>Сахават Юсифов >РМ и Кодд такая же туфта как и ОО... Несколько резковато. Но если посмотреть с другой стороны: Допустим, что каждая запись имеет суррогатный ключ (например Guid). Этот ключ можно рассматривать как адрес записи в некотором пространстве. Тогда строка таблицы не более как struct или ArrayList или что-то подобное. А с этими структурами работаем уже давно, не вспоминая ни самого Кодда, ни его заповедей. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 12:39 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_Scorpion ту логику, которую уж очень сложно сделать на SQL пишу в web-приложении, работая с DataTable. А как же тогда ваше высказывание насчет "Изучить SQL и делать всю логику в хранимках + DataTable + DataReader"? Dark_Scorpion Хотя так полагаю, что если логика сложна и на SQL её проблемно написать, то при использовании объектной модели БД эта задача также решается с потугами. Очень сильно ошибаетесь. Dark_Scorpion Объясните. А где реализовывать логику кэширования как не здесь? Если в кэше есть объект, то метод user_list достанет его из кэша и не полезет в БД. А допустим метод user_update почистит кэш, т.к. данные были изменены. Если позволите, совмещу два ваши предложения. Во-первых, это класс не для сущности, а для доступа к данным, что совсем не одно и то же. Вот если бы вы сейчас написали тут класс User со свойствами ID, Name, Enabled, Birthdaty и т.д. -- было бы другое дело. Во-вторых, класс для доступа к данным, возвращающий DataTable -- очень и очень плохо (говорю про частные случаи, при слабоструктурированных данных может сойти как самый крайний вариант). В-третьих, ваше это кэширование. Это так называемый Cross-Cutting Concern, и реализация кэширования у вас будет ровным слоем размазана по всем подобным классам (в базовый класс тоже много не вынесешь). Правильно будет использовать, например, AOP и управлять кэшированием декларативно (атрибутами, которые навешиваются на методы). В-четвертых, (но это мелочь) стиль именования не самый лучший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 12:42 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Dark_Scorpion 1.То что теперь ты знаешь о всях надстройках,являеться не правильным ответом на твой вопрос.то есть просто не про то. 2.вопрос темы " Зачем нужны бизнес-объекты? ",а ты потом задал другой вопрос При необходимости загрузить данные из БД в слое данных пишу функцию, возвращающую SqlDataReader или DataSet. Всегда делал так, пока не сказали что это неправильно. твой вопрос с вопросом темы нигде не коррелирует. и вот от этих не правильных вопросов,ты узнал о nhibernate и других надстройках. так что че тут... и каждый последующий свой пост,ты смешиваешь всю кашу еще больше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 12:44 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Нахлобуч В-третьих, ваше это кэширование. Это так называемый Cross-Cutting Concern, и реализация кэширования у вас будет ровным слоем размазана по всем подобным классам (в базовый класс тоже много не вынесешь). Правильно будет использовать, например, AOP и управлять кэшированием декларативно (атрибутами, которые навешиваются на методы). пока все тут спорят на пустом месте, меня вчера замучал один вопрос. Хибернейт я все-же не хочу, ибо громоздко для текущих нужд, плюс хочу потренироваться в LINQ. Есть очень старый проект, превратившийся со временем в заднее место, который я хочу немного переписать изнутри под dlinq, и вот собственно какая мысль меня мучает: для нормальной работы просто необходимо иметь кеш второго уровня, соответственно встает вопрос о его реализации. DataContext сам по себе уже реализует простейший кеш, но каждый экземпляр контекста самостоятелен, а значит во избежание рассинхронизации с базой и прочих глюков, по моим выводам контекст должен жить исключительно на уровне одного реквеста. Соответственно нормальный кеш нужно реализовывать отдельно поверх dlinq. Известны ли вам паттерны или способы реализации (или готовые реализации), чтобы не изобретать велосипед и не писать свой хибернейт? у последнего хоть и очень хороший кеш, в котором я вижу главный плюс, но связываться с этим зверем все-же пока не хочется по различным соображениям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 13:03 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зы Известны ли вам паттерны или способы реализации (или готовые реализации), чтобы не изобретать велосипед и не писать свой хибернейт? у последнего хоть и очень хороший кеш, в котором я вижу главный плюс, но связываться с этим зверем все-же пока не хочется по различным соображениям. Посмотрите тогда на Castle ActiveRecord. достаточно граммотная обертка над хибернейтом. в тоже время получите хороший кэш второго уровня. А паттерн так и называется ActiveRecord описан все в той же книжке Фаулера PoEAA. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 13:52 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
нет, мне не надо обертку над хибернейтом, мне надо кеширующую обертку над dlinq-ом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 14:04 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зы нет, мне не надо обертку над хибернейтом, мне надо кеширующую обертку над dlinq-ом :) это фобия такая что ли? :-) перед хибернейтом ))) Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 14:15 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
ну я же написал выше, во-первых не хочу потому что не хочу, во-вторых хочу потренироваться в dlinq. Начал с поиска костылей для кеширования сущностей. Суть в том что, как я сейчас представляю, мне придется либо писать полностью обертку вокруг dlinq, чтобы управлять выборками и тем что лежит в кеше, либо делать это в логике выше, чего я особенно не хочу, ибо неверно. хм, надо кстати подумать в сторону наследования от datacontext, возможно все получится не так уж плохо, как я описал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 14:27 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зы у я же написал выше, во-первых не хочу потому что не хочу, во-вторых хочу потренироваться в dlinq ok :-) отписывайте результаты здесь. может быть чем и поможем тут вам. Код: plaintext Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 14:51 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
>Sa >отписывайте результаты здесь ... Очень даже было бы хорошо. Помочь правда вряд ли чем смогу - знаний не хватает, но поучиться с большим желанием. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 15:13 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Cache с исходниками есть в Microsoft EntLib. А начем основываются утверждения, что кэш обязателен? Мне доводилось учавствовать в разработке биллинговой системы, которая была сертифицированна по тем временам на 2мил пользователей, и там никакого кэша не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 17:33 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
SeVaCache с исходниками есть в Microsoft EntLib. конечно спасибо, но такой детский уровень мне не нужен. Я озадачился прозрачным кешем аля хибернейт, но для длинка. SeVa А начем основываются утверждения, что кэш обязателен? на здравом смысле и экономии аппаратных ресурсов SeVa Мне доводилось учавствовать в разработке биллинговой системы, которая была сертифицированна по тем временам на 2мил пользователей, и там никакого кэша не было. не все системы одинаковые на вкус и цвет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 17:44 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Успехов.Там глядишь и Microsoft прикупит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 17:53 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зы[quot SeVa] А начем основываются утверждения, что кэш обязателен? на здравом смысле и экономии аппаратных ресурсов [quot SeVa] ну в плане экономии аппаратных ресурсов ситуация как раз обратная будет в случае реализации кеша. На времени отклика от БД может еще и сэкономите, на всем остальном - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 22:39 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Роман Дынник ну в плане экономии аппаратных ресурсов ситуация как раз обратная будет в случае реализации кеша. На времени отклика от БД может еще и сэкономите, на всем остальном - нет. у вас реальный опыт или просто мыслите в слух? что дешевле, память или более мощный БД сервер? что эффективней, обратиться к базе 30 раз в процессе открытия страницы и закешировать результат (контент, ресурсы), а позже ни разу не обращаться, или каждый раз по 30? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 23:34 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
зыу вас реальный опыт или просто мыслите в слух? что дешевле, память или более мощный БД сервер? что эффективней, обратиться к базе 30 раз в процессе открытия страницы и закешировать результат (контент, ресурсы), а позже ни разу не обращаться, или каждый раз по 30? Реальный. Любой кеш требует дополнительной памяти, и чем хуже управляемый этот кеш - тем больше памяти и проблем с черезмерным ее расходованием. Или память не аппартный ресурс? ... При использовании пуллинга, время на открытие соединения мизерно, все дальнейшее зависит от реализации кеша: хранилища (файл, память, БД), управляемости (срок жизни объектов), величины коллекций и их кол-ва (одна коллекция на все классы или одна на каждый), а также от размера данных в БД и насколько эффективно реализовано их хранение. (прямой запрос по секционированной вьюхе может выполниться на порядок быстрее, чем поиск в перегруженном кеше). Фаулер также не столь категоричен по поводу использованию кеша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 07:02 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Роман ДынникРеальный. Любой кеш требует дополнительной памяти, и чем хуже управляемый этот кеш - тем больше памяти и проблем с черезмерным ее расходованием. Или память не аппартный ресурс? Сравнили, пардон, попу с пальцем. Вменяемый сервер, на который можно взгромоздить MSSQL, стоит несколько тысяч уе. За такие деньги вы обложите веб-сервер плашками с памятью по самые гланды, да еще и останется. И с учетом того что вот это: Роман Дынник При использовании пуллинга, время на открытие соединения мизерно, все дальнейшее зависит от реализации кеша: хранилища (файл, память, БД), управляемости (срок жизни объектов), величины коллекций и их кол-ва (одна коллекция на все классы или одна на каждый), а также от размера данных в БД и насколько эффективно реализовано их хранение. (прямой запрос по секционированной вьюхе может выполниться на порядок быстрее, чем поиск в перегруженном кеше). очень сильно далеко от правды (опять же -- сравните время, необходимое на открытие соединения, запрос к СУБД по сети, отработку запроса на стороне сервера и передачу результатов по той же сети со временем доступа к памяти; разница будет на порядки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 10:03 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Я свои примеры не могу привести, но те байки по поводу проблем даже на кластерных решениях и далеко недешевых серверах, которые я слышал по поводу AOS (app-сервер использующий кеш) в Axapta, все таки заставляют меня взглянуть на мир по-другому и не гнаться за модой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 10:43 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Роман ДынникЯ свои примеры не могу привести, но те байки по поводу проблем даже на кластерных решениях и далеко недешевых серверах, которые я слышал по поводу AOS (app-сервер использующий кеш) в Axapta, все таки заставляют меня взглянуть на мир по-другому и не гнаться за модой. А говорите, что "реальный опыт". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 10:58 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Роман ДынникЯ свои примеры не могу привести, но те байки по поводу проблем даже на кластерных решениях и далеко недешевых серверах, которые я слышал по поводу AOS (app-сервер использующий кеш) в Axapta, все таки заставляют меня взглянуть на мир по-другому и не гнаться за модой. что значит "даже на кластерных"? кластерные технологии уже ниже плинтуса что-ли в вашем "опыте"? для веб-ферм существуют другие алгоритмы кеширования, репликация и т.п.. Тот же хибернейт это поддерживает через различные реализации кеша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 11:20 |
|
||
|
Зачем нужны бизнес-объекты?
|
|||
|---|---|---|---|
|
#18+
Sa зы у я же написал выше, во-первых не хочу потому что не хочу, во-вторых хочу потренироваться в dlinq ok :-) отписывайте результаты здесь. может быть чем и поможем тут вам. поковырялся рефлектором в исходниках, конечно по первой мозг сломать там можно. Суть примерно такая - можно провести грубую DataContext с хибернейтовской сессией, т.е. кеш первого уровня. Чтобы подсунуться под все это безобразие, можно написать свой провайдер и обернуть им стандартный SqlProvider, траслейтить дерево выражений в собственные критерии и по ним пробовать реализовать умный кеш (можно стырить это с хибернейта, в принципе), а что не нашлось - просить у реального провайдера. Я уже даже почти обрадовался этой мысли, пока не понял, что у IProvider стоит словечко internal.... что есть очень обидно.. как-то они подло и заранее заткнули все дырки... декомпилировать и пересобирать всю сборку system.data.linq как-то не хочется :) так что прямой способ с легкой кровью с разбегу не вышел, придется думать дальше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 11:42 |
|
||
|
|

start [/forum/topic.php?all=1&fid=17&tid=1352450]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
119ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 441ms |

| 0 / 0 |
