我正在努力让自己熟悉丰富的Web应用程序世界。维基百科上有一些可用技术的比较表,但我仍然不清楚丰富的应用程序开发有哪些选项。
您能否验证并填写我在下面收集的信息? 每个选项的主要优点和缺点是什么? 哪个是大型和非常丰富的Web应用程序的最佳选择?
选项1:ASP.NET/ASP.NET MVC
供应商:微软
环境:Visual Studio
语言:C#
输出:HTML + JavaScript + AJAX
示例:www.stackoverflow.com
选项2:Silverlight
供应商:微软
环境:Visual Studio
语言:C#
输出:.NET可执行文件?
示例:?
选项3:Google Web Toolkit
供应商:谷歌
环境:日蚀
语言: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小程序
供应商:孙晟
环境:日蚀
语言:Java
输出:Java Applet
选项7:OpenLeszlo
供应商:?
环境:?
语言:?
输出:?
示例:?
选项8:Vexi
供应商:Vexi核心团队
环境:日蚀
语言:XML + JavaScript
输出:Java
示例:http://vexi.sourceforge.net/上的演示
选项9:Django
供应商:Django核心团队
环境:?
语言:Python
输出:HTML + JavaScript + AJAX
示例:?
选项10:XUL
???
答案 0 :(得分:24)
你把它混合起来了。这里有两层:用户界面使应用程序“丰富”,服务器端代码。
<强> Silverlight的强>
最适合.NET平台。我不会考虑加入Java,Ruby on Rails,PHP或其他东西
工具是商业性的。
Flash / Flex(Flash平台)
我最喜欢的,我认为列表中最成熟的一个(我是我作为Flex / Java开发人员的主观意见)。使用简单的Http服务与所有服务器端技术一起工作,WebService通过AMF服务(高效二进制协议)进行最佳集成。整合在不同层面。所有平台(.NET,Java EE,PHP,RoR)都可以使用基本的远程调用(对于90%的项目来说已经足够了)。但是有一些用于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)代码转换接口并将其作为applet运行。我认为id没有生产状态。
Flash / Flex和Silverlight为您提供了最先进的工具,可以创建丰富的多媒体用户体验界面(视频/音频流,网络摄像头,麦克风等)。
Adobe AIR
AIR代表Adobe Integrated Runtime,它允许您在桌面上运行Flex或HTML + Javascript应用程序(与java Virtual Machine + WebStart类似)。适用于与远程的Flex应用程序集成
系统与上述相同。 AIR应用程序安装在客户端计算机上,像任何应用程序一样运行。您也可以访问文件系统。 AIR也在Windows,Mac和Linux / BSD上运行(我认为)。
<强>爪哇强>
它是:Java EE 5(现在是Java EE 6),或者没有应用程序容器的简单Web应用程序。
你可以拥有一些基于javascript的丰富UI,如Google Web Toolkit,JBoss RichFaces,IceFaces和一些商业资料。
与Flex界面集成良好的集成框架 - Adobe LiveCycle ...(商业),BlazeDS(简单,免费),GraniteDS + Tide + Gravity(高级,免费),WebOrb等 你可以在这里有应用程序框架:Spring(2或3),JBoss Seam和lot ...
<强> .NET 强>
我不是这里的专家。为您提供JS丰富界面的机会。与Silverlight和Flex集成(WebOrb,.NET and AMF)。
那里有很多其他技术。他们中的一些人拥有自己丰富的UI,其中一些没有。其中大多数都与Flex集成
<强> PHP 强>
丰富的UI与Prado应用程序框架。有一些更简单的PHP框架(问谷歌)。 Flex与AmfPHP,WebOrb,SabreAMF的集成
Ruby on Rails
语言+服务器+应用程序框架。可以与Flex集成
<强>的Python 强>
有一些应用程序框架:Django,Pylons ......可以与Flex集成
Scala + Lift
Lift是一个用scala编写的app框架。在java服务器上运行。
<强> ColdFusion的强>
Adobe技术。语言是CFML。在Adobe Coldfusion服务器上运行,但是JBoss是免费的Railo。与Flex集成。
答案 1 :(得分:2)
我的五美分
ASP.NET - 忘掉它。过去的千年技术已经过时。
Silverlight专业人士 - 非常强大的商业图书馆。如果“哇”效果是必须的,那么这是你的选择,尽管你应该花一些钱购买3D派对软件。
E.g。看看
GWT专业人员:无需插件,您使用Java开发并将Java编译为纯javascript。我最喜欢的有效应用程序工具,例如http://www.projectkaiser.com
GWT缺点:糟糕的GUI库(即使我们谈论商业图书馆)
Java小程序。你可以看看枢轴。阿帕奇。有机
因此,我对“大型和非常丰富的Web应用程序的最佳选择”的回答是Silverlight。虽然要小心利弊!
答案 2 :(得分:2)
我也在考虑使用哪种技术我认为您可能需要查看
Appcelerator Titanium - 它允许您使用HTML5 / CSS / JS和桌面平台等Web技术开发桌面和移动平台,甚至是PHP / Python
还在评估它
还关注RIA(AIR,Silverlight,Titanium)与原生Web应用程序(PHP,ASP.NET MVC)。 RIA的功能非常强大,因为它可以与文件系统进行交互,并且由于它们存在于本地,因此速度通常更快。 Web应用程序无法与文件系统交互,并且通常较慢并且涉及更多延迟。但由于它们存在于网络上,我可以随时随地访问它。
我实际上想要解决HTML5 / CSS3 / JS / PHP / Python等开放网络技术,但认真考虑.NET平台。 C#/ F#/ WPF / Entity Framework / Silverlight和Windows 7 Overlay图标,进度条,跳转列表的功能显示了很大的潜力。并且能够为网络和桌面应用程序使用1种框架和几种语言,甚至RIA也是一个很好的吸引力。我也看过很多关于模式和实践的视频MS建议质量等很棒,一开始可能很难学,但我认为这是值得的。许多人会说,即使是我的缺点也是它的封闭源头。工具一般比较昂贵
答案 3 :(得分:2)
如果您正在讨论在客户端上构建具有丰富交互功能的Web应用程序,则有3种主流选项:
对于我的钱,HTML是最有趣的平台。它具有最多的活动,并且正在跨浏览器迅速变得更加标准化。 HTML5增加了对本地存储和后台处理等功能的支持。谷歌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框架是非平凡应用程序的最佳选择)。 / p>
而且,如果我可能会提出一些我一直在做的新事物--Pageforest.com提供了一个纯JavaScript的网络应用程序平台。您可以在客户端JavaScript中编写所有代码,并使用AJAX / REST登录用户并将数据保存到Pageforest服务器(此服务对开发人员是开放的免费)。
祝你好运!答案 4 :(得分:1)
我完全赞同彼得Gwiazda所以我不能再说这一节,因为他涵盖了所有这些。我要添加的是其他一些规格。首先要清楚你想要用它完成什么。你想开发什么应用程序?同时搜索您希望该应用程序运行的操作系统。然后,您将决定要开发应用程序的语言/框架类型。清除目标,分析哪个框架将更好地开发(根据我的意见,根据需求),然后去学习。你不能一次学习它们!每种语言/平台都有它的优点和缺点,所以你会决定什么更适合你!
答案 5 :(得分:1)
Sencha Ext JS是一个功能强大的前端库,可在浏览器中提供类似桌面的体验。优点:一致的外观,强大的架构(基于原型的OOP),很多小部件。缺点:在大多数情况下不是免费的。
如果您选择坚持使用模块化方法(建议使用包含数百个模型的复杂数据丰富的Web应用程序),并希望在后端使用Ruby,请查看Netzke:https://github.com/nomadcoder/netzke-core。< / p>
答案 6 :(得分:1)
我认为Web开发每年都变得越来越复杂(多个平台和设备,功能更强大的设备)。当这种情况发生时,软件层变得越来越多,越来越复杂。如果你长期看待这些层之间的整合和独立正变得至关重要。您不能再仅仅依靠一种技术来构建解决方案了。所以我会看一下像Web 2,3等开放系统/标准。
答案 7 :(得分:0)
python people的选项:
睡衣(Google Web Toolkit) - 编译成JS的python
+任何python后端(Django,Web.py ..)。
所有通信都通过JSON-RPC