Обучение - расширяемость: динамическая загрузка и любые другие обновления программного обеспечения без перекомпиляции
Я планирую написать программу, но я застрял в загадке. Я не хочу начинать что-то писать, а потом переписывать все, когда узнаю, что моя программа не расширяемая. Другая проблема заключается в том, что у меня недостаточно знаний в области программирования, чтобы знать, с чего начать разработку моей программы, чтобы она была расширяемой.
Я прочитал некоторые библиотеки DLL (или отложенную загрузку для Unix), динамическую загрузку, загрузку / выгрузку библиотек во время выполнения и т. Д., Но до сих пор не могу понять, что мне нужно делать. Я приведу пример программы, и если кто-то может направить меня в правильном направлении для того, чтобы чему-то научиться, чтобы началась моя большая программа, я буду чрезвычайно благодарен!
Допустим, я создаю консольную программу "iAmDog", в которой вы можете вводить команды, и собака соответствующим образом ответит выводом на консоль. Теперь давайте предположим, что когда я создаю эту программу, у собаки есть только 1 команда, "кора", которая выдает вывод "крыша крыши!". Как мне написать эту программу, чтобы, пока пользователь все еще ее запускал, я мог редактировать библиотеку или код где-то еще, чтобы добавить команду "sit" в репертуар собак.
Опять же, в идеале мой план состоит в том, чтобы не было простоев или как можно меньшего времени простоя, и при этом иметь возможность обновлять код функциональности постоянно работающей программы.
Спасибо за чтение!
Рассел ака SgtPooki
1 ответ
Вы используете.NET? Тогда MEF, Managed Extensibility Framework, вероятно, хорошо подойдет для вас.
На Hanselminutes есть подкаст о MEF. Вы найдете mp3, а также стенограмму PDF, которая позволяет вам искать шоу. Они даже обсуждают возможность непрерывного просмотра папок на наличие обновлений, чтобы добиться того, что вы описали, хотя и не рекомендуют делать это.