打印

深度体验SilverLight

原文地址:http://www.riaexpert.cn/2007/08/30/%e4%bd%93%e9%aa%8csilverlight10rc/


虽说silverlight各种尝鲜版已经出了N多,可是一直没有时间好好体验一下这个M$为RIA界带来的巨大惊喜。曾经沉浸在Ajax中无法自拔,期盼着WPF这个呼之欲出的RIA救世主;漫长的等待中,阴差阳错的结识了Flex,才发现原来Flash也有争夺RIA霸主地位的实力。

今天实际使用silverlight开发了一个像素画的”Hello World”,可以在右边按钮选择画笔的颜色。源代码采用javascript编写(1.0RC也只支持这个了);详细的内容请看DEMO,截图如下:

使用过後,发现silverlight如果要作为真正的RIA开发平台,比起flex还说还是有不短的路要走:

1.在1.0RC中,还没有行程完成的xaml->object,或是object->xaml的机制,也就是说在你的 business logic code中还不能自由的以Class instance的方式来初始化对象;而是使用简陋的plug.content.createFromXaml(xamlString)来创建一个 UIElement;与我们常用的new Class的实例化方式有较大区别。

2.虽然可以使用vs2005做一些基于IDE的开发,但是这种vs的支持仅限于intellisense功能;而不支持WYSIWYG的开发方式,无法发挥IDE的真正作用,当然这也是目前silverlight framework中缺少对于继承于UIElement的控件的支持相关的,下面会说到。

3.最不理解的就是,在silverlight发布之后,M$并没有紧跟着推出一个基于silverlight的control library,也就是说,如果你要开发一个RIA应用的话,你首先得自己构建一套统一样式的client control library,你得从按钮,下拉列表框开始开发;这个对于RIA应用的开发是不可理喻的缺点,也是致命的弱点,虽然这个特性对于很多“大牛”来说,不屑一顾。

4.缺少对于流行RIA应用特性的支持;虽然现在silverlight支持播放流媒体,可是这样的流媒体仅仅是单向的;silverlight依赖于windows media server的流媒体能力,并不能实现Flash Media Server一样,client同server端的双向流媒体通信;同时缺少对于服务器客户端通信方面的支持,在这个RIA的年代REST和 Webservice显然是对于多媒体应用无能为力的。

5.目前来说,开发方法非常怪异;与flex和flash中开发方法对比强烈不同,silverlight中混杂了客户端应用程序与动画的不同开发方法,让人无法适从。不过可能未来M$指望用不同的IDE把不同的开发者分开;动画开发者使用Expression Blend,应用开发者使用VS.net;可是至少在缺少IDE的情况下,真的很怪……

虽然silverlight标榜自己支持multi language,但是如果指望昔日的frontend engineer会使用ruby,python,甚至c#和vb来开发RIA的话,真是天方夜谭,虽然JScript也被CLI支持,但是这个从来就不被看好的孩子,已经面目全非,形同鸡肋了;实际上silverlight的多开发语言,并不能取悦开发者;但在这样的情况下,微软非但不在 silverlight中强化javascript的作用,反而将其弱化到了silverlight与browser的粘合剂的地步,这点绝对会引来 RIA最大的潜在开发者–ajax developer的唾弃。

再看flex,虽然使用actionscript3,但是这是与javascript同根生的亲兄弟,两者的差别近乎为0;节省了开发者转向 flex的时间。同时flex有完备的ide,有完备的UI library,可以快速的构建RIA应用;加上易用的Flash Media Server,也就是说一个普通的ajax developer可以很容易的在flex平台上面实现当初在html+javascript平台上无法实现的很多梦想;

综上,我们也该看到,虽然silverlight有这样那样的缺点,但是以M$操作系统的占有率,silverlight在部署及性能方面占有极大的优势,而以M$的开发经验,完善silverlight的开发环境及体验也不是很难的事情;这点,大家可以观察.net如何在java占领制高点的情况下夺回中小企业用户市场的案例,很有启发。

可怜了开发者的我们,还是只能做墙头草,把两个平台都摸清,才能有备无患。

TOP

在缺乏ide的情形下写xaml是有点怪~但是也是可以进行开发的~~
而flash的就不行了~~

但是谈论起大家都拥有ide的情形下,VS可是比flex强大太多了。

TOP

我觉得最大问题就在你说的第3点,这点不解决,不可能大规模应用到常规业务开发。
技术是一种气质

TOP

引用:
原帖由 fula2007 于 2007-9-26 14:08 发表
在缺乏ide的情形下写xaml是有点怪~但是也是可以进行开发的~~
而flash的就不行了~~

但是谈论起大家都拥有ide的情形下,VS可是比flex强大太多了。
你说vs比flex强太多,就是在抽所有使用eclipse程序员的嘴巴。确切说应该是flex builder,而非flex。
失去执着,将一无所有。
www.7yue.com

TOP

做java用过几次eclipse,vs比eclipse强大太多了。

TOP

楼主去用下1.1alpha吧

1.可以new class
2. silverlight 才起步。3方支持和库类什么暂时不能跟发展多年的flash比。建议楼主去下载 1.1 silverlight sdk,里有包含了一套控件库的 。
hey~同志们还好么?

TOP

感觉还是FLASH是RIA主流

TOP

想试试SL,不过玩不起!太。。。。。。。

TOP

引用:
原帖由 fula2007 于 2007-9-27 13:42 发表
做java用过几次eclipse,vs比eclipse强大太多了。
刚用过几次eclipse就下结论?
失去执着,将一无所有。
www.7yue.com

TOP

所谓的深度体验就是编辑器的体验么?!
同学们,你们是中国融入全球的一代,你们肩负着中国的伟大责任,你们将决定世界如何看待中国。

TOP

我的电脑绝对不会装silverlight,你做得再好我也看不了,靠

TOP

最主要的是,如果下一個瀏覽器版本,比如IE8,FF2.5,OP10都能直接集成SilverLight功能,而不需要像lash一樣安裝的話,我想SilverLight會更快被接受

TOP

回复 #2 fula2007 的帖子

你就是一白痴,谁说不行的,FLEX可以完全依靠AS3来编写,也可以借助MXML来编写,完全脱离FLEX
VS绝对不如ECLIPSE强,很多人也尝试把VS转移到ELIPSE上

[ 本帖最后由 shmaiy 于 2007-10-8 16:51 编辑 ]

TOP

回复 #13 shmaiy 的帖子

骂回你:你个弱智~~

vs和eclipse谁强大对于各人来说可能没有评判标准~~

但是另外这个问题:
xaml和js脚本都可以用记事本开发~浏览器sl运行~(不用编译)~~
如果flash播放器可以直接运行不编译的as的话,那就是我孤陋寡闻了~~

TOP

引用:
原帖由 km268 于 2007-10-3 21:14 发表
最主要的是,如果下一個瀏覽器版本,比如IE8,FF2.5,OP10都能直接集成SilverLight功能,而不需要像lash一樣安裝的話,我想SilverLight會更快被接受
等于没说

TOP

回复 #14 fula2007 的帖子

不用编译就是优势???
装b的时候,自己是感觉不到的

TOP

大可不必厚此薄彼吧?每个架构都有其应用优势。盲目跟风无趣。

TOP

sl1.1以后有整个.net做后盾,要知道.net的整个架构是多么强大,而且是免整合的~~
相对来说as太弱了...

TOP

没想到大家的讨论这么激烈啊,真是感动。
其实这个文章和当年诸多评论究竟是java好还是.net好的文章一样,比较容易引发宗教战争啊,呵呵。
个人认为,作为一个技术人员,我是站在纯技术的角度来做一些体验,然后将感受与大家分享;完全不带

有任何褒扬或者贬低某个平台的意思。
或许某个平台现在普及率不好,受接受的程度较低,但是如果运作的成功,被Geekers认为很烂的技术一

样能够飞扬跋扈,横扫一方;这就好比Mac早与windows出现,甚至对于MacOSX来说Vista系统显得非常低

能;对于iPhone的Safari来说,Symbian系统上的默认浏览器和WM上的PocketIE简直没法用;可是市场上

充斥着的是满天飞的Vista,人人手里用的不是Nokia就是Doopod。这些都是无法在技术层面解释的:Mac

OSX是天才Unix和OpenStep结合的产物;iPhone的Safari是基于WebKit核心,Mac操作系统的新一代移动平

台。何以先进的东西,早占有市场的产品最后会被一点一点被挤压呢?我想这些东西技术人员都不关心;

可是我们应该正视这样的可能性,那就是无论今天silverlight比flash/flex如何的不完善,vs比得过

eclipse也好,比不过也好;作为一个国内的程序员来说,为了生计,我们无法忽视silverlight的存在。

对于M$在中国开发界的影响力我想大家都承认,大街小巷的asp/asp.net程序员都在津津乐道于M$今天做

了php for .net,明天又要出个什么.net3.0,LINQ之类的;这批程序员成长为silverlight的programmer

是一点都不费力的,为什么?其实不为什么,因为将来会有vs.net200X的intellisense让一个个菜鸟随便

写出些代码不堪入目的“项目”“产品”;而flash/flex有什么?一群从designer转过来的programmer?

或许并不排除有从设计到开发都精通的大牛,可以你能期望有几个大牛?
其实就连之前站在flash/flex立场上写下又一篇文章(RIA演义)的我,回首反思为什么要选择flex来做RIA开发的时

候,都只能得出一个答案:因为我那时我别无选择,只有flash能够在大众使用的平台上表现出真正意义

的ria效果(不是没有考虑过xul,可是firefox的占有率确实非常难说服领导)。

最后,还是奉劝各位爱好者,如果不是出于生计工作的考虑的话;我们开发RIA应用程序还可以选择很多

更为先进完善的技术;XUL是一个不错的选择,纯正的WPF同样可以考虑。

欢迎拍砖!

TOP

诚然,flash是一个非常强大技术,它很早就整合了图形与强大的代码支持。

Silverlight是一个与其类似的技术,拥有更好的编程体验。

微软还有很长的路要走,包括工具自身以及市场推广。

第一步已经迈出,期待着微软下一步动作。

TOP

Silverlight是垃圾,装了浏览器老死,永远不装

TOP

"才发现原来Flash也有争夺RIA霸主地位的实力"
RIA 好像 本身就是MM Flash 提出来的把
忙着活,忙着死。

TOP

MM要是当初在.net平台上来推flex可能好的多, 不知道为啥好像他们对.net不太感冒
ria现在没有霸主, 将来谁知道呢

TOP

Blend刚试用,不敢乱下结论,不过我用过多年PS和FW,Microsoft Expression Design是Blend的伙伴软件,的确实在是太垃圾了,毫不客气的说就是画图板是升级版本,至此我对Silverlight1.1及之前版本兴趣全无。
我很丑,但很温柔。
我很笨,但很勤奋。
我很穷,但很从容。

TOP