|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehowiscrafm, имеете ввиду что напишете: buttonOnclick() { myfunction() } и рядышком в этом же файле myfunction() {...} ? не совсем. Есть процедуры/функции бизнес-логики. Для связи их запуска с внешними событиями есть Акции. У контролов, к которым относится та же кнопка, если привязка на акцию. Т.е., когда вы разрабатываете логику, то вам фиолетово на то, кто ее вызовет, кнопка или еще какое-то событие, но логика всегда одна. Конечно Делфи провоцирует щелкнуть мышкой на OnClick и настрочить там этот код, но это не более чем провокация, которая очень полезна для минутных приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:06 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehowiscrafm, И еще, попутно вопрос, если например вам надо в зависимости от той или иной логики - кнопку задизейблить, вы где это напишете? в логике естественно или в "обновляторе" акций ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:08 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
пишешь бизнес-логику в одном слое на сервере приложений. досуп к бд через адо.нет или орм (ентити, хибернейт). но между слоем бизнес-логики и орм/бд напиши DAL слой, чтоб изолировать слой BLL от используемого механизма доступа к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:16 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
и еще, LINQ to SQL это вчерашний день, нужно юзать LINQ to Entities ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:21 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
alneoи еще, LINQ to SQL это вчерашний день, нужно юзать LINQ to Entities завтра оно тоже станет вчерашним. ТС задолбается переписывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:31 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
не, они оставили тока ради совместимости обратной линк ту сиквел, будущее за ентити... просто майкрософт как всегда сделает подобные технологии, а потом поддерживает этот зоопарк. но суть не в этом. я за то чтобы уровень бизнес-логики не заисел от способа получения данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:36 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
alneoно суть не в этом. я за то чтобы уровень бизнес-логики не заисел от способа получения данных. "а я за коммунизм и чтобы не было бедных". Ещё за ООБД, который обещают вторую 1000 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 17:42 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
Petro123alneoно суть не в этом. я за то чтобы уровень бизнес-логики не заисел от способа получения данных. "а я за коммунизм и чтобы не было бедных". Если подобное для Delphi - коммунизм, то он уже давно наступил в других средах программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 18:56 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SeVa, никогда себе не позволял принижать любой ЯП. Windows Must Die ? ?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 21:27 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
да ладно вам.. не путайте архитектуру приложения и язык программирования, при помощи которого оно реализуется. Нужен DAL отделенный от BLL - делайте так. Какая разница на каком языке писать текст для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 21:42 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
Наверное все-таки буду использовать Transaction Script (большое спасибо за обсуждение) Хотя часть функционала будет возложена на NHibernate. Есть еще другой не мение интересный вопрос! Так как база очень большого размера, набор данных, полученный в результате запроса из СПО будет транслироваться в локальную БД, а СПО в дальнейшем будет работать с этими данными. В связи с тем что одновременно могут работать несколько операторов возникает ВОПРОС: Каким образом лучше разграничить деятельность пользователей (чтобы текущий пользователь работал непосредственно со своим набором данных)?????? Самому в голову приходят следующие мысли: 1. Создавать экземпляр БД для каждого пользователя Возникает вопрос как создать сессию работы с экземпляром? Т.е. автоматическое очищение таблиц как при обычном, так и аварийном выходе из системы, создание и уничтожение экземпляров тоже будет занимать время! 2. Шаг в сторону унификации - хранить все данные различных пользователей в одной базе и различать по уникальному ID. Буду благодарен за обсуждение ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 21:59 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
iscrafmЕсть процедуры/функции бизнес-логики. Для связи их запуска с внешними событиями есть Акции. У контролов, к которым относится та же кнопка, если привязка на акцию. Т.е., когда вы разрабатываете логику, то вам фиолетово на то, кто ее вызовет, кнопка или еще какое-то событие, но логика всегда одна. Ну вот видите, акции (это ли не TAction - всплывают у меня смутные знания многолетней давности?)...уже появляется отдельная абстракция и механизм для реализации описанного поведения. Далее так или иначе придется связывать это с кнопками и прочим, опять же чтобы отвязать - нужно вводить какие-то интерфейсы и уровни абстракции - это и есть усилия. iscrafmКонечно Делфи провоцирует щелкнуть мышкой на OnClick и настрочить там этот код, но это не более чем провокация, которая очень полезна для минутных приложений. А вот тут я пожалуй плюсану. Именно это ведь я и хотел сказать. Просто было утверждение Petro123там ЭТО не нужно, т.к. там MVC встроен в IDE. вроде как если встроен, то создаешь новый проект и сразу начинаешь мыслить в логике MVC, как например если создать проект в .нет ASP.NET MVC. Там как раз все встроено. По другому, конечно, и там можно написать, но это надо потратить усилия. В этом же случае усилия как раз надо приложить в том, чтобы разобраться, как не свернуть на путь "создал форму, накидал контролов, обработчиков, все написал и фигачишь себе дальше" - именно на это и провоцирует дизанер форм (как впрочем не только в дельфи, но и в вин-формсе в .нет). iscrafmда ладно вам.. не путайте архитектуру приложения и язык программирования, при помощи которого оно реализуется. Нужен DAL отделенный от BLL - делайте так. Какая разница на каком языке писать текст для этого. И тут я плюсану. Ибо то же самое писал еще ранее. Не зависит от клиента практически какой подход использовать, если это не противоречит парадигме и возможностям языка. Обжект паскаль объектный? объектный! Есть компоненты работы с БД? Есть! Что мешает нафигачить классический ОРМ если это нужно? Да ничего не мешает. Ровно это я и талдычу уже который пост. Нет в явном виде зависимости между ОРМ и языком программирования если он имеет все возможности для этого. Нельзя сказать: Ява - ОРМ, .НЕТ - ДатаСет, Дельфи - еще что-то. Это то, что я хотел сказать. Petro123я думал, у нас бОльшие проблемы. А у нас тут: "кнопку выключить" :)) Давай лучше offtop Ну кагбэ дьявол кроется в мелочах, я привел реальный пример места в котором надо стыковать два подхода - MVC и Smart UI. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 22:23 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
PavluxaF, БД для каждого юзера - сразу не вариант, если только под юзером не подразумевается какой-нить один единый филиал фирмы которая пользуется софтом и есть гарантия, что эти филиалы никогда-никогда не захотят иметь единые данные и строить единые отчеты и иметь взаимосвязь. А как показывает мой личный опыт - именно так все и бывает. И лично сталкивался с тем что приходилось сливать БД трех филиалов в одну...поверьте, тот еще гемор, лучше сделать сразу все нормально. А нормально, значит потратить больше усилий на создание дополнительных условий и разграничений для нескольких пользователей и потом не париться. При правильной нормализации и подходе - эти усилия окажутся даже не столь уж большими. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 22:28 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehowНу кагбэ дьявол кроется в мелочах, я привел реальный пример места в котором надо стыковать два подхода - MVC и Smart UI. Не стыковать конечно, а выбирать между. Устал я, спать пойду =) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 22:31 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehowiscrafmЕсть процедуры/функции бизнес-логики. Для связи их запуска с внешними событиями есть Акции. У контролов, к которым относится та же кнопка, если привязка на акцию. Т.е., когда вы разрабатываете логику, то вам фиолетово на то, кто ее вызовет, кнопка или еще какое-то событие, но логика всегда одна. Ну вот видите, акции (это ли не TAction - всплывают у меня смутные знания многолетней давности?)...уже появляется отдельная абстракция и механизм для реализации описанного поведения. Далее так или иначе придется связывать это с кнопками и прочим, опять же чтобы отвязать - нужно вводить какие-то интерфейсы и уровни абстракции - это и есть усилия. Никаких абстракций дополнительных не нужно. Для связывания тоже никаких доп.интерфейсов не нужно. Для биндинга в компонентах есть свойство Action. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 22:52 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehow, - вы на MVC сильно не молитесь. Счас уже MVP в моде http://en.wikipedia.org/wiki/Model-view-presenter - В Delphi есть разделение архитектуры на уровни по вертикали. Считай - компонентный фреймворк. Хотя можно и на API win32 и на ASM перейти. Т.е.прикладник программист берёт DAL и присоединяет его к VIEW в виде DevExpress. Контроллёр там внутри. Его пишет системщик создавая библиотеку-уровень. В Java нету такого деления на прикладника. Поэтому каждый строит Модель, Маппит её на БД, замешивает всё на Хибер, пишет логику в классах, и пишет клиента на HTML-шаблонах или... Подходы разные, и нет Лучшего или Худшего. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2011, 23:18 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
iscrafmНикаких абстракций дополнительных не нужно. Для связывания тоже никаких доп.интерфейсов не нужно. Для биндинга в компонентах есть свойство Action. Ничуть не сомневаюсь, что при грамотном использовании Action можно писать в духе MVC. Но, по прежнему: iscrafmКонечно Делфи провоцирует щелкнуть мышкой на OnClick и настрочить там этот код, но это не более чем провокация, которая очень полезна для минутных приложений. так что как-то неубедительно для меня звучит фраза о встроенном MVC в дельфи и написании в таком стиле без усилий. На любом подобном языке можно писать в стиле MVC и во многих фреймворках есть компонентная модель. По такой же логике можно сказать, что MVC везде встроен. Только чтобы его использовать, надо сделать то-то и то-то, использовать такие-то компоненты и связывать с контролами определенным образом. Petro123SomewhereSomehow, - вы на MVC сильно не молитесь. Счас уже MVP в моде http://en.wikipedia.org/wiki/Model-view-presenter - В Delphi есть разделение архитектуры на уровни по вертикали. Считай - компонентный фреймворк. Хотя можно и на API win32 и на ASM перейти. Т.е.прикладник программист берёт DAL и присоединяет его к VIEW в виде DevExpress. Контроллёр там внутри. Его пишет системщик создавая библиотеку-уровень. В Java нету такого деления на прикладника. Поэтому каждый строит Модель, Маппит её на БД, замешивает всё на Хибер, пишет логику в классах, и пишет клиента на HTML-шаблонах или... Подходы разные, и нет Лучшего или Худшего. MVC/MVP - не суть. Не понимаю, что мешает вам например в том же .NET сделать: "берёт DAL и присоединяет его к VIEW в виде DevExpress."? Сам по себе оо язык программирвоания ни к чему особо не обязывает. Так что я по прежнему недоумеваю, зачем вешать ярлыки (кроме, конечно, языков созданных для специальных нужд, типа sql - для работы с данными, фортран - для математических задач и т.д...). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 09:37 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehow, долго объяснять, но это факт: - в Delphi принято без ORM и 3-х звенок (стек разработки позволяет делать 1 форму-окно в день) - в Java принято C ORM и 3-х звенкой (95% хибер и 2% iBatis-ORM) - в шарпе можно так и так Т.е. если вы дадите ТЗ без ограничений на архитектуру, то получите совершенно разные продукты внутри и почти одинаковые по функционалу. SomewhereSomehowНе понимаю, что мешает вам например в том же .NET сделать: "берёт DAL и присоединяет его к VIEW в виде DevExpress."? Что мешает в Word сделать табличку с формулами? - в Net проще, в Java сложнее до появления GWT-DataSet - Для такой модели выше, БЛ надо писать на сервере. Delphi на это заточен. Java - нет. В этом особенность Платформ . Это вы же не будете отрицать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 09:57 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehow, С одной стороны, все ЯП одинаковые, выбирай любой :) С другой стороны, придя на ветку Delphi и спросив: "где тут ORM\3-х звенка" - Вас пошлют. Придя на ветку Java "где тут DataSet чтобы к БД примкнуть" - вас тоже пошлют. Удачи Вам! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 10:08 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
SomewhereSomehowiscrafmНикаких абстракций дополнительных не нужно. Для связывания тоже никаких доп.интерфейсов не нужно. Для биндинга в компонентах есть свойство Action. Ничуть не сомневаюсь, что при грамотном использовании Action можно писать в духе MVC. Но, по прежнему: iscrafmКонечно Делфи провоцирует щелкнуть мышкой на OnClick и настрочить там этот код, но это не более чем провокация, которая очень полезна для минутных приложений. так что как-то неубедительно для меня звучит фраза о встроенном MVC в дельфи и написании в таком стиле без усилий. На любом подобном языке можно писать в стиле MVC и во многих фреймворках есть компонентная модель. По такой же логике можно сказать, что MVC везде встроен. Только чтобы его использовать, надо сделать то-то и то-то, использовать такие-то компоненты и связывать с контролами определенным образом. дался вам этот MVC. Делфи - среда разработки. А какой проектной модели придерживается архитектор системы - дело архитектора. Является он сторонником MVC - получите, хотите MVVM - пожалуйста и т.д. Мне нравится, что в него встроен MIE по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 10:08 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
Petro123С другой стороны, придя на ветку Delphi и спросив: "где тут ORM\3-х звенка" - Вас пошлют. разве что маргиналы. К тому же ветка Делфи не показатель того, как на Делфи нужно разрабатывать ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 10:10 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
iscrafmPetro123С другой стороны, придя на ветку Delphi и спросив: "где тут ORM\3-х звенка" - Вас пошлют. разве что маргиналы. К тому же ветка Делфи не показатель того, как на Делфи нужно разрабатывать эт ты зря. Так можно и sql_ru опустить. Там профессиональная ветка. Другой нету. Могу другой вопрос - "где тут IDE для рисования форм"? Задай его в обоих ветках. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 10:21 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
iscrafmSomewhereSomehowпропущено... Ничуть не сомневаюсь, что при грамотном использовании Action можно писать в духе MVC. Но, по прежнему: пропущено... так что как-то неубедительно для меня звучит фраза о встроенном MVC в дельфи и написании в таком стиле без усилий. На любом подобном языке можно писать в стиле MVC и во многих фреймворках есть компонентная модель. По такой же логике можно сказать, что MVC везде встроен. Только чтобы его использовать, надо сделать то-то и то-то, использовать такие-то компоненты и связывать с контролами определенным образом. дался вам этот MVC. Делфи - среда разработки. А какой проектной модели придерживается архитектор системы - дело архитектора. Является он сторонником MVC - получите, хотите MVVM - пожалуйста и т.д. Мне нравится, что в него встроен MIE по умолчанию. Курица - не птица, DAL - не бизнес объект, контроллеры внутри компонент - не MVC, MVVM без возможностей binding'а xaml - не паттерн. В Delphi, java, etc абстрагироваться полностью от View, как в WPF\SL, можно только с большими усилиями, которые превышают все разумные пределы, а без этого какой бы шаблон с красивым названием не был, слаще не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 10:30 |
|
Обсуждение этапа проектирования бизнес логики
|
|||
---|---|---|---|
#18+
iscrafmдался вам этот MVC. Делфи - среда разработки. А какой проектной модели придерживается архитектор системы - дело архитектора. Является он сторонником MVC - получите, хотите MVVM - пожалуйста и т.д. Мне нравится, что в него встроен MIE по умолчанию. Да мне то он не дался, я как раз и пытаюсь объяснить Petro123 что не надо вешать ярлыков. Это для того, это для сего и т.д. А вообще это все к тому, что ТС собственно и интересавался в теме где ему организовывать БЛ, хотя теперь тема уже больше перерастает в какой-то флуд. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2011, 10:32 |
|
|
start [/forum/topic.php?fid=33&msg=37462261&tid=1547974]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 418ms |
0 / 0 |