我正在开发业务Web应用程序.它们主要是内部使用,有时带有合作伙伴区域,但很少可用于公共互联网.它们是帮助公司经营业务的应用程序.
一段时间以来,我有一个想法让我烦恼 - 为什么不为他们使用Flash?到目前为止,它已经是ASP.NET + AJAX,这还不错,但它仍然是旧的HTML + JS.因此,很难实现浏览器兼容性,并且创建适合客户需求/愿望的丰富UI非常具有挑战性.大多数情况下,这会导致应用程序仅支持IE,或者最多只支持IE和FireFox.
Flash会解决所有这些问题.它会立即在所有浏览器和所有平台上运行.UI功能远远超过HTML + JS.它可以由部件加载,并可以与服务器进行异步通信.你还想要什么?
但不知怎的,我没有看到或听到有人这样做.相反,创建了新的替代品(如Silverlight),它们必须做同样的事情,但仍然试图坚持HTML + JS.我错过了什么?
应该注意的是,我从未做过任何Flash开发,所以也许我会认真地忽略一些让这件事变得不可能的东西.
它已经发生了?柔性!
我经营一家成功的小企业(我自己,另外还有其他两家合作伙伴)为大型金融服务公司(富达,汉考克,先锋,T.Rowe Price)开发网络应用程序7年,只使用Flash.
在最初几年(2001-2004),我觉得我们处于领先地位 - 很少有其他公司使用Flash来开发强大的"真实商业"网络应用程序.在2005-2008,我觉得我们有很多竞争对手.现在,我开始看到结束了 - JS和Ajax现在可以很容易地完成我们使用Flash的所有事情(异步通信,高响应性交互,图表,图形,拖放等) .)
以下是我的一些看法:
Flash绝对可以处理"真正的"业务应用程序 - 我们的客户使用我们的应用程序来运行或集成交易系统,风险管理应用程序,投资组合监控和其他业务关键功能.任何说Flash不能处理这些事情的人都是错误的.
在开始自己的事业之前,我开发了桌面应用程序多年.Flash是第一个允许我在网络应用程序中执行的技术,就像我在桌面应用程序中所做的那样.
Flash确实允许我们开发一次,并在任何浏览器上运行
Flash为我们提供了更大的UI控件和小部件 - 当特定类型的交互需要的不仅仅是文本框或单选按钮或下拉菜单时,我们可以构建我们需要的任何内容.一些应用程序需要新颖的交互支持
也就是说,根据我们的经验,网络应用必须看起来像一个网络应用程序,否则用户将无法获得它.因此,即使您可以构建任何类型的UI控件或界面,您也应该将它们构建为与标准HTML控件完全相同,并扩展其行为,但永远不要更改它们.不要指望用户学习新东西.
如果你注意,你可以让你的Flash应用程序比同类JS/Ajax实现更轻量级.摆脱无关的图形,动画,不必要的字体.我们构建了严格的定量Monte-Carlo模拟/财务规划应用程序,这些应用程序比许多流行的AJAX库轻.
最大的缺点是管理您的应用程序/与其他开发人员共享工作负载.底线 - 没有那么多的Flash开发人员,以及较少的已建立的编码标准或框架.所以,事先要知道,只要它存在,你可能会自己拥有应用程序.如果您有客户在交付应用程序后将接管该应用程序,他们将很难找到新的开发人员来管理/扩展它.
第二大缺点是你对Adobe感激不尽.如果他们决定停止Flash,我们就会陷入困境.
正如其他人所指出的,可访问性是一个真正的问题.有一些解决方法,但它有很多额外的工作,而如果你使用HTML,它通常是"免费的".(尽管AJAX/JS也可能存在巨大的可访问性问题).
我不认为iPhone会支持Flash.虽然Flash在桌面上基本上无处不在,但它可能永远不会移动到桌面上.(Adobe提供FlashLite移动版,但我对此并不了解.看起来很容易接受.)
虽然其他技术正在迎头赶上(并且在某些情况下超过它),但我认为Flash至少还有一两年的使用寿命.
希望这很有帮助.祝好运.
一个重要原因是可访问性.在一个足够大的组织中,您将有一些用户需要更大的文本,屏幕阅读器,盲文终端或更高的对比度.现有的,完善的技术用于使用具有"普通"Web应用程序的技术(如果他们通常不太依赖JavaScript).
只要您的内容被困在闪光灯中,这些技术通常就会落在脸上.