JavaScript/CSS vs.Silverlight vs.Flex
目前,我们有一个相当复杂的业务应用程序,其中包含大量JavaScript代码,以使用户界面和交互感觉尽可能接近于使用传统桌面应用程序(因为这是我们的用户所需要的)。多年来,这段Javascript代码不断增长,使得管理和维护变得越来越困难,并且使得添加新功能更可能破坏现有功能。不用说,很多这样的代码也不再是最先进的了 因此,我们一直在讨论应用程序的客户端部分是否应该用Flex或Silverlight重新编写,或者使用最先进的JavaScript框架(如jQuery)重新编写,或者我们是否应该继续使用现有代码并逐渐尝试替换现有代码中最差的部分。更难决定的是,重新编写UI可能要花费我们6-12个人月的时间 我想听听你们对这个问题的看法(也许你们中的一些人已经做出了类似的决定)JavaScript/CSS vs.Silverlight vs.Flex,javascript,apache-flex,silverlight,web-applications,user-interface,Javascript,Apache Flex,Silverlight,Web Applications,User Interface,目前,我们有一个相当复杂的业务应用程序,其中包含大量JavaScript代码,以使用户界面和交互感觉尽可能接近于使用传统桌面应用程序(因为这是我们的用户所需要的)。多年来,这段Javascript代码不断增长,使得管理和维护变得越来越困难,并且使得添加新功能更可能破坏现有功能。不用说,很多这样的代码也不再是最先进的了 因此,我们一直在讨论应用程序的客户端部分是否应该用Flex或Silverlight重新编写,或者使用最先进的JavaScript框架(如jQuery)重新编写,或者我们是否应该继续
编辑:为了回答出现的一些问题:后端代码是用C#编写的,目标受众(通常)是我们销售软件的公司的非技术用户(不是一般公众,但也不是严格意义上的内部用户),软件“仅”必须在桌面浏览器中运行,但不一定在移动设备上运行,客户端应用程序是一个完整的用户界面。这一决定通常与技术无关,而与您的技能设置和舒适区有关 如果你有人喜欢吃Javascript,但对.net或Flash/Flex一无所知,那么坚持使用Javascript并依赖于像jQuery或Prototype这样的库并没有什么错
如果您在其他两个方面都有技能,那么使用Silverlight或Flex可能会获得更快的结果,因为您可以“免费”获得这两个方面的大量功能。GUI技术首先应该由您的目标受众决定。例如,如果你的目标用户是englobes的iPhone用户,我不推荐Flex,因为iPhone目前没有flash播放器 请记住,如果您切换到像Silverlight这样成熟的GUI工具包,您的用户可能会发现L&F不自然,因为通常的请求-响应周期在客户端框架中并不明显 在那之后,你的开发者应该有话要说。每个工具包都需要维护,如果您要切换到一个全新的工具包,开发人员将必须熟悉新的工具包,这可能会很昂贵
我的建议是,您应该坚持使用javascript,因为您的开发人员对它很熟悉,并逐渐用prototype、jQuery或任何其他新的工具包取代旧的javascript。您可能会使用最先进的工具包更快地重做一些旧东西。请记住,您可以使用任何tookit构建漂亮的应用程序。这些东西会浮现在脑海中:
- 由于您有一个.Net后端,并且您有能力将您的客户强制安装到特定的平台上,Silverlight是一个选项李>
- 由于您的客户端是一个成熟的UI,您需要小部件和其他功能,如拖放李>
- 我还没有看到任何对我来说可以在Flex/Silverlight中重新开始(通常不起作用)的需求(例如流媒体视频、SVG支持)。再加上你的团队对Javascript的熟悉程度,我认为除了Javascript之外,你不可能在其他任何方面做得很有说服力
- )
- ;及
也要考虑每个框架在做出决定时的许可。< /P> 我对以上三点的看法是:
- ExtJS在某种程度上激怒了社区,因为它一开始是LGPL,但有一个线程(该线程有76页!)到GPL/commercial版本2.1。问题是社区不再积极参与框架的开发。无论如何,不是主线版本。这意味着它正在由一个小团队(可能是一个人)开发和支持而不是社区。依我看,这不值得为此支付商业许可证,而且GPL在您的情况下可能是禁止的
- YUI由Yahoo支持,并拥有更为宽松、入侵性更小的BSD许可证。它成熟、使用良好,值得认真考虑;以及
- SmartClient给我留下了很深的印象。它可能拥有所有许可证中最宽松的许可证(LGPL),大约有七年的历史,有一系列令人印象深刻的小部件可用。请查看他们的功能浏览器
- 对树和手风琴等UI小部件进行编码
- 测试并解决跨浏览器Javascript和CSS问题
-