为什么你的软件需要IDE特征?

news/2024/7/4 1:44:12
 
为什么你的软件需要 IDE 特征?
         IDE,就是Integrated Development Environment的缩写,一般而言,只有软件开发工具或设计工具才具备IDE特征,之所以如此的原因之一也许是因为开发IDE特征的技术工作比较繁杂。现代应用软件由于软件操作人员的驾驭能力越来越强、可用资源越来越丰富而逐渐开始体现出“集成”的特点,例如,MS Office就已经体现出很强大的可定制化特征,基于Eclipse的RCP软件也由于Eclipse平台的强有力的插件体系而表现出类似的架构。你的软件如果能够具备IDE特征的话,那么其扩展能力、定制化能力以及与他人的协作能力等等都将成为你的用户考虑的事情。
         当然,UI扩展是IDE必须考虑的工作,在类似具备集成Microsoft Visual Basic for Application的软件框架中,可以提供“Form Designer”解决部分UI的扩展:
(一个集成了Microsoft Visual Basic for Application的软件框架)
(上述软件VBA IDE中的Form Designer,设计时Form)
(运行时Form)
一般来说,许多软件的功能,在交付的时刻,功能的界限已经基本确定了,这样的软件也许总会面对许多“这样”或“那样”的不足,Microsoft在自己的软件系统中总会提供一个解决类似需求的“方案”,我们看到Office就是具备类似特点的软件系统,VBA或Visual Studio Tools for Office就是为类似目标设计的。如果我们自己设计的软件系统可以具备类似的特征的话,那么我们的用户就会是一个最大的受益者。
         用户需求的范围,与你所做的软件规划有很大的关系,通常你软件所界定的功能集合是你所做调研的全部或部分,高级的软件架构者也许会进一步延伸,但一般而言,延伸总是有局限的。如果能够将软件开发工具在一定意义上融入你的软件系统,那么情况就完全不同了。那么,你的软件能够做到这一点吗?答案是肯定的。类似Web平台,由于软件是以html的模式体现的,因此,以B/S方式体现的Web软件总能够表现出强大的定制能力以及丰富的、多态的内容形式,与此对比,桌面软件则有点“相形见绌”,之所以如此,是因为桌面软件缺乏一个类似HTML的“内容编辑器”。我们看一个传统的VB程序:
(一个VB6程序)
这是一个十分普通的VB程序,按照通常的观点,Form是承载着各种“控件”。一般说来这类程序有许多“高手”是不涉足的,原因之一是缺乏“变化”,如果将至匹配一个“内容IDE”,则情况就不同了,例如下图:
其中,Form上加载的“内容”来之一个软件组合“IDE”,这种丰富的UI表现,将会为这类VB软件提供强大、丰富的桌面表现的“内容”。通常,这类内容是某些特殊控件提供的,如同许多软件内置报表设计器一样,许多开发者将需要打印的对象归结为一个表现灵活的“Reporter”,但很少有软件将其更需要体现的UI内容归结为一个“UI Designer”,如果这个问题得以恰当的解决,那么,我们的软件系统就在一定程度上媲美B/S架构了,Mozilla的FireFox用XML技术描述其UI给我们以启示,但FireFox的XUL目前还无法用于一般的Windows桌面系统,因此,类似Visual Basic、Visual C++ 6.0之类开发的软件还不能从中受益,TangramDesigner采用类似XUL的设想,但更适用于Windows平台开发的系统,TangramDesigner的总体着想是提供一个高可定制的通用的内容IDE,你可以在 http://www.download.com/Tangram-Xtml-Designer/3000-12775_4-10637589.html?tag=lst-0-5中下载这个Designer的预览版本。
         一旦你的软件包含一个IDE特征的IDE,那么,你的软件将具备无与伦比的扩展性以及其它只有“开发环境”才具备的特征,这样,你的用户自然被你发展成一个“开发者”,Microsoft的Visual Studio IDE,以及IBM的Eclipse等均具备类似的特征,难道你不打算这样吗?
 



http://www.niftyadmin.cn/n/3656127.html

相关文章

mongodb 删除字段

使用springboot mongodb工具&#xff0c;删除多余字段。 1、pom文件依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2、代码实现 topping、toppi…

关于Tangram的可视化设计支持

关于Tangram的可视化设计支持Tangram开源版本是Tangram系列中“最小”的版本&#xff0c;在这个版本中包含了Tangram的最基本的功能点&#xff0c;即软件UI框架的可视化设计。通常&#xff0c;软件开发者都是通过Coding的方式进行软件的框架设计&#xff0c;给定一个如下的UI框…

asList remove异常原因分析

使用Arrays.asList后&#xff0c;调用remove异常问题记录。 // 第一种String str "第一个,第二个,第三个,第四个,";List<String> list Arrays.asList(str.split(","));list.remove(1);// 第二种List<String> list2 new ArrayList<>()…

Microsoft Visual Basic for Application技术概要

Microsoft Visual Basic for Application技术概要众所周知&#xff0c;Visual Basic系列产品在Microsoft的产品线中占有非常独特的位置&#xff0c;从IE&#xff0c;到Office&#xff0c;乃至Visual Studio系列产品中总要配备一个基于Visual Basic的描述引擎以便进行功能扩展。…

mongodb 多表关联查询

需求 mongodb库中有三张表&#xff0c;需求&#xff1a;查询表A中的数据&#xff0c;但这些数据的threadId字段&#xff0c;不能存在于表B和表C中&#xff0c;做一个过滤查询&#xff0c;需要分页和排序。 mongodb 命令实现 {"aggregate": "__collection__&q…

WPF,一次洗牌……

WPF,一次洗牌……昨天&#xff0c;在CSDN上看一篇孟岩的文章&#xff0c;谈及WPF带来的震撼&#xff0c;其实&#xff0c;WPF对今天的开发者来讲&#xff0c;已经不是很新的概念了&#xff0c;在MSN里&#xff0c;也与部分朋友交流对WPF的看法。最早体验WPF&#xff0c;也许是在…

Tangram开源版本发布

Tangram开源版本发布经过一段难忘的忙碌&#xff0c;Tangram的第一个完整版本杀青了。回想来到北京的几年&#xff0c;可谓感慨万千&#xff0c;开发产品是心志的磨练&#xff0c;这话没错&#xff01;经历身体与身心的煎熬&#xff0c;使我深刻的意识到勇者有畏&#xff0c;但…

【MQTT】Esp32数据上传采集:最新mqtt插件(支持掉线、真机调试错误等问题)

前言 这是我在Dcloud发布的插件-最完整Mqtt示例代码&#xff08;解决掉线、真机调试错误等问题&#xff09;&#xff0c;经过整改优化和替换Mqtt的js文件使一些市场上出现的问题得以解决&#xff0c;至于跨端出问题&#xff0c;可能原因有很多&#xff0c;例如&#xff0c;合法…