看了小编和HYPER的留言还是有点感动,毕竟这些天来一直有点后悔当初没选择让一个师兄带着做些应用型的东西,这样至少在架构、文档和开发规范方面都会得到直接的指导……虽然大家的称赞不一定中肯,但是至少让我感到这三个月没白过,真的谢谢你们。于是我决定谈谈这个Demo的实现,如果有正在学习Silverlight的人看到了那是最好的,因为有一点我可以自信的是,在Silverlight技术尚处于成长阶段时,这个Demo在一定程度上挖掘了以前许多人没看到的潜力。
首先网上介绍Silverlight(以下简称SL)是啥和为啥出现的文章很多,我就不废话了,关于SL与Adobe的AIR技术掐架的讨论也很多,我可以简单参一脚。我学Flash很早,但没用过Flex和最新的AIR,而我用完SL的感受是,SL的架构思想很优秀,这种优秀是先天的、基于微软的特长的,Adobe把AIR开源是很聪明的做法,但是要与SL一较高下,SL绝对不是容易对付的。
我个人认为SL有几个突出优点:
(1)SL本质上是一个类库,而且是.NET的一个子集,这一点让SL的架构非常清晰,.NET平台开发者去使用SL绝对是顺水推舟之事,使SL比AIR那样大杂烩的架构更容易吸引人;
(2)SL有非常优秀的多媒体内核,这一点建立在微软长期的开发经验上,因此像我这种老Flash用户就能体会到,先不说SL对视频的性能支持多么出色(Demo开头动画中地球转动模拟,虽然很难看,是用wmv的视频),在SL中使用位图动画也是方便和高效的事情(位图动画在Flash中的表现做过的都明白……),对于大页面动画的效率(比如全屏)SL也是得心应手。
(3)SL开发的结构,即XAML+JS或.NET语言代码是一种很自然的结合,而且是一种很强大的结合。很多人把Adobe的ActionScript3.0与.NET语言相比,其实这完全是两个档次的东西,就像不可能把AS的编译器与C#的编译器相提并论一样。我没用过AIR也不敢多说啥,但我听说AIR中尽管也是相同的开发结构,但那种界面和逻辑开发的结合性并不像SL设计得那么本质和浑然天成(因为Flash不是那种开发结构,Flex又必须照顾Flash,于是……当然都是我猜测)。
再说到这个Demo,虽然技术含量没什么,但制作的心血还是很多的,因为演示中所看到的稍微复杂一点的效果都是背后手写代码的结果,并没有什么现成的复杂控件之类的(我在里面所用到的最复杂的控件恐怕就是一个文本框了)。SL 2现在还不成熟,比如里面的密码框和鼠标双击检测都是自己想办法实现出来的,当然这里也显示了SL 2的潜力,就是即使很多东西没给你,你也可以自己动手做出来。
然后,这个Demo得益于很多RIA应用示范的启发。最开始促使我产生WeShot灵感的是3D Mark的开发公司弄的一个Flash在线统计工具,一个非常好玩和有商业价值的东西,有兴趣可以看看:http://www.yougamers.com/benchmarkticker/。接着我看到了微软MIX 07大会上SOHU做的北京奥运火炬路线的SL 1.0应用,这个当时看来简直是惊人效果,虽然SOHU做了那个后纯粹Demo根本没去用,但是我通过反复地研究它的MIX 07的演示视频学到了不少技巧。然后我使用了微软的SL推广项目Tafiti搜索引擎(目前已开源,只不过我在CodePlex上怎么也找不到代码的下载),这个Tafiti中的收藏夹效果就是WeShot Demo中收藏夹效果的起源……当然我不是抄袭,我只是看着它的实现去模仿,还模仿得比它更漂亮罢了(恶笑中)……
接着我说说开发WeShot的目的。目的有很多,赚比赛奖金也是其一(虽然现在看来是分文拿不到了),但最重要的目的是:好玩。所以我在做的时候尽量把自己想象的好玩的东西都做进去(当然还有一大批想法没来得及实现),比如右下角那个旋转按钮是我初学SL做出来的第一个有点炫的东西,虽然那看上去不太合理,但是为了好玩也没办法了。其中有很多好玩的东西这里一下子都说不完,就说说目前看来最好玩的一个,那就是WeShot Surface这个小编。
如果有人看着Demo中的WeShot Surface效果就觉得惊人的话(虽然在SL中实现它绝非轻而易举,至少要先解决了鼠标双击检测和图片匀速伸缩的算法),那说明对微软好玩东西的了解太少了。关于WeShot Surface的灵感,完全地来自去年张宏江博士到华工演讲时演示的一个微软的超时代作品Microsoft Surface,在这里我废话不说,看这个YouTube上的视频你就明白我啥意思了:http://www.youtube.com/watch?v=Zxk_WywMTzc&feature=related。并且注意这已经不是实验室产品,这是商品,只是售价高了些。
那么WeShot下面想做什么呢?Demo其实只是个学习SL过程的成果,只是在表达一个概念,而这一概念随着微软今后的野心可能会显得微不足道,但目前来说它是好玩的。这一概念就是:地理信息与图片/视频共享的无缝结合,图片/视频浏览方式的全新体验。这两句话说起来没啥好玩的,也概括不了所有好玩的东西,所以不如就着Demo演示的效果基础上,我举例说说我还想做出来的几个有意思的东西:
视频浏览与Demo中的图片浏览一样自由(这是最基本的)、地图缩放和搜索功能、WeShot Surface中的鼠标手势识别、个人图片/视频空间的恰当结合、内置的IM系统……这些想法中很多目前都是空中楼阁,在不断思考并添加到设计文档中,像鼠标手势之类的我还可能构思了个算法,IM系统那些完全属于我的未知领域,所以大家也抱着乐一乐的心态看待这一作品,虽然我是会全力以赴把想象变成现实。
WeShot没有什么超出想象的新鲜,说白了就是一RIA体验一流的交流平台,只不过比较好玩。
最后说一点吧,由于我个人的性格,我很难忍受去做别人都做得出来的东西,因此我对网站开发这些东西是非常没有兴趣的,哪怕我啥都不懂。于是这导致我要做这个网络应用型的产品时要不断恶补网络方面的知识和技术,所以防止我成为这一方面的白痴,可能也要归功于WeShot。
而我的根本兴趣与WeShot无关。我心目中的计算机领域是分为工具和思想的,无论是SL还是C#、.NET都只是工具,只是个用得熟练不熟练的问题。而要表达思想,对工具的熟练掌握也是必不可少的,所以WeShot只是学习工具的一个很好的台阶,因为它好玩,让学习工具的过程也充满挑战。我真正希望做的事不是沉迷在工具的摆弄中,而是像CZH那样去做自己思想上的探索,在思想探索者的眼中,摆弄工具炫耀技巧只不过是在摆弄玩具而已。可是我很明白自己离那个水平差多远,怎么着急也是没用,所以我说大二会全力以赴地做WeShot,因为我只有把这个简单的玩具做出来了,我才有可能继续往前走。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。