Nic писал(а):
« Класс ориентированная разработка (COD).
COD - это очевидная структура разрабатываемых компонентов при помощи кодогенераторов FTCG и RTCG.
За основу будущего компонента выбирается какой-либо класс фреймворка .NET, затем,
по описанию членов класса создается ini-файл компонента (можно написать утилиту для "выкусывания" данных из документации).
Далее, наполнение hws-файла методами (опять же, возможно брать эту информацию из документации). И последний этап отладка и корректировка.
Создание такого подхода к разработке компонент не только поможет увеличить скорость процесса,
но и защитит новый пакет от повторения "старых" ошибок и отвлечёт от желания тащить в него "пережитки" прошлого наследия.
Предлагаю в первую очередь сделать graber-convertor информации из документации в макеты файлов ini и hws. »
Какова ситуация сегодня? Идея создания программы, которая бы сама строила компоненты, реализована. С помощью программы ElementMaker сегодня можно получать некоторые виды низкоуровневых элементов для кодогенератора RTCG из содержимого HTML документации, которая идёт вместе с MSVS2010. Под понятием низкоуровневый надо понимать элемент, результатом вызова метода которого, как правило, является одна строка целевого кода на ЯВУ. Программа строит низкоуровневые элементы по следующим видам информации:
- по классам, некоторых видов;
- по интерфейсу;
- по перечислению;
Примером таких элементов, являются все визуальные контролы пакета CNET построенные на классах из постранства имён System.Windows.Forms и многие другие. Есть в пакете и высокоуровневые элементы, которые, как правило, строят более одной строки целевого кода ЯВУ на вызов одного метода. Примером такого элемента можно назвать TCP_client из Internet вкладки. Наверняка, можно построить подобный элемент из нескольких низкоуровневых элементов, но пока, на мой взгляд, более эффективный (по времени) способ создания таких элементов - это целевой поиск в интЫрнете исходных кодов и использование "готовых" классов (исходников) и сборок (DLL). Примером использования сборок являются элементы для работы с другими языками: VBScript, JScript и IronPython, а также вся вкладка Adobe для работы с программами InDesign, Photoshop и Acrobat, как COM-серверами.
Конечно, есть проблемы:
- несовершенство кодогенератора;
- ограничения, накладываемые средой;
- отсутствие поддержки HiAsm сообщества;
Но, несмотря на проблемы, пакет CNET развивается, хотя и медленнее, чем хотелось бы. В данный момент, происходит пересмотр, всех ранее сделанных, элементов на предмет соответствия достигнутому уровню пониманию возможностей кодогенератора и построение wiki документации по всем элементам на английском языке. После завершения "перетряски" и с разрешения автора HiAsm, будут опубликованы версии пакета для 4-ой и 5-ой версий среды.