JQuery VS Flex - 选择 SAAS 平台
我们的团队即将启动一个面向小型企业的 SAAS Web 应用程序。这对我们来说是一种全新的体验;我们是一个系统/linux/php 开发组织,除了简单的基于 html/php 的 CRUD 支持应用程序之外,没有任何开发客户端软件的经验。
我们正在评估 Adobe Flex 和 JQuery。我们似乎无法在两者之间做出选择。我们的首要任务是:
- 生产力 - 我们必须尽快推出。
- 整体用户体验 - 最终的应用程序必须看起来很专业,并且用户必须在使用我们的产品时获得愉快的体验。我认为这对于两个平台来说都不是问题,尽管我们可能会自动失去 10% 未安装 Flash 的潜在用户。
- 技能重用 - 在这个项目中我们都必须学习新的语言和 RIA 平台,并希望我们可以在更多项目中再次使用它。顺便说一句,我们是一家软件承包组织,这是我们首次涉足消费者应用程序。但我们希望能够为客户利用在这里获得的技能。
应用特征:
- 以数据为中心——大量的CRUD操作。
- 3 层 - 业务逻辑将驻留在 PHP 服务器上,数据将驻留在 MySQL 上。 RIA 只会将数据呈现给用户。
- 用户可访问的数据将会很大 - 这就是我们决定使用 RIA 的原因。当用户仅进行少量更改/添加时,我们无法刷新页面。
- 安全性至关重要 - 我没有看到选择一个平台而不是另一个平台有任何安全影响,但也许社区有一些想法?
我们正在认真研究这个问题。我们经常在开发人员之间进行竞争,看谁可以使用 Flex 或 jquery 更快地实现测试应用程序。不过,我们很想听听社区的意见。
提前致谢!
Our team is about to start a SAAS web application geared toward small businesses. This is a completely new experience for us; we are a system/linux/php development organization and no experience whatsoever developing client side software except for simple html/php based CRUD support applications.
We are evaluating both Adobe Flex and JQuery. We can't seem to choose between the two. Our priorities are:
- Productivity - We have to launch the soonest possible time.
- Overall User Experience - Resulting apps have to look professional and user must have pleasant experience using our product. I think this not a problem with both platform, though we will probably automatically lose 10% of potential users who don't have flash installed.
- Skill Reuse - We will all have to learn new language(s) and RIA platform on this project and hope we can use it again on more projects. BTW, we are a software contracting organization and this is our first foray to consumer apps. We are hoping though that we can leverage the skills we gain here for our clients.
Application Characteristics:
- Data-centric - Lots and lots of CRUD operations.
- 3-tier - Business logic will reside on PHP server and data will be on the MySQL. The RIA will only present the data to the user.
- User accessible data will be large - This is why we decided to use RIA. We can't refresh the page when user just made few alterations/additions.
- Security is paramount - I don't see any security implication on choosing one platform over the other but perhaps the community has some ideas?
We are carefully studying this. We frequently hold competition among developers who can implement a test app faster by using a flex or jquery. We would love to hear what the community have to say though.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我都用过。我没有强烈的建议,但有一些考虑。
在用户体验方面,两者是等效的,你可以用它们产生好的和坏的体验。两者都有不错的开箱即用 UI 小部件集,带有 ThemeRoller 的 jQuery 在某种程度上更容易定制,但 Flex 也很好地利用与 W3C CSS 非常相似的系统来进行换肤。
I have used both. I don't have a strong recommendation, but have some considerations.
User-experience-wise, both are equivalent, you can produce both good and bad experiences with them. Both have decent out-of-box UI widget sets, jQuery with ThemeRoller is somewhat more easily customizable, but Flex also bends itself nicely to skinning with a system very similar to W3C CSS.
我会使用Flex。如果您认为合适的话,可以称赞 jQuery,但 Flex 是一个成熟的框架和环境,它通常可以防止 IE6(您提到了小型企业)稍后咬您的屁股。此外,由于您正在与中小型企业合作,因此他们会更喜欢 Flex UI,而不是 jQuery/ExtJS/任何 UI。我发现前者反应更快,开箱即用更漂亮,这会减少设置和周转时间。
I'd use Flex. Compliment with jQuery as you see fit, but Flex is a fully-fledged framework and environment, and it generally prevents IE6 (You mentioned small business) from biting you in the ass later. Also, since you're working with small/medium businesses, they will be more WOWed with Flex UIs over jQuery/ExtJS/whatever UIs. I've found the former to be more responsive and prettier out of the box, which would lower setup and turnaround time.
UI:你需要快速周转,而 html 以某种方式使之成为可能。这意味着使用 html 技术你可以轻松地改变你的用户界面。然而,整个 ui 在 Flex 上运行,轻微的更改需要 sdk/flex 编译。我们有一些像你的类似的项目,但我们结合了这两个世界,一些小部件使用flex,ui仍然在html中,并且jquery来完成神奇的事情。
在后端这张幻灯片可以给你一些想法:
UI : U need rapid turn around, and html somehow make it possible. meaning with html tech u can easily change your ui. however having the whole ui running on flex, slight changes require an sdk/flex compilation. we have some similar project like yours, but we combined both world, some widgets are using flex, the ui still in html, and jquery to do the magic stuff.
on the back end side this slides can give u some ideas:
TimeFrame:Jquery 更容易启动,但如果没有良好的基础技能和设计模式,当应用程序增长时,它很容易变得混乱。
IDE:Flex 战胜了 Jquery,我将 jquery 视为浏览器和 firebug 作为 IDE
技能重用:我个人会说 javascript(adobe air 就是一个证明)
当 Flash 播放器必须渲染大量文本和矢量内容时,客户端的 CPU 消耗仍然很大,这是我选择 javascript 的主要原因之一解决方案。
我会建议选择性地使用 flash/flex(如果需要,可以使用视频/绘图/图表)并使用 jquery+html 作为应用程序的主要框架。
看看 ExtJS,对于 Web 应用程序开发来说,它比 jquery 更完整。尽管它不像 jquery 那样容易上手。
TimeFrame: Jquery easier to start but without good foundation skill and design pattern, it can easily go messy when the app grows.
IDE: Flex wins over Jquery, with jquery i see browser and firebug as the IDE
SkilL reuse: personally i would say javascript (adobe air is a prove)
Flash player is still quite cpu intensive on the client side when it has to render a lot of text and vector content, that's one of the main reason I will go for javascript solution.
I will recommand use flash/flex selectively (video/drawing/charting if needed) and with jquery+html as the main framework of the application.
Take a look on ExtJS which is more completed than jquery for the purpose of web app dev. Although it's less easy than jquery to get a kick start.
使用 jQuery(或 YUI/ExtJS/...),您将能够生成外观精美的应用程序,其效果与 Flex 类似/可比。
然而,恕我直言,使用 jQuery-UI,我发现当组件更改状态时它会闪烁。这不仅仅是一个跨浏览器问题;有时FF上会出现这种情况,有时则不会。 (可能会遇到一些内存问题),您的选择是 1. 等待社区发布修复程序和/或 2. 自己动手
另一方面,Flex 组件对此进行了测试并具有更好的支持(尽管 Adobe 可以傲慢地处理)。
HTML/JS/CSS 应用程序并不总是能提供令人愉悦且一致的效果(取决于您运行的选项卡数量、浏览器会话的可用内存量)。
使用JS、HTML、CSS你的开发会更容易,而Flex你需要有架构意识的好人(读起来很贵);否则你的应用程序可能会变得非常糟糕。
JS、CSS 和 HTML(甚至 5 个)总是会存在跨浏览器问题,这些问题可能永远不会被完全抽象出来。
使用 Flex,如果您的后端是 Java 或 CF,您可以获得远程对象(AMF 二进制),这使得数据传输类型化、本地化且速度更快。 (甚至 php-amf、sabre-amf 或 WebOrb 都可以用于此目的,具体取决于您的后端。)
使用 JS,您只剩下 json 或 XML。
您可以使用运行时共享库来优化部署。并采用许多策略,如模块化开发、延迟加载、感知和实际性能提升等。使用 JS/HTML/CSS 更难,其中通常的诱惑是在设计时创建小部件占位符。
当新人出现时,JS 应用程序更难维护,没有好的调试工具(恕我直言,Aptana 就一般)。
最后,我同意这里有人说的混合解决方案可能是预定的。在小部件中开发应用程序;
您可以通过 Flex 小部件使用一些很酷的拖放支持(与 JS 相同,但使用 Flex 更容易)。
您的 Flex 小部件将是解耦的,因此在发生更改时需要增量编译,并且如果您的 API 彼此设计良好,则不同的团队可以使用不同的项目。
您可以使用外部接口与 HTML 包装器通信并来回发送数据。
祝你好运!
With jQuery (or YUI/ExtJS/...) you will be able to produce sweet looking applications, with effects similar/comparable to Flex.
However, IMHO, with jQuery-UI I've found it flickers when components change state. This is not just a cross-browser issue; it happens on FF sometimes and doesn't other time. (likely to get some memory issues), and your choice is 1. wait for the community to release the fix and/or 2. do it yourself
Flex components on the other hand are tested for this and have better support (though Adobe can be arrogant to deal with).
HTML/JS/CSS apps do not always give a pleasurable and consistent effect (depending on how many tabs your running, how much avail. mem. for your browser session).
With JS,HTML,CSS your development will be easier, while Flex you need good people with architectural sense (read as expensive); otherwise you can mess up your application really bad.
JS, CSS and HTML (even 5) will always have cross-browser issues that may never get abstracted away fully.
With Flex, if your backend is Java or CF, you can get remote objects (AMF binary) which makes data transfer typed, native and faster. (Even php-amf, sabre-amf or WebOrb can be used for this depending on your backend.)
With JS, you are left with json or XML.
You can optimize deployment with Runtime Shared Libs. and employ many strategies like modular development, lazy loading, perceived and actual performance gains, etc. Harder to do with JS/HTML/CSS, where general temptation is to create widget placeholders at design-time.
JS apps are harder to maintain when a new person comes along, there are no good debugging tools (IMHO, Aptana is so-so).
In the end, I agree with someone here who said that hybrid solution maybe on order. Develop an application in widgets;
You can employ some cool drag-drop support with Flex widgets (same with JS but easier with Flex).
Your flex widgets will be decoupled and thus will require incremental compilations in case of changes, and different teams can work with different items if you APIs well designed for each other.
You can communicate with HTML wrapper using external-interface and send data back and forth.
Best of Luck!
“一分钱一分货”
你可能会发现 jQuery 程序员很容易(而且很合理),但是他们的方法论是否结构化则是另一回事。三年后,您可能会留下一团糟,而不是一个可行的可扩展应用程序。
如果您能找到一位在 Java、Ajax/jQuery 和 Flex 技能方面拥有出色技能的首席开发人员,并让他来制定开发标准和指南,那么这笔钱花得值。
"Penny wise pound foolish"
You may find jQuery programmers very easily (and reasonable) however whether they will be structured or not in their methodology is another matter. You could be left with a mess in 3 years time rather than a workable scalable application.
If you can get a lead developer with excellent skills in Java, Ajax/jQuery and Flex skills and let that person set the development standards and guidelines then that would be money well spent.