首先,我要创建的项目的最简单的部分是作为单页Web应用程序实现的Wiki引擎。我计划从一开始就拥有一组可用的功能,并且将来还会增加很多功能。
基本特征
- 页面创建(同时创建Wiki文章和该文章的讨论论坛)
- 标记和WYSIWYG ala 标记
- 标记/ html /所见即所得之间的即时转换
- 侧栏快速浏览
- 用于选择编辑/查看的顶部工具栏
高级功能
- 可配置的侧栏,通过不同的方法导航
- 可配置的工具栏(可能添加选择的标记语言)
- 标签
- 可编辑的待办事项
- 拖放文件上传和图像附件
该引擎最初将由最基本的页面创建,标记,所见即所得编辑和保存组成。我最终希望通过拖放图像支持,文件上传,实时数据图以及用于自定义视图的侧栏来扩展此基本引擎。
我已经对一个不错的项目进行了相当广泛的搜索,以此作为我的项目的基础,但是除了TiddlyWiki之外,似乎没有任何基于JavaScript的良好Wiki引擎。我也考虑过在现有的Wiki引擎之上应用Jquery,但我相信无论如何我最终还是会重写它(加上我随心所欲地添加我想要的功能更令人兴奋)。无论哪种方式,我都可以使用javascript库+框架来实现此野兽。
我知道不能真正将其中的某些框架相互比较,因为它们不是苹果与苹果。我已经尝试对各个框架的可比部分提出任何比较评论/问题,但我愿意接受纠正。
所以我们开始:
根据我自己的研究和观点,我将列表缩小到以下各项。我特意忽略了诸如SproutCore,corMVC,YUI之类的东西,因为我以有限的能力认为以下各项会更合适。
我的选择
jQuery / UI +主干
总体
根据我的阅读,这种组合被许多人使用和喜爱,并且非常灵活和可扩展。我主要担心的是,这种组合根本不是开发面向桌面的UI界面的最佳起点。
用户界面
尽管jQueryUI或jqueryTools可能具有竞争力,但它们显然与其他框架的UI功能不相上下。具体来说,它们似乎在效果上很沉重,但缺乏体面的布局切片支持。
javascriptMVC
总体
在我看来,JavascriptMVC本质上是jquery + MVC(jqueryMX)扩展,以及其他一些用于记录文档(documentJS),功能测试(funcUnit)以及代码和依赖项管理(stealJS)的应用程序。除了附加模块的好处之外,我认为功能的争论实际上归结于与js和jqueryMX的对比。
用户界面
JavascriptMVC将MXUI项目添加到Jquery可用的所有内容之上,因此我认为至少在该类别中这是一个小小的胜利。
淘汰赛
总体
我对此的想法和担忧与jquery +主干评论非常相似。它们似乎都提供相似的功能,但是只是从不同的角度。一个经常被提及的缺点是,knockoutjs太紧密地将业务逻辑和表示与数据绑定耦合在一起,并且这种绑定方法可能会因复杂的UI交互而崩溃,但是我很想听听为什么这不是问题。
用户界面
此刻空白
Dojo和ExtJS
总体
我将讨论Dojo和ExtJS结合在一起,因为我对它们了解最少,而且它们似乎在几乎相同的空间中发挥作用。关于这两者的关于stackoverflow的大多数信息似乎都是过时的。从我所看到的是,它们都是适用于台式机应用程序实施的大型框架。Dojo因糟糕的文档记录而备受指责,但事实似乎不再如此。ExtJS当然具有商业许可,但是对于您所获得的东西来说这确实是合理的,我不会对此过于反对。ExtJS中的小部件似乎比Dojo更加专业,但是我可以肯定在那里得到纠正。我很想听听任何人在这两个方面都有经验。
用户界面
卡布奇诺咖啡
总体
然后是卡布奇诺咖啡。没有CSS,没有html,但是使用现有的javascript库也可能会很困难。Objective-J似乎并不可怕,尤其是考虑到他们吹捧也能够编写普通的javascript。这些演示令人印象深刻,并且似乎非常接近Wiki引擎的UI需求。对于不熟悉它的人来说,基于可可的API可以吸收很多东西,但也许值得。我听说布局引擎并不总是易于使用,但是像这样的年轻且可能会破坏性的技术肯定会存在一些缺点。
用户界面
此刻空白
我为写了这么多而道歉,但是,嘿,至少它不是ax vs y vs z问题,希望能提供大量廉价答案。所以你怎么看?我的台式机(如Wiki引擎)的基础应该是什么,随着时间的推移,该基础有望变得功能更加丰富(阅读复杂)?