学习 - 可扩展性:动态加载,以及任何其他无重新编译的软件更新

时间:2011-01-27 19:23:42

标签: dynamic extensibility recompile extensible

我打算写一个程序,但我陷入了一个难题。当我发现我的程序不可扩展时,我不想开始写一些东西然后必须重写它。另一个问题是,我没有足够的编程知识来知道从哪里开始设计我的程序,以便它是可扩展的。

我已经对DLL(或unix的延迟加载),动态加载,运行时库加载/卸载等做了一些阅读。但我仍然无法理解我需要做什么。我将给出一个示例程序示例,如果有人能引导我朝着正确的方向学习,那么我的更大程序就可以开始了,我将非常感激!

假设我创建了一个控制台程序'iAmDog',您可以在其中键入命令,并且狗会相应地响应输出到控制台。现在让我们假设当我创建这个程序时,狗只有1个命令,'bark'产生输出'屋顶!'。我如何编写这个程序,以便在用户仍在运行程序时,我可以编辑一个库,或者在其他地方编写代码,为狗的保留曲目添加一个'sit'命令。

同样,理想情况下,我的计划是让无停机时间或尽可能减少停机时间,同时能够对正在运行的程序的功能进行代码更新。

感谢您阅读!

Russell aka SgtPooki

1 个答案:

答案 0 :(得分:1)

您使用的是.NET吗?那么MEF,Managed Extensibility Framework,可能适合您。

有一个podcast on Hanselminutes about MEF。你会找到一个mp3和一个PDF文件,它可以让你搜索节目。他们甚至讨论了连续观看文件夹进行更新的可能性,以实现您所描述的内容,尽管他们不鼓励这样做。