之所以仿照CE,一是因为他的界面最酷,二是因为它的源代码用了混淆,做类似的实现比较有意思。
不过,现在想来选择CE做蓝本是一个错误。因为除了界面比较酷之外,他的服务器端代码很烂,一方面为了达到更好的混淆,用了大量的内部类,另一方面用了很多奇怪的方式实现控件。把许多简单问题,弄的很复杂。
RadEditor是这两天我刚看到的另一个编辑器,它的界面很酷,服务器端代码也很好。他的服务器端实现和我的想法很相似,比较符合正常人的思路。可以说是,把复杂问题简单化了。只是看到这个实现时,第一阶段已经完成。
今天看到一个报道说“从公布的录像来看,日本隐形战斗机实际上是F-22的翻版,整个外形几乎一模一样,配备两台具有矢量推力的发动机,虽然看不到武器,但所有武器似乎也是内置的。如此看来,日本隐形战斗机为了“少走弯路”,几乎“全盘借鉴”了F-22的设计思路。”
同样,为了完成WordEditor,从头空想,一点点的实现,远不如以现在某个比较成熟的项目为蓝本,先仿照他的实现,然后再按照自己的思路重构。
这样可以:
1、 弥补自己的不足,如此项目中的Javascript。
2、 一开始项目就达到了比较高的水平。
3、 吸取他的优点,并避免它的缺陷。
第二步,重构服务器端代码(估计两到三周时间)。
由于CE的服务器端实现,很不符合正常的思路,只是说和我的想法差别很大。这一阶段会按照我的思路改写上一阶段的部分实现,如改写资源管理、Gzip。
重构完成后会发布源代码。
第三步,把控件移到Ajax平台。
这一步是最关键的一个步骤,这一步完成后,这个控件才算真正的开始。
首先,把服务器端代码移到Ajax,可以利用asp.net ajax的基类,会省去服务器属性和脚本的映射代码。依靠Ajax平台,也使这个控件的扩展性和稳定性增强。
其次是,客户端脚本的重写。由于我js不好,这一步是比较头疼的问题。不过,有许多现成的脚步参考,应该也不会太难。
有想加入的可以和我联系,一起学习Ajax,我觉得以开发控件的方式学习,也是不错的途径,边学边写。要求熟悉Ajax。msn:[email protected]
部署方式,由于采用了 CuteEditor 的配置文件,只需要下面两步就可以应运这个库:
1、 用WordEditor.dll替换掉CuteEditor.dll。
2、 把Dialog文件夹替换为附件中新的Dialog
使用方法,参考cuteeditor的文档
代码下载:
http://www.cnblogs.com/files/bluewater/cuteeditor.rar
效果图:
关于Cuteeditor:
他的服务器端实现很诡异就不多说了,他的客户端也是如此,以简单的toolbarbutton为例子:
当然,CuteEditor优点也不少,如事件处理方式。总之CE的实现方式和独特。
这个项目总览
http://www.cnblogs.com/bluewater/archive/2007/09/06/884990.html
几个Editor比较
http://www.cnblogs.com/bluewater/archive/2007/09/06/885001.html
cuteeditor6破解
http://www.cnblogs.com/bluewater/archive/2007/09/06/885006.html