| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Философия программирования > Поддержка модулей программы |
| Автор: UniBomb 19.10.2009, 10:49 |
| Добрый день. Я не знаю как это правильно называется, посему попробую описать своими словами Итак, я хочу написать некую IDE, в которой всё будет построено на модулях. Например у нас есть некий главный модуль (dll), который обеспечивает основную необходимую функциональность - это обеспечение расширяемости (себя любимого), это обеспечение инструментов для построения визуальных компонентов IDE, etc. Дальше, за счёт механизма расширений, я хочу реализовать все основные элементы IDE - будь то текстовый редактор (например на основе Scintilla), окошки типа "watch", поддержку работы с различными компиляторами (например семейства GCC, а точнее портов для avr, arm и т.д.) GUI для дебаггера и т.д. Первый и единственный пример подобного рода модулей, который мне приходит в голову - это сервер apache. Не совсем в тему, но очень близко. Соответственно вопросы - какие есть подводные камни у такого подхода? Верно ли это решение идеологически? Какие есть стандартные механизмы поддержки модулей? |
| Автор: UniBomb 19.10.2009, 11:46 | ||
Я имею в виду то, что само по себе приложение - это грубо говоря путая форма и одна dll, в которой только и есть, что механизм саморасширения. Зато всё остальное реализовано в виде расширений. Так например мы написали расширение, которое использует тестовый редактор на основе Scintilla и у нашей пустой формы теперь есть куда вводить код. Далее мы хотим подключить компилятор - мы пишем отдельный модуль, который будет обеспечивать всю рутинную работу с компилятором (создание мейкфала, вызов соответсвующих утилит с соответсвующими параметрами и т.д.). И т.д. до обрастания этой нашей пустой формы всем необходимым функционалом. Т.е. иными словами за счёт модулей я хочу не расширять существующий функционал, а создавать его по мере необходимости. И да - где я говорил "мы" я имею в виду "я", просто легче думать более абстрактно Вот тут у меня самая большая сложность. Я не то, что не знаю как лучше проектировать такой интерфейс - я вообще не знаю как это делается. Посему прошу совета - с чего начать? Какие есть стандартные решения и есть ли вообще?
Захотелось именно таких сложностей, т.к. я никуда не тороплюсь и делать хочу сначала для себя |
| Автор: Lazin 5.11.2009, 12:56 |
| я тут подумал, и решил, что тебе не нужно писать свою IDE, вместо этого тебе нужно использовать Visual Studio 2008 Shell или eclipse в качестве платформы, конечно, придется разобраться с тем, как это работает, поэтому в начале будет сложнее может быть даже не стоит так делать, а вместо этого разобраться, как использовать в студии альтернативный toolchain, вместо стандартного майкрософтовского, скорее всего для этого то-же потребуется писать свое расширение для студии Добавлено через 1 минуту и 55 секунд http://msdn.microsoft.com/en-us/vsx2008/products/bb933751.aspx |
| Автор: UniBomb 5.11.2009, 13:37 |
Не хочу Не знал о таком))) Интересный вариант, но если честно меня что-то смущает. Правда что именно - непонятно. А вот как насчёт стоимости средств разработки? Смогу ли я использовать экспресс версию студии (для работы с VS Shell)? Можно ли в получившуюся оболочку добавлять такие графические штуки, как например симулятор дисплея? |
| Автор: Lazin 5.11.2009, 14:05 | ||
VS Shell runtime бесплатна, это просто голая VS 2008 Express Edition для разработки нельзя использовать VS EE, можно только VS SE и выше конечно можно, вопрос в том, насколько это сложно сделать |
| Автор: UniBomb 5.11.2009, 14:54 | ||
Вот из-за этого отпадает и этот вариант. Ну нет у меня VS SE и покупать его не хочу |