Sproutcore 和 Ember 之间的区别

2023-12-29

在 Ember 从 sproutcore 分叉之前,我就选择了 sproutcore 作为框架。我不确定该走哪条路,而且对碎片化造成的努力明显稀释感到有点沮丧——因为这很少会带来更好的事情。 Sproutcore 2.0(现在的 Ember)的努力似乎正朝着模块化和重用其他 javasript 组件(jQuery)的正确方向发展,但是从外部角度来看,确实不清楚为什么这两项工作必须分开......不能'我们有模块化代码和小部件库模块吗?

主要问题是:

  1. 这两种努力之间的有效差异是什么?
  2. 分裂的历史是什么?
  3. sproutcore 的未来是什么,现在又将走向何方?
  4. Ember 会完全替代 sproutcore 吗?

作为同时拥有 Sproutcore 应用程序和 Ember 应用程序且即将发布产品的人,我将回答您的问题(为了清楚起见,重新排序)。以下所有内容都是我在没有内部知识的情况下观察到的。其中一些是猜测,所以我在这个答案上启用了维基模式,以便更多知情的人可以更正细节。

分裂的历史是什么?

这是我拼凑起来的:

SproutCore 由 Charles Jolley 的公司 Sproutit 于 2007 年创建,作为其 Mailroom 产品的基础。Jolley 后来加入 Apple,Sproutcore 用于构建 Mobile Me 的原始 Web 应用程序。我们的任务是重新打造 Mail 和 iCal 等 Mac 应用程序的体验,如今 Sproutcore 上的 iCloud 仍在继续这一努力。

Jolley 离开了 Apple,在旧金山成立了一家名为 Strobe 的公司,其愿景部分是利用 Sproutcore。 Strobe 团队认为 Sproutcore 不能很好地适应许多 Web 2.0 用例,并且对于开发人员来说过于孤注一掷,因此他们开始致力于 Sproutcore 2。Sproutcore 2 的目标是模块化,以及一种更加 HTML 感知的方法,世界各地的 Web 开发人员都可以更容易地使用它。 Backbone 的早期吸引力是本次分析的一部分。

在努力推动 Sproutcore 代码库实现这一愿景之后,Strobe 团队决定从 Sproutcore 2(内部代号 Amber)重新开始。 Charles 编写了核心运行循环和键值观察器代码。 Yehuda Katz 和 Tom Dale 是该项目的主要 Strobe 开发人员。当时的愿景是 Strobe 和社区最终将大多数特性和功能从 Sproutcore 1.x 移植到 Sproutcore 2。

Strobe 的业务努力并未产生预期结果,该公司权衡了各种选择,最终决定由 Facebook 收购 Strobe 人才。在此之前,包括 Katz 和 Dale 在内的一些 Strobe 员工分流成立了一家名为 Tilde 的新公司。

Tilde 决定继续开发 Sproutcore 2,但更改项目名称(先更改为 Amber.js,然后更改为 Ember.js)和项目目标。他们放弃了与 Sproutcore 向后兼容的长期目标。他们放弃了对任何类型的视图小部件库的支持,并专注于 HTML/CSS 用例,将数据绑定与 Handlebars 模板语言紧密集成。

自从 Strobe 解散后,Sproutcore 1.x 的管理权就从 Jolley 转到了 Tyler Keating,社区重新集中精力清理 Sproutcore 1.x,当 Sproutcore 2 的想法出现时,Sproutcore 1.x 一度陷入了尴尬的境地。迫在眉睫。

这两种努力之间的有效差异是什么?

这些项目的相似之处在于它们具有非常相似的对象模型。它们也有相似的属性、观察者和绑定系统。

Sproutcore 包括一个视图小部件库,如工具栏、列表视图、网格视图、按钮和主题系统,并重点通过 Javascript 定义视图层和库管理的绝对定位。它对于在网络上创建桌面风格的应用程序非常强大。

Ember 的占地面积较小。它与车把紧密集成。对于许多项目来说,它是 Backbone 的替代品。它旨在为客户端应用程序提供标准应用程序架构并消除样板代码。

尽管已经考虑过采用相同的核心,但这些差异可能会导致框架出现分歧。在这种情况下,Sproutcore 将使用 Ember 的“metal”库,也许还有其他核心库。

Sproutcore 的未来是什么?现在又将走向何方?

该线程包含最近贡献者聚会的分钟记录。

https://groups.google.com/group/sproutcore/browse_thread/thread/aacf00a6047a866e# https://groups.google.com/group/sproutcore/browse_thread/thread/aacf00a6047a866e#

短期路线图的重点是巩固营销材料、演示和代码库。该团队最近发布了芽核展示 http://showcase.sproutcore.com/。人们普遍同意用基于 Javascript(node.js) 的解决方案取代 Abbot(Sproutcore 的 Ruby 构建工具),该解决方案目前正在积极开发中。人们还希望减少苹果等公司的“大型”代码合并,并提高发布频率。 Sproutcore 1.8 最近发布了。

Ember 会完全替代 sproutcore 吗?

不见得。 Ember 核心团队已经明确表示,他们无意亲自开发那些缺失的功能。社区成员可能会将这些项目开发为单独的项目——flame.js https://github.com/flamejs/flame.js是迄今为止最雄心勃勃的尝试。 Ember 的设计选择使其更容易与 jQuery UI 等项目集成,因此可能需要也可能不需要完全替换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sproutcore 和 Ember 之间的区别 的相关文章

  • 防止回车键触发按钮

    我有一个搜索输入框 当用户按下 Enter 时不需要执行任何操作 我正在使用 EmberJS 和 Jquery 以及以下代码 目前 它可以禁止触发弹出窗口 但由于某些原因 在 IE9 中 当按下 Enter 键时 切换按钮将成为焦点 在 C
  • Ember 中可靠的视图

    我有一个列出专辑的应用程序 当同时点击专辑时AlbumView and App overlay 也是一个视图 被显示 App overlay Ember View create 类似灯箱的叠加 and App AlbumView Ember
  • 如何在 Ember.js 中指定动态根 URL?

    Ember 允许在路由器上指定根 URL http emberjs com guides routing toc specifying a root url http emberjs com guides routing toc speci
  • Ember数据渲染有很多

    在我的 ember 应用程序中 我有一个模型 App Schedule DS Model extend manager DS belongsTo App Manager embedded true entries DS hasMany Ap
  • 我的 Rails 路由应该是什么样子才能与 pushState Ember.js 路由一起使用?

    简而言之 当构建 Ember js 应用程序以持久保存到 Rails 应用程序时 我应该如何处理 Rails 路由 视图 我想我只需要 Rails 来渲染 application html erb 布局 以便 Ember js 应用程序初始
  • Ember.js - 根据对象属性更新 CSS 宽度

    正如中提到的 安多罗夫的回答 https stackoverflow com a 32593118 565877 OP的理想代码 div style width 1 现在从 Ember 1 10 开始几乎可以正常工作 我是 Ember js
  • Ember Data 未找到模型,但它显然存在

    我和其他许多人一样将我的 ember 应用程序升级到了最新版本 但升级后 我的应用程序仍然无法工作 我已经简化了很多 这归结为我的路线 我的路线是这样的 按照过渡指南中的建议 App BoxesRoute Ember Route exten
  • Ember.js + Mirage:在集成测试中拉取模拟关系

    我有一个使用的组件this get model property 并且它按预期工作 对于我的集成测试 我使用 Mirage 它适用于我的所有其他测试 包括集成测试 但是当我测试这个特定组件时 我得到 TypeError Cannot rea
  • 在 Ember 2.0 中存储瞬态 UI 状态的位置

    Ember 2 0 竭尽全力让一切都成为组件 随着可路由组件的推出 控制器也可能会被淘汰 Context 然而 在构建用户界面时 我经常遇到一个问题 到目前为止我还没有令人满意的模式 用户界面状态 我在做什么 选择状态 当前焦点 某些树显示
  • emberjs 无法克隆未实现 Ember.Copyable 的 Ember.Object

    我正在使用 ember 1 3 1 和 ember data 1 0 0 beta 5 在创建新模式时我收到 以下错误 断言失败 无法克隆未实现 Ember Copyable 的 Ember Object 以下是我的模型代码 App myM
  • 告诉 ember.js 对其模型的“id”使用不同的密钥

    我陷入了不应该回来的境地idAPI 端点中的字段 我需要告诉 ember 使用slug字段为 而不是id I tried DS RESTAdapter map App Post id key slug 虽然这对于App Post find
  • emberjs 对一条路线使用多个路径/url

    在 Ember 中我可以使用这个 App Router map function this route accomodations 因此 如果访问 accomodations 它将加载该视图 我还可以补充 App Router map fu
  • 是否可以使用脚本标签加载车把模板?或者在 Ember.js 中以编程方式定义车把模板

    很简单 我不想在 html 文件中定义所有车把模板 我试过这个 但这没有用 我是否可以不以编程方式定义模板 甚至只是加载车把文件 以便我可以重用 而且我觉得这使事情更易于维护 我尝试用 ajax 加载它们并将它们附加到头部 这工作正常 我可
  • 如何制作具有移动外观的 emberjs 应用程序(如 jquery mobile 中的应用程序)?

    我有一个使用 Emberjs 的简单移动 Web 应用程序项目 对于外观和感觉 我想要类似于 JQuery Mobile 的东西 有没有办法混合使用 Emberjs 和 jquery mobile 如果是这样 怎么办 我查看了 Travis
  • 2015 年重新审视 Ember Handling 401

    我可以在 Ember Ember Data 中找到大量询问 回答如何从 Rails 后端处理 401 的老问题 许多 如果不是全部的话 在这一点上似乎已经过时了 我已经尝试了我能找到的一切 Ember 数据处理 401 https stac
  • ember js 子视图和 didinsertelement 事件

    我正在写一个Ember View 它将树结构变成菜单 我需要递归 所以我在视图模板中使用的是 view helper 它递归地调用自身来构建嵌套 ul li 结构 我需要的是一个钩子来调用一些 jQuery 插件来将此结构转换为菜单 当我从
  • 在 #each 内渲染视图

    每当我尝试在 each 块内渲染视图时 我都会收到一条 PrecompilationError 消息 Compiler said Error each doesn t match view Example each posts view A
  • 在哪里放置固定装置?

    我应该在使用 ember cli 生成的 Ember JS 应用程序中的哪里定义固定装置 我尝试过很多地方 例如app js并在一个名为 fixtures 的文件夹中 经过一番挖掘后我发现改变Ember MODEL FACTORY INJE
  • 绑定 Ember TextField 中的计算属性

    我正在尝试将我的数据模型绑定到 Ember js 中的文本字段 该模型有一个表示货币值的字段 例如 1 000 50 然后用户可以更改该值 Ember 接收数字 1000 50 形式的数据 非货币格式 我将视图绑定到具有良好格式的计算属性
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse

随机推荐

  • AWS EventBridge API 目标无法连接到 EC2 私有 IP

    我的目标是通过 HTTPS 将消息从 EventBridge 转发到运行 httpd 服务器的 EC2 实例 该实例只有其私有IP 事实证明 EventBridge 的 API 目标及其目标和连接与外部 IP 配合得很好 但私有 IP 没有
  • 未找到工作职能。尝试公开您的工作类别和方法

    首先 我查看了其他具有相同错误消息的 SO 帖子 但似乎没有一个帖子能解决我的问题 我尝试了很多排列和选择 我的函数构建良好 但无法在 CLI 中运行 我收到以下神秘错误 MSFT 文档似乎也没有给出答案 未找到工作职能 尝试公开您的工作类
  • WPF 文本框边框何时被选中?

    我想让 WPF 文本框具有深蓝色边框且厚度等于 1 即使选择了文本框 我也想让 WPF 具有此边框 深蓝色 厚度设置为 1 我尝试通过以下代码完成此任务 然而 它根本不起作用 有什么想法或提示吗 任何帮助将不胜感激
  • Django-注册设置无需密码

    我正在尝试创建一个网站 人们只在其中输入电子邮件地址 然后使用 cookie 等登录 稍后 我会要求他们提供密码和姓名 但不会使用用户名 我正在尝试使用 django registraition 来执行此操作 但出现错误并且遇到一些问题 首
  • Ruby on Rails CSV 用“”代替实际引号

    我正在尝试生成 CSV 文件 除了空白字段之外一切都很好 我不太确定是否有 quot quot 而不是实际的报价 我提供了用于生成文件和一些输出的代码
  • 处理用户输入中从右到左/从左到右覆盖字符

    我需要将用户输入嵌入到字符串中 例如 发送了一条消息 如果用户输入包含方向性覆盖字符之一 U 202D 或 U 202E 就会出现问题 如果 包含 RLO 字符 则显示的字符串将变为 发送了消息 我的问题是如何最好地处理这个问题 RLO 和
  • EF 迁移 - 数据库中已有一个名为 '' 的对象

    我在向数据库添加新表时遇到问题 这些是我在尝试添加新迁移时输入的命令 Add Migration AdminSett 脚手架迁移 AdminSett 设计者代码 迁移文件包含当前 Code First 模型的快照 此快照用于计算模型的更改
  • 指令内部模板中的 ng-click 未提供该功能

    ng click不提供警报 单击指令的内部模板时 不会显示警报框 小提琴链接在这里 http jsfiddle net NNDHX http jsfiddle net NNDhX 你的指令有它自己的隔离范围 所以函数 hi 应该在指令的范围
  • 为 Android 流媒体创建视频

    这是我为创建在 Android 上播放的视频所做的搜索的答案 虽然android支持mp4流媒体但并不容易 我根据我的经验推断出的简单步骤是 1 首先使用超级编码器对视频进行编码 参数是 A 顶级参数 a mp4作为容器 b mpeg 4
  • Java正则表达式字符类中的非法转义字符

    我试图确定传递到我的 Expressions 类中的表达式是否有运算符 任何一个 分别用于加 减 乘 除和指数 这段代码有什么问题 private static boolean hasOperator String expression r
  • 为什么编译器资源管理器上的 Visual Studio 忽略异常模型设置?

    当我尝试使用 EHs标记在编译器资源管理器测试用例 https godbolt org z Md2g7J 启用 异常通过extern C 函数 VC 19 22 似乎忽略了它 因为它仍然踢出 C5039 并且实际上没有更改代码 我缺少什么
  • 如何轻松打印ascii-art文本? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个转储大量输出的程序 并且我希望其中一些输出能够真正脱颖而出 一种方法可能是使用 ascii art 渲染重要文本 like 这
  • VS 2017 中缺少 ASP.NET Core 2 模板

    I m using VS 2017 Community Edition I ve installed NET Core 2 SDK from here 当我跑步时dotnet version我收到如下回复 但我看不到ASP NET Core
  • 为什么每次创建新视图模型时不调用视图构造函数?

    我正在将 WPF 与模型 视图 视图模型模式一起使用 我有一个 ResultsView 和 ResultsViewModel 它们的连接方式如下
  • Angular 5:装饰器中不支持函数调用

    我正在从 Angular 应用程序构建 PWA 运行时出现以下错误ng build prod ERROR in app app module ts 108 64 Error during template compile of AppMod
  • 不允许远程表值函数调用

    我怎样才能做到这一点 我正在从远程链接服务器运行表值函数 我尝试在这 4 部分命名中不添加锁定 但仍然遇到相同的错误 我使用 mssql 2008 select from 110 10 10 100 testdbname dbo ufn g
  • 如何将 Micrometer 与 @WebMvcTest 连接起来

    我正在尝试测试 Spring Boot 2 3 Controller通过 Actuator Prometheus 执行指标 WebMvcTest 不幸的是 这在 NPE 中失败了 可能是因为测试中不存在 Micrometer Prometh
  • 如何使用 Visual Studio 2015(企业版)构建 boost 版本 1.58.0

    我喜欢使用 新的 Visual Studio 2015 企业版 构建 boost 1 58 0 过去我是按以下方式进行的 从以下位置下载 boost 1 58 0www boost org http www boost org 提取文件 例
  • HTTPServletRequest.getInputStream() 总是接收空行

    客户端 public List
  • Sproutcore 和 Ember 之间的区别

    在 Ember 从 sproutcore 分叉之前 我就选择了 sproutcore 作为框架 我不确定该走哪条路 而且对碎片化造成的努力明显稀释感到有点沮丧 因为这很少会带来更好的事情 Sproutcore 2 0 现在的 Ember 的