Обучение - расширяемость: динамическая загрузка и любые другие обновления программного обеспечения без перекомпиляции - PullRequest
0 голосов
/ 27 января 2011

Я планирую написать программу, но я застрял в загадке. Я не хочу начинать что-то писать, а потом переписывать все, когда узнаю, что моя программа не расширяема. Другая проблема заключается в том, что у меня недостаточно знаний в области программирования, чтобы знать, с чего начать разработку моей программы, чтобы она была расширяемой.

Я прочитал некоторые библиотеки DLL (или отложенную загрузку для Unix), динамическую загрузку, загрузку / выгрузку библиотек во время выполнения и т. Д., Но я все еще не совсем понимаю, что мне нужно делать. Я приведу пример программы, и если кто-то может направить меня в правильном направлении для того, чтобы чему-то научиться, чтобы могла начаться моя большая программа, я буду чрезвычайно благодарен!

Допустим, я создаю консольную программу 'iAmDog', в которой вы можете вводить команды, и собака соответствующим образом ответит выводом на консоль. Теперь давайте предположим, что когда я создаю эту программу, у собаки есть только 1 команда, «кора», которая выдает вывод «крыша крыши!». Как мне написать эту программу, чтобы, пока пользователь все еще ее запускал, я мог редактировать библиотеку или код где-то еще, чтобы добавить команду «sit» в репертуар собак.

Опять же, в идеале мой план состоит в том, чтобы не было простоев или как можно меньше минимальных простоев, при том, чтобы иметь возможность обновлять код функциональности постоянно работающей программы.

Спасибо за чтение!

Рассел aka SgtPooki

1 Ответ

1 голос
/ 27 января 2011

Вы используете .NET? Тогда MEF, Managed Extensibility Framework, вероятно, подойдет вам.

На Hanselminutes есть подкаст о MEF . Вы найдете mp3, а также стенограмму PDF, которая позволяет вам искать шоу. Они даже обсуждают возможность непрерывного просмотра папок для обновлений, чтобы добиться того, что вы описали, хотя они не рекомендуют делать это.

...