|
|
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
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.10.2004, 17:26 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Эх... mv извините, но все, что идет ниже слов В общем - вполне реальное средство довести свой проект до завершения в рамках заранее установленного срока или бюджета. сильно портит то, что идет выше этих слов... Хотя я понимаю, что вы хотели как лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2004, 20:54 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Как-то двусмысленно я ответил. Я хотел сказать, что зря вы привели эти рекламные цитаты, они (цитаты) портят впечатление от поста. Рассказали бы про свой опыт, про свой проект. Что удалось, что не удалось Какие трудности. Как их преодолели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2004, 20:58 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mvBold for Delphi /Bold for C++. ---------------------------- Возвращаюсь к теме 2-х месячной давности. Если сразу не прибъёте, попробую последовательно рассказать об этом чуде, что я сам понял. Не в плане "Ура - даешь гербалайф!", а в плане - что сам знаю и умею. Судя по всему - первоначально никто (и я в т.ч.) нифига не понял. Поцапались - и разошлись. Народ продолжает рубать n-х звенку c реляционными СУБД. Рассказывай дальше, по крайней мере один слушатель обеспечен. Кстати, в примерах про налоговую - есть ли подробности, где это и что (аналог нашей налоговой службы) ? Я был бы не прочь послушать в стиле - как менялись твои представления по мере изучения : какие вопросы возникали, как решались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 06:04 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Да, и вообще, меня всегда настораживают те продукты, про кот. написанно только ХОРОШО, нет ни одного продукта без НЕХОРОШЕСТЕЙ, тем более новых. Мне бы хотелось услышать недостатки и как можно полно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 10:38 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Достоинства проявляются при знакомстве с продуктом, а вот недостатки обычно выявляются по ходу плотной работы с ним. В итоге чтобы сразу при знакомстве обьективно оценить достоинства и недостатки какого либо продукта нужно как минимум иметь неслабый опыт работы с аналогичными технологиями и продуктами. Я в таких случаях по рассказам о каком либо чуде сразу спрашиваю собеседника о мотивации перехода на этот продукт. Если обьективной мотивации нет, то есть собеседник может только рассказать как все круто, сослаться что все в мире теперь так работают или же что это более современное средство, революция или еще чего - все это означает только, что все рассказы о достоинствах можно пока пропускать мимо ушей и подождать, пока рассказчик реально не поработает и не хлебнет порцию недостатков, вот тогда будет можно и посмотреть на продукт :) P.S. Все вышесказанное я не относил к хозяину топика, просто так сказать высказал собственный жизненный опыт. Мне лично очень интересно слушать о Bold, так как мне показалось, что изюминка в нем есть, значит ее нужно конкретизировать и принять на вооружение, а не освистывать даже не разобравшись. Особенно после заявлений, что это методология я честно говоря вообще заинтригован, так как сейчас как раз вот и разрабатываю собственную методологию разработки 2-х звенных клиент-серверных проектов на базе экстремального программирования и моя концепция очень сильно судя по описаниям mv смахивает в том числе и на MDA, только у меня модель проекта храниться в БД, существуют понятия прототипов сущностей, эталонных процедур точек входа и выхода, для каждого прототипа существуюет юнит-тест, на базе моего языка шалонов ASA MacroSQL для каждой физического таблицы БД есть возможность обвязать их логическими аттрибутами из словаря проекта (это с C# уже дернуто), которые автоматически влияют на генерацию ХП и триггеров с шаблонов, ссылающихся на эти аттрибуты. Ну и плюс сразу поддерживается генерация по определенным в словаре проекта стилям представлений визуальных DataWindow, которые могут экспортироваться в библиотеки PBL, а значит дальше использоваться в клиентской части, написанной на PowerBuilder или .NET платформе при установленном на ней DataWindow.NET. Чуть позже я в свой топик выложу детальные описания и скриншоты дизайнера, будет интересно сравнить с Bold :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 11:13 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Про недостатки. ----------------- Ну, да. Недостатков всегда больше, чем хотелось бы. Нашел уже пару явных глюков. А как же в нашем деле без этого? Правдо, все пока разрешилось нормально. Ну, вот еще, например - вопросы локализации. Как скромно написано в книжке , вопросы локализации легко разрешаются простым Rational-Rose скриптом (пример в приложении книжки). Угу. Не далее как вчера нарвался на то, что при генерации скрипта, для имен автоматически созданных классов (реализующих множественную ассоциацию), используются имена классов модели, и, если они русские - то и имена объектов программы на Delphi будут "транслитерированы". Т.е. просто кракозябрами. Причем процесс "транслитерации" забит программно - его можно либо отключить, либо включить - изменить таблицу перекодировок не представляется возможным. Хотя и эту беду обошел. Думаю, дальше буду использовать специально добавленные в модель тэг - параметры, в которых буду хранить русские имена объектов модели. Но это мелочь, правда? Всю жизнь на англиском проектировали, у тут нефиг было губу раскатывать. Хотя, если переделать одну малюсенькую процедурку в сырцах... Ну, еще - когда создал первое многопользовательское приложение, и меня уже распирало от гордости при виде того, как у юзеров автоматически меняются совместно редактируемые данные (это та фича, про которые многие "релиционщики" говорят, что она не нужна - так по мне, ее просто было тяжело реализовать. IMHO.), возникли проблемы с совместными блокировками. Но и с этим разобрался - просто прочитал в доках описание концепции регионов . Все очень прозрачно. Ну, стандартные контролы мне не очень нравятся. Потихоньку затачиваю свои контролы. В доках есть описание процесса "болдификации" "обычных" контролов. Еще не нравится то, что в сгенерированных файлах кода (ну, если, к примеру, хочу переопределить виртуальную функцию класса в коде Delphi), не работает Class Copletion. Ну да ладно, было время (Турбо Паскаль!), когда ничего такого и в помине не было. ------------------------- Насчет своей работы. Сейчас добиваю визуальный дизайнер для конфигурирования комплекта поставки программного обеспечения. Внешне выглядит как MS Visio, с прямоугольничками и связями между ними. Ну, граф с разными видами связей между узлами. Реализация графического интерфейса (настраиваемого) заняла всего 2-3 дня, еще день - на "болдификацию" (ну, чтобы данные в базе сохранялись). Сечас, когда добью "красоту", попробую "обернуть" рисовалку в Bold - контрол. Да, еще раз по поводу книжке - купите и прочтите. Многое там опущено (объем все-таки небольшой) - но как вводный курс очень даже ничего. Да, с Bold идет масса документации в электронном виде (есть ли в печатном - не знаю :). Очень жалко, но "опытные" программисты при разговоре часто не въезжают, о чем речь. Хотя идея чрезвычайна проста и красива. Може, опубликование реализованных фич продукта (это все второстепенно, поверьте! - главное - сама идея) поможет заинтересовать народ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 14:34 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, пожалуй, стоит начать с архитектуры. Или с возможностей. Ну ладно, архитектура. Далее аббревиатура ОП будет означать Объектное пространство или объектный слой. Обозначения: ------------- 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 11:52 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, а теперь - о возможностях. Возможности Ну, как всегда, сперва бла-бла-бла (можно не читать первые два абзаца :) Технология 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.10.2004, 12:51 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Как я уже и говорил, это архитектура, как никакая другая, подходит для реализации многозвенок, а для К-С прилож. уж слишком тяжела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 12:55 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Да и идея в К-С прилож. совсм другая - основная нагрузка на СЕРВЕР. А для многозвенок очень даже подходит, так как бизнес логика реализуется в Сервере Приложения (только вот про констрайнты мне совсем не нравится идея). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 12:57 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, блин... 2-х - звенки - 3-х звенки... О чем вообще разговор-то? Ну ладно, если хочешь. Поговорим. Ну, для "классической" трехзвенки - с " физическим " разделением на три уровня тут тоже попариться нужно, несмотря на наличие Clientifier. Тут все-таки предполагается сорее логическое разделение по уровням - представление, бизнес-логика - хранение. А реализовать - да хоть в одном модуле, используя XML - потоки для хранения данных. При создании прототипов приложения я так и делаю, чтобы, типа - "Пришел к заказчику, воткнул в комп флешку - и все работает". А так, если с вашей точки зрения - то скорее я использую 2-х звенку. Ну, плюс модуль синхронизации - Propagator на одном из компьютеров. Если хочешь, пусть такая схему будет называться трехзвенкой. Да хоть семизвенка - что в это упираться-то? Главное - MDA! Ну, все-таки, этот разговор - уход от темы. Все фигня, кроме пчел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 13:14 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mvПроизводительность Производительность, выраженная во времени разработки, вызывает дикую радость пользователя (пъянки, пляски, песни и проч.), максимально использующего Bold - технологию. RAD – природа продукта дает непревзойденную скорость при итеративной разработке и требует минимум кодирования. Так, все-таки, в цифрах - какой именно прирост производительности дает Bold? Можно ли сказать, что если при традиционной разработке некого приложения трудоемкость составит около 12 чел/мес, то использование Bold дает экономию в 2-4-6-... чел/мес? Какие преимущества дает Bold при разработке бизнеслогики (не останавливаясь на возможностях создания интерфейса с применением drag-n-drop без ручного кодирования)? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 13:57 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, в первом посте сказано было о 10-кратном улучшении производительности, а автор книжки утверждает, что гораздо больше. Боюсь вызвать поток насмешек обсуждением этого вопроса. Насчет сокращения времени разработки - это правда. Автор книжки, когда внедрял технологию в своей фирме, по собственной инициативе, "долгими зимними вечерами", за месяц создал рабочую систему из 150 табличек (ну, далее нужно говорить не о табличках, а о классах). Я думаю, такая система как раз соответствует 10-12 человеку-месяцам. Ну, думаю, как всгда - нужно время на освоение. Вспомните свои первые клиент - серверные приложения. И сравните с "не первыми". авторКакие преимущества дает Bold при разработке бизнеслогики (не останавливаясь на возможностях создания интерфейса с применением drag-n-drop без ручного кодирования)? Хорошо. Про графический интерфейс ни слова. - Ну, об этом уже говорилось. Бизнес - объекты живыт в ОП, которое управляется напрямую UML - моделью. UML - модель "живет" в приложении. Нет разрыва между документацией и реализацией. Я имею в виду бизнес-логику, естественно. - Плюс, учитывая ограничения UML - модели - используется язык OCL. - если и этого Вам мало - дополнительные бизнес-правила могут реализовываться в коде (Delphi / C++), но опять-таки как реализация в коде операций/атрибутов/ассоциаций/ограничений модели. Т.е. опять все в рамках модели. - достаточно эффективный механизм отображения объектного пространства на пространство реляцинных СУБД. Т.е. ты практически не занимаешься SQL - кодированием. Если хочешь оптимизации - пожалуйста, есть возможность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 14:31 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Еще такой вопрос: Где хранится бизнес-логика? Судя по всему.... Непонятно где, что-то :) Но скорее всего на клиенте. Так? Или бОльшая часть на клиенте, остальное в БД? Есть ли хоть какие хранимые процедуры в БД. которые генерятся автоматически. И если есть, чего они выполняют? ЗЫ Я это к чему? К тому, что если все на клиенте, то без него система не система уже и БД никому не нужна и никакой пользы не принесет. Правда может кому-то и не нужен доступ к системе извне клиента. Но обычно случается, что доступ нужен. Лично мне так было бы нехорошо. Ну и про скорость работы системы хотелось бы узнать, правда как сравнить то ее с к-с? :)) авторПравительство, система управления налогами Описание Система управления налогами для индивидуальных лиц и предприятий Пользователи 200 налоговых регистрационных пунктов, административный персонал Объем 130 классов, 10 миллиона объектов Что тут подразумевается под объектами? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 14:40 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторЕсли хочешь оптимизации - пожалуйста, есть возможность А каким образом? В смысле, где там вообще лежит то, чего можно оптимизировать и как к оному подобраться и изменить? И не переправится ли оно обратно в следующую.... ну компиляцию или сборку или чего там делается, когда вносятся изменения :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 14:43 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
2 Тигра. 1. Бизнес - логика хранится непосредственно в модели. А модель - в приложении. Это ж MDA (Model Driven Architecture) 2. Доступ к базе (как и управление генерацией схемы базы) реализуется посредством специальных адаптеров. Если тебе мало существующих - реализуй свои. Все исходники в наличии. Автор многократно упоминаемой книжки делал "свои" адаптеры, которые генерировали, кроме таблиц, еще и ХП (для Oracle, насколько я помню). 3. Насчет скорости а. Ну, давай сравним MS SQL и MySQL. В каком случае скорость больше? Нужна конкретная задача, которую каждый реализует, как может. б. Мне (пока) хватает. в. Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую. в. Еще раз - все зависит от конкретной задачи и от знаний/умений разработчика. Или ты не согласен. 4. Объекты - это объекты. В плане ООП. Экземпляры классов в Delphi/C++, например. 5. По поводу изменений структуры модели/базы. Отдельный разговор. Следите за новостями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 15:01 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
2 Тигра. 1. Бизнес - логика хранится непосредственно в модели. А модель - в приложении. Это ж MDA (Model Driven Architecture) 2. Доступ к базе (как и управление генерацией схемы базы) реализуется посредством специальных адаптеров. Если тебе мало существующих - реализуй свои. Все исходники в наличии. Автор многократно упоминаемой книжки делал "свои" адаптеры, которые генерировали, кроме таблиц, еще и ХП (для Oracle, насколько я помню). 3. Насчет скорости а. Ну, давай сравним MS SQL и MySQL. В каком случае скорость больше? Нужна конкретная задача, которую каждый реализует, как может. б. Мне (пока) хватает. в. Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую. в. Еще раз - все зависит от конкретной задачи и от знаний/умений разработчика. Или ты не согласен. 4. Объекты - это объекты. В плане ООП. Экземпляры классов в Delphi/C++, например. 5. По поводу изменений структуры модели/базы. Отдельный разговор. Следите за новостями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 15:07 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Я и с одного раза понимаю :)) автор1. Бизнес - логика хранится непосредственно в модели. А модель - в приложении. Это ж MDA (Model Driven Architecture) Понятно автор2. Доступ к базе (как и управление генерацией схемы базы) реализуется посредством специальных адаптеров. Если тебе мало существующих - реализуй свои. Все исходники в наличии. Автор многократно упоминаемой книжки делал "свои" адаптеры, которые генерировали, кроме таблиц, еще и ХП (для Oracle, насколько я помню). Я не про такой доступ. Я имею ввиду доступ не из клиента, а извне. Независимо от клиента доступ к БД без потери логической целостности. Но теперь понятно, что такое тут невозможно. автор3. Насчет скорости а. Ну, давай сравним MS SQL и MySQL. В каком случае скорость больше? Нужна конкретная задача, которую каждый реализует, как может. Это да, и сказал - как померить то? Просто может была подобная система на к-с технологии.... авторв. Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую. А где они кэшируются? И как это может влиять на скорость??? авторв. Еще раз - все зависит от конкретной задачи и от знаний/умений разработчика. Или ты не согласен. Конечно согласен :) автор4. Объекты - это объекты. В плане ООП. Экземпляры классов в Delphi/C++, например. Ну то есть а переводе на к-с - количество всех записей таблиц в БД. Ну, не густо получается. автор5. По поводу изменений структуры модели/базы. Отдельный разговор. Следите за новостями. Не, не структуры - я спрашивал про достаточно эффективный механизм отображения объектного пространства на пространство реляцинных СУБД. Т.е. ты практически не занимаешься SQL - кодированием. Если хочешь оптимизации - пожалуйста, есть возможность. Вот где делать то оптимизацию??? В запросах, которые лежат в исходниках клиента? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 15:31 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, тигра, я не понимаю, что ты спрашиваешь, наверное. Хотя очень стараюсь. Давай "выделим нить обсуждения, и обсудим ее". По одному вопросу, если можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 15:37 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
tygra Не, не структуры - я спрашивал про достаточно эффективный механизм отображения объектного пространства на пространство реляцинных СУБД. Т.е. ты практически не занимаешься SQL - кодированием. Если хочешь оптимизации - пожалуйста, есть возможность. Вот где делать то оптимизацию??? В запросах, которые лежат в исходниках клиента? Понятие "оптимизация" != "оптимизация БД". Оптимизировать можно и UML модель. При оптимизации системы имеет смысл оптимизировать наиболее критичные для этой системы участки. Если логика в базе - то SQL запросы. Если на клиенте - то клиента. Если посередине, то средний уровень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 15:40 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторЯ и с одного раза понимаю :)) Пардон, нажал не туда. авторЯ не про такой доступ. Я имею ввиду доступ не из клиента, а извне. Независимо от клиента доступ к БД без потери логической целостности. Но теперь понятно, что такое тут невозможно. Ну, так же, как и обычная реляционная СУБД не защищена от доступа со стороны программ, работающих с файлами ОС "напрямую" :) автор Просто может была подобная система на к-с технологии.... Была у нас простая справочная система на полтора десяка юзеров, переписал ее на новой технологии - тетки вроде не вопят. InterBase (FireBird 1.5) Но там не было критичных запросов - чисто справочная система - изредка формирование разной статистики. Объем базы невелик - файл около 70 мегабайт. Ну, первоначальная загрузка данных стала чуть быстрее - но думаю, и на старой системе этого можно было достичь. авторА где они кэшируются? И как это может влиять на скорость??? В объектном пространстве. А потом, когда нужно - все изменения скопом сбрасываются в СУБД. Я думаю, что работа с ОП все-таки быстрее, чем с дисковой подсистемой? :) авторНу то есть а переводе на к-с - количество всех записей таблиц в БД. Ну, не густо получается. Ну, тут уже другие правила при проектировании сущностей. Может и не густо, а может - и густо. авторВот где делать то оптимизацию??? В запросах, которые лежат в исходниках клиента? Ну, насчет оптимизации. Если тебя не устраивает производительность запросов по "по умолчанию", то есть копоненты, в которых ты прямо ручками шишешь SQL - запрос, как в до боли знакомой TQuery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 15:56 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Один При оптимизации системы имеет смысл оптимизировать наиболее критичные для этой системы участки. Если логика в базе - то SQL запросы. Если на клиенте - то клиента. Если посередине, то средний уровень. Братцы, я не понимаю интерес именно с этой стороны. Когда вы приложения с использованием SQL - серверов делать стали, вас в первую очередь, интересовали вопросы оптимизации? Ну, есть возможность отладки на разных уровнях, в т.ч. и трассировка SQL - запросов. И изменение параметров системы для улучшения производительности. - Граждане извозчики! Автомобиль позволяет развить скорость до 30 верст в час, он состоит из кузова, мотора, и ходовой части! Вопросы есть? ... куда вожжи...? ... а по буеракам? ... в Тверь до вечера поспеешь? Иди ты! ... охр@нел совсем, а куда подковы, совсем новые? ... лошади пугаться будут! ... да он пъяный! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 16:09 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
ОдинПонятие "оптимизация" != "оптимизация БД". Оптимизировать можно и UML модель. Нет, тут как раз вопрос про БД. Это и mv подтвердил дальше. авторНу, так же, как и обычная реляционная СУБД не защищена от доступа со стороны программ, работающих с файлами ОС "напрямую" :) Неееееее, вопрос не про защиту - как раз про наоборот. Т.е. в своей системе я могу в большинстве случаев хоть откуда - хоть из asp.net - дернуть ХП и сделать какое-то "бизнес-логическое" действие, т.е. ХП внутри себя сделает чего-то, призведет манипуляции с данными. вызовет еще n ХП - и в результате получится некоторое доведенное до логического окончания действие. Например провести заказ в статус, или переместить товар и т.д. Мне для это нужно в большинстве случаев всего то написать exec MyStoredProc @id = ... и все. Это частный пример, можно делать все, что угодно. И не всегда есть необходимоть/возможность/время запускать клиента. В случае же Bold получается, что так никак не сделать. Потому что только клиент контролирует всю логику работы системы. авторВ объектном пространстве. А потом, когда нужно - все изменения скопом сбрасываются в СУБД. Я думаю, что работа с ОП все-таки быстрее, чем с дисковой подсистемой? :) Ну БД то тоже кэширует данные, и неплохо это делает :) А вот как же тогда другие клиенты - они то не узнают о сделанных изменениях. Т.е. в большинстве случаев все же нужно сбрасывать данные сразу, без кэширования. авторНу, насчет оптимизации. Если тебя не устраивает производительность запросов по "по умолчанию", то есть копоненты, в которых ты прямо ручками шишешь SQL - запрос, как в до боли знакомой TQuery. Теперь понятно :) авторБратцы, я не понимаю интерес именно с этой стороны. Когда вы приложения с использованием SQL - серверов делать стали, вас в первую очередь, интересовали вопросы оптимизации? Сначала нет, а потом так заинтересовали....!!!! Поэтому обжегшись на молоке, дуем на воду. Тем более что если отсутствуют нормальные способы оптимизации, то на фиг такая система. Потому сразу и спрашиваем :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 16:39 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторБратцы, я не понимаю интерес именно с этой стороны. Когда вы приложения с использованием SQL - серверов делать стали, вас в первую очередь, интересовали вопросы оптимизации? Да нет, конечно же впервую очередь не интересовало. Просто рано или поздно все мы наступили на такие грабли, которые больно бьются и называются "Ограничения". И это касается всего чего угодно - от Access-а до самых современных средств разработки и моделирования приложений. Так что вот второй раз наступать на эти грабли никому ой как не хочется (во всяком случае я еще такого человека не встречал), поэтому так все дотошно и интересуются ограничениями :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 16:45 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
автор Т.е. в своей системе я могу в большинстве случаев хоть откуда - хоть из asp.net - дернуть ХП и сделать какое-то "бизнес-логическое" действие, т.е. ХП внутри себя сделает чего-то, призведет манипуляции с данными. вызовет еще n ХП - и в результате получится некоторое доведенное до логического окончания действие. Например провести заказ в статус, или переместить товар и т.д. Мне для это нужно в большинстве случаев всего то написать exec MyStoredProc @id = ... и все. Это частный пример, можно делать все, что угодно. И не всегда есть необходимоть/возможность/время запускать клиента. В случае же Bold получается, что так никак не сделать. Потому что только клиент контролирует всю логику работы системы. Ты невнимателен. Посмотри на описание - про COM - клиентов. авторНу БД то тоже кэширует данные, и неплохо это делает :) Кэширование на клиенте несет совсем иную смысловую нагрузку. Ты о таком режиме не слышал? авторА вот как же тогда другие клиенты - они то не узнают о сделанных изменениях. Т.е. в большинстве случаев все же нужно сбрасывать данные сразу, без кэширования. Ты невнимателен. Есть механизм пропагаторов. авторТем более что если отсутствуют нормальные способы оптимизации, то на фиг такая система. Система есть, но "нормальна" ли она для каждого отдельно взятого девелопера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 16:56 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторТы невнимателен. Посмотри на описание - про COM - клиентов. Внимателен. Но как-то меня не прикалывает вызывать COM-объект для того, чтобы например перевести заказ в нужный статус. авторКэширование на клиенте несет совсем иную смысловую нагрузку. Ты о таком режиме не слышал? Ну или мы говорим о кэшировании данных, или о чем-то другом. Если о первом, то ..... совсем уж не иную. авторТы невнимателен. Есть механизм пропагаторов. Внимателен: Propagator Сервер сихронизации, оповещает клиентов об изменениях состояния бизнес-объектов, произошедших в уровне хранения данных Как другой клиент увидит изменения, если их в БД еще нет? То, что он узнает об изменениях, не поможет. Или propagator рассылает измененные данные? Не думаю что-то. А если не рассылает - то чтобы другой клиент увидел изменения, первый клиент должен их положить на сервер БД. А как же тогда Система изначально использует парадигму кэширования всех выполняемых изменений, так что, если придерживаться этой парадигмы, скорость можно обеспечить потрясающую. Или я что-то не то думаю, не о том кэшировании? Тогда как оно связано со скоростью? Во! Как кэширование изменений связано с потрясающей скоростью? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 17:08 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторНо как-то меня не прикалывает вызывать COM-объект для того, чтобы например перевести заказ в нужный статус. Это проще, чем кажется. Но конечно, насильно мил не будешь. авторНу или мы говорим о кэшировании данных, или о чем-то другом. Если о первом, то ..... совсем уж не иную. Данные на серваке кэшируются с целью уменьшения обращения к дисковой подсистеме. Данные на клиенте кэшируются: - с целью выполнения последовательности некоторых дествий, которые интересны серверу только после их логического завершения. Например - формирования составного документа. - с целью уменьшения трафика сети. авторВнимателен: Невнимателен. авторКак другой клиент увидит изменения, если их в БД еще нет? То, что он узнает об изменениях, не поможет. Или propagator рассылает измененные данные? Не думаю что-то. А если не рассылает - то чтобы другой клиент увидел изменения, первый клиент должен их положить на сервер БД. Беда, беда. Привык ты к кусорам всяким, не понимаешь. Вот пример. На экране юзера отображается два поля - Фамилия и Имя. Юзер извлек эти поля не по принципу SQL - "select и зыбыл", а получив унакальный идентификатор объекта. Об получении этого объекта он известил пропагатор, и попросил его извещать обо всех изменениях, сделанных с этим объектом (подписалься на этот объект). Ну, вот, когда кто-то меняет объекты, эти кто-то извещают пропагатор об изменениях. Если ты подписался на эти объекты, то получаешь от пропагатора соотв. сообщение, и повторно отфетчивешь объект. А выглядит все очень прикольно - ты сделал изменение в фамилии - и все юзеры через положенное время увидели результат. Скажи - такое приработе РСУБД возможно в общем виде, с отображением произвольной структуры вьюх? Я лично объяснял заказчику, что это не нужно, потому что он не понимает своей выгоды от не-реализации такой фичи. А тут - все на поверхности. авторКак кэширование изменений связано с потрясающей скоростью? Все еще не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 17:25 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторА если не рассылает - то чтобы другой клиент увидел изменения, первый клиент должен их положить на сервер БД. Извини, пропустил. Да, конечно, когда КЛИЕНТ посылает данные на сервер, только тогда пропагатор и начинает работать. Т.е. "у себя в кармане" копайся сколько влезет, а как кидаешь все на сервер - пожалте через пропагатор. Тут еще про механизм блокировок и про регионы поговорить нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 17:32 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторБеда, беда. Привык ты к кусорам всяким, не понимаешь. Вот пример. На экране юзера отображается два поля - Фамилия и Имя. Юзер извлек эти поля не по принципу SQL - "select и зыбыл", а получив унакальный идентификатор объекта. Об получении этого объекта он известил пропагатор, и попросил его извещать обо всех изменениях, сделанных с этим объектом (подписалься на этот объект). Ну, вот, когда кто-то меняет объекты, эти кто-то извещают пропагатор об изменениях. Если ты подписался на эти объекты, то получаешь от пропагатора соотв. сообщение, и повторно отфетчивешь объект. А выглядит все очень прикольно - ты сделал изменение в фамилии - и все юзеры через положенное время увидели результат. Скажи - такое приработе РСУБД возможно в общем виде, с отображением произвольной структуры вьюх Какие курсоры? Я их видел то два раза за год. Что, не знаю чтоли, как извещения работают? Только при чем тут вьюхи??? Ну сделать подписку на изменения можно и в обычной к-с системе, и не так сложно. Но нужно ли? Лишний трафик, кстати :). Но если сильно нужно - да нефиг делать, сделаем. :) Но тогда кэшировать нельзя - никто ничего не увидит. Неувязочка однако. авторДанные на серваке кэшируются с целью уменьшения обращения к дисковой подсистеме. Данные на клиенте кэшируются: - с целью выполнения последовательности некоторых дествий, которые интересны серверу только после их логического завершения. Например - формирования составного документа. - с целью уменьшения трафика сети. Ну так и к-с так же делает. И так и не понятно - где тут скорость? Где скорость, зависящая именно от кэширования технологией Bold? Скорость чего? Можно ли конкретный пример, чтобы было видно, что и как ускорилось? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 17:47 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторБеда, беда. Привык ты к кусорам всяким, не понимаешь. Вот пример. На экране юзера отображается два поля - Фамилия и Имя. Юзер извлек эти поля не по принципу SQL - "select и зыбыл", а получив унакальный идентификатор объекта. Об получении этого объекта он известил пропагатор, и попросил его извещать обо всех изменениях, сделанных с этим объектом (подписалься на этот объект). Ну, вот, когда кто-то меняет объекты, эти кто-то извещают пропагатор об изменениях. Если ты подписался на эти объекты, то получаешь от пропагатора соотв. сообщение, и повторно отфетчивешь объект. А выглядит все очень прикольно - ты сделал изменение в фамилии - и все юзеры через положенное время увидели результат. То есть если я через ISQL напишу UPDATE Table SET FIO = <Значение> WHERE Man_id = <Код> , то все клиенты, написанные на Bold будут об этом извещены ? Или же мне нужно такие изменения делать только опять же через Bold и любой такой запрос из левого приложения или хранимой процедуры вызовет несоотвествие данных, лежащих на сервере и хранящихся у клиентов, что и происходит при классической реализации клиент-сервера ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 17:51 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Тигра, опять ты меня развел... Очень уж ты эмоционален. Хорошо хоть, что общаемся в виртуале. авторКакие курсоры? Я их видел то два раза за год. Что, не знаю чтоли, как извещения работают? Только при чем тут вьюхи??? Ну да, вьюхи тут не причем. Я имею в виду, что то, что получил клиент с сервера (в обычной к-с системе) - это как на бумаге отпечатано. Ну, получил ты результаты запроса типа Код: plaintext 1. авторНу сделать подписку на изменения можно и в обычной к-с системе, и не так сложно. Но нужно ли? Лишний трафик, кстати :). Но если сильно нужно - да нефиг делать, сделаем. :) Хорошо тебе. Умный ты. Ну, а тут все это есть изначально. авторНу так и к-с так же делает. Ну, да, есть такой режим. авторИ так и не понятно - где тут скорость? Где скорость, зависящая именно от кэширования технологией Bold? Скорость чего? Можно ли конкретный пример, чтобы было видно, что и как ускорилось? Извини, не понял вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:03 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv...Ну, получил ты результаты запроса типа Код: plaintext 1. Ничего не понял. Редактировать с сохранением в БД без написания update невозможно. Так и никто не может редактировать. А вот если t1.Field1, t2.Field2 - альтернативные ключи - то очень даже можешь редактировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:13 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
PL99 mv...Ну, получил ты результаты запроса типа Код: plaintext 1. Ничего не понял. Редактировать с сохранением в БД без написания update невозможно. Так и никто не может редактировать. А вот если t1.Field1, t2.Field2 - альтернативные ключи - то очень даже можешь редактировать Ага! Попался один! А вот в Bold мы работаем не с копией данных, а с самими данными! И там такое делается как само собой разумеющаяся вещь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Да почему эмоциональный, просто пытаюсь докопаться до сути - самой :) авторсмотришь на него, а редактировать без написания соотв. update - sql не можешь. А в данном случае не можешь в принципе. Потому что Id__t1, Id_t2 не присутствуют в выборке. А я обычно ИД-шники включаю. И с успехом редактирую :) Через вызов ХП. авторХорошо тебе. Умный ты. Ну, а тут все это есть изначально. А всегда ли нужно, вот в чем вопрос. Зачем зр трафик жрать, на БД нагрузку. А то подписаны 100 клиентов на один объект, а он изменился. И все 100 в БД полезли. Тормоза начались..... А зачем? Если из них только трем эти изменения нужны. авторИзвини, не понял вопроса. Ну так всяко уже задавал :) Давай еще попробую: каким образом кэширование изменений приводит к потрясающей скорости? Пример очень желателен - без и со скоростью. Я же не с проста вопросы задаю. Просто сравниваю: есть ли что-нибудь такое в этой технологии, что мне сильно бы помогло? Пока есть только одно ЗА - удобство разработки (а может и не удобство это), когда и логика и данные и клиент делаются вместе и связаны. Но пока что и много ПРОТИВ - логика на клиенте, отсюда проблемы с обновлением и клиента, и БД, и вообще с проведением изменений, проблема с доступом, точнее непрозрачность системы, которая без своего клиента не существует в принципе, ну и т.п. И все эти ПРОТИВ очень сильно перевешивают это ЗА. Потому что я и сейчас не испытываю особых проблем с разработкой. И еще. Ну хорошо, позволила эта технология быстро разработать систему. А сопровождать? Ну разработали мы вместо полгода за два месяца - а потом вдруг оказалось, что поддержка настолько тяжела, внесение изменений настолько трудо и времяемко, получение отчетов и другой информации обычными способами из БД вообще невозможно, тормоза страшные а оптимизация в следствие зашитости логики и запросов в клиента так гиморно производится, что ............. а ну его нафиг такую систему, пусть заказчик сам с ней ...%;№"*?: Это не к этой технологии конкретно и не к какой-то конкретно системе а вообще - рассуждения о любой системе. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:21 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторАга! Попался один! А вот в Bold мы работаем не с копией данных, а с самими данными! И там такое делается как само собой разумеющаяся вещь. Ну-ка ну-ка, как это??? Вы прямо с файлом БД работаете чтоли? Неужели в БД можно записать/обновить данные без запроса??? Эээээ, да это вы попались. Как же вы можете обновить данные объекта без его ID, если на этом (на объектах) построена вся технолгия? Не получится - может вы просто не видите запрос на изменение? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:24 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Да, кстати, вы же немного выше сами говорили: авторДанные на клиенте кэшируются...... автор..... и повторно отфетчивешь объект....... Так как же вы ........ Нда, я только сейчас прочувствовал фразу: А вот в Bold мы работаем не с копией данных, а с самими данными! ЗЫ Я абсолютно спокоен! Без эмоций! Просто интересно уже стало. Продолжение следует......... Ну и кстати: всем хороших выходных, а то устал я так за неделю....... -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:29 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторА я обычно ИД-шники включаю. И с успехом редактирую :) Через вызов ХП. Да понятно. авторА всегда ли нужно, вот в чем вопрос. Зачем зр трафик жрать, на БД нагрузку. А то подписаны 100 клиентов на один объект, а он изменился. И все 100 в БД полезли. Тормоза начались..... А зачем? Если из них только трем эти изменения нужны. Ну, ты даешь! Если тебе что-то не нужно, то же не делаешь этого? Если только трем нужны - то пусть только три и пописываются :) авторДавай еще попробую: каким образом кэширование изменений приводит к потрясающей скорости? Пример очень желателен - без и со скоростью. Извини, Тигра, но для меня эти вещи как сами собой разумеющиеся - попробуй, к примеру, К-С прогу сделать, что быстрее - когда ты на каждый чих лезешь на сервер, начинаешь транзакцию, отсылаешь запрос, потом заканчиваешь транзакцию, или когда пакетом данные обновляешь? авторНо пока что и много ПРОТИВ - логика на клиенте, отсюда проблемы с обновлением и клиента, и БД, и вообще с проведением изменений, проблема с доступом, точнее непрозрачность системы, которая без своего клиента не существует в принципе, ну и т.п. Ох, у тебя память типа кольцевого регистра - уже все забыл... Код: plaintext авторНу хорошо, позволила эта технология быстро разработать систему. А сопровождать? Ну разработали мы вместо полгода за два месяца - а потом вдруг оказалось, что поддержка настолько тяжела, внесение изменений настолько трудо и времяемко, получение отчетов и другой информации обычными способами из БД вообще невозможно, тормоза страшные а оптимизация в следствие зашитости логики и запросов в клиента так гиморно производится, что ............. а ну его нафиг такую систему, пусть заказчик сам с ней ...%;№"*?: А сопровождение - просто сказка. Изменение структуры модели/базы/репликации - ух, как здорово. Но домой уже пора. Пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:31 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv Ага! Попался один! А вот в Bold мы работаем не с копией данных, а с самими данными! И там такое делается как само собой разумеющаяся вещь.Сильно сказано :-)) Ты хоть сам-то понял, что сказал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 18:42 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mvИзвини, Тигра, но для меня эти вещи как сами собой разумеющиеся - попробуй, к примеру, К-С прогу сделать, что быстрее - когда ты на каждый чих лезешь на сервер, начинаешь транзакцию, отсылаешь запрос, потом заканчиваешь транзакцию, или когда пакетом данные обновляешь? Вы уж меня извините, но сейчас абсолютно все так и делают. Называется это кэшированные или отложенные изменения. Где то это напильником нужно обработать (как в ADO под Access например), где то просто компонентку прицепить (тот же TUpdateSQL для Delphi или DataAdapter для ADO.NET), а где то это на автопилоте поддерживается (тот же PowerBuilder). Все могут открыть соединение, считать данные, отцепиться от сервака и сколько угодно работать до тех пор, пока клиент не потребует перечитать данные или сохранить все изменения. На изменения опять же открывается соединение, стартуется транзакция, посредством вызовов DDL или ХП на каждую измененную запись вызывается нужный оператор у сервера и после завершения сохранения транзакция коммититься или откатывается в зависимости от результата. Делается все это автоматически ! У меня все таки возникает впечатление, что Вы не только теорию РСУБД плохо знаете, но оказывается еще и Delphi то же. Может быть оно и субьективное, но тогда пожалуйста повнимательнее следите за своими высказываниями, чтобы у участников не возникало таких мыслей (а пока именно они и возникают). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 23:37 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Пардон, грипповал неделю. Вот обещанный рассказ о сопровождении модели. В аттаче. Перевел, как сил хватило. От себя могу добавить - в общем-то, все не так уж и сложно. Открываешь демку, смотришь доку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 11:16 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Месяц работал, сюда не заглядывал... Мдя... Неужели так никто и не заинтересовался системой? Все мазохисты, что ли, или так любят низкоуровневое программирование? Смотрите, в Delphi 2005 система ECO позиционируется как центральное новшество. Останетесь на остановке со своими ХП/Триггерами, а поезд с MDA дальше уедет! Если кому интересно - появилось масса доков по-русски, да и опыт в разработке / отладке / оптимизации Bold for Delphi. Пишите. Всем привет и счастливо оставаться! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 03:54 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv Неужели так никто и не заинтересовался системой? ... Если кому интересно - появилось масса доков по-русски, да и опыт в разработке / отладке / оптимизации Bold for Delphi Неправда ваша (про никто) :). Начали копать помаленьку. Правда сразу начали смотреть в сторону TBoldCOMServerHandle (DCOM), когда сама модель на сервере лежит (типа классической трехзвенки). Есть ли наработки/опыт/грабли в этом направлении или стоит плюнуть ? Просто в инете нашлось всего две ссылки по этой теме. Дальше - что там с отчетами не очень ясно. Еще - что-нибудь про разработку в Bold-е для команды (принципы, особенности и тд) Ну и про доки на русском - можно ссылки, или на е-mail за посылкой приходить ? :) Про ECO vs Bold пару слов послушать бы. Где-то мелькало, что служба качества Borland пока не пропустила Bold в 2005. Если есть инфа по новым реализованным проектам (в т.ч. по своим) - тоже интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 05:48 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну да, вот аттач-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 07:09 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Andr2 Начали копать помаленьку. Правда сразу начали смотреть в сторону TBoldCOMServerHandle (DCOM), когда сама модель на сервере лежит (типа классической трехзвенки). Есть ли наработки/опыт/грабли в этом направлении или стоит плюнуть ? Просто в инете нашлось всего две ссылки по этой теме. Дальше - что там с отчетами не очень ясно. Еще - что-нибудь про разработку в Bold-е для команды (принципы, особенности и тд) Ну и про доки на русском - можно ссылки, или на е-mail за посылкой приходить ? :) Про ECO vs Bold пару слов послушать бы. Где-то мелькало, что служба качества Borland пока не пропустила Bold в 2005. Если есть инфа по новым реализованным проектам (в т.ч. по своим) - тоже интересно. Насчет работы в команде - где-то читал, найду, скажу. Ну, тут мне представляется вообще идеал - выкладываешь для общего обозрения/юзанья ядро с моделью и интерфейсами к ней, и каждый рубит в своем направлении - кто ГУИ, кто дополнительную функциональность в коде и проч. Главное - все работают с одной моделью. И число девелоперов должно кардинально снизиться. (Да и где их много взять-то под Bold ?:-) Ну, TBoldCOMServerHandle у меня еще впереди, похоже. ХОТЯ ТЕСТЫ ГОНЯЛ, И НИКАКИХ ПРАКТИЧЕСКИХ ПРОБЛЕМ НЕ ЗАФИКСИРОВАЛ. Ну, может, не так удобно, как при двухзвенке - типа, OCL - конструкции "ручками" писать придется. Хотя есть Clientifier, можно попробовать. Насчет отчетов - ну, что за трабла? Если есть старые привычные, DB - ориентированные генераторы - врубаешь TBoldDataSet - и вперед. А еще есть пакет BoldRave. Халявный. Вот здесь. ECO. Автор книжки (К.Грибачев) про это рассказывал, он был одним из бета - тестеров Delphi 2005. Говорил, что развивается помаленьку, все лучше и лучше. Хотя у него (да, честно говоря, и у меня) душа к .Net не лежит. Пока. Жизнь заствит, и мы перейдем... Проекты. Недавно злобные руководители заставили реализовать систему хранения документов. COM/DCOM клиент/сервер. С произвольной системой раубрикации документов, настройкой уровней отображения и т.п. Так вот, за три недели от постановки задачи до реализации полностью реализовал и переработал три практически независимые модели. Вариант с раелизацией стандартными средствами (для меня это было примерно так - ErWin <-> InterBase <-> Delphi с метанием туда-сюда) отпал почти сразу из-за ограниченных сроков. Руководство просто пищит. Зарплату подняло. Предполагамый рабочий объем базы - 20~50 гигабайт. Потестили в жестких условиях, работает с приемлимой скоростью. Хотя пришлось оптимизировать, конечно. Да, оптимизация тут - просто абассацца... (отдельный разговор). Объем модели (на сегодняшний день) небольшой - 17 классов, число пользователей в сети - до сотни, предполагаем юзать механизм пропагатора. Ну, не вполне устраивают стандартные контролы (карасиво хотца), будем RAD Studio (Bold Edition) покупать. Еще проект - пока заморожен - до февраля - система дистрибуции. На данный момент реализованы компоненты (Bold - aware) для рисования схем и диаграмм, оттачивалась схема модели. Очень классно, - меняешь значение в ОП - а на картинке прямоугольник меняет свои координаты/размеры. И наоборот. Ну, это только заготовки для работы. Вся работа еще впереди. Да, еще знакомые забацали штуковину, из тех, что сейчас модно CRM называть. За неделю. С диаграммами Ганта, сложными выборками/отображениями и т.п. Насчет доков. Вот тут кое-что (из попытк перевода + собственные домыслы) см. аттач.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 07:11 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
... и как это я умудрился перепутать местами два последних сообщения? Ну, еще разные штуки/доки есть, но они большие, а аттач не влазят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 07:13 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv Проекты. Недавно злобные руководители заставили реализовать систему хранения документов. COM/DCOM клиент/сервер. С произвольной системой раубрикации документов, настройкой уровней отображения и т.п. Так вот, за три недели от постановки задачи до реализации полностью реализовал и переработал три практически независимые модели. Вариант с раелизацией стандартными средствами (для меня это было примерно так - ErWin <-> InterBase <-> Delphi с метанием туда-сюда) отпал почти сразу из-за ограниченных сроков. Руководство просто пищит. Зарплату подняло. Здорово ! Особенно про зарплату. Вот это - реальный эффект :) А чего DCOM используется ? Ведь эта технология уже мхом поросла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 13:14 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Один mv Проекты. Недавно злобные руководители заставили реализовать систему хранения документов. COM/DCOM клиент/сервер. С произвольной системой раубрикации документов, настройкой уровней отображения и т.п. Так вот, за три недели от постановки задачи до реализации полностью реализовал и переработал три практически независимые модели. Вариант с раелизацией стандартными средствами (для меня это было примерно так - ErWin <-> InterBase <-> Delphi с метанием туда-сюда) отпал почти сразу из-за ограниченных сроков. Руководство просто пищит. Зарплату подняло. Здорово ! Особенно про зарплату. Вот это - реальный эффект :) А чего DCOM используется ? Ведь эта технология уже мхом поросла. А почему бы не юзать предлагаемые готовые решения, если они уже есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 19:09 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv ОдинЗдорово ! Особенно про зарплату. Вот это - реальный эффект :) А чего DCOM используется ? Ведь эта технология уже мхом поросла. А почему бы не юзать предлагаемые готовые решения, если они уже есть? Да кто же против ? Речь о том, что технология распределенных приложений у MS развивалась так: DCOM (позавчерашний день) - COM+ (вчерашний) - Remoting (сегоднешний) - Indigo (завтрашний, на тек. момент не существует) Если разработчики Bold не захотели связываться с .Net (Remoting) , что понятно, то почему бы не взять хотя бы COM+ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 20:48 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторДа кто же против ? Речь о том, что технология распределенных приложений у MS развивалась так: DCOM (позавчерашний день) - COM+ (вчерашний) - Remoting (сегоднешний) - Indigo (завтрашний, на тек. момент не существует) Если разработчики Bold не захотели связываться с .Net (Remoting) , что понятно, то почему бы не взять хотя бы COM+ ? Да пофиг вообще, что за система тебе интерфейсы предоставляет, хоть Corba... Я имел в виду частный случай - использование утилиты EntrprisePropagator. Не нарвится - пиши свои сервисы, тем более, что все довольно прозрачно... Главное тут - в MDA, а остальное - рюшечки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 22:55 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
1. Про Bold и проекты созданные на нем Как выяснилось, некоторые наши разработчики уже достаточно давно и успешно используют Bold. За истекший период (3 месяца) на контакт выходили около десятка подобных товарищей. Спектр приложений - самый широкий - от Интернет-магазинов до службы продажи автобусных билетов в рамках области. Рассказ MV про повышение зарплаты - вещь привычная и подтверждается всеми :-) 2. Про ECO - технология ECO в С#Builder и Delphi 8 практически мало полезна. Это были первые попытки портирования Bold для .NET. Возможностей - мало, багов - достаточно. 3. Про ECO II - в D2005 эта технология переработана коренным образом. Из вкусностей - полностью настраиваемый маппер ОП-СУБД, подконтрольный разработчику. Это, в частности, позволяет взять чужую БД, сделанную традиционным способом, "заглотнуть" ее в ECO-II и восстановить автоматом UML-модель, с которой в дальнейшем работать уже новым способом, забыв о БД. Вторая вкусность - ECO II поддерживает ASP .Net WEB Forms, что позволяет легко создавать MDA-приложения для WEB. Для Bold такая попытка (независимый пакет IWBold) в свое время закончилась провалом. Есть и другие вкусности. Старые баги исправлены, новые добавлены, процесс непрерывный и практически эта технология - одна из важнейших для Borland. Одно пока "НО" - не совсем удобный встроенный UML-редактор. Но "и это пройдет", он тоже перерабатывается. 4. Bold для 2005 протестирован (Win32) и выйдет очень скоро (по слухам, конечно :-) 5. Имеются основания утверждать, что сразу после нового года заработает новый русскоязычный сайт по всем Bold-подобным технологиям, включая форум. Приглашаются модераторы, если есть желание. Новый адрес и подробности сообщу по факту. Успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2004, 02:40 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
grikon 3. Про ECO II - в D2005 эта технология переработана коренным образом. Из вкусностей - полностью настраиваемый маппер ОП-СУБД, подконтрольный разработчику. Это, в частности, позволяет взять чужую БД, сделанную традиционным способом, "заглотнуть" ее в ECO-II и восстановить автоматом UML-модель, с которой в дальнейшем работать уже новым способом, забыв о БД. Даже мне не верится... grikon Одно пока "НО" - не совсем удобный встроенный UML-редактор. Но "и это пройдет", он тоже перерабатывается. А что, Розу уже нельзя юзать будет :(? Ну, да и фиг с ней. grikon 4. Bold для 2005 протестирован (Win32) и выйдет очень скоро (по слухам, конечно :-) Совместимость проектов - то сохранилась? grikon 5. Имеются основания утверждать, что сразу после нового года заработает новый русскоязычный сайт по всем Bold-подобным технологиям, включая форум. Приглашаются модераторы, если есть желание. Новый адрес и подробности сообщу по факту. Вау! --------------------- grikon, пара вопросов: - TBoldGrid/TVirtualTreeView фиговато работают с механизмом наследования форм/фреймов (ну, в факах об этом упоминается). Скажи, Rad-Studio пакет имеет смысл приобретать? (я в плане избавления от этих глюков и приобретения новых) - по поводу "тонкой" настройки. Выполняю отсортированные выборки, EvaluatedInPS, что называется. Ну, нутром чувствую, что если в РСУБД по конкретному полю завести индекс, то будет быстрее, естественно. Ну, так как в модели указать такой тэг атрибута (Sorted какой-нибудь, что ли...). А то как-то пошловато после генерации базы ручкми ее подправлять... - в новой версии не разрешилась проблем с тормозами при выборке сущности, на которую ссылаются масса других (про Код: plaintext - доступ к классу - ассоциации? Ну, типа, создал я ассоциацию (0..n - 0..n) с конкретным экземпляром другого класса, соответственно, автоматом создается экземпляр класса - ассоциации, ну вот, как к нему получить доступ - без вспомогательных дескрипторов списка и глупого перебора всех экземпляров классов - ассоциации на совпадение с связанным классом? ------------ Вопросы глупые, конечно, но достали уже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2004, 03:11 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv - в новой версии не разрешилась проблем с тормозами при выборке сущности, на которую ссылаются масса других А можно поподробнее про проблему: в каких случаях возникает, на каких объемах и как боретесь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 10:41 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Andr2 А можно поподробнее про проблему: в каких случаях возникает, на каких объемах и как боретесь ? Ну, вариант модели: Имеется класс Estimate (Смета), который имеет переменное число атрибутов . Соответственно, имеется класс, хранящий описания этих атрибутов (Attr_Def): наименование, тип (целый-строка-дата-деньги и т.д.). Каждой смете соответствует набор значений (Attr_Value) атрибутов, каждое значение ассоциировано со своим типом (Attr_Def). Естественно, при уничтожении сметы (Estimate) нужно убивать все ее значения атрибутоа - но тут вопросов нет - реально существует 30-50 атрибутов, немного. Другое дело, когда убивается ставший ненужным экземпляр описания атрибутов (Attr_Def). Тут надо завалить все соотв. Attr_Value во всех сметах. Этих смет - в районе сотни тысяч. Так что операция удаления занимает несколько секунд. Неприятно, но потерпеть можно. Более ненприятно другое. Когда я пытаюсь в справочнике проскроллировать список описаний атрибутов, то при переходе с объекта на объект происходит подгрузка всех ассоциированных Attr_Value. По 2-3 секунды каждый раз. Потом, по второму разу, конечно, ассоциации не подгружаются, и все выполняется шустро. Но до тех пор, пока служебные компоненты не выгрузят неиспользуемые объекты (память-то не бесконечная...). Решение: 1. Вместо "обыкновенного" класса Attr_Value я ассоциирую Estimate напрямую с описанием Attr_Def, а для хранения значений, Attr_Value создаю как класс-ассоциацию такой связи. Все работает существенно быстрее (в сотни раз). 2. Для такой "проблемной" мультиассоциации я сбрасываю Bold - тег DeleteAction c Cascade обратно в <Default>, а операцию каскадного удаления выполняю русками, перекрыв соотетственный фреймворк - метод PrepareDelete. Вообще все тормоза ушли, но удаление чуть медленнее работает. Но и тут вопрос решился - см. п.3. 3. Перед групповыми операциями с коллекиями вызываю метод EnsureObjects и т.п. (Почти в ту же тему использование метода FetchLinksWithObjects) Охрененно быстрее работает. 4. Принудительно вынесение групповых операций в одну транзакцию (по умолчанию - они отдельные). Ну о-о-о-чень шустрее работает. 5. Отключение неиспользуемых возможностей - на выбор: Model.UseReadOnly, Model.UseXFiles, Model.UseClockLog, Model.UseClockLog, Model.UseModelVersion. Иногда помогает. 6. Работа с отключенными екоторыми механизмами контроля: Loading Multilinks in an object space with many objects in it has very bad performance. The reason is that the multilink has to find all (non-dirty) singlelinks that is pointing to it in memory, but that was not present in the fetched set of objects. The time to perform this operation is linear to the number of objects in memory. It is possible to switch this checking off, please refer to the documentation for the global variable BoldPerformMultilinkConsistencyCheck . и т.п. ------------------ Так вот, к чему это все я? А вот к чему: Было сказано: Note This global variable is a workaround for a problem that will be resolved more efficiently in a future release (by keeping a hash table over the loaded singlelink ends for example). When the problem is solved properly, this variable will be removed). Так вот и я о том же - может быть, проблема - то уже "сольвед", и не надо с бубнами пыгать? ------------- Т.е. эта проблема - не проблема. Все в наших руках. Но работать хочется меньше. Хочется больше отдыхать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 13:23 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Смотрел я этот болд, и другие продукты. Нигде нет маппинга на хп. Это печально. Поэтому не использую. И компоненты Болда уж слишком сложены для понимания. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 14:58 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Роман ДынникСмотрел я этот болд, и другие продукты. Нигде нет маппинга на хп. Это печально. Поэтому не использую. И компоненты Болда уж слишком сложены для понимания. Posted via ActualForum NNTP Server 1.1 Ну что ты так грустно... Все ж исходники адаптеров в наличии. А что сложно? Или ты без чтения доков пытался пробиться? Тогда, пожалуй, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 17:56 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Роман ДынникСмотрел я этот болд, и другие продукты. Нигде нет маппинга на хп. Это печально. Поэтому не использую. И компоненты Болда уж слишком сложены для понимания. Posted via ActualForum NNTP Server 1.1 Любопытно насчет "и другие продукты". Какие ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 18:12 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Просто "И другие". Тоже сложны для понимания. Потому и не использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 19:18 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Попробовал я посоздавать сущности в Дельфи 2005. Появился такой вопрос: Можно ли отображать в гридах и контролах русские наименования классов и атрибутов? Можно, конечно, создавать кастомные кинтролы, в которых и писать капшоны, но может быть для этого есть встроенные средства. Вот у класса и атрибута есть такие совйства, как: 1. Alias 2. Former Names но как ими пользоваться я пока не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 16:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Кончно, можно. Например, во встроенном UML - редакторе создаем класс Собаки, нажимаем Ctrl+A, вводим в DelphiName - TDogs, в ExpressionName и TableName - Dogs. И все. То же и с атрибутами. Только вместо TableName - ColumnName. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 17:39 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Old NickПопробовал я посоздавать сущности в Дельфи 2005. Появился ... Оп-с! Delphi 2005 вышел? И Bold в нем есть? Расскажи чуть-чуть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 17:45 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Там не совсем Bold, там Core Objects, но это одно и тоже. Главное что можно писать в нем на C#. А то я отвык уже от паскаля, да и C# во всем выгоднее паскаля, кроме конструкторов пожалуй. Внешне не отличается от Дельфи 8, просто глюки исправлены и есть возможность писать приложения под Win32 (Дельфи 9, так сказать), вот только поддержки Core Objects нет, а жаль, можно было б просто перетащить свой проект с Дельфи 7 на Дельфи 2005, ан нет... О чем еще сказать? Случайно обнаружил возможность обзывать члены класса русскими именами :-) То-то начнется в программировании по-русски ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 18:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
>>>Другие это какие tiOPF к примеру, если для delphi. XPO для .NET Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 18:23 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Всех фанатов, новичков, а также сомневающихся, а также и возможных временных (:-)) противников MDA - с Новым Годом ! Давайте немного "воспарим" над реальностью и помечтаем - ведь в следующем году случится -таки перелом в сознаниии большинства программистов приложений БД. Желаю Вам, наконец, перейти из разряда ремесленников (очень, конечно, квалифицированных - серьезно) в ряды творцов ! Россия всегда была сильна не ремеслинниками, а именно творцами. Пусть Новый Год принесет новое качество работы, и новую радость и удовлетворение от работы, и, возможно, новые зарплаты :-) Поэтому - творите, господа, творите, товарищи - ведь вы все - замечательные Люди ! Специалисты с Большой буквы. Поздравляю Вас и да пребудет с вами творческий импульс от самого Творца ! Всегда готовый поддержать Константин Грибачев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 19:11 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
За цвет Российского и мирового IT - сообщества! За нас, мужики (и дамы)! Ура! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 23:49 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
а те кто на bold-ах сидит, это творцы или ремесленники? Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2004, 09:35 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Роман Дынника те кто на bold-ах сидит, это творцы или ремесленники? Posted via ActualForum NNTP Server 1.1 Модера-а-тор! Тут есть сомневающиеся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2005, 22:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
2 mv я просто спрашиваю :)) и при чем здесь модератор...? :-/ Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2005, 12:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, типа, да, не причем... А что ж ты на нашу природную скромность наступаешь? Ну вот, на: творцы, мы, скромные, но дико талантливые. Хотя и очень ленивые. Я лично могу бревна здоровенные таскать. Но только лежа. ---------------- Меня прет, меня прет, потому что Новый год... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2005, 16:53 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv ... пара вопросов: ... - по поводу "тонкой" настройки. Выполняю отсортированные выборки, EvaluatedInPS, что называется. Ну, нутром чувствую, что если в РСУБД по конкретному полю завести индекс, то будет быстрее, естественно. Ну, так как в модели указать такой тэг атрибута (Sorted какой-нибудь, что ли...). А то как-то пошловато после генерации базы ручкми ее подправлять... ... ------------ Вопросы глупые, конечно, но достали уже... Если кому интересно - то нет в Bold стандартных средств управления индексацией поля таблицы, хранящего атрибуты класса. Впрочем, это легко обходится... Думаю заюзать дополнительные тэг - параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2005, 01:16 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Кстати, почитал на выходных книжку по MDA (MDA Explained: The Model Driven Architecture™: Practice and Promise) - так вот, в процессе создания приложения по схеме MDA место Bold-а - это только генерация кода по PSM. Так что, Bold <> MDA. PS. Для пояснения схемки: PIM - Platform independent model PSM - Platform specific model PPS. Правда, схемка эта пока только теория. Если интересно, читайте здесь: http://www.omg.org/mda/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2005, 10:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Sybase PowerDesigner - чем не MDA? Он даже официально позиционируется как MDA. Настройки - тонкие :)) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 09:42 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
ShrКстати, почитал на выходных книжку по MDA (MDA Explained: The Model Driven Architecture™: Practice and Promise) - так вот, в процессе создания приложения по схеме MDA место Bold-а - это только генерация кода по PSM. Так что, Bold <> MDA. PS. Для пояснения схемки: PIM - Platform independent model PSM - Platform specific model PPS. Правда, схемка эта пока только теория. Если интересно, читайте здесь: http://www.omg.org/mda/ Ну, Bold - хоть тресни, PSM. Потому что для Delphi/C++. Ну, может быть, для Kylix. Ну, а если рассматривать, начиная с моделирования в Rational Rose? Модель в Rose можно считать PIM? Тогда да, по-моему. Да, братцы, новый русский ресурс родился по поводу MDA технологии: http://mda.hostok.net ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 11:00 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mvНу, а если рассматривать, начиная с моделирования в Rational Rose? Модель в Rose можно считать PIM? Тогда да, по-моему. Нет, модель в Rational Rose нельзя рассматривать как PIM: MDA Explained: The Model Driven Architecture™: Practice and PromiseUML has some weak points that stop us from generating a complete PSM from a PIM. The weak area in UML is in the behavioral or dynamic part. UML includes many different diagrams to model dynamics, but their definition is not formal and complete enough to enable the generation of a PSM.Т.е. UML недостаточно выразителен для, скажем, написания методов. Есть, конечно, расширения, но, насколько мне известно, они тоже не дотягивают до полного описания модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 12:15 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
ShrЕсть, конечно, расширения, но, насколько мне известно, они тоже не дотягивают до полного описания модели.Неточно выразился. Не дотягивают до полного описания проектируемой системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 12:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Спор (если это спор :-) вполне бессмысленен. Есть одни книжки про MDA, а есть другие. Есть UML, а есть UML-2 и Exeсutable UML. Трудно спорить о том, чего не существует. MDA пока нигде не реализована. Тем более, что никто не знает, что это такое (стандарта нет). Есть только приближения, и у каждого разработчика - свое видение. Bold - это, безусловно, не MDA. Bold - это Borland MDA :-) А вообще, приглашаю всех желающих на http://mda.hostok.net ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 00:25 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Люди, просто счастлив, что нашел ваш сайт, а особенно ветку уже месяц работаю на BOLD просто великая штука, напсал( почти )проектик с нуля 75 классов, плюс навороты, драг дроп и прочее. А главное работает :). Вот толко один вопросик. Может e кого етсь ссылочка на работающий Bold-Rave? и еще кто нибюудь работал с deBold компонентами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 01:23 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Триалка в RAD - Studio не работает - там *.bpl скомпилирована над Bold - ом 4.0.0.21, а сейчас - 4.0.1.0. Я уж и так и эдак к этим ребятам обращался - ни в какую. Короче - изучил по документации (виртуально, т.сказать :). Пришлось купить. Ну, в общем, эта штука соответствует моим ожиданиям - только вот с саппортом траблы - в Vipper Software какие-то временные оргинизационные сложности. Если будешь покупать - бери сразу Professional, т.к. Standard почему-то откомпилена тоже с 4.0.0.21., а в Professional - все соурсы. Да, если не можешь напрямую заплатить по Vise Standard (and better) - то учти, что эти ребята живут во Влвдивостоке - если что - могу телефон дать. Мне кажется, напрямую платить проще. Я заплатил 29 декабря, платеж через Deutche Bank (охренеть можно!) прошел только 11 декабря. А что тебя с deBold интересует? Вот тут у меня было что-то: автор ===================================== Инструкции для deBoldPropagatorModule.pas ===================================== 1) Наследуйте новый модуль данных от существующего и переопределите: //Mandatory overrides function GetBoldSystemHandle: TBoldSystemHandle; virtual; abstract; function GetBoldModel: TBoldModel; virtual; abstract; 2) В рантайме, если нужен пропагатор, то просто создайте экземпляр вашего нового модуля данных. ===================================== ИНструкции для deBoldAutoForms.pas ===================================== 1) В форме, создаваемой для редактирования вашего объекта, выполните: initialization deBoldAutoForms.RegisterFormClassForElementClass(TPersonForm, TPerson); 2) В событии BoldAFP, чтобы получить класс формы, выполните: Result := deBoldAutoForms.GetFormClassForElement(Element); ===================================== ИНструкции для deAutoIncManager.pas ===================================== ---------------------- Инсталляции в ROSE ---------------------- 1) Установите deBold.PTY в каталог TaggedValues), выбрав Tool->model properties->Add. 2) При импорте в Bold, вы сперва должны добавить deBold в свойство Tools вашего компонента BoldUMLRoseLink. ---------- Применение ---------- Из-за сложности рассмтриваемых компонентов я попытаюсь вкратце описать, как их испольщовать. Первое: Вы должны добавить тег-параметр к атрибуту, который д. стать автоинкрементным. Чтобы это сделать (Из Bold - редактора, перейдите в Tools->Edit Tagged Values. Из следующего окна (должен быть выбран именно тот атрибутd) выполните Tools->Add Tagged Value. Значение "Tool" нужно дял deBold, значение "Name" нужно для AutoIncId, а значение "Value" должно быть вышим собсвенным идентификатором, к примеру, PERSON или PURCHASEORDER. И "deBold", и "AutoIncId" являются регистро - зависимыми. Второе: Класс TdeBoldAutoIncManager является TBoldPersistenceHandlePassthrough. Имеется в виду, что для использования его вы должны указать ваш TBoldSystemHandle.PersistenceHandle для TdeBoldAutoIncManager вместо Вашего действительного persistence handle, а затем указать TdeBoldAutoIncManager для действительного persistence handle путем использования его NextPersistenceHandle. Этот компонент будет перехватывать обновления в persistence перед их выполнением, которые будут разрешать при необходимости назанчать auto-inc числовые значения. Третье: Классс TdeBoldAutoIncManager не назначает числовые значения. Он передает это в производный от TdeAbstractBoldAutoIncProvider класс, с помощью class TdeBoldAutoIncProvider . Вот так это и работает... 1) System.UpdateDatabase; 2) AutoIncManager проверяет все атрибуты новых объектов на предмет наличия тег - параметров deBold.AutoIncId, и помещает AutoIncId в список AutoIncId - ов. 3) Событие OnPrepareAutoIncIdList класса TdeAutoIncProvider вызывается с уникальным списком AutoIncId-ов. Оно дает Вам возможность выполнить предварительную обработку IDs. Вы можете пожелать выполнить пессимистическую блокировку IDs с помощью сервера блокировок или просто можете пожелать убедиться, что все генераторы существуют, перед тем как будете извлекать какое - либо значение из генератора. 4) Для каждого auto-inc - атрибута каждого нового объекта будет вызвано TdeAutoIncProvider.OnGetAutoIncValue . Значение AutoIncId будет передано, и выполучите результат в целой переменной Result, которую выдолжны использовать для определения следующего числа. 5) Событие OnCompleteAutoIncIdList класса TdeAutoIncProvider вызывается с исходным списком уникальных AutoIncId - ов. Это позволяет разблокировать пессимистическую блокировку на ID's, если Вы их перед этим заблокировали, или выполнить другие нужные вещи. ----------- Примечания: ----------- A) При возникновении исключения в OnPrepareAutoIncIdList, OnCompleteAutoIncIdList все еще будет исполняться. B) При возникновении исключении OnGetAutoIncValue, все автоинкрементные значения будут сброшены в ноль (если ResetOnFail = true), а OnCompleteAutoIncIdList будет все еще исполняться. C) За обработку исключения в OnCompleteAutoIncIdList отвечаете вы, и учтите, что данные уже были переданы в следующий дескриптор слоя хранения (похоже на вставку значений в базу данных). D) Чтобы быть уверенным ы обеспечении ссылочной целостности, и в том, что всякие объекты, которые были одифицированы в целях автоинкремента значения, значение должно быть добавлено в той же самой транзакции методом вызова calling AddDirtyObject, AddDirtyObjectList, или AddDirtyObjects. Ну, все, что знал - сказал. (c) - Особенности национальной охоты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 05:44 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
авторЛюди, просто счастлив, что нашел ваш сайт, а особенно ветку уже месяц работаю на BOLD просто великая штука, напсал( почти )проектик с нуля 75 классов, плюс навороты, драг дроп и прочее. А главное работает :). Работает - даже хелло ворд работает, особенно если один пользователь его запускает :) И чего за система, сколько пользователей, какова нагрузка? Написать просто работающую программу - это уже в детских садах пишут. А вот работающую в боевых условиях..... Вот это то интересно. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 12:00 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
2 tygra -------------------- Да ничего не работает, не парься. Сходи, лучше посравнивай "MS SQL vs Oracle", или "преимущество реализации ссылочной целостности в триггерах vs в констреинтах". Нафиг тебе оно нужно - реляционные базы еще долго просуществуют, на хлеб заработаешь. Не забывай только уши брить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 21:37 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Впрочем, сейчас это даже модно - хвастаться растительностью на ушах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 21:40 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv А что тебя с deBold интересует? Ну, все, что знал - сказал. (c) - Особенности национальной охоты Readme.txt я тоже читал, спасибо только за перевод. Конкретно меня работа с deBold. как что, может примеры есть. Я ведь " молодой " еще. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 22:44 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Alex Vпроектик с нуля 75 классов, плюс навороты, драг дроп и прочее. А главное работает :). какой кошмар. нафига столько классов ? таблица - класс ? ужас сколько бесполезного и ненужного кода генериться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 01:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Lepsik Alex Vпроектик с нуля 75 классов, плюс навороты, драг дроп и прочее. А главное работает :). какой кошмар. нафига столько классов ? таблица - класс ? ужас сколько бесполезного и ненужного кода генериться. Ну что за безапелляционно - декларативные заявления? Ну, с чето ты взял - что тут однозначно таблица = класс? Может и больше, а может - и меньше. Здесь сущность представляется не таблицей, а классом. Ма-а-а - ппинг ("г" - с характерным придыханием)! Вот как это называется. ------------------- По поводу маппинХа. У нас в конторе про проекты, сделанные в Bold for Delphi, говорят - "в балде". Ударение на "а". Протяжное та-акое. Как у клятых москалей. ------------------- А классов там еще больше генерится, чем ты думаешь... ------------------- Как думаешь, почему языки программирования оперируют с объектами, а не с записями? Чтобы глупых студентов запутать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 03:30 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mvКак думаешь, почему языки программирования оперируют с объектами, а не с записями?2 mv Расскажите пожалуйста как в Bold сделана отчетная система ? Хотя бы тезисно. Интересует следующее: обычно(обычно!) клиент-сервер (РСУБД) приложение на стороне клиента действительно оперирует с объектами, которые далеко не прямо проецируются на РСУБД структуру. Исключение составляют отчеты. Которые очень часто есть фактически красиво нарисованные результаты SQL выборок. Т.е. при построении отчетов оперируют именно что с записями, а не с объектами. А какое решение применяется в Bold ? Будет ли отчет неким отображением коллекции, свойства каждого элемента которой будут выбираться get-ерами из базы ? Или применяется более изящное решение ? Интересует скорее физика построения отчета, а не его описание в рамках модели. Т.е., если можно, ответ не : я рисую класс "отчет", задаю параметры, затем пишу Отчет->Выбрать_все_за период[начало, конец] а что на самом деле происходит при этом ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 14:23 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Lepsik Alex Vпроектик с нуля 75 классов, плюс навороты, драг дроп и прочее. А главное работает :). какой кошмар. нафига столько классов ? таблица - класс ? ужас сколько бесполезного и ненужного кода генериться. Необходимо для реализации Полиморфизма и прочего, например есть строка а в ней значениеа e меня 10 -15 разных видов строк. вот и набратлось много классов, Да плюс драг дроп реализовать, изи справочника данные связать. и все. я думаю обоснованно, пока что. ну а так как я еще молод ? мне это простительно, Самое главное в моей ситсеме возможность вставить в строку документа любое значение и сделать это с помощью драг дроп, плюс каждая строка может иметь отображение разное по определению. Вот и взялось много классов. может жто не правильно ? зато по ООП:). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 21:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Люди, Человеки - вопрос есть: вы каким образом используете автоформы: пишете свой автоформ провайдер или на каждый объект свою форму и используете BoldPlaceableAFP. или вообще не не используете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 21:27 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Использую исключительно при отладке. Мои бизнес - объекты слишком сложны, чтобы их показывать пользователям. Ну, в крайнем случае - генерю свою автоформу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 01:47 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Один ... как в Bold сделана отчетная система ? Хотя бы тезисно. Интересует следующее: обычно(обычно!) клиент-сервер (РСУБД) приложение на стороне клиента действительно оперирует с объектами, которые далеко не прямо проецируются на РСУБД структуру. Исключение составляют отчеты. Которые очень часто есть фактически красиво нарисованные результаты SQL выборок. Т.е. при построении отчетов оперируют именно что с записями, а не с объектами. А какое решение применяется в Bold ? Будет ли отчет неким отображением коллекции, свойства каждого элемента которой будут выбираться get-ерами из базы ? Или применяется более изящное решение ? Интересует скорее физика построения отчета, а не его описание в рамках модели. Т.е., если можно, ответ не : я рисую класс "отчет", задаю параметры, затем пишу Отчет->Выбрать_все_за период[начало, конец] а что на самом деле происходит при этом ? Ваши идеи чрезвычайно интересны. Лично я отчеты созавал всегда по старинке - коллекцию представлял как TDataSet, а дальше все как обычно. Но после ваших слов крепко задумался. ------------------ Еще в Bold есть набор компонентов, позволяющий создавать отчеты напрямую в RAVE, без преобразования в TDataDet. А насчет описания отчета в рамках модели... А почему бы и нет? автор Отчет->Выбрать_все_за период[начало, конец] - а оно все так и работает, вы говорите почти в нотации языка OCL. Только правильный класс описать нужно. Хотя лично мне не нравится привязывать разработку отчетов к метамодели, но идея чрезвычайно интересная - можно создать базовый класс отчет, затем компонент, его визуализирующий, и распечатывающий. А также экспортирующий в RTF/HTML/XLS... Классно. Да, умеют же некоторые товарищи идеями разбрасываться. Теперь опять работать не хочется - об отчетах думать буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 08:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Наш ответ Чемберлену автор Отчет->Выбрать_все_за период[начало, конец] - а оно все так и работает, вы говорите почти в нотации языка OCL. Я догадывался, что оно так и работает :) Но это - внешняя сторона, мой же вопрос был в другом. Наверное я плохо объяснил. Есть РСУБД. Есть язык SQL, посредством которого можно работать с сервером баз данных. Других средств для общения с СУБД нет, т.е. на каком то низком уровне MDA приложение все равно генерирует SQL запросы. Идем дальше. SQL язык - язык работы с множествами. В этом его "сила" и суть. Создатели MDA совершенно точно подметили, что есть некая нестыковка между РСУБД и клиентскими приложениями, а именно то, что клиентское приложение работает с объектами, классами, а не результатами множественных выборок (строками). И они (создатели) предложили систему, которая подходит к проектированию со стороны модели. Естественно преимущества SQL при этом теряются, т.к. множествами никто не оперирует. Взамен получаем более легкий/удобный подход к проектированию всего приложения в целом. Во всяком случае так я это понимаю, поправьте меня, если я не прав. Но есть несколько исключений. Одно из них - отчеты (а еще аналитика всякая). Отчеты, как я уже писал - это красиво показанные результаты выборок. Т.е. множества строк. Пример. Допустим есть класс "автомобиль". У него есть какие то свойства. Данные по автомобилям можно получить 2 способами. 1 сделать коллекцию экземпляров класса "автомобиль", в каждом из них вызвать метод GetData, в результате чего к серверу уйдет n запросов вида select * from Auto where id=x. 2 а можно просто сделать select * from Auto и получить какой-нибудь DataSet Первый подход - более "объектный", а второй - более "реляционный" Вот меня и интересует какой применяется в Bold. Когда я пишу Отчет->Выбрать_все_за период что происходит на самом деле ? 1 или 2 ? Или их комбинация ? Или что-то третье ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 14:27 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Один Пример. Допустим есть класс "автомобиль". У него есть какие то свойства. Данные по автомобилям можно получить 2 способами. 1 сделать коллекцию экземпляров класса "автомобиль", в каждом из них вызвать метод GetData, в результате чего к серверу уйдет n запросов вида select * from Auto where id=x. 2 а можно просто сделать select * from Auto и получить какой-нибудь DataSet Первый подход - более "объектный", а второй - более "реляционный" Вот меня и интересует какой применяется в Bold. Когда я пишу Отчет->Выбрать_все_за период что происходит на самом деле ? 1 или 2 ? Или их комбинация ? Или что-то третье ? 1. Можно и так, можно и эдак. Есть специальный метод для класса EnsureObjects (и похожие на него) - который скопом грузит всю коллекцию, за одну сессию. А можно и по одному объекту. Все зависит от задачи. В общем - в зависимости от Ваших религиозных взглядов и Ваших представлениях о структуре Вселенной. Car.allInstances - транслируется в - select * from Car. Car.allInstances->select(color='Бежевый')->orderBy(ModelName) - транслируется в - select * from Car where color='Бежевый' order by ModelName А вот Car.allInstances.at[4] транслируется в более сложный запрос - к таблице объектов, в которой ищется индекс объекта №4, и этот объект выбирается. Впрочем, хотя и к двум (как минимум) таблица - но тоже шустро. А можно и по другому. Действительно, все объекты в память могут загружаются при фактическом к ним обращении. Причем это регулируется вплоть до конкретного атрибута (признак Delayed Fetch). Это тоже поддается управлению. 2. А что ты хотел узнать-то? Включай монитор SQL - запросов, да оптимизируй на здоровье. Можно вообще напрямую SQL - запросами рулить (тьфу - тьфу, мне не понадобилось пока). 3. Меня поначалу тоже такие безобразия интересовали. Индексы, низкоуровневые транзакции и проч. Все просто, как кусок хозяйственного мыла. Просто работает. Шире мыслить нужно, господа девелоперы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 15:02 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Наш ответ Чемберлену 3. Меня поначалу тоже такие безобразия интересовали. Индексы, низкоуровневые транзакции и проч. Все просто, как кусок хозяйственного мыла. Просто работает. Шире мыслить нужно, господа девелоперы! Я и пытаюсь мыслить шире. "Шире" в данном случае подразумевает, что я хочу разобраться, как внутри работает волшебная палочка. Прежде, чем начинать ею размахивать :) На мой вопрос вы ответили, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 15:26 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Alex V Ты вроде как искал работающюю ссылку на Bold-Rave. Вот держы: http://cc.borland.com/ccweb.exe/listing?id=20457 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 19:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
kibill Alex V Ты вроде как искал работающюю ссылку на Bold-Rave. Вот держы: http://cc.borland.com/ccweb.exe/listing?id=20457 Спасибо я нашел, думал что и там его нету, ошибку выдавал, а просто сервак занят был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 00:23 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Вот Еще вопросик есть Вычисляемые значения в классах, если их сделать persistant то они все равно не хранятся в базе, а хотелось бы. Есть способы хранить самому но не очень удобно. Кто нибудь разбирался с этой траблой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 00:26 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Не понял. Вычисляемые значения - зачем хранить? Они же вычисляемые! Интересно, а при фетче из базы что бы ты хотел получать - вычисленные значения или сохраненные? :) ---------------- (Ну, заведи спец. атрибут, где будешь хранить результаты вычислений - а как еще?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 08:11 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
ну да в принципе это я и сделаю, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 09:00 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Кто-то интересовался возможностью использования национального набора символов в автоформах и т.д. На днях ворос решен принциапиально - К.Грибачев создал компонент, который просто нужно положить на модуль данных и активизировать - и ... все. Болд заговорил по - русски. Порсмотреть и скачать можно здесь: http://mda.hostok.net/forums/viewtopic.php?t=34 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2005, 21:49 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Один mvКак думаешь, почему языки программирования оперируют с объектами, а не с записями?2 mv Расскажите пожалуйста как в Bold сделана отчетная система ? Хотя бы тезисно. Интересует следующее: обычно(обычно!) клиент-сервер (РСУБД) приложение на стороне клиента действительно оперирует с объектами, которые далеко не прямо проецируются на РСУБД структуру. Исключение составляют отчеты. Которые очень часто есть фактически красиво нарисованные результаты SQL выборок. Т.е. при построении отчетов оперируют именно что с записями, а не с объектами. А какое решение применяется в Bold ? Будет ли отчет неким отображением коллекции, свойства каждого элемента которой будут выбираться get-ерами из базы ? Или применяется более изящное решение ? Интересует скорее физика построения отчета, а не его описание в рамках модели. Т.е., если можно, ответ не : я рисую класс "отчет", задаю параметры, затем пишу Отчет->Выбрать_все_за период[начало, конец] а что на самом деле происходит при этом ? Неожиданное информация в разрезе Вашего вопроса: Вы только посмотрите, какие вещи люди делают: http://mda.hostok.net/forums/viewtopic.php?t=46 Да, еще: теперь Bold говорит не только по - английски и по-русски, но и по - молдавански, по - украински, по - белорусски и по всяковски: http://mda.hostok.net/forums/viewtopic.php?t=34 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2005, 21:09 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, пожалуй, стоит начать с архитектуры. Или с возможностей. Ну ладно, возможности. Возможности Ну, как всегда, сперва бла-бла-бла (можно не читать первые два абзаца :) Технология 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! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 11:48 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ёклмн! Я не хотел! Случайно на кнопочку нажал... Почему нельзя редактировать удалять свои посты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 11:51 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Как подписаться на BoldListHandle чтобы при изминении количества объектов (в BoldListHandle) я получал уведомление ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 13:07 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Ну, ты можешь подписаться как на само Expression твоего ListHandle (в контексте его RootHandle, конечно), либо на Expression + '->size' - в последнем случае ты будешь получать извещение именно об изменении количества элементов. Мне кажется, если бы ты расказал чуть поподробнее (в предметном плане), то можно было бы помочь более конкретно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 14:51 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Можно, к примеру, взять TBoldPlaceableSubscriber, повесить его на тот же Handle, который является Root для твоего listHandle, и ловить событие OnReceive. Тут ты будешь получать извещения на все события с измением коллекции, содержащейся в ListHandle. А если быть щепитильным, то в OnSubScribeiElement можно подписаться конкретно на изменение объема коллекции, как - нибудь вот так: Код: plaintext 1. 2. 3. 4. Первую строчку ты можешь даже убрать, как мне кажется. Попробуй! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 15:06 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
1. Всех с прадником, мужики! 2. Всем, кому интересен Bold/ECO и прочая MDA - ссылка mda.hostok.net снова ожила! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2005, 12:45 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv1. Всех с прадником, мужики! 2. Всем, кому интересен Bold/ECO и прочая MDA - ссылка mda.hostok.net снова ожила! 1. Ну, с 8 марта, мужик! 2. Ну, был я ТАМА. Ну, круто, конечно. И чего? И где все это брать? Получается: для проектирования Rational Rose нужен, да Delphi Architect, да еще какую-нибудь реляционную СУБД все равно надо. Да еще НОРМАЛЬНЫЕ визуальные компоненты докупать надо. И сколько все это стоить будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2005, 05:10 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Старый маньяк. Получается: для проектирования Rational Rose нужен, Спрашивал там про ModelMaker vs Rational Rose, ничего вразумительного не ответили :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2005, 07:38 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Да я пытался тебе ответить, да что-то у них с форумом не в порядке было (аттачи не аттачились). Вот тебе инфа по Модель Майкеру (кривовато: сам переводил). ИМХО, больно уж много ограничений при работе с ним. Лучше уж Роза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2005, 10:30 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mvДа я пытался тебе ответить, да что-то у них с форумом не в порядке было (аттачи не аттачились). Вот тебе инфа по Модель Майкеру (кривовато: сам переводил). ИМХО, больно уж много ограничений при работе с ним. Лучше уж Роза. Спасибо за информацию. А c какими версиями Rose bold нормально работает ? Вроде где-то читал, что чуть ли не с любой, но не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2005, 12:31 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
От Rose 98 и далее. Да, при инсталляции выбирайте - custom установку, и ВСЕ чекбоксы сбрасывайте в "пусто". Тогда инсталляция - мнимальная, около 50Мб всего, и ничего лишнего мешать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2005, 23:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Документации хорошей прибавилось: Использование сторонних визуальных компонентов. Использование OCL. Использование существующих БД с ECO II. На английском языке, правда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 11:49 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Еще документация (на русском) новая (здесь ранее спрашивали об этом): По поводу изменения модели (эволюции) в процессе разработки/сопровождения: http://mda.hostok.net/forums/download.php?id=51 По поводу разработки компонентов под Bold: http://mda.hostok.net/forums/download.php?id=50 Как видно, все не просто, а очень просто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 12:29 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Для тех, кто интересуется методами оптимизации Bold - системы, две статьи: Хранимые вычисляемые атрибуты Динамическая навигация как средство повышения производительности и приближения структуры модели к предметной области Так что не все так просто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:23 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Вчера на Borland-конференции представитель Borland заявил, что Bold для Delphi 2005 ( Win32) будет выпущен в свет до конца апреля. Будут убраны старые и добавлены новые глюки. А вообще радует, что продукт развивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2005, 10:19 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Качаем новый Bold - 2005: Вот отсюда Добавлены почти все исходники. А вот прямая ссылка Процесс продолжается! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2005, 12:05 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Помогите. Недавно начал изучать Болд. Сделал UML дигр. в ModelMaker Class1 Документ ("Номер", "Дата") - например накладная. Class2 Имущество ("Серия", "Номер") - например бланки строгой отчетности Class3 Тип Имтущества ("Наименование") - например Бланк1, Бланк2 и т.д. см. схему в делфи делаю форму с 3 гридами грид Имущество связан с гридом Документ грид Тип имущества ни с чем не связан Почему мне удается ввести имущество по документу БЕЗ УКАЗАНИЯ типа имущества? Почему при сохранении данных в БД не проверяется целостность данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2005, 11:40 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Сайт MDA переехал: http://mda-delphi.ru Ну вот, там есть демки с описанием и исходниками. И форум. И книжку почитай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2005, 17:15 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
YuryPПомогите. Недавно начал изучать Болд. Сделал UML дигр. в ModelMaker Class1 Документ ("Номер", "Дата") - например накладная. Class2 Имущество ("Серия", "Номер") - например бланки строгой отчетности Class3 Тип Имтущества ("Наименование") - например Бланк1, Бланк2 и т.д. см. схему в делфи делаю форму с 3 гридами грид Имущество связан с гридом Документ грид Тип имущества ни с чем не связан Почему мне удается ввести имущество по документу БЕЗ УКАЗАНИЯ типа имущества? Почему при сохранении данных в БД не проверяется целостность данных. Констреинты начинают работать сразу, но точку принятия решения (т.е. момент, когда логическая последовательность операций завершена) ты выбираешь сам. Вплоть до того, что ты можешь объект в противоречивом состоянии записать в базу - до следующего сеанса редакторования. А можешь сделать и как в "стандартном" подходе - при нарушении констреинтов не разрешать писать объект в базу. См. пример в демках. Всего-то несколько строчек кода в базовом бизнес- классе - и объекты в базу при нарушени констреинтов не пишутся. Все достаточно гибко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 00:47 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
А где взять этот BOLD? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 13:34 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
muk07 m> А где взять этот BOLD? Если мне не изменяет маразм, то в версии Architect Edition -- Dik76 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 13:43 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Болд для Дельфи2005 свободно с исходниками у Борланда скачивается. Сходи сюда: http://mda-delphi.ru/forums Там все расскажут и покажут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 16:01 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Спасибо. Но я работаю с CBUilder 5 или 6. Чуществует ли Bold пригодный для этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2005, 07:33 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 11:28 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Спешу всех обрадовать. 1.Болд будет и в DeXter. Примерно того же уровня поставка, что и в Delphi2005. 2. ECO-III - на подходе. Вовсю тестирование идет. К старым фичам добавили, кроме всего прочего, возможность использования дополнителных аспектов UML ( частности - диаграммы состояний ). 3. Уже сейчас доступен транслятор модели Bold в модель ECO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 01:36 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Народ, поделитесь файликом bfd.pty от Bold для тети розы. Что-то найти немогу. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 21:38 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Alex ZhuravlevНарод, поделитесь файликом bfd.pty от Bold для тети розы. Что-то найти немогу. :( Ну, он же "там", в дистрибе прямо... Их там даже два - в C:\Program Files\Boldsoft\BfDR40D7Arch\Rose и в C:\Program Files\Boldsoft\BfDR40D7Arch\Source И тетушка сама его ищет. Ну ладно - вот: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 13:13 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv Alex ZhuravlevНарод, поделитесь файликом bfd.pty от Bold для тети розы. Что-то найти немогу. :( Ну, он же "там", в дистрибе прямо... Их там даже два - в C:\Program Files\Boldsoft\BfDR40D7Arch\Rose и в C:\Program Files\Boldsoft\BfDR40D7Arch\Source И тетушка сама его ищет. Ну ладно - вот: Да,я тормоз и ламер. :( Все дело в том, что тут пробегала ссылка на болд 2005, а там такого файла в поставке нет.... После установки болда для Д7 много вопросов у меня исчезло, там даже хелп есть. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 21:09 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Всё. Тихо. Всё погасло.. Кто-нибудь ещё использует Болд или ему подобные? И если да, то что? Действительно интересно узнать Ваше отношение к выше изложеному - прошло ведь уже несколько лет после последнего поста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 00:22 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Aleksandr (kkk), BDS2006 + BoldForDelphi :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 18:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
нет, все юзают hibernate/nhibernate :), либо вовсе ничего не юзают, а пишут хп и живут счастливо. самое опасное в orm - это то, что происходит размазывание ролей. в итоге разработчик db или dba обязан знать маппинг, иначе он не может безболезненно оптимизировать структуру бд или работать с бд иными средствами. з.ы. как ни крути - bold сильно связанная штука, а это не есть хорошо, потому как к чему у нас должна стремиться архитектура? - правильно :) - к масштабируемости, асинхронным вызовам и слабой связности компонентов и подсистем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 19:09 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Большие ограничения, на самом деле. Убогий язык запросов. Закрытость. Во всех отношениях. Но идеи классные, конечно. Может быть, многие механизмы следует реализовывать на уровне ОС, а не как надстройку над СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 22:27 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
NextMan Может быть, многие механизмы следует реализовывать на уровне ОС, а не как надстройку над СУБД. дык, MS вроде обещало встроить свою СУБД в ось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 09:32 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Petro123NextMan Может быть, многие механизмы следует реализовывать на уровне ОС, а не как надстройку над СУБД. дык, MS вроде обещало встроить свою СУБД в ось :) 1. Имелись в виду механизмы пропагации и т.п., т.е. как раз надстройка. 2. Да врут они все. Еще в 2000-й обещали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 13:02 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Aleksandr (kkk)Всё. Тихо. Всё погасло.. Кто-нибудь ещё использует Болд или ему подобные? И если да, то что? Действительно интересно узнать Ваше отношение к выше изложеному - прошло ведь уже несколько лет после последнего поста. Использую Delphi 2007 + BoldForDelphi2006 + Rose + RBoldModelTranslit (Компонент К.Грибачёва) + DevExpress 6 (гриды и деревья (болдовыми гридами пользуюсь только для отладки)) + TBoldDataSet (мое не большое изменение что б подружить с TcxGrid) = Отличный инструмент разработчика! , немного капризный и требующий много времени для освоения, но я считаю, результаты стоят того. Окуратное(правильное) использование ОСL, создание индексов в базе "ручками" и Совмещение 2 подходов взятия данных через ОП, и напрямую запросом, позволяет получить хорошую производительность. По моим наблюдениям Bold дает высокое приимущество в тех задачах, где предметная область меняется ежедневно, а заказчик "не понимает" что он хочет. Т.к. изменения вносятся "относительно мгновенно". Ну есть конечно и ситуации, где "традиционный" поход дает больше преимуществ. Так что считаю, господа, что надо находить золотую середину, и использовать как те так и другие средства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2009, 02:15 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Я начал работать с Bold еще в 2004 г. Сначала писал проекты на нем и в полной мере оценил мощь и скорость разработки. А потом написал СВОЙ фреймворк - чтобы ВООБЩЕ не кодировать, а просто писать OCL-запросы (ну и немного сам OCL расширил) - www.yumata.info Кстати - на сайте можно скачать offline-контент старого форума по MDA __________________________________________________ Гениальные программисты пишут гениальные программы. Успешные программисты - пишут для Газпрома :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2009, 21:56 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Юрий Шинк, У меня проблема с TBoldataset, поможете ? Схема такая: ListHandle | BoldDataSet <- SQL Server - Table: (ID, Name, BirthDate) | DBGrid Вот когда ввожу дату рождения в Грид, всегда выскакивает ошибку: "0.0 is not valid timestamp" хотя для birthdate использую тип DateTime Не знаю что делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 01:41 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
yumataЯ начал работать с Bold еще в 2004 г. Сначала писал проекты на нем и в полной мере оценил мощь и скорость разработки. А потом написал СВОЙ фреймворк - чтобы ВООБЩЕ не кодировать, а просто писать OCL-запросы (ну и немного сам OCL расширил) - www.yumata.info Кстати - на сайте можно скачать offline-контент старого форума по MDA __________________________________________________ Гениальные программисты пишут гениальные программы. Успешные программисты - пишут для Газпрома :) Здавствуйте ! Я знаю, что вы Гениальный программист, поэтому прибегу к вам за помощь, но пока никто не откликивает. У меня проблема с TBoldDataSet. Он почему то не хочет работать с моим DateTime данными. Ввожу дату в Грид, а он всегда выдает ошибку: "0.0 is not valid timestamp". Что мне делать ? Использовать String типа "01.01.2009" (например) вместо DateTime ? Или может быть у кого есть нормально работающий TBoldDataSet ? Большое спасибо и с нетерпением жду вашего совета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 11:17 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Aleksandr (kkk)Всё. Тихо. Всё погасло.. Кто-нибудь ещё использует Болд или ему подобные? И если да, то что? Действительно интересно узнать Ваше отношение к выше изложеному - прошло ведь уже несколько лет после последнего поста. Ауууууууу! Опять действительно всё тихо и всё погасло .... Кто-нибудь ещё использует Болд и поможет начинающему бедному студенту .... Люди добрые, где вы ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 11:25 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
ЗаньAleksandr (kkk)Всё. Тихо. Всё погасло.. Кто-нибудь ещё использует Болд или ему подобные? И если да, то что? Действительно интересно узнать Ваше отношение к выше изложеному - прошло ведь уже несколько лет после последнего поста. Ауууууууу! Опять действительно всё тихо и всё погасло .... Кто-нибудь ещё использует Болд и поможет начинающему бедному студенту .... Люди добрые, где вы ??? А зачем орете ? Ведь Болд умирает, и его программисты наверно то же ... Их нет, нечего ждать от них в ответ. Сейчас используйте ECO (правда только в .Net) !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2009, 03:59 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Zanh, А если "Use timestamp" попробовать поставить в false? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2009, 10:37 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
S-Vd, У меня такая же ситуация. Я убрал галочку в Use timestamp, не помогло. Потом убрал еще Use X files, и все пошло. Попробуйте. Может это вам подойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2009, 16:12 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
MorozovaS-Vd, У меня такая же ситуация. Я убрал галочку в Use timestamp, не помогло. Потом убрал еще Use X files, и все пошло. Попробуйте. Может это вам подойдет. Огромное Вам всем спасибо ! У меня сработало. Теперь смогу дописать свою программку до конца. Жалко, что у нас в институте не у кого спросить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2009, 16:18 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Юрий ШинкAleksandr (kkk)Всё. Тихо. Всё погасло.. Кто-нибудь ещё использует Болд или ему подобные? И если да, то что? Действительно интересно узнать Ваше отношение к выше изложеному - прошло ведь уже несколько лет после последнего поста. Использую Delphi 2007 + BoldForDelphi2006 + Rose + RBoldModelTranslit (Компонент К.Грибачёва) + DevExpress 6 (гриды и деревья (болдовыми гридами пользуюсь только для отладки)) + TBoldDataSet (мое не большое изменение что б подружить с TcxGrid) = Отличный инструмент разработчика! , немного капризный и требующий много времени для освоения, но я считаю, результаты стоят того. Окуратное(правильное) использование ОСL, создание индексов в базе "ручками" и Совмещение 2 подходов взятия данных через ОП, и напрямую запросом, позволяет получить хорошую производительность. По моим наблюдениям Bold дает высокое приимущество в тех задачах, где предметная область меняется ежедневно, а заказчик "не понимает" что он хочет. Т.к. изменения вносятся "относительно мгновенно". Ну есть конечно и ситуации, где "традиционный" поход дает больше преимуществ. Так что считаю, господа, что надо находить золотую середину, и использовать как те так и другие средства. Друзья, У кого есть BoldGridPro, не дадите ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 23:13 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Zanh Вот когда ввожу дату рождения в Грид, всегда выскакивает ошибку: "0.0 is not valid timestamp" У меня не было этой ошибки я на той панели все 6 галочек "Use ..." отключил Zanh Друзья, У кого есть BoldGridPro, не дадите ? Зачем вам BoldGridPro?, используте лучше DevExpress, в их только в одном QuantumGrid на порядок больше возможностей, а ещё там DBTree, PivotGrid, VerticalGrid и др. приятные вещи. К дасету присоединил и всё запары с сортировками, групировками, фильтрациями закончились, да и кодировать практически не надо. И DevExpress найти на много проще, так как он довольно распространен. Ну если не хотите отваливать ~1600$, и не найдёте его на Торете, то можно попробовать утроится на работу программистом. Там первый день дадут устанавливать компоненты. Вот можно их и на флешку скинуть и идти домой. Пол дня работы и DevExpress у Вас! При связке BoldDataSet и QuantumGrid в GridDBTableView . DataController.DataModeController. поставь SyncMode в False либо GridMode в True в зависимости от режима. В DBTree номально работает и так. В первом случае обращаться к объекту примерно так Person := TPerson(lhPerson.ObjectList.Elements[gtvPerson.Controller.FocusedRecord.RecordIndex]); Где gtvPerson: TcxGridDBTableView; lhPerson: TBoldListHandle; Person: TPerson; - Болдовский объект. И вот что я поправил в BoldDataSet.pas чтобы он работал без тормозов. Проблема в том что QuantumGrid имет свой внутрений буфер и он синхрозируется с болддатасетом столько раз сколько записе в болддатасете + 1, при включённой цепочки. Ибо при > 100 записей они начинаются а при > 1000 можно идти пить чай. ... TBoldAbstractDataSet = class(TDataSet) ... protected FTimerResyncYuri: TTimer; procedure FTimerResyncYuriTimer(Sender: TObject); procedure ResyncYuri; ... ResyncYuri; //Resync([]); ... ResyncYuri; //Resync([]); ... ... ... procedure TBoldAbstractDataSet.ResyncYuri; begin FTimerResyncYuri.Enabled := False; FTimerResyncYuri.Enabled := True; end; procedure TBoldAbstractDataSet.FTimerResyncYuriTimer(Sender: TObject); begin FTimerResyncYuri.Interval := 100; FTimerResyncYuri.Enabled := False; if Active then Resync([]); end; Ну здесь так сказать решение в лоб, чтоб понять смысл. Наверняка можно и не использовать Timer и правильней бы писать наследника. Но это без проблемно работает. Удачи. Надеюсь, поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2009, 20:29 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Юрий Шинк, Спасибо вам огромное. Я пробовал, все ОК. Действительно не нужно искать BoldGridPro. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2009, 20:01 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, что не отвечал - я на пару месяцев уехал в отпуск и не был на форуме. Вот сейчас только начал работать - готовлю к выходу первый релиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2009, 13:30 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Есть класс человек, к нему привязан класс зарплата (один ко многим). В классе зарплата есть поле год и поле сумма. Как мне посчитать всю зарплату за все года у этого человека? Можно ли как то это сделать через OCL-выражение "sum"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 06:01 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Кто-нибудь знает как пользоваться BoldExceptionHandler? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2009, 12:04 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
S-VdЕсть класс человек, к нему привязан класс зарплата (один ко многим). В классе зарплата есть поле год и поле сумма. Как мне посчитать всю зарплату за все года у этого человека? Можно ли как то это сделать через OCL-выражение "sum"? Думаю както так: Person.allInstances->select(Nom = 232).Zarplata.SummaBabla->sum Если людей много, и зарплат тоже много, я бы воспользовался SQL, т.к. при выражение этом в память клиента будут загружены все Person и походу вся Zarplata. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2009, 00:25 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Народ, это дико занимательно - исследовать OCL и заниматься UML - моделированием, но, имхо, почти все, кто пытался юзать болд, давным-давно забросили его. Скачайте оффлайн-версию старого болд-сайта-форума да перечитайте его. Это же атас какой-то. Дядьки занимаются тем, что пытаются на ощупь надыбать доков, исходников и очень экзотических компонентов. Постоянно борются с ограничениями модели, с ограничениями языка запроса, с производительностью, с засиранием памяти, с настройкой пропагаторов и проч. механизмов, с глюками, которые разработчики и на собираются патчить, вообще не знаю с чем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 03:38 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
NextManНарод, это дико занимательно - исследовать OCL и заниматься UML - моделированием, но, имхо, почти все, кто пытался юзать болд, давным-давно забросили его. Скачайте оффлайн-версию старого болд-сайта-форума да перечитайте его. Это же атас какой-то. Дядьки занимаются тем, что пытаются на ощупь надыбать доков, исходников и очень экзотических компонентов. Постоянно борются с ограничениями модели, с ограничениями языка запроса, с производительностью, с засиранием памяти, с настройкой пропагаторов и проч. механизмов, с глюками, которые разработчики и на собираются патчить, вообще не знаю с чем... Полностью с Вами согласен. Тем не менее, хочу подметить, что заниматься UML - моделированием полезно для здоровья )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2009, 22:47 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 23:54 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
BOLD - ГОВНО! И лучше им не пользоваться. Жалко, что ни у кого нету полных исходников. Господа, кто ни будь знает какие-нибудь аналоги или похожие технологии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2009, 05:20 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Юрий Шинк, например, посерьезней и попроще ... но уже не для делфи p.s. Господа и Г..НО не очень сочетаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2009, 15:59 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Юрий Шинк, не кипятись. Исходники есть, но таки да, лучше им не пользоваться. ... Смотри, какая интересная шняжка. Исходники (понятные!) все в наличии, простая, как кусок хозяйственного мыла, и для Delphi. Язык запросов в объектном пространстве там тоже довольно убогий, но легко пользоваться SQL... И развивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2009, 03:32 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Извиняюсь за эмоции :-), я посмотрел эти ссылки и понял что BOLD - НЕ г..но! iscrafm, NextMan спасибо за инфу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2009, 01:07 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Юрий Шинк, А все таки, извините конечно за наглость, есть у кого-нибудь rad-studio 2.0 bold edition ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2010, 20:12 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Зань, У меня нету, только демка. Да и зачем он Вам..?, тот же EhLib 5.2 обошел его по функционалу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2010, 22:59 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Зань, у меня есть. Покупал за кровные. Не использую, как и весь "болт". Чего и тебе советую. "Делиться" не буду, дабы не поощрять твое "зависание на болту". Считай, это подарок: скорее переболеешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 16:26 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
У меня есть., Чтоб вернуть кровные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2010, 00:53 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
mv, Добрый день. Bold + TcxDBLookUpComboBox. Как получить BoldId для связи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2012, 10:24 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Как то так function TBusinessClassesRoot.BoldID: Integer; begin Result := StrToInt(BoldObjectLocator.BoldObjectID.AsString); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2012, 15:52 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Вопрос на засыпку. Кто-нибудь занимался более серьезным решением вопрос тормозов с cxGrid? В предложенном варианте существуют проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2012, 19:06 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
BoldID, Спасибо за помощь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2012, 19:06 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
haliffВопрос на засыпку. Кто-нибудь занимался более серьезным решением вопрос тормозов с cxGrid? В предложенном варианте существуют проблемы. Тормозит локальная работа грида или его взаимодействие с базой? Если второе, то иногда может лечится непросто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2012, 13:59 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Забавная ситуация происходит. При просмотре объекта Bold открывается форма, на вкладках которой в QuantumGrid выводятся все ссылающиеся на этот объект объекты. Т.е. например смотрю объект Контрагент, а на вкладке - все проводки с ним связанные. Для показа проводок использую cxGrid. Форма открывается, ОСНОВНЫЕ поля контрагента показываются, а лукапы (тожe cx) и все cxGrid - пустые. При этом форма кликабельна, перемещаема и.т.д. Проходит секунд 10 (на тестовой, практически пустой базе), и гриды и лукапы заполняютсяю При использовании родных для болда компонент зависов не происходит даже на 10000 связанных объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 06:03 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
пока смотрю только локально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 06:03 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
haliff, самое первое что сделай по профилируй sql-запросы. Скорее всего ты там увидишь тысячу одинаковых, для загрузки деталей(связанных объектов), лечится примерно так: Код: pascal 1. 2. 3. 4. 5. 6. Метод вызывается при смене главного объекта. Второе, в TBoldDS при работе с соединённым хенглами, есть ещё один косячёк, может это не косяк но он портил мне всю малину. При беге по датасету на каждый шаг меняет CurrentBoldObject в lh, соответственно все кто к нему соединены грузятся. (т.е. вы перешли на 10-ю запись, детали загрузятся с 1-10, а вам нужно 1 и 10), и если соединён схГрид то он сразу пробежится по всем без вашего ведома и и так невзначай загрузит все детали. Решений такого поведения много, я исправил здесь TBoldAbstractDataSet.DoAfterScroll; также таймером, как и прошлый раз. Удачного разгона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2012, 16:53 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
Для 1-го пункта забыл ещё: BoldDatabaseAdapterXXX.SQLDatabaseConfig.FetchBlockSize := MAX для используемой СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 23:06 |
|
||
|
Bold for Delphi /Bold for C++. Вторая попытка.
|
|||
|---|---|---|---|
|
#18+
А готов кто-нибудь взяться за халтуру- сделать полноценный датасет для Bold? Полноценный-значит с поддержкой Filter, Locate и.т.д На коленке написанный неполноценный датасет дал прирост производительности(на глаз) более 10 раз. Готов оплатить деньгами. Аська 310301940, skype tfProject ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 09:09 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541599]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
286ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 683ms |

| 0 / 0 |
