论坛首页 海阔天空论坛

弱弱的问个问题,如何实现类似Add-in的架构?

浏览 5269 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-12  
office vs.net或者eclipse都有给程序增加add-in的功能,举个简单的例子吧,写个文本编辑器来说,可能我一个人要学贯中西,把所有语言的语法加亮显示都写好,另外一种方法,就是文本编辑器提供add-in的功能,让专业的人士来写add-in。

现在的问题是,这种add-in的design该怎么design?。。。。想google,终于发现不知道怎么google好了。
   发表时间:2007-03-12  
PS: 不是在VisualStudio或者Eclipse里面写个add-in,这东西我早就烂熟了。。
0 请登录后投票
   发表时间:2007-03-12  
这就是现实中常常听到的需求....
自已认为很明白但听着很不清楚....
0 请登录后投票
   发表时间:2007-03-12  
抛出异常的爱 写道
这就是现实中常常听到的需求....
自已认为很明白但听着很不清楚....


简单的说运行add-in的环境是add-in的HOST,比如说一个文本编辑器,add-in的运行依赖于host而不能独立运行,add-in的作用是向host提供必要的信息:

举个例子,有两个高亮显示器一个给C#一个给xml, 对于C#来说,if 和for都是关键字,因此必须在编辑器里显示成蓝色,对于xml显示器来说,则应该是正常的黑色.

现在我问的问题,一般这种host和add-in之间沟通的设计架构有啥成例可依据否?
0 请登录后投票
   发表时间:2007-03-12  
ray_linn 写道
抛出异常的爱 写道
这就是现实中常常听到的需求....
自已认为很明白但听着很不清楚....


简单的说运行add-in的环境是add-in的HOST,比如说一个文本编辑器,add-in的运行依赖于host而不能独立运行,add-in的作用是向host提供必要的信息:

举个例子,有两个高亮显示器一个给C#一个给xml, 对于C#来说,if 和for都是关键字,因此必须在编辑器里显示成蓝色,对于xml显示器来说,则应该是正常的黑色.

现在我问的问题,一般这种host和add-in之间沟通的设计架构有啥成例可依据否?


我用的editplus
可以根据后缀名来切换
语法规则
是不是你想说的?
0 请登录后投票
   发表时间:2007-03-12  
可以看看POSA1中的微核模式
不过你提到的几个各自实现方式都不相同,有些也并非真正的add-in架构
有那么多源码可以看,自己学习一下源码就好了,半年时间怎么着也明白了
0 请登录后投票
   发表时间:2007-03-12  
抛出异常的爱 写道
ray_linn 写道
抛出异常的爱 写道
这就是现实中常常听到的需求....
自已认为很明白但听着很不清楚....


简单的说运行add-in的环境是add-in的HOST,比如说一个文本编辑器,add-in的运行依赖于host而不能独立运行,add-in的作用是向host提供必要的信息:

举个例子,有两个高亮显示器一个给C#一个给xml, 对于C#来说,if 和for都是关键字,因此必须在编辑器里显示成蓝色,对于xml显示器来说,则应该是正常的黑色.

现在我问的问题,一般这种host和add-in之间沟通的设计架构有啥成例可依据否?


我用的editplus
可以根据后缀名来切换
语法规则
是不是你想说的?


语法规则只是个例子。我想问的是,add-in这种结构是怎么弄的,host 和add-in是怎么通讯的,host怎么提供event,object等等给add-in使它能得到host的handle来实现修改host工具栏这一系列问题。

0 请登录后投票
   发表时间:2007-03-12  
那你想问的是
它是怎么遍历
所有的add-in插件的问题么?
0 请登录后投票
   发表时间:2007-03-12  
抛出异常的爱 写道
那你想问的是
它是怎么遍历
所有的add-in插件的问题么?



恩。。。。。这不是一个程序的问题

换个问法:我的台式机是如何和我的服务器通讯的,就有高手跟我将TCP/IP是如何如何如何。。。

那么: 我的add-in和我的application host是怎么通讯的呢???


不过写过add-in的人本来就不多,设计一个add-in host的人就更少啦。
0 请登录后投票
   发表时间:2007-03-12  
要在application host中先建立起遍历所有的add-in的机制
那样在存在add-in时才能自动的add-in
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics