好不容易将这个网站搞定了,害得本人的五一都挂了。不过也算是学到了一点东西。下面就将我学到的一点东西和体会说说!比较一下ASP.NET和Flex。
首先我想比较一下两者的数据处理能力。无疑ADO.NET在这方面要占有绝对优势,ASP.NET2.0中的控件,诸如GridView,Datalist,Repeater等,更是拥有着强悍的处理能力!并且ADO.NET实现了离线的数据操作,这将在很大程度上提高网站的访问速度,减少服务器的负担。但是Flex就显得很苍白了,首先它不能连接数据库,这是它的最大的不足,这就使得它必须通过第三方来传送数据(像DataService,WebService,Https),这样数据在转换的过程中就多了一个过程,速度方面是跟不上的。然后它的内置组件又表现出差的性能,尤其是分页方面,这个需要自己来编写代码。笔者见过这样一个实现Flex中的DataGrid分页的代码,但是问题又来了,要想让数据按照我们的方式来显示,这样对Flex来说无疑是沉痛的一击。如果可以得话,我希望也能用ActionScript来写一个像ASP.NET中的PagedSourceView类。
然后我想比较一下两者在版面方面的处理能力。笔者在最开始建这个网站的时候大部分时间在写数据库连接代码,但是到后来却发现在版面处理方面让人感到力不从心,迫不得已,我用PhotoShop设计好版面后,然后用Dreamweaver将版面排好,然后再复制代码到ASP.NET中去。这样的过程是繁琐的,更是不可忍受的,尤其是在StyleSheet排版上,我倒宁愿选择Dreamweaver或者Golive。但是Flex在这方面却有着得天独厚的优势,它有着自己的一套外观处理机制,这样的机制让版面保持自己的风格,并且它的控件排放不像ASP.NET中的那样:您可以任意放置Flex组件在您想放的人和位置,而您在ASP.NET中却得使用<DIV>标签。<DIV>标签多了后又会使得版面看上去混乱不清,很难操作。同时在Flex中还有着StyleSheet用来分离控件代码和位置代码,这虽然能在Dreamweaver中办到,但是在ASP.NET中并不容易.
其次我想谈谈两者在显示上的区别。ASP.NET毕竟是依赖于浏览器的,也就是说它所有的代码最终是转换Html代码的,这样就在根本上限制了它的能力。这也就是笔者在运行WindowsFrom组件中没遇到的问题在ASP.NET中却频频受阻的原因:WindowFrom组件并不依赖于Html!然而Flex却不受限于浏览器,它的靠FlashPlayer来显示的,这样它就能做到很多ASP.NET无法作到的事,像Transtions什么的,用来提高用户体验。同时它的模式的基于MVC(Model,View,Control)模式的,这样我们的事件处理方式将显得更加清晰明了。笔者就很喜欢ActionScript中的addEventlistener,removelistener,dispatcher,这样的事件处理方式。然而在ASP.NET中却没不那么容易,虽然也有new EventHandler这样的处理方式。现在假设一下:你现在邮局订料一份报纸,然后你希望每个月邮局有新报的时候都送给你一份,这件事无论是ASP.NET还是Flex都可以很好的办到,但是现在邮局希望在您收到报纸后告得知您对它们服务的建议。这样在Flex中能很轻松的办到,但是在ASP.NET中似乎就不打容易了。最重要的就是在Flex中很多事件可以直接使用ActionScript解决,用不着连接服务器,这样就使得Flex有更高的灵活性。而在ASP.NET中,笔者曾经想在用户提交数据前检测用户填入的E-mail的正确性,于是很自然的想到了javascript和vbscript。但是javascript并不具备访问ASP.NET组件的能力,所以一气之下差点想用Html组件了,最后使用了两者的结合方式:“如果输入格式不对,那么Reponse.Write(@”<script language=’javascript’>window.alert(‘Your emial cannot be empty!’)</script>”)。这简直是太无赖了(注意,我们这里并没讨论运行效率问题)
现在我想谈谈两者对控件的控制掌控灵活度。在ASP.NET中使用其自身控件能在很大程度上减少开发者的开发时间,其功能也Flex强悍。然而它对控件的掌控程度却不如Flex。举个例子来说:我有一个房子,我现在想打扫一下、添块砖、加块瓦什么的,我用ASP.NET和Flex都没问题。但现在的问题是,我想在房子外面用遥控器来让房子里的炉子燃起来烧水,用遥控器让我刚在商店买来的沙发自动搬进去。(这个例子对应于:您很难访问Repeater中的Button;但是却可以遍历Canvas中的每一个组件)。Flex中很好实现,然而在ASP.NET中却很难实现。感觉上像是Flex是一种高科技的、自动化的东西,而ASP.NET却有点老土。
最后我想谈谈我们该如何选择两者。笔者我是比较喜欢Flex的,真希望能用Flex做个界面,然后用WebService做数据连接。但是实现起来并不容易,尤其是想实现离线操作,上传个图片什么的。这样没有办法,还得求救于ASP.NET。至于什么时候该用什么,这不是我想分析的,好好学习它们才是最重要的。未来的Web将何去何从也不好说。但是喜欢这个那就做下去,语言思想上是相通的,技术的内涵有重叠的,但也有互补的,如果学的够好,说不定您将来也能将两者结合起来,然后创造一个像Ajax什么的,也算是创始人之一了哦!
好了,这是我建这个网站写的第一篇文章,网站基本上是搞好了,以后有时间再好好整理。马上又有期末考试了,还有可恶的Fran?ais要考试。大家对网站有什么看法请与我联系啊!