26

我正在努力让自己熟悉富 Web 应用程序的世界。维基百科上有一些可用技术的比较表,但我仍然不清楚丰富的应用程序开发有哪些选项。

您能否验证并完成我在下面收集的信息?每个选项的主要优点和缺点是什么?对于大型且非常丰富的 Web 应用程序,哪个是最佳选择?

选项 1:ASP.NET/ASP.NET MVC
供应商:Microsoft
环境:Visual Studio
语言:C#
输出:HTML+JavaScript+AJAX
示例:www.stackoverflow.com

选项 2:Silverlight
供应商:Microsoft
环境:Visual Studio
语言:C#
输出:.NET 可执行文件?
例子: ?

选项 3:Google Web Toolkit
供应商:Google
环境:Eclipse
语言:Java
输出:HTML+JavaScript+AJAX
示例:http ://www.projectkaiser.com:8080/pk/

选项 4:Flex
供应商:Adobe
环境:?
语: ?
输出:Flash(.swf 文件)
示例:http ://listen.grooveshark.com/

选项 5:Adobe AIR
供应商:Adobe
环境:?
语: ?
输出:AIR
示例: http: //www.colabolo.com/en/download.html

选项 5:Ruby on Rails
供应商:Rails 核心团队
环境:?
语言:Ruby
输出:HTML+JavaScript+AJAX?
例子: ?

选项 6:Java Applet
供应商:Sun
环境:Eclipse
语言:Java
输出:Java Applet

选项 7:OpenLeszlo
供应商:?
环境: ?
语: ?
输出: ?
例子: ?

选项 8:Vexi
供应商:Vexi 核心团队
环境:Eclipse
语言:XML + JavaScript
输出:Java
示例:http://vexi.sourceforge.net/ 上的演示

选项 9:Django
供应商:Django 核心团队
环境:?
语言:Python
输出:HTML + JavaScript + AJAX
示例:?

选项 10:XUL
???

4

8 回答 8

24

你把这一切都搞混了。这里有两层:使应用程序“丰富”的用户界面和服务器端代码。

用户界面:

Silverlight
最适用于 .NET 平台。我不会考虑将它与 Java、Ruby on Rails、PHP 或其他东西一起加入。
工具是商业的。

Flash/Flex(Flash 平台)
我最喜欢的,也是我认为列表中最成熟的一个(我是作为 Flex/Java 开发人员工作的我的主观意见)。使用简单的 Http 服务与所有服务器端技术一起工作,WebService 最好的集成是通过 AMF 服务(有效的二进制协议)。集成在不同的层次上。基本的远程调用(对于 90% 的项目来说已经足够了)适用于所有平台(.NET、Java EE、PHP、RoR)。但是有用于 Java EE 的高级交互库(数据同步、数据推送、客户端-服务器事件甚至客户端-服务器依赖注入):Adobe Livecycle Data Services(商业)或 GraniteDS 和 Tide Framework(免费,适用于 JBoss接缝)。

Flex SDK(编译器和库)是免费的,但 FlexBuilder 是商业的。

OpenLaszlo
有两种选择 - 在 OpenLaszlo 服务器上进行实时“编译”到 flash 或 html+javascript,或者在开发时编译到 flash 并上传到 http 服务器。与大多数服务器端技术集成。这个想法与 flex 类似,但它是第一个。

SDK是免费的,IDE比较差。

JavaFX / Java Applet
相当实验性,图形工具和IDE都很差。这个想法是声明式(但不是 XML)代码摆动接口并将其作为小程序运行。我认为 id 没有生产状态。

Flash/Flex 和 Silverlight 为您提供最先进的工具来创建丰富的多媒体用户体验界面(视频/音频流、网络摄像头的使用、麦克风等)。

Adobe AIR
AIR 代表 Adob​​e Integrated Runtime,可让您在桌面上运行 Flex 或 HTML+Javascript 应用程序(类似于 java 虚拟机 + WebStart)。对于弹性应用程序,与远程系统的集成与上述相同。AIR 应用程序安装在客户端机器上,就像任何应用程序一样运行。您也可以访问文件系统。AIR 也可以在 Windows、Mac 和 Linux/BSD 上运行(我认为)。

服务器端:

Java
它是:Java EE 5(现在的 Java EE 6),或没有应用程序容器的简单 Web 应用程序。您可以拥有一些基于 javascript 的丰富 UI,例如 Google Web Toolkit、JBoss RichFaces、IceFaces 和一些商业产品。

与 Flex 接口与集成框架集成良好 - Adob​​e LiveCycle ...(商业)、BlazeDS(简单、免费)、GraniteDS + Tide + Gravity(高级、免费)、WebOrb 等您可以在此处拥有应用程序框架:Spring(2 或3)、JBoss Seam 和很多...

.NET
我不是这里的专家。为您提供 JS 丰富界面的机会。与 Silverlight 和 Flex(WebOrb、.NET 和 AMF)集成。

那里还有很多其他技术。其中一些拥有自己丰富的用户界面,而另一些则没有。它们中的大多数都与 Flex 集成

带有 Prado 应用程序框架的PHP
丰富的 UI。有一些更简单的 PHP 框架(问 google)。Flex 与 AmfPHP、WebOrb、SabreAMF 集成

Ruby on Rails
语言 + 服务器 + 应用程序框架。可以与 Flex 集成

Python
有一些应用框架:Django、Pylons... 可以与 Flex 集成

Scala + Lift
Lift 是一个用 scala 编写的应用框架。在 java 服务器上运行。

Coldfusion
一种 A​​dob​​e 技术。语言是 CFML。在 Adob​​e Coldfusion 服务器上运行,但来自 JBoss 的免费 Railo。与 Flex 集成。

于 2010-01-13T09:22:07.193 回答
2

我的五分钱

ASP.NET - 算了。过时的过去千年技术。

Silverlight 专业人士- 非常强大的商业图书馆可用。如果“哇”效果是必须的,那么它是您的选择,尽管您应该花一些钱购买 3d 派对软件。

例如看

天狼星2。软件中心 com

演示。泰瑞里克 com / silverlight / salesdashboard /

Silverlight缺点:浏览器必须安装silverlight插件,当新的silverlight版本发布并在您的软件中使用时,应不时升级此插件,有时升级此插件会出现问题。也不确定这个插件是否完全适用于 *nux 操作系统 - 所以你可能会坚持使用 Windows。

GWT 优点:不需要插件,您使用 Java 开发,Java 被编译成纯 JavaScript。我最喜欢的构建有效应用程序的工具,例如http://www.projectkaiser.com

GWT 缺点:糟糕的 GUI 库(即使我们谈论商业库)

Java 小程序。你可以看看枢轴。阿帕奇 组织

所以我对“大型且非常丰富的 Web 应用程序的最佳选择”的回答是 Silverlight。不过要注意缺点!

于 2010-02-10T08:41:26.670 回答
2

我也在研究使用哪种技术我认为有 1 你可能想看看

Appcelerator Titanium - 它允许您使用 HTML5/CSS/JS 等 Web 技术为桌面和移动平台以及桌面平台甚至 PHP/Python 进行开发

还在评估它

还查看 RIA(AIR、Silverlight、Titanium)与本机 Web 应用程序(PHP、ASP.NET MVC)。RIA 的强大之处在于它可以与文件系统交互,并且通常更快,因为它们存在于本地。Web 应用程序无法与文件系统交互,并且通常速度较慢并且涉及更多延迟。但由于它们存在于网络上,我可以在任何地方访问它。

我实际上想使用 HTML5/CSS3/JS/PHP/Python 之类的开放 Web 技术解决问题,但会认真考虑 .NET 平台。C#/F#/WPF/Entity Framework/Silverlight 以及 Windows 7 覆盖图标、进度条、跳转列表的功能显示出很大的潜力。并且能够为 Web 和桌面应用程序使用 1 个框架几种语言,即使是 RIA 也是一个很好的吸引力。我还看过很多关于模式和实践的视频,MS 推荐质量等非常棒,一开始可能很难学习,但我认为这将是值得的。许多人甚至会说的缺点是它的封闭源。工具通常更贵

于 2010-03-14T13:28:50.450 回答
2

如果您正在谈论在客户端构建具有丰富交互功能的 Web 应用程序,则有 3 个主流选项:

  1. 基于 Flash - 但您的应用程序无法在 iPad 上运行。
  2. Silverlight - 所需的插件不像 Flash 那样被广泛采用,甚至微软最近也一直在为 web 应用程序弃用它。
  3. HTML - Web 2.0 就是使用原生 HTML + JavaScript 在 Web 浏览器中构建丰富的应用程序。

在我看来,HTML 无疑是最有趣的平台。它拥有最多的活动,并且在浏览器中迅速变得更加标准化。HTML5 增加了对本地存储和后台处理等功能的支持。Google Chrome 现在甚至有一个 3D 图形库 (WebGL) - Firefox 即将推出。

如果我是你,我会专注于学习 HTML(5) 堆栈——HTML、CSS、CSS3、HTML5、jQuery,并研究像backbone.js、jQuery mobile、JQTouch、angular.js 等开源框架. 我在 GitHub 上关注了许多这样的项目——你可以在这里看到更大的列表:

https://github.com/mckoss/following

您的富 Web 应用程序可能需要某种服务器端基础架构来支持它。Ruby on Rails 可能是最流行的框架并且超级容易上手。Heroku 可以非常轻松地以可扩展的方式为您托管您的应用程序。

如果你已经有很多 Java 代码(我自己不是 Java 粉丝)——Google 的 GWT 是一个非常好的框架,用于在纯 Java 中构建应用程序,它将客户端位交叉编译为 JavaScript。

我个人喜欢服务器端的 Python - Google App Engine 提供了一个非常好的选项,可扩展且易于编程(在 Google App Engine 上使用 Django 框架是非平凡应用程序的最佳选择)。

而且,如果我可以提出一些我一直在研究的新事物 - Pageforest.com 提供了一个纯 JavaScript 网络应用程序平台。您使用客户端 JavaScript 编写所有代码,并使用 AJAX/REST 登录用户并将数据保存到 Pageforest 服务器(此服务对开发人员开放且免费)。

祝你好运!

于 2011-02-07T18:37:17.917 回答
1

我认为 Web 开发每年都变得越来越复杂(多个平台和设备,功能更强大的设备)。随着这种情况的发生,软件层变得越来越明确和复杂。如果您从长远来看,这些层之间的集成和独立性将变得至关重要。您不能再依赖于仅使用一种技术来构建解决方案。所以我会看看开放系统/标准,如 Web 2、3 等。

于 2013-05-29T00:43:58.697 回答
1

Sencha Ext JS 是一个强大的前端库,用于在浏览器中提供类似桌面的体验。优点:一致的外观、强大的架构(基于原型的 OOP)、大量的小部件。缺点:在大多数情况下不是免费的。

如果您选择坚持使用模块化方法(这对于具有数百个模型的复杂数据丰富的 Web 应用程序是可取的),并且想在后端使用 Ruby,请查看 Netzke:https ://github.com/nomadcoder/ netzke核心

于 2012-12-02T08:25:48.073 回答
1

我完全同意 Peter Gwiazda 的观点,所以我不能对那部分说更多,因为他涵盖了所有内容。我想补充的是其他一些规格。首先在你的脑海中清楚你希望用它完成什么。您希望开发的应用程序是什么?还要搜索您希望该应用程序运行的操作系统。然后,您将决定您希望开发应用程序的语言/框架类型。明确你的目标,分析什么框架会更好地开发(我认为基于需求),然后去学习。你不能一次全部学会!每种语言/平台都有其优点和缺点,因此您将决定什么更适合您!

于 2012-07-25T21:57:16.480 回答
0

python人的选项:

睡衣(Google Web Toolkit) - python 编译成 JS

+任何python后端(Django,Web.py ..)。

所有通信都通过 JSON-RPC

于 2012-04-13T15:18:01.560 回答