DBI-Builder - среда разработки интерфейсов к базам

Прикладное ПО на InterBase, Firebird или Yaffil. Реклама, обсуждение, и т.п.
Ответить
Rik
Сообщения: 16
Зарегистрирован: 16 май 2011, 14:41

DBI-Builder - среда разработки интерфейсов к базам

Сообщение Rik » 16 май 2011, 14:58

Здравствуйте участники форума.

Много лет назад у меня появился интерес создать собственную среду разработки, захотелось иметь так сказать своё. Меня часто спрашивают, зачем я это всё сделал? Я и сам задаю себе этот вопрос. Наверно по большей части, сказался характер, меня всегда интересовала суть вещей, хотелось узнать как всё построено и как всё работает, сделать самому - лучший способ разобраться во всем, с другой стороны, сказалось влияние 1С и других корпоративных систем, которые устремились к гибкости, я постоянно слышал восторженные возгласы, как там всё здорово, можно что угодно добавить, поправить и т.д. А т.к. я сам занимаюсь автоматизацией различной деятельности, я решил что непременно сделаю свою среду для разработки корпоративных приложений, которая обеспечит гибкость и позволит вносить изменения в приложения без перекомпиляции программы. Разработка велась и ведется на Delphi. Многие жалуются, что исполняемые файлы на Delphi (и на FreePascal в т.ч.) получаются большие, за удобство разработки приходится платить, вместе с кодом в выполняемом файле содержится RTTI информация о типах, благодаря которой обеспечивается позднее связывание. Но, если вы хотите создать собственное средство разработки, наличие RTTI неоценимое преимущество, т.е. для обеспечения позднего связывания изобретать ничего не нужно, RTTI содержит всю рутину. Первая версия движка появилась в 2000м году, в то время, я только начинал углубляться в Delphi, в интернете раздобыл информацию о недокументированных методах VCL и какими-то невероятными усилиями удалось изготовить некое подобие дизайнера форм, сильно примитивное, но все-же, я смог "мастерить" формы сам, уже без Delphi, кроме этого удалось прикрутить сервер скриптов Windows и наладить сток событий в VB скрипт, со временем к своему движку написал редактор с подсветкой синтаксиса под VB. Радости не было предела, я мог разрабатывать приложения уже без Delphi, первое приложение было - Расчет зарплаты. Конфигурация хранилась в папке, формы сохранялись каждая в своем DFM файле, код поведения приложения на VB с обработчиками событий хранился в одном гигантском файле.
Однажды в книжном магазине, мне попалась книга "Delphi Руководство разработчика" авторы С. Тейксейра и С. Пачеко. Во втором томе достаточно хорошо описана RTTI и как ей пользоваться, информация из книги оказалась неоценимо полезной. Зародилась навязчивая идея, сделать среду в стиле Delphi. Избавиться от этой навязчивой идеи пришлось только способом её воплощения. Пришлось сделать собственную реализацию интерфейсов дизайнера форм Delphi. Оставалась проблема с ядром системы - встроенный язык. Попытался сделать сам, искал информацию, но к сожалению нашел не так много и понял что не осилю. Но к тому времени появился FastScript, я решил его приобрести, т.к. ничего лучшего с русскоязычной поддержкой не нашел. В общем - то всё оказалось вполне работоспособным, сделал много проектов на этом движке. Но оставалось последнее, для получения полного удовлетворения - написать свой собственный интерпретатор для ядра системы.
Не так давно в книжном интернет магазине увидел книгу Никлауса Вирта "Построение компиляторов", заказал не думая и с нетерпением ждал доставки. В довесок ещё заказал книгу "Разработка паскаль компилятора" автор Л. Залогова. Наконец настал момент когда книги были у меня в руках. Самым сложным, для меня самоучки, показалось описание БНФ грамматики, несколько листов я перечитывал не одну неделю, пока не "въехал" что к чему. Помогло то, что до этого мне приходилось писать парсеры и я был знаком с конечными автоматами и не нужно было на них тратить время. Могу сказать что книга Вирта - лучшая книга на эту тему, до неё я пытался осилить теорию по лекциям наших ВУЗов, я не понимаю, как по ним можно что-либо освоить, неужели студенты что-то понимают из той мяши, которую мне довелось видеть? Разработка интерпретатора заняла 3 мес и ещё столько-же на интеграцию с системой. Из книги Залоговой очень пригодились синтаксические схемы Паскаля. Потом начались эксперементы, было добавлено ООП, интерпретатор Pascal был переделан в Object Pascal. А потом и вовсе родился язык Суржи, который я сделал для своего удобства. Сейчас в ситеме 2 языка Object Pascal и Surgy. В языке Суржи я изменил конструкции некоторых операторов:
if, while, for, with - сами открывают блок, как это реализовано в Oberon, begin для открытия блока писать не нужно, но эти операторы должны всегда заканчиваться завершающей инструкцией end, Оператор присвоения := заменен на =, добавлены операторы увеличения и уменьшения ++, --, +=, -=, операторы бобитового сдвига << и >>, procedure и function заменены на method. Оператор := более подходит для понимания присвоения, но для промышленного применения, где речь не идет об обучении - роли не играет, а пользоваться более удобно (на мой взгляд, хотя я уже давно привык и к := и мне на самом деле уже все равно, но бывает когда переключаешься между SQL и кодом паскаля, начинаешь путаться...). Ну и ещё я поэкспериментировал с русской транскрипцией языка, но пока это только эксперимент, полной русификации добиться не удастся. Русскую транскрипцию поддерживают оба языка и Object Pascal и Суржи. Приложение созданное в этой среде сохраняется в 1м файле в формате XML.

Возможно мои разработку ещё кому-нибудь пригодятся, исходный код раздаю бесплатно, скомпилирован он может быть в Delphi 2010, Delphi XE. Посмотреть и скачать всё можно на http://visualtech.shadr.ru

Изображение

Изображение

Приложение созданное в этой среде, обслуживает базу >5GB на FireBird 2.5 - на 56 рабочих местах:
Изображение

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: DBI-Builder - среда разработки интерфейсов к базам

Сообщение kdv » 16 май 2011, 17:56

сайт по ссылке не открывается. Долго висит, потом "время ожидания истекло".

Rik
Сообщения: 16
Зарегистрирован: 16 май 2011, 14:41

Re: DBI-Builder - среда разработки интерфейсов к базам

Сообщение Rik » 16 май 2011, 19:06

kdv писал(а):сайт по ссылке не открывается. Долго висит, потом "время ожидания истекло".
проблемы на линии, счас должно работать...

Ответить