WEB开发网
开发学院WEB开发ASP.NET 闲谈可插拔式应用程序的开发 阅读

闲谈可插拔式应用程序的开发

 2010-10-09 08:16:14 来源:WEB开发网   
核心提示:很多软件都是可插拔的,最知名的便是微软的Windows操作系统,闲谈可插拔式应用程序的开发,你可以在Windows操作系统上安装QQ,也可卸掉QQ,这里使用控制台应用程序,如果你有兴趣,这便是可插拔,这里不谈 Windows的实现

很多软件都是可插拔的,最知名的便是微软的Windows操作系统。你可以在Windows操作系统上安装QQ,也可卸掉QQ,这便是可插拔。这里不谈 Windows的实现,因为太过复杂。本文就谈谈管理软件的可插拔的实现。相对Windows操作系统,QQ就是它的一个插件。所以可以简单的将开发可插拔的软件分为两个部分。一个是主应用程序的开发,一个是插件的开发。

比Windows小的,常见的可插拔的软件是MSN。MSN主应用程序由MS开发,还存在一些MSN插件开发商,国内好像也有不少,这些插件开发商通过在插件中植入广告获取利润。MS不可能提高源代码给这些开发商,那么MSN的主应用程序和MSN的插件是如何衔接起来的呢。我想应该是MS提供了一些接口和方法供开发商使用,估计有个api之类的东西,所以开发可插拔的应用系统分为三个部分。

1、主应用程序的开发

2、公用接口的开发

3、插件的开发

了解了这些以后,下面通过一个实例来说明。这个实例的原则是可扩展性强,能向下兼用。

业务需求是:老系统每当逢年过节的时候,会通过邮件给用户发送一些祝福的邮件。现在流行手机和MSN(QQ没有借口)之后,客户希望系统能通过手机短信和MSN的消息给用户送去祝福。现在我们需要开发手机短信和MSN留言两个插件,然后将它们安装到系统中去。

实现:

为了简单起见,这里使用控制台应用程序,如果你有兴趣,可以修改成asp.net或者Windows Form的。

定义两个接口:

public interface IPluginHost 
{ 
  void AddMenuItem(string name, MenuItemClickedHandler clickHandler); 
  void RegisterComponent<T>(T component) where T : class; 
  void MailNotice(string messaage); 
} 
public delegate void MenuItemClickedHandler(string name); 

1 2 3 4  下一页

Tags:闲谈 应用程序 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接