rcp培训

<!-- @page { margin: 2cm } H3 { margin-bottom: 0.21cm } H3.western { font-family: "Liberation Sans", sans-serif } H3.cjk { font-family: "Droid Sans Fallback" } H3.ctl { font-family: "Lohit Hindi" } H2 { margin-bottom: 0.21cm } H2.western { font-family: "Liberation Sans", sans-serif; font-size: 14pt; font-style: italic } H2.cjk { font-family: "Droid Sans Fallback"; font-size: 14pt; font-style: italic } H2.ctl { font-family: "Lohit Hindi"; font-size: 14pt; font-style: italic } H1 { margin-bottom: 0.21cm } H1.western { font-family: "Liberation Sans", sans-serif; font-size: 16pt } H1.cjk { font-family: "Droid Sans Fallback"; font-size: 16pt } H1.ctl { font-family: "Lohit Hindi"; font-size: 16pt } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->

Eclipse 插件开发 培训

 

rcp 是什么? Rich Client Platform

由于eclipse 做的比较成功,所以说起rcp ,就以为指的就是eclipse rcp

rcp 它是一个平台,它里面只是定义了一些规则。

 

学习这个技术 能做什么?

开发rcp 应用程序

扩展eclipse 的功能

可以提高你的工作效率

ecl rcp 的基本结构?


rcp培训_第1张图片

基本架构是什么?


rcp培训_第2张图片

微核心+ 插件的形式。

 

初步体验下RCP

对扩展 扩展点的初步认识

对插件一个认识,插件是在rcp 这个平台中加载运行的最小单元。

插件中可以扩展别人插件的功能,也可以自己定义一些扩展点让别人去扩展。

rcp 平台默认定义的了一下常用的扩展点。

插件的惰性加载 如何实现的

插件在真正使用的时候才去加载。如何做到呢?

ui core 的分离,也就声明与实现的分离。

xml plugin.xml )中定义 在ui 的描述信息,rcp 在启动的时候

会加载每个插件中的这个文件,这样启动后系统就知道在哪里显示什么东西UI 了。

这样就保证了rcp 可以快速的启动。不会受到插件的增多儿影响你的用户体验。


学习rcp 的方法?

rcp 没有一个很好的文档,没有很多参考资料。

在开发过程中就是看代码。例如:你想知道一个扩展点如何使用,是没有很全面的文档来说明的。

在碰到新的需求,不知道如何来实现,首先应该先去参考别人类似的需求是如何实现的。

这样时间长了你就可以有自己的一套方法。

个人观点:看代码胜过看文档。

Rcp 设计的比较好的地方

扩展点

这个功能实现了 开闭原则。 对扩展的开发,对修改的封闭。

传统的实现方式 通过java 继承/重写来实现对原有功能的扩展。

传统方式有个弊端,没法明确的指出那些地方是可以扩展的。

如何你的系统使用的人多了。2 种就不容易做架构的调整/升级。

惰性加载

提供了性能,用户体验

一套产品的技术支持

让你很容易开发出自己的产品

pde 开发工具 /强大帮助/国际化/打包 /发布自动更新/

的技术支持


eclipse 设计的宗旨/目标

打造一个平台,定义一个规则,每个人都可以遵守这些规则,来为eclipse 做贡献。

负责每个插件可以协调工作。

把系统中有可能扩展的地方一扩展点的形式提供。

 

rcp 开发中容易犯的错误

1 :找不找类

由于插件在启动的过程中是每个插件一个类加载器,所以你的在插件描述文件中指定要加载哪些类。

不可以只是在java classpath 中设置。

2 :插件的概念扭转不过来。

给你个需求,应该用那个扩展点来实现,这个扩展点如何来用。

或则参考类似插件如何实现的。

eclipse 的设计中我们学到了什么?

eclipse 4.2 介绍

代码提示 可以统计分析后做出的提升。甚至会联网 统计。

xtext 你可以自己定义一套自己的语言(语法的包装)(基于java

默认会有一套开发工具/调试/运行的支持。




 

 

你可能感兴趣的:(RCP)