Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7   вперед  Ctrl      все
 Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Bold for Delphi /Bold for C++.
----------------------------

Возвращаюсь к теме 2-х месячной давности. Если сразу не прибъёте, попробую последовательно рассказать об этом чуде, что я сам понял. Не в плане "Ура - даешь гербалайф!", а в плане - что сам знаю и умею.

Судя по всему - первоначально никто (и я в т.ч.) нифига не понял. Поцапались - и разошлись. Народ продолжает рубать n-х звенку c реляционными СУБД.

Ну, сразу скажу: первое-наперво - это вовсе не замена РСУБД - приложений. Это попытка войти в здание через парадную дверь, а не через чердачное (или подвальное - кому как нравится) окно.

В общем, несмотря на все классные фичи, которыми заманивают нас в MDA, суть мне представляется все - таки в другом - MDA - технология - это средство (методология?), позволяющая объединить требования к проекту с кодом проекта.

Суть в том, что модель приложения хранится в самом приложении, и приложение управляется этими требованиями. Т.е. приложение фукционирует в плане требований к модели - и все изменения в документации (т.е.) в модели тут же отражаются и на поведении приложения. Ну вот, собственно говоря, и все. А все остальное - просто полезности и вкусности, которые просто обязаны сопровождать ОО - среду. Если вам мало - то легко создаются новые (контролы, инструменты, адаптеры к СУБД и проч.).

В общем - вполне реальное средство довести свой проект до завершения в рамках заранее установленного срока или бюджета.
-----------------------------

По поводу примеров применения:

Приложения MDA в действии
Области использования
• Управление финансами/Страховое дело
• Правительство
• Промышленность
• Оборона
• Электронная коммерция
• Средства массовой информации/Шоу - бизнес
• Розничная продажа/Оптовая торговля
• Управление транспортом/Логистика
• Системная интеграция
• Независимая торговля программными продуктами
• и другие…

Клиенты
• Парламент Швеции
• Национальное Собрание, Парламент Франции
• Шведское телевидение
• l’Etat de Fribourg
• US Government Agency
• Вооруженные силы Швеции
• Министерство обороны Швеции – Агенство Исследований
• фирма Neosight Techologies
• Landesumweltamt (Бранденбург)
Brandenburg
• Carmenta
• Autoliv
• Ahola Transport
• Universitat Augsburg
• Vertec Ltd
• IPAT
• InterLan
• Nimbus
• Open IAC
• B&F Groep
• RIL Partner
• TimeWarp Engineering
• Know IT
• Marotz
• и другие…


Примеры


Управление финансами, система управления фондовой биржей
Описание Система управления фондовой биржей в оффшорной финансовой индустрии
Пользователи Международный Институт Финансов
Объем 150 классов, 2 миллиона объектов
Инструментарий Rational Rose, Microsoft SQL Server, Windows NT

Правительство, система управления налогами
Описание Система управления налогами для индивидуальных лиц и предприятий
Пользователи 200 налоговых регистрационных пунктов, административный персонал
Объем 130 классов, 10 миллиона объектов
Инструментарий Rational Rose, Microsoft SQL Server, Microsoft OS

Оборона, система регистрации утилизации взрывчатых веществ

Описание Информационная система для регистрации исполнения утилизации взрывчатых веществ
Пользователи Полиция, армия и другие «допущенные к телу…». Применялась во время боевых операций на Балканах.
Объем 350 классов, 500 000 объектов
Инструментарий Rational Rose, Sybase, Microsoft OS

Средства массовой информации/Управление производством в шоу-бизнесе

Описание Система управления ресурсами для всего персонала, студийным оборудованием и т.д.
Пользователи 200 административных аппаратов объемной телевизионной сети
Объем 300 классов, 2 миллиона объектов
Инструментарий Rational Rose, Informix, Windows NT/95/98, сетевое окружение

Управление транспортом/Логистика

Описание Система поддержки анализа, планирования и продаж в реальном масштабе времени.
Пользователи Обслуживающий персонал транспортных корпораций
Объем 230 классов, 2,5 миллиона объектов
Инструментарий Rational Rose, InterBase, Windows 2000, Nokia Communicator, данные глобальной системы позиционирования (GPS)

Управление финансами/Электронное банковское дело

Описание Средний уровень COM – системы для частной банковской системы на базе AS/400.
Пользователи Чрезвычайно большая группа частных банков
Объем 60 классов, 5000 объектов, размещенных в конфигурационном файле XML
Инструментарий Windows 2000, Rose 2000e, AS/400 Host Access Class Library (HACL)

Заявления и ссылки

“Теперь мы работаем более чем в 10 раз быстрее, чем могли раньше, и мы завершили создание продукта, который действительно мощный и стабильный. Мы получили спокойствие, и мы получили время для того, чтобы действительно понять клиента и совместно принять решение о том, как можно построить лучшие системы.”
Hans Karlsen, Technical Project Manager, Swedish Parliament

“Bold позволяет вам строить действительно замечательные приложения. Я пользуюсь им 3 года, и все еще доволен ими.”
Samuel Iseli, Development Manager, Vertec ltd

“Мне понадобилось совсем немного времени, чтобы начать использовать Bold for Delphi, а все наши парни буквально считают, что BoldSoft создал для них рабочие места.”
“…это мощная вещь, и я думаю - чрезвычайно мощная!”
Randy Trexler, Technical Project Manager, US Federal Agency

Productivity Award Statement: “Delphi фирмы Borland предыдущий победитель Jolt Award – в течение длительного времени пользовался признанием среди разработчиков. А теперь Bold for Delphi фирмы Boldsoft позволяет вам строить приложения, управляемые моделью на Delphi.”
Roger Smith, Technical Editor, Software Development Magazine, July 2001

----------------------------
А теперь и я кое-что делаю...

=mv=
19 окт 04, 17:26    [1045912]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
Один
Member

Откуда: Киев
Сообщений: 781
Эх...
mv извините, но все, что идет ниже слов
В общем - вполне реальное средство довести свой проект до завершения в рамках заранее установленного срока или бюджета.
сильно портит то, что идет выше этих слов... Хотя я понимаю, что вы хотели как лучше.
19 окт 04, 20:54    [1046525]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
Один
Member

Откуда: Киев
Сообщений: 781
Как-то двусмысленно я ответил.
Я хотел сказать, что зря вы привели эти рекламные цитаты, они (цитаты) портят впечатление от поста.
Рассказали бы про свой опыт, про свой проект.
Что удалось, что не удалось
Какие трудности.
Как их преодолели.
19 окт 04, 20:58    [1046531]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
Прохожий2
Guest
mv
Bold for Delphi /Bold for C++.
----------------------------
Возвращаюсь к теме 2-х месячной давности. Если сразу не прибъёте, попробую последовательно рассказать об этом чуде, что я сам понял. Не в плане "Ура - даешь гербалайф!", а в плане - что сам знаю и умею.
Судя по всему - первоначально никто (и я в т.ч.) нифига не понял. Поцапались - и разошлись. Народ продолжает рубать n-х звенку c реляционными СУБД.
Рассказывай дальше, по крайней мере один слушатель обеспечен. Кстати, в примерах про налоговую - есть ли подробности, где это и что (аналог нашей налоговой службы) ?
Я был бы не прочь послушать в стиле - как менялись твои представления по мере изучения : какие вопросы возникали, как решались.
20 окт 04, 06:04    [1046750]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
bas
Member

Откуда: Moscow
Сообщений: 865
Да, и вообще, меня всегда настораживают те продукты, про кот. написанно только ХОРОШО, нет ни одного продукта без НЕХОРОШЕСТЕЙ, тем более новых.

Мне бы хотелось услышать недостатки и как можно полно....
21 окт 04, 10:38    [1050765]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Достоинства проявляются при знакомстве с продуктом, а вот недостатки обычно выявляются по ходу плотной работы с ним. В итоге чтобы сразу при знакомстве обьективно оценить достоинства и недостатки какого либо продукта нужно как минимум иметь неслабый опыт работы с аналогичными технологиями и продуктами. Я в таких случаях по рассказам о каком либо чуде сразу спрашиваю собеседника о мотивации перехода на этот продукт. Если обьективной мотивации нет, то есть собеседник может только рассказать как все круто, сослаться что все в мире теперь так работают или же что это более современное средство, революция или еще чего - все это означает только, что все рассказы о достоинствах можно пока пропускать мимо ушей и подождать, пока рассказчик реально не поработает и не хлебнет порцию недостатков, вот тогда будет можно и посмотреть на продукт :)

P.S. Все вышесказанное я не относил к хозяину топика, просто так сказать высказал собственный жизненный опыт. Мне лично очень интересно слушать о Bold, так как мне показалось, что изюминка в нем есть, значит ее нужно конкретизировать и принять на вооружение, а не освистывать даже не разобравшись. Особенно после заявлений, что это методология я честно говоря вообще заинтригован, так как сейчас как раз вот и разрабатываю собственную методологию разработки 2-х звенных клиент-серверных проектов на базе экстремального программирования и моя концепция очень сильно судя по описаниям mv смахивает в том числе и на MDA, только у меня модель проекта храниться в БД, существуют понятия прототипов сущностей, эталонных процедур точек входа и выхода, для каждого прототипа существуюет юнит-тест, на базе моего языка шалонов ASA MacroSQL для каждой физического таблицы БД есть возможность обвязать их логическими аттрибутами из словаря проекта (это с C# уже дернуто), которые автоматически влияют на генерацию ХП и триггеров с шаблонов, ссылающихся на эти аттрибуты. Ну и плюс сразу поддерживается генерация по определенным в словаре проекта стилям представлений визуальных DataWindow, которые могут экспортироваться в библиотеки PBL, а значит дальше использоваться в клиентской части, написанной на PowerBuilder или .NET платформе при установленном на ней DataWindow.NET. Чуть позже я в свой топик выложу детальные описания и скриншоты дизайнера, будет интересно сравнить с Bold :)
21 окт 04, 11:13    [1050884]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Про недостатки.
-----------------
Ну, да. Недостатков всегда больше, чем хотелось бы. Нашел уже пару явных глюков. А как же в нашем деле без этого? Правдо, все пока разрешилось нормально.
Ну, вот еще, например - вопросы локализации. Как скромно написано в книжке, вопросы локализации легко разрешаются простым Rational-Rose скриптом (пример в приложении книжки). Угу. Не далее как вчера нарвался на то, что при генерации скрипта, для имен автоматически созданных классов (реализующих множественную ассоциацию), используются имена классов модели, и, если они русские - то и имена объектов программы на Delphi будут "транслитерированы". Т.е. просто кракозябрами. Причем процесс "транслитерации" забит программно - его можно либо отключить, либо включить - изменить таблицу перекодировок не представляется возможным. Хотя и эту беду обошел. Думаю, дальше буду использовать специально добавленные в модель тэг - параметры, в которых буду хранить русские имена объектов модели. Но это мелочь, правда? Всю жизнь на англиском проектировали, у тут нефиг было губу раскатывать. Хотя, если переделать одну малюсенькую процедурку в сырцах...

Ну, еще - когда создал первое многопользовательское приложение, и меня уже распирало от гордости при виде того, как у юзеров автоматически меняются совместно редактируемые данные (это та фича, про которые многие "релиционщики" говорят, что она не нужна - так по мне, ее просто было тяжело реализовать. IMHO.), возникли проблемы с совместными блокировками. Но и с этим разобрался - просто прочитал в доках описание концепции регионов. Все очень прозрачно.


Ну, стандартные контролы мне не очень нравятся. Потихоньку затачиваю свои контролы. В доках есть описание процесса "болдификации" "обычных" контролов.

Еще не нравится то, что в сгенерированных файлах кода (ну, если, к примеру, хочу переопределить виртуальную функцию класса в коде Delphi), не работает Class Copletion. Ну да ладно, было время (Турбо Паскаль!), когда ничего такого и в помине не было.
-------------------------

Насчет своей работы. Сейчас добиваю визуальный дизайнер для конфигурирования комплекта поставки программного обеспечения. Внешне выглядит как MS Visio, с прямоугольничками и связями между ними. Ну, граф с разными видами связей между узлами. Реализация графического интерфейса (настраиваемого) заняла всего 2-3 дня, еще день - на "болдификацию" (ну, чтобы данные в базе сохранялись). Сечас, когда добью "красоту", попробую "обернуть" рисовалку в Bold - контрол.


Да, еще раз по поводу книжке - купите и прочтите. Многое там опущено (объем все-таки небольшой) - но как вводный курс очень даже ничего. Да, с Bold идет масса документации в электронном виде (есть ли в печатном - не знаю :).

Очень жалко, но "опытные" программисты при разговоре часто не въезжают, о чем речь. Хотя идея чрезвычайна проста и красива. Може, опубликование реализованных фич продукта (это все второстепенно, поверьте! - главное - сама идея) поможет заинтересовать народ?
21 окт 04, 14:34    [1051832]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Ну, пожалуй, стоит начать с архитектуры. Или с возможностей. Ну ладно, архитектура.

Далее аббревиатура ОП будет означать Объектное пространство или объектный слой.

Обозначения:
-------------

COM Client Любой "COM-говорящий" клиент, который может получить типизированный или нетипизированный доступ к ОП
Webserver Плагины могут быть написаны для любого веб-сервера, в есть демка для IIS
Bold aware Controls Нативные Delphi - компоненты, использующие OCL для доступа к ОП.
VCL Controls Стандатрные котролы Delphi
DB Controls Стандатрные DB - контролы
Bold Aware COM Controls Нативные Delphi COM aware Bold - компоненты, components, использующие OCL для доступа к ОП
VCL adapter Компонент, который предоставляет доступ к любому свойству любого VCL компонента, чтобы сделать его Bold aware
Bold Dataset Компонент, который позволяет получить доступ к бизнес - объектам как к набору данных, (TDataset Delphi)
COM exporter Генерирует код для интерфейсов и врапперы для бизне - объектов
XML gateway Извлекает любые данные ОП в виде XML - потоков
Presentation mapping Предназначен для манипуляции с данными из уровня представления к ОП
Object space Собственно - само объектное пространство (ОП). Место, где живут бизнес - объекты
Client Side Handle/HTTPКлиентская часть HTTP - соединения с ОП
Client Side Handle/COM Клиентская часть COM/DCOM - соединения с ОП
Server side handle/HTTP Серверная сторона HTTP - соединения с ОП
Server side handle/COM Серверная сторона COM/DCOM - соединения с ОП
Persistence Handle Дескриптор ОП
OR Mapper Реализует двусторонее преобразование запросов между ОП и реляционной СУБД
BDE Mapper Преобразует запрос к уровню данных к любому источнику данных, сформированному с помощью BDE
ADO Mapper Преобразует запрос к уровню данных к любому источнику данных, сформированному с помощью ADO (не требует BDE)
IB Mapper Преобразует запрос к уровню данных к любому источнику данных, сформированному с помощью компонентов IBX (используется СУБД InterBase) (не требует BDE)
File Mapper Выполняет преобразование запроса к уровню хранения данных в XML поток (не требует BDE)
Propagator Сервер сихронизации, оповещает клиентов об изменениях состояния бизнес-объектов, произошедших в уровне хранения данных
UML Model Содержит метамодель вашего приложения.
DBMS Любая подходящая СУБД.
XML Текстовый файл XML, сгенерированный Bold for Delphi.

К сообщению приложен файл. Размер - 0Kb
22 окт 04, 11:52    [1054088]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Ну, а теперь - о возможностях.

Возможности

Ну, как всегда, сперва бла-бла-бла (можно не читать первые два абзаца :)
Технология Bold является реализацией переноса в приложение UML моделей. Различные свойства продукта Bold for Delphi помогают упростить процесс перемещения между моделью и кодом с помощью разнообразного набора сервисов, таких, как генерация схемы, механизмы размещения данных и их отображения. Он также позволяет получать готовые приложения с удивительно малым объемом кода.
Реализация модели предполагает, что приложение знает о модели. Управляя разработкой приложения на основании информации о модели, мы приближаемся к новой мощной технологии, называемой «Процесс Разработки, Основанной На Модели» (Model Powered Development).
Производительность
Производительность, выраженная во времени разработки, вызывает дикую радость пользователя (пъянки, пляски, песни и проч.), максимально использующего Bold - технологию. RAD – природа продукта дает непревзойденную скорость при итеративной разработке и требует минимум кодирования. Рабочая среда дает Вам мощное ядро возможностей как программисту, каких не заказывал Вам ни один пользователь - такие, как управляемый моделью механизм drag and drop, полный доступ к модели и т.д.. Преобразователь OCL в SQL естественным образом преобразует выражение OCL в высокопроизводительные запросы SQL, уменьшая нагрузку на локальную машину.

Все, дальше - по делу.


МасштабируемостьМеханизм Синхронизациии Объектного Пространства (Object Space Synchronization) совместно с механизмом Распространения (Enterprise propagation engine) позволяет объектам бизнес- слоев выглядеть одинаково у огромного числа клиентов. Когда один из клиентов сохраняет сделанные им изменения, немедленно посылется сообщение остальным клиентам, заинтересованным в текущий момент в состоянии класса или объекта. Обработчики архитектуры отображения (model view architecture handles) извлекает свежие данные из DBMS, когда требуется клиенту, без всякого дальнейшего вмешательства. (=mv= - реализуется на "раз-два", и выглядит очень прикольно).

Поддержка погопользовательского доступаСервер управления блокировками (Concurrency Management Server) управляет регионами путем их блокирования, не позволяя клиентам модифицировать данные, модифицируемые в данный момент другими клиентами.
Оптимистическое блокирование гарантирует, что изменения не будут случайным образом перезаписаны. Возможно блокирование на коллекцию глобально во всем приложении, на класс или на сохраняемый атрибут.
COM - aware объектное пространство, совместно с функционально полным набором COM - aware визуальных компонентов (GUI –controls) позволяет разрабатывать токого клиента. Кодирование упрощено и выполнено путем автоматической генерации интерфейсов (IDL-code) и адаптеров классов.

Поддержка Модели
Для манипулирования с информацией о модели и просмотра ее имеется среда разработки, основанная на технологии Bold. То есть Bold – приложение рабтает с мета – моделью UML как с бизнес - моделью!
Значения вычисляемых атрибутов может быть получено безо всякого кодирования. Достаточно указать OCL - выражение, необходимое для вычисления значения – и все. Естественно, возможна кодовая реализация (Object Pascal - Delphi т.е. ;) вычисляемых атрибутов для вещей, трудно достижимых (либо невозможно) в предложениях OCL. Атрибуты могут быть так же Обратно Вычисляемыми (Reverse Derived). В большинстве случаев подобным путем могут быть вычислены ассоциации.
Разрабатываем модель в Rational Rose или в любом инструменте для моделирования, поддерживающем XMI, а затем запрашиваем наш компонент, чтобы он связался с моделью. И все - модель имортирована.

Особенности при работе с моделью:
Представление модели, основанное на UML 1.3
Импорт из Rational Rose
Bold – специфициующие добавления в Rational Rose
Поддержка определяемых пользователем тег - значений
Импорт потоков XMI

Объектное пространство
Объектное Пространство Bold (Bold Object Space) – это то место, где живут Ваши бизнес - объекты. Это – средний уровень в данной трехуровневой архитектуре. Он чрезвачайно тщательно разработан так, чтобы ничего не знать об устрйстве уровне представления или об уровне данных. Тем не менее, навигация по отношениям всегда будет гарантировать, что связанные объекты быдут отфетчены (извлечены то есть) из базы данных.

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

Транзакции в объектном пространстве
Bold реализует транзакции в объектном пространстве, начиная с r2.0. (а сейчас 4.0!)

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

OCL
Существуют методы получения значений OCL – выражений как параметров. Это очень производительный метод извлечения результатов из объектного пространства. Эти выражения могут быть вычислены сразу (или возможна подписка на них), чтобы получит результат "вживую" или выполнить некоторую логику, когда были изменены конкретные значения объекта или коллекции объектов.

Откаты
Объектное пространство поддерживает транзакции, которые могут быть использованы для изоляции от комплексных изменений, которые в дальнейшем могут быть неудачными. В этом случае возможен откат сделанных изменений.
(=mv= - Undo - Redo - юзеры заныли сразу - "а почему сразу нельзя сделать было?")

Итого:
Object Space Synchronization Server
Нетипизированный COM – доступ к Объектному Пространству
Типизированный COM – доступ к Объектному Пространству
Вычисляемые обратно – вычисляемые атрибуты
Кодирование свободно – вычисляемых атрибутов и ролей
Временная навигация в объектном пространстве
Логика 3-х – уровневой архитектуры
Обширный набор лагических атрибутов
Поддержка ограничений для модели
Поддердка обновление объектов для новых версий
Поддержка извлечения данных в XML
Возможность добавления типов данных, определяемых пользователем
Многоуровневый undo/redo


Уровень данных
Bold for Delphi отображает всю Вашу бизнес – модель в реляционную базу данных. Схема базы данных, которая отображает Вашу бизнес – классы и отношения, генерируется автоматически. Поддерживаемый набор атрибутов включет стандартный набор типов, таких, как строки, различные числовые типы. Ваши собственные атрибуты, используемые в процессе, должны быть использованы в модели.
Автогенерация схемы основывается на диалекте SQL ANSI92. Имеется возможность подцепить Ваши собственные SQL-операторы, чтобы принять участие в фазе генерации базы. Все штатные операции построения схемы могут быть переделаны.
Одна из наиболее изумительных возможностей – Эволюция Модели (Model Evolution). Она позволяет преобразовывать схему на основании предыдущей версии модели в схему, которая соостветствует текущей версии модели. Все это позволяе максимально обеспечить сохранность и целостность данных.

Итого:
Сервер управления блокировками (Concurrency Management Server)
Полный набор атрибутов для управления уровнем данных
Физическая 3-х - уровневая архитектура
Поддержка для атрибутов, определяемых пользователями
Поддержка определяемых пользователем многоколонных атрибутов
Поддержка для удаленных серверов хранения данных
Расширение для версионности объектов (Object Versioning Extension)
Оптимистическое блокирование
Оптимизированный потоковый XML формат
Отображение модили в базу, хранимое в базе
Эволюционная трансформация модели/схемы
Эволюционная трансформация модели/данных
Совместимость модели/схемы с будущей версией
Совместимость модели/схемы с предыдущей версией
Поддержка default - знаечений в БД

Графический интерфейс
Графический интерфейс подключается к объектному пространству, использую выражения OCL. Все наши компоненты позволяют Вам специфицировать одно или больше OCL – выражений, чтобы получит некоторое подмножество наших бизнес – объектов или их членов. Набор of Bold-aware - компонентов приблизительно соответствует набору DB-компонентов. Также имеется очень мощный Bold aware компонент для работы с деревьями.
Enterprise edition поставляется с эквивалентным набором COM-enabled натуральных VCL-компонентов, который позволяет вам выполнить построение тонкого клиента. Чтобы защитить Ваши вложения в толстого клиента, конвертер толстого в тонкий клиент включен в продукт. Он изменяет значимые части кода и формирует из него эквивалент в виде тонкого клиента.
Расширенный набор дескрипторов как стартовая точка для обработки ваших данных. Некоторые дескрипторы могут быть соединены в цепочки с целью моделирования отношений и создания набора объектов.
Продукт поставляется с исходным кодом всех размещаемых компонентов, как визуальных, так и невизуальных.

Итого по GUI:
Функционально полный набор VCL model aware - компонентов
Функционально полный набор COM enabled – компонентов
Функционально полный набор обработчиков объектов для получения данных из объектного пространства.
Адаптеры между DB – компонентами и Bold - компонентами (TBoldDataset)
Оптимизированные multy – valued компоненты
Общий адаптер между VCL – свойствми и Объектным Пространством (TBoldPropertyController)
Акции (от TActions) для общих задач

Дизайн - тайм
Разработчики найдут множество полезных возможностей в дизайн – тайме, таких, как на интуитивно – понятный редактор для свойств и компонентов. Очень полезен для редактирования конткстно – зависимый OCL – редактор, который позволяет Вам премещаться по модели для создания собственных сложных OCL – выражений методом point – and - click. Другой мощный редактор компонента – это внутренний UML Редактор Модели, который обрабатывает модель в дизайн - тайме. Он позволит редактировать все важные части модели (=mv= по мне - в Rose удобнее. Хотя, может, не привык еще) . Дополнительно, он позволяет в дизайн – тайме перетаскивать элементы модели на форму.
Связанные свойства Bold сгруппированы в Bold - категории.
После импортирования модели из Rose или XMI, генератор на основании шаюлона сгенерирует код для всей вашей модели, включая список типов, методы доступа к типам для атрибутов и ролей.
Bold for Delphi обеспечивает генерацию кода Delphi, чтобы обеспечить доступа к иерархии классов, определенной в модели. Члены доступны как настоящие типы Delphi или как члены классов. Генерируются модули – заглушки для реализации бизнес - логики.
По желанию, Вы также можете сгенерировать код IDL, также, как и адаптеры для всех бизнес - классов. Это позволит использовать COM в вашем приложении и написать клиентов в любом COM-aware – инструменте разработке (VB, VC++, Office и т.д.).
Выражения OCL в компонентах могут быть вычислены для проверки в дизайн - тайме.

Итого по дизайн – тайму:
Проверка OCL
Контекст – чувствительный OCL - редактор
Генерация IDL и кода адаптеров
Уличшенные редакторы свойств и компонентов
Drag and drop из редактора модели
Внутренний редактор модели
Генерация кода, основанная на шаблонах
Проверка OCL – выражений в модели
Доступ по одному щелчку мыши к редактору модели

Ран - тайм
В ран - тайме мощь MDA сверкает во всю силу (прям в глазай рябит). Типо-чувствительный автоматический drag-and-drop поддерживает drag and drop :), где только такое возможно, и наполняет отображение модели гарантированной логикой связи между объектами и их отображаемыми значениям и другими ценными возможностями. Короче, это нажо видеть.
Новая возможность управления преобразованием OCL выражения в стандартный SQL - оператор. Она дает заметное повышение производительность при формировании одиночных объетов из можества классов.

Итого по Ран – тайму
Преобразование OCL в SQL
Расширенные механизмы подписок
Отимизация представления модели в рантайме
Оптимизация объектного пространства
Управление памятью/распределение/цепочками дескрипторов

Прочее

Масса примеров в комплекте. Плюс толковое описание принципов работы по каждому из примеров. Естественно, множество примеров рассматриваемой рабочей среды упрощены для уменьшения затрат времени. Примеры включают маленькие приложения, примеры компонетов и куски кода, иллюстрирующие возможности применения технологии.

Итого по Прочему:
Преобразователь Толстого коиента в Тонкий
Расширенный набор примеров (ну, типа - Simple сперва был набор, а потом расширили. Но примеры классные =mv=)
Примеры компонентов
Help, интегрированный в IDE
Исходный код для компонентов GUI
Определение интерфейсов для все модулей

------------------
Уфф! Overfuck!
22 окт 04, 12:51    [1054389]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
bas
Member

Откуда: Moscow
Сообщений: 865
Как я уже и говорил, это архитектура, как никакая другая, подходит для реализации многозвенок, а для К-С прилож. уж слишком тяжела.
22 окт 04, 12:55    [1054418]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
bas
Member

Откуда: Moscow
Сообщений: 865
Да и идея в К-С прилож. совсм другая - основная нагрузка на СЕРВЕР.
А для многозвенок очень даже подходит, так как бизнес логика реализуется в Сервере Приложения (только вот про констрайнты мне совсем не нравится идея).
22 окт 04, 12:57    [1054428]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Ну, блин... 2-х - звенки - 3-х звенки... О чем вообще разговор-то?
Ну ладно, если хочешь. Поговорим.
Ну, для "классической" трехзвенки - с "физическим" разделением на три уровня тут тоже попариться нужно, несмотря на наличие Clientifier. Тут все-таки предполагается сорее логическое разделение по уровням - представление, бизнес-логика - хранение. А реализовать - да хоть в одном модуле, используя XML - потоки для хранения данных. При создании прототипов приложения я так и делаю, чтобы, типа - "Пришел к заказчику, воткнул в комп флешку - и все работает".

А так, если с вашей точки зрения - то скорее я использую 2-х звенку. Ну, плюс модуль синхронизации - Propagator на одном из компьютеров. Если хочешь, пусть такая схему будет называться трехзвенкой. Да хоть семизвенка - что в это упираться-то? Главное - MDA!
Ну, все-таки, этот разговор - уход от темы.

Все фигня, кроме пчел.
22 окт 04, 13:14    [1054537]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
mv
Производительность
Производительность, выраженная во времени разработки, вызывает дикую радость пользователя (пъянки, пляски, песни и проч.), максимально использующего Bold - технологию. RAD – природа продукта дает непревзойденную скорость при итеративной разработке и требует минимум кодирования.
Так, все-таки, в цифрах - какой именно прирост производительности дает Bold? Можно ли сказать, что если при традиционной разработке некого приложения трудоемкость составит около 12 чел/мес, то использование Bold дает экономию в 2-4-6-... чел/мес? Какие преимущества дает Bold при разработке бизнеслогики (не останавливаясь на возможностях создания интерфейса с применением drag-n-drop без ручного кодирования)?

Спасибо
22 окт 04, 13:57    [1054740]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Ну, в первом посте сказано было о 10-кратном улучшении производительности, а автор книжки утверждает, что гораздо больше. Боюсь вызвать поток насмешек обсуждением этого вопроса. Насчет сокращения времени разработки - это правда. Автор книжки, когда внедрял технологию в своей фирме, по собственной инициативе, "долгими зимними вечерами", за месяц создал рабочую систему из 150 табличек (ну, далее нужно говорить не о табличках, а о классах). Я думаю, такая система как раз соответствует 10-12 человеку-месяцам.

Ну, думаю, как всгда - нужно время на освоение. Вспомните свои первые клиент - серверные приложения. И сравните с "не первыми".

автор
Какие преимущества дает Bold при разработке бизнеслогики (не останавливаясь на возможностях создания интерфейса с применением drag-n-drop без ручного кодирования)?

Хорошо. Про графический интерфейс ни слова.
- Ну, об этом уже говорилось. Бизнес - объекты живыт в ОП, которое управляется напрямую UML - моделью. UML - модель "живет" в приложении. Нет разрыва между документацией и реализацией. Я имею в виду бизнес-логику, естественно.
- Плюс, учитывая ограничения UML - модели - используется язык OCL.
- если и этого Вам мало - дополнительные бизнес-правила могут реализовываться в коде (Delphi / C++), но опять-таки как реализация в коде операций/атрибутов/ассоциаций/ограничений модели. Т.е. опять все в рамках модели.
- достаточно эффективный механизм отображения объектного пространства на пространство реляцинных СУБД. Т.е. ты практически не занимаешься SQL - кодированием. Если хочешь оптимизации - пожалуйста, есть возможность.
22 окт 04, 14:31    [1054906]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Еще такой вопрос:

Где хранится бизнес-логика? Судя по всему.... Непонятно где, что-то :)

Но скорее всего на клиенте. Так?
Или бОльшая часть на клиенте, остальное в БД?
Есть ли хоть какие хранимые процедуры в БД. которые генерятся автоматически. И если есть, чего они выполняют?

ЗЫ Я это к чему? К тому, что если все на клиенте, то без него система не система уже и БД никому не нужна и никакой пользы не принесет.
Правда может кому-то и не нужен доступ к системе извне клиента. Но обычно случается, что доступ нужен.

Лично мне так было бы нехорошо.

Ну и про скорость работы системы хотелось бы узнать, правда как сравнить то ее с к-с? :))

автор
Правительство, система управления налогами
Описание Система управления налогами для индивидуальных лиц и предприятий
Пользователи 200 налоговых регистрационных пунктов, административный персонал
Объем 130 классов, 10 миллиона объектов

Что тут подразумевается под объектами?


-- Tygra's --
22 окт 04, 14:40    [1054959]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Если хочешь оптимизации - пожалуйста, есть возможность


А каким образом? В смысле, где там вообще лежит то, чего можно оптимизировать и как к оному подобраться и изменить? И не переправится ли оно обратно в следующую.... ну компиляцию или сборку или чего там делается, когда вносятся изменения :)

-- Tygra's --
22 окт 04, 14:43    [1054979]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
2 Тигра.
1. Бизнес - логика хранится непосредственно в модели.
А модель - в приложении. Это ж MDA (Model Driven Architecture)

2. Доступ к базе (как и управление генерацией схемы базы) реализуется посредством специальных адаптеров. Если тебе мало существующих - реализуй свои. Все исходники в наличии. Автор многократно упоминаемой книжки делал "свои" адаптеры, которые генерировали, кроме таблиц, еще и ХП (для Oracle, насколько я помню).

3. Насчет скорости
а. Ну, давай сравним MS SQL и MySQL. В каком случае скорость больше? Нужна конкретная задача, которую каждый реализует, как может.
б. Мне (пока) хватает.
в. Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую.
в. Еще раз - все зависит от конкретной задачи и от знаний/умений разработчика. Или ты не согласен.

4. Объекты - это объекты. В плане ООП. Экземпляры классов в Delphi/C++, например.

5. По поводу изменений структуры модели/базы. Отдельный разговор. Следите за новостями.
22 окт 04, 15:01    [1055068]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
2 Тигра.
1. Бизнес - логика хранится непосредственно в модели.
А модель - в приложении. Это ж MDA (Model Driven Architecture)

2. Доступ к базе (как и управление генерацией схемы базы) реализуется посредством специальных адаптеров. Если тебе мало существующих - реализуй свои. Все исходники в наличии. Автор многократно упоминаемой книжки делал "свои" адаптеры, которые генерировали, кроме таблиц, еще и ХП (для Oracle, насколько я помню).

3. Насчет скорости
а. Ну, давай сравним MS SQL и MySQL. В каком случае скорость больше? Нужна конкретная задача, которую каждый реализует, как может.
б. Мне (пока) хватает.
в. Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую.
в. Еще раз - все зависит от конкретной задачи и от знаний/умений разработчика. Или ты не согласен.

4. Объекты - это объекты. В плане ООП. Экземпляры классов в Delphi/C++, например.

5. По поводу изменений структуры модели/базы. Отдельный разговор. Следите за новостями.
22 окт 04, 15:07    [1055092]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Я и с одного раза понимаю :))

автор
1. Бизнес - логика хранится непосредственно в модели.
А модель - в приложении. Это ж MDA (Model Driven Architecture)

Понятно
автор
2. Доступ к базе (как и управление генерацией схемы базы) реализуется посредством специальных адаптеров. Если тебе мало существующих - реализуй свои. Все исходники в наличии. Автор многократно упоминаемой книжки делал "свои" адаптеры, которые генерировали, кроме таблиц, еще и ХП (для Oracle, насколько я помню).

Я не про такой доступ. Я имею ввиду доступ не из клиента, а извне. Независимо от клиента доступ к БД без потери логической целостности. Но теперь понятно, что такое тут невозможно.

автор
3. Насчет скорости
а. Ну, давай сравним MS SQL и MySQL. В каком случае скорость больше? Нужна конкретная задача, которую каждый реализует, как может.

Это да, и сказал - как померить то? Просто может была подобная система на к-с технологии....
автор
в. Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую.

А где они кэшируются? И как это может влиять на скорость???
автор
в. Еще раз - все зависит от конкретной задачи и от знаний/умений разработчика. Или ты не согласен.

Конечно согласен :)
автор
4. Объекты - это объекты. В плане ООП. Экземпляры классов в Delphi/C++, например.

Ну то есть а переводе на к-с - количество всех записей таблиц в БД. Ну, не густо получается.
автор
5. По поводу изменений структуры модели/базы. Отдельный разговор. Следите за новостями.

Не, не структуры - я спрашивал про достаточно эффективный механизм отображения объектного пространства на пространство реляцинных СУБД. Т.е. ты практически не занимаешься SQL - кодированием. Если хочешь оптимизации - пожалуйста, есть возможность.
Вот где делать то оптимизацию??? В запросах, которые лежат в исходниках клиента?

-- Tygra's --
22 окт 04, 15:31    [1055171]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Ну, тигра, я не понимаю, что ты спрашиваешь, наверное. Хотя очень стараюсь. Давай "выделим нить обсуждения, и обсудим ее". По одному вопросу, если можно.
22 окт 04, 15:37    [1055193]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
Один
Member

Откуда: Киев
Сообщений: 781
tygra
Не, не структуры - я спрашивал про достаточно эффективный механизм отображения объектного пространства на пространство реляцинных СУБД. Т.е. ты практически не занимаешься SQL - кодированием. Если хочешь оптимизации - пожалуйста, есть возможность.
Вот где делать то оптимизацию??? В запросах, которые лежат в исходниках клиента?
Понятие "оптимизация" != "оптимизация БД". Оптимизировать можно и UML модель.

При оптимизации системы имеет смысл оптимизировать наиболее критичные для этой системы участки. Если логика в базе - то SQL запросы. Если на клиенте - то клиента. Если посередине, то средний уровень.
22 окт 04, 15:40    [1055209]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
автор
Я и с одного раза понимаю :))

Пардон, нажал не туда.


автор
Я не про такой доступ. Я имею ввиду доступ не из клиента, а извне. Независимо от клиента доступ к БД без потери логической целостности. Но теперь понятно, что такое тут невозможно.


Ну, так же, как и обычная реляционная СУБД не защищена от доступа со стороны программ, работающих с файлами ОС "напрямую" :)

автор
Просто может была подобная система на к-с технологии....


Была у нас простая справочная система на полтора десяка юзеров, переписал ее на новой технологии - тетки вроде не вопят. InterBase (FireBird 1.5) Но там не было критичных запросов - чисто справочная система - изредка формирование разной статистики. Объем базы невелик - файл около 70 мегабайт. Ну, первоначальная загрузка данных стала чуть быстрее - но думаю, и на старой системе этого можно было достичь.


автор
А где они кэшируются? И как это может влиять на скорость???

В объектном пространстве. А потом, когда нужно - все изменения скопом сбрасываются в СУБД. Я думаю, что работа с ОП все-таки быстрее, чем с дисковой подсистемой? :)

автор
Ну то есть а переводе на к-с - количество всех записей таблиц в БД. Ну, не густо получается.


Ну, тут уже другие правила при проектировании сущностей. Может и не густо, а может - и густо.

автор
Вот где делать то оптимизацию??? В запросах, которые лежат в исходниках клиента?


Ну, насчет оптимизации. Если тебя не устраивает производительность запросов по "по умолчанию", то есть копоненты, в которых ты прямо ручками шишешь SQL - запрос, как в до боли знакомой TQuery.
22 окт 04, 15:56    [1055262]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
mv
Member

Откуда:
Сообщений: 8876
Один

При оптимизации системы имеет смысл оптимизировать наиболее критичные для этой системы участки. Если логика в базе - то SQL запросы. Если на клиенте - то клиента. Если посередине, то средний уровень.


Братцы, я не понимаю интерес именно с этой стороны. Когда вы приложения с использованием SQL - серверов делать стали, вас в первую очередь, интересовали вопросы оптимизации?

Ну, есть возможность отладки на разных уровнях, в т.ч. и трассировка SQL - запросов. И изменение параметров системы для улучшения производительности.

- Граждане извозчики! Автомобиль позволяет развить скорость до 30 верст в час, он состоит из кузова, мотора, и ходовой части!
Вопросы есть?

... куда вожжи...?
... а по буеракам?
... в Тверь до вечера поспеешь? Иди ты!
... охр@нел совсем, а куда подковы, совсем новые?
... лошади пугаться будут!
... да он пъяный!

22 окт 04, 16:09    [1055320]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Один
Понятие "оптимизация" != "оптимизация БД". Оптимизировать можно и UML модель.


Нет, тут как раз вопрос про БД. Это и mv подтвердил дальше.

автор
Ну, так же, как и обычная реляционная СУБД не защищена от доступа со стороны программ, работающих с файлами ОС "напрямую" :)

Неееееее, вопрос не про защиту - как раз про наоборот. Т.е. в своей системе я могу в большинстве случаев хоть откуда - хоть из asp.net - дернуть ХП и сделать какое-то "бизнес-логическое" действие, т.е. ХП внутри себя сделает чего-то, призведет манипуляции с данными. вызовет еще n ХП - и в результате получится некоторое доведенное до логического окончания действие. Например провести заказ в статус, или переместить товар и т.д. Мне для это нужно в большинстве случаев всего то написать exec MyStoredProc @id = ... и все.
Это частный пример, можно делать все, что угодно. И не всегда есть необходимоть/возможность/время запускать клиента.
В случае же Bold получается, что так никак не сделать. Потому что только клиент контролирует всю логику работы системы.

автор
В объектном пространстве. А потом, когда нужно - все изменения скопом сбрасываются в СУБД. Я думаю, что работа с ОП все-таки быстрее, чем с дисковой подсистемой? :)

Ну БД то тоже кэширует данные, и неплохо это делает :)
А вот как же тогда другие клиенты - они то не узнают о сделанных изменениях. Т.е. в большинстве случаев все же нужно сбрасывать данные сразу, без кэширования.

автор
Ну, насчет оптимизации. Если тебя не устраивает производительность запросов по "по умолчанию", то есть копоненты, в которых ты прямо ручками шишешь SQL - запрос, как в до боли знакомой TQuery.

Теперь понятно :)

автор
Братцы, я не понимаю интерес именно с этой стороны. Когда вы приложения с использованием SQL - серверов делать стали, вас в первую очередь, интересовали вопросы оптимизации?

Сначала нет, а потом так заинтересовали....!!!!
Поэтому обжегшись на молоке, дуем на воду.
Тем более что если отсутствуют нормальные способы оптимизации, то на фиг такая система. Потому сразу и спрашиваем :)



-- Tygra's --
22 окт 04, 16:39    [1055431]     Ответить | Цитировать Сообщить модератору
 Re: Bold for Delphi /Bold for C++. Вторая попытка.  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
автор
Братцы, я не понимаю интерес именно с этой стороны. Когда вы приложения с использованием SQL - серверов делать стали, вас в первую очередь, интересовали вопросы оптимизации?

Да нет, конечно же впервую очередь не интересовало. Просто рано или поздно все мы наступили на такие грабли, которые больно бьются и называются "Ограничения". И это касается всего чего угодно - от Access-а до самых современных средств разработки и моделирования приложений. Так что вот второй раз наступать на эти грабли никому ой как не хочется (во всяком случае я еще такого человека не встречал), поэтому так все дотошно и интересуются ограничениями :)
22 окт 04, 16:45    [1055450]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7   вперед  Ctrl      все
Все форумы / Проектирование БД Ответить