最近好像不是太忙了,闲下来的时候却又总是想着关于Flex和ASP.NET各个方面的优胜劣汰,又一直想用Flex来开发一个在性能、安全性和外观上都不错的Blog系统。但最近却遇到了前所未有的困难,让我着实有点不知道如何下手,相对于ASP.NET,我觉得这实在是有点让人难受。
一、在安全方面,似乎太有问题了。尤其是考虑的越深越让人头疼,如果要用WebService的话,中间不可避免的产生一些让人无法避开的问题,比如说:权限问题、用户名和密码问题。一般来说,我个人比较喜欢用WebService,因为其广泛性。然而如果在MXML里面调用WebService,并要执行像Delete或Insert命令的时候,世界上的任何一个用户都能看到这样一个WebService对应的Opration。因为MXML的源代码是开放的。那么在安全性方面,迫使我们将不得不放弃这样一项后台操作。(可笑的是:我想到用Flex来显示页面,然后用ASP.NET来操作后台数据库)。同时SharedObject也并不安全,因为显示在本机上,任何一个写入的sharedObject都可以人为的输入,这样就让人感觉太不安了,对于头脑聪明的人来说,逆思考时最爱做的一件事。
二、在数据显示方面,比较好用的是DataGrid,然而这样一个DataGrid却远远无法满足我们在应用方面的需求。拿个很简单的例子来说:你要显示像本站的的主页面的那样的形式。DataGrid似乎线显得苍白无力,在MXML的Core的Pakeage中,我发现有Repeater这样一个类。于是花费心机想好好利用一下里面的东西,不过其复杂程度似乎超越了我的能力。并且似乎还非得结合使用Panel和Tile这样两个组件来使用。很奇怪的是,在Beta1.0和Beta2.0中我还能在Components中看到Repeater这样一个可视化的组件,结果想在Beta3.0中想研究一下的时候,却找不到了,这样就只能用代码了,但用代码却又得不到很好的可视化效果,在数据绑定方面更是让人头痛。现在对ASP.NET的DataList和Repeater的感觉顿感亲切啊。
三、如果一个网站不仅仅只有几个页面,而是很多页面,那么这样一个MXML Project将表现得很不好,因为在一个工程里面只能有一个MXML文件(这是Adobe推荐的)。这样我们就得用更多的State来显示了,而这样无疑将增大代码的复杂程度,在可阅读性方面将大打折扣。同时将无可避免的增大最后渲染输出的SWF 文件,那么下载又将是一个很大的问题。
四、在代码分离方面。虽然你可以自定义CSS文件,然而这样定义的CSS文件却并不能动态的显示在MXML文件中,这样很烦人。在编辑CSS文件的时候也没什么好的方式,更没有Dreamweaver那么好的CSS编辑方式。另外在ActionScript方面,这个应该算是一个亮点了,可是对于不理解什么是面向对象的人来说,就显得很困难了。Flex虽然上手容易,然而真正掌握其中的事件处理方式很程序,从真正意义上掌握却并不大容易。另外,我发现返回的XML Object中的String包含的<p><br>等等Html标签,在DataGrid中和别的一些控件中并没有解决方式。
五、外观显示,这既是它的一大亮点,又是它的一大不好的地方。好的是,我们并不需要下太大的功夫就能做出不错的效果;不好的方面就是,即使我们画好的功夫也不大能做出好的效果。同时Flash似乎和Flex整合的还并不是太好,如何将在Flash里做好的东西应用到Flex中也是一个研究的问题。
综上所述,虽然Flex刚出世就给人一个又一个的惊喜,然而想让更多人参与进去,并不是很容易的一件事。这里我不得不说Flex炒作有点厉害了,就同Ajax一样,人们最开始看到了简单的一面,但对于深层次的一点的东西却并不了解,对于语言的研究不仅限于ActionScript,我想最好还要学学更高级的语言,这样才能更好的理解其中的长和短,而不盲目的追风。当然Flex还在成长,还在不断进步,我还是相信它的前途的。也相信Adobe将不负Macromedia所望,最终将创造另一个奇迹。