【发布时间】:2011-07-08 09:02:52
【问题描述】:
首先,我希望创建的项目最简单的部分是作为单页 Web 应用程序实现的 wiki 引擎。我计划从一开始就提供一组功能,并在以后添加大量功能。
基本功能
- 页面创建(为该文章创建 wiki 文章和论坛)
- 标记和所见即所得阿拉markitup
- 标记/html/所见即所得之间的即时转换
- 用于快速导航的侧边栏
- 用于选择编辑/查看的顶部工具栏
高级功能
- 可配置侧栏以通过不同方法导航
- 可配置工具栏(可能添加选择的标记语言)
- 标签
- 可编辑的待办事项
- 拖放文件上传和图片附件
引擎最初将包括最基本的页面创建、标记和所见即所得的编辑和保存。我最终希望通过拖放图像支持、文件上传、实时数据图表和用于自定义视图的侧边栏来扩展这个基本引擎。
我已经对一个体面的项目进行了相当广泛的搜索,作为我的项目的基础,但除了 TiddlyWiki 之外,似乎没有任何好的基于 javascript 的 wiki 引擎。我还考虑在现有的 wiki 引擎之上应用 Jquery,但我相信我最终还是会重写它(另外,添加我想要的功能更令人兴奋)。无论哪种方式,我都已经使用 javascript 库 + 框架来实现这个野兽。
我知道人们无法真正将其中一些框架相互比较,因为它们在很大程度上不是苹果对苹果的。我已尝试将任何比较 cmets/问题与相应框架的可比较部分进行比较,但我愿意接受更正。
所以我们开始:
根据我自己的研究和意见,我将列表缩小到以下项目。我故意省略了 SproutCore、corMVC、YUI 等内容,因为我的能力有限,认为以下项目更适合。
我的选项
jquery/UI + 主干js
总体
据我所知,这种组合被许多人使用和喜爱,并且非常灵活和可扩展。我主要担心的是,这种组合根本不是开发更多面向桌面的 UI 界面的最佳起点。
用户界面
虽然 jQueryUI 或 jqueryTools 可能具有竞争力,但它们显然无法与其他框架的 UI 功能相提并论。具体来说,它们似乎对效果很重,但缺乏体面的布局切片支持。
javascriptMVC
总体
在我看来,JavascriptMVC 本质上是 jquery + MVC(jqueryMX) 扩展,以及其他一些用于记录 (documentJS)、功能测试 (funcUnit) 以及代码和依赖项管理 (stealJS) 的应用程序。除了附加模块的好处之外,我认为功能辩论真的归结为backbonejs 与 jqueryMX 我对此是否正确,有没有人使用或比较两者?
用户界面
JavascriptMVC 将MXUI 项目添加到可用于 Jquery 的所有项目之上,因此我认为至少在该类别中这是一个小小的胜利。
knockoutjs
总体
我对此的想法和担忧与 jquery + 主干 cmets 非常相似。它们似乎都提供了相似的功能,但只是从不同的角度来看。一个经常提到的缺点是,knockoutjs 将业务逻辑和表示与数据绑定的结合过于紧密,并且这种绑定方法可能会因复杂的 UI 交互而崩溃,但我很想听听为什么这不是问题。
- Discussion 主干与淘汰JS 概念
- Features的knockoutjs
用户界面
暂时空白
Dojo 和 ExtJS
总体
我将把 Dojo 和 ExtJS 的讨论结合起来,因为我对它们了解最少,而且它们似乎在几乎相同的空间中发挥作用。关于这两者的大多数关于stackoverflow的信息似乎已经过时了。据我所见,它们都是适合桌面口径应用程序实施的大型框架。 Dojo 曾因文档质量差而受到指责,但现在情况似乎不再如此。 ExtJS 当然有商业许可证,但是你得到的东西真的很合理,我不会反对它太多。 ExtJS 中的小部件似乎比 Dojo 做得更专业,但我当然可以在那里得到纠正。我很想听听任何在这两个方面都有经验的人。
用户界面
Dojo 有 dijit UI 库 ExtJS 具有 UI 功能,但它们不在 Ext 核心中。这是documentation,这是他们的demos
卡布奇诺
总体
然后是卡布奇诺。没有 CSS,没有 html,而且使用现有的 javascript 库也很困难。 Objective-J 似乎并不可怕,特别是考虑到他们吹捧也能够编写纯 JavaScript。演示令人印象深刻,似乎非常接近 wiki 引擎的 UI 需求。对于不熟悉它的人来说,基于可可的 API 有很多值得学习的地方,但也许值得。我听说布局引擎并不总是很容易使用,但像这样年轻且可能具有颠覆性的技术肯定会有一些缺点。
用户界面
暂时空白
我很抱歉写了这么多,但嘿,至少它不是一个 x vs y vs z 的问题,希望得到大量廉价的答案。所以你怎么看?我的桌面(如 wiki 引擎)的基础应该是什么,它有望随着时间的推移变得更加丰富(阅读复杂)?
【问题讨论】:
-
+1 提出了一个非常详细且经过深思熟虑的问题!
-
不确定你的时间线和资源,但是当我试图在多个框架/环境之间做出决定时,我只是继续尝试快速构建一个原型。即使它只是一两个主要功能,我发现世界上所有的研究和文档都无法与实际尝试使用这些工具构建一些东西相匹配。我说每个人都花一天时间,看看你能走多远。这将让您很好地了解哪些工具可以胜任这项任务并让您感觉最舒适。
-
@Brian Flanagan 转到答案——即使是“元”。
-
你看过tiddlywiki.com吗,我认为这是一个用JavaScript完成的纯自包含wiki
-
是的,我看过 tiddlywiki。在许多方面,它是这个项目的灵感来源,但我有自己的基础和为这个项目设想的方向。
标签: javascript frameworks