![]() |
|
Модераторы: Се ля ви |
![]()
|
|
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Добрый день. Я не знаю как это правильно называется, посему попробую описать своими словами
Итак, я хочу написать некую IDE, в которой всё будет построено на модулях. Например у нас есть некий главный модуль (dll), который обеспечивает основную необходимую функциональность - это обеспечение расширяемости (себя любимого), это обеспечение инструментов для построения визуальных компонентов IDE, etc. Дальше, за счёт механизма расширений, я хочу реализовать все основные элементы IDE - будь то текстовый редактор (например на основе Scintilla), окошки типа "watch", поддержку работы с различными компиляторами (например семейства GCC, а точнее портов для avr, arm и т.д.) GUI для дебаггера и т.д. Первый и единственный пример подобного рода модулей, который мне приходит в голову - это сервер apache. Не совсем в тему, но очень близко. Соответственно вопросы - какие есть подводные камни у такого подхода? Верно ли это решение идеологически? Какие есть стандартные механизмы поддержки модулей? Это сообщение отредактировал(а) UniBomb - 19.10.2009, 11:56 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
total commander - 4 рода различных плагинов. пока что неясно, что ты называешь "таким подходом". расширение функциональности за счет плагинов? да, довольно распространенное решение. "подводные камни"? когда переносишь функционал в сторонние модули надо быть готовым, что модули могут оказаться некачественными. потому желательно проверять данные, пришедшие из модулей. ну, и если плохо продумаешь интерфейс - обратно пути не будет. проблема обратной совместимости с уже существующими модулями будет перевешивать желание "поломать и переделать заново". потому-то делать систему "полностью модульной" с самого начала разработки - усложнять себе жизнь. во-первых, надо продумать все нюансы, что практически нереально. а во-вторых, выпуск первой рабочей версии продукта оттянется надолго. |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Я имею в виду то, что само по себе приложение - это грубо говоря путая форма и одна dll, в которой только и есть, что механизм саморасширения. Зато всё остальное реализовано в виде расширений. Так например мы написали расширение, которое использует тестовый редактор на основе Scintilla и у нашей пустой формы теперь есть куда вводить код. Далее мы хотим подключить компилятор - мы пишем отдельный модуль, который будет обеспечивать всю рутинную работу с компилятором (создание мейкфала, вызов соответсвующих утилит с соответсвующими параметрами и т.д.). И т.д. до обрастания этой нашей пустой формы всем необходимым функционалом. Т.е. иными словами за счёт модулей я хочу не расширять существующий функционал, а создавать его по мере необходимости. И да - где я говорил "мы" я имею в виду "я", просто легче думать более абстрактно Вот тут у меня самая большая сложность. Я не то, что не знаю как лучше проектировать такой интерфейс - я вообще не знаю как это делается. Посему прошу совета - с чего начать? Какие есть стандартные решения и есть ли вообще?
Захотелось именно таких сложностей, т.к. я никуда не тороплюсь и делать хочу сначала для себя |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 1 Всего: 154 |
я тут подумал, и решил, что тебе не нужно писать свою IDE, вместо этого тебе нужно использовать Visual Studio 2008 Shell или eclipse в качестве платформы, конечно, придется разобраться с тем, как это работает, поэтому в начале будет сложнее
может быть даже не стоит так делать, а вместо этого разобраться, как использовать в студии альтернативный toolchain, вместо стандартного майкрософтовского, скорее всего для этого то-же потребуется писать свое расширение для студии Добавлено через 1 минуту и 55 секунд http://msdn.microsoft.com/en-us/vsx2008/pr...s/bb933751.aspx |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Не хочу Не знал о таком))) Интересный вариант, но если честно меня что-то смущает. Правда что именно - непонятно. А вот как насчёт стоимости средств разработки? Смогу ли я использовать экспресс версию студии (для работы с VS Shell)? Можно ли в получившуюся оболочку добавлять такие графические штуки, как например симулятор дисплея? |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 1 Всего: 154 |
VS Shell runtime бесплатна, это просто голая VS 2008 Express Edition для разработки нельзя использовать VS EE, можно только VS SE и выше
|
||||
|
|||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
||||
|
||||
![]()
|
| Правила раздела "Философия программирования": | |
|
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Философия программирования | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |