WINX可视化开发工具的初步任务规划
WINX可视化开发工具初步定名为VisualWinx (QWL1996提名) 。
首要考虑的支持平台
- VS2005 / VS2003
之所以选择 VS2005 / VS2003 作为开始,有两点考虑:
- VS2005 / VS2003 用户相对比较多
- VS2005 / VS2003 的API支持丰富,二次开发相对容易。并且,在开发中我们逐步加深
对 VS2005 / VS2003 API 的了解,这非常有意义。因为VS2005 / VS2003 的二次开发 API 是经过多年发展成熟起来的,相信比我们自己去定义接口要好很多 。这实际上减轻了我们架构设计的负担。
从功能上来说,VisualWinx 首先考虑支持:
- 属性、事件的可视编辑。这是用户最迫切需要的功能。其中属性 VS2005 / VS2003 已经具备基本功能,缺的只是WINX特有的;事件只有在MFC程序
中被支持,普通Win32程序并不支持,这一点我们需要补上。
至于 DDX 支持等以及其他功能,优先级排后。
从开发任务来说,我们第一部会分为以下几块独立研究:
- 界面开发
- ResEditPKG 研究
- 源代码分析与插入
- EnvDTE::CodeModel 研究
ResEditPKG 是 VS2005 / VS2003 之资源编辑器提供的二次开发接口。通过它我们可以增强 Visual Studio 资源编辑器的能力。
ResEditPKG 研究主要关注以下内容(举例):
- 如何取得当前编辑的对话框ID?
- 如何取得当前编辑的控件以及控件ID?
- 如何添加事件?
- 如何添加属性?
- 如何让用户可视地编辑属性?例如,编辑对话框字体、背景等?
EnvDTE 是Visual Studio 集成环境的二次开发接口,功能极其丰富。EnvDTE:
EnvDTE::CodeModel 的研究主要是:
- 如何实现在源代码中添加/删除属性、事件?
非 VS2005 / VS2003 平台支持
- ResEditPKG,这一部分多数不能重用,尽量重用一些可重用
的对话框等UI元素。 - CodeModel
,这一部分要模拟 EnvDTE::CodeModel/FileCodeModel 相关的接口。当然 ,并不是要完整实现整个CodeModel,而是按需实现。