一般有两种思路:1、你应用程序的框架做得好,那么你的程序扩展性就会很好,此时用户只需要在你的框架中进行一些继承并实现一些接口,就可以实现新的功能,这种做法比较传统,也就是常见的支持插件的应用程序。这类程序应用非常广泛,比如支持多种媒体格式的播放器,它允许你自己定义媒体解码库,也是一定程度上的二次开发。2、就是程序中使用脚本引擎,用户可以直接在程序中编程从而达到二次开发的效果。这种做法有点难度,因为你既然支持编程,你必定需要实现调试功能,否则用户没法调试那还是白搭。我以前做了一个文件批处理的软件,就是.NET/C#做的,当然只是练手,它支持批处理逻辑自定义、文件搜索过滤条件自定义以及由脚本支持的动态批处理方式。屏幕截图在:http://www.sunnychen.org/2008/07/02/GuluFileSearchingAndBatchProcessingExpert.aspx,源代码在:http://www.codeplex.com/gulu,如有兴趣您可以了解一下。当然我这不是打广告,事实上这东西的应用面也很窄,只是我为了学习而练手的项目。