笔者使用Silverlight的时间比较长,一直在研究这个微软号称“Flash杀手”的工具。根据几个月的第一手体验,对它的技术方面的精华进行了总结。

随着Siverlight公众版的发布时间的日益接近,现在是时候来熟悉Silverlight以及其如何影响你的Web应用程序了。然而,关于Silverlight的信息如此众多,一时之间让人难以分辨哪些是重要的内容,哪些只是广告宣传。下面我将尽我的最大努力来总结出关于Silverlight你应该知道的十件事情。

1、Silverlight消除了跨浏览器/操作系统的问题

对于大多数开发团队来说,开发一个可以同时支持当今比较流行的浏览器(包括IE、Firefox、Safari和Opera)的网站并不是一件容易的事情。问题不仅仅在于要编写更多的代码,还包括由此带来的呈指数级别增加的测试工作。随着开发者为不同操作系统的不同版本的浏览器开发应用程序,测试的工作量会变得非常巨大。

通常情况下有两种方式可以让开发人员解决这个问题:只支持一部分浏览器,或者增加质量保证人员的数量来应对大的工作量。

相比之下,这个Silverlight插件则不管用户的操作系统和浏览器,而提供了一个统一的开发模型。目前,Silverlight支持两种操作系统和三种浏览器。微软承诺将在以后增加对Windows和Mac平台上的Opera浏览器的支持。此外,Mono项目(.NET“开源版”项目)已经在它的Moonlight项目中取得了巨大的进步,通过该项目可以使Siverlight插件支持Linux平台。

2、Silverlight 1.1更值得期待 

    最近发布的Silverlight 1.0让许多机构开始考虑他们是否要开始使用Silverlight。虽然Silverlight 1.0具有很多重要的和有趣的功能,实际上大多数对Siverlight的采用要等到其1.1版的发布。

目前还处于Alpha预览阶段的Silverlight 1.1版将首次全方面支持.NET平台。这包含基本的.NET语言、C#和Visual Basic。此外,根据微软表示,Silverlight 1.1还将为动态语言提供.NET支持,诸如Ruby、Python、动态Visual Basic和受控JScript。

在我看来,Siverlight所支持的的重要语言是C#和Visual Basic,因为它们允许目前的.NET开发者来创建有意思的Silverlight应用程序。在Silverlight 1.1版中,任何.NET语言都将被支持,因为真正提交给浏览器的实际上是.NET assembly。

相比之下,Silverlight 1.0只支持在客户端解释的ECMA语言。Silverlight 1.0非常适合于那些已经在使用客户端脚本语言编程的现有Web开发者。

Silverlight 1.1还支持一个丰富的客户定制模型,这对确保一个综合性的开发体验是非常重要的。Silverlight 1.0的体验还比较不成熟,不太可能让第三方团体对其管理开发感兴趣。

3、Silverlight使用了开发者已经了解的技术

Silverlight是由已经存在的微软技术组合而来的:一个混合的类似Windows展现框架的XAML(XML应用程序标记语言)、JavaScript和.NET技术。

如果开发者已经比较熟悉微软的.NET和Web技术,他们就能够使用他们已有的知识来创建Silverlight应用程序。即使开发者没有这些技能,掌握了这些技术也不仅仅对某个单独的产品或项目有用,它可以被应用到Silverlight应用程序以外的开发中,这与其他解决方案的情况不完全一样,例如Adobe Flash的ActionScript。

至于选择哪个Silverlight版本来应用到一个新项目中,这取决于你的开发团队的技能情况。如果你的开发团队主要是进行一个ASP.NET服务器端开发工作(大多数情况下是C#和VB.NET),你应该等到Silverlight 1.1版推出。如果你的团队比较熟悉客户端脚本语言,例如JavaScript,Silverlight 1.0是一个值得介绍的伟大平台。

4、Silverlight用户界面仅仅是标记语言

XAML是Silverlight用于进行用户界面设计的混合语言。你可能已经对另一种流行的标记语言已经非常熟悉,即HTML。HTML文件是简单的文本,它包含的信息可以告诉Web浏览器如何展现一个页面的外观和给用户的感觉。XAML也做相同的事情。但是,与浏览器解释关于如何表现这个文件的指令不同的是,由Silverlight运行时来完成展现工作。

XAML作为标记是很重要的,因为它可以被动态的创建。无论你的开发者使用什么工具来进行服务器端的Web开发,你都可以创建动态HTML来创建页面。这个技术非常引人注目,因为你可以创建在站点中重用的HMTL代码。一个很好的例子是大多数网站的主页设计在通常情况下,页面头部和底部在整个页面中是要被重复使用的。

因为XAML仅仅是标记,你能够使用服务器端的技术来动态的创建XAML,就如同你的开发团队以前使用HTML的方式一样。这是一个不同的标记语言,但是技术是相同的。

5、Silverlight和Ajax技术是互补的 

    网页技术正在不断的发展。回到1990年,当Web技术最初被引入的时候,每一个人都在警告开发者应该尽可能快的转移到服务器端进行编程,这样应用程序才能提升高度。虽然这种做法从技术上讲是对的,但是它降低了用户体验。现在Ajax技术风行一时。简单的来说,Ajax直接在浏览器中编写代码,可支持更好的用户交互。其典型的例子就是Google地图服务、微软的Live地图。

Silverlight遵循了这个模式,它在浏览器中带来了更具表现力的用户界面。使用Ajax技术来在服务器端和客户端进行数据交换可以让Silverlight应用程序更加强大。将Silverlight的丰富的用户界面模型应用到Ajax的强大的数据传输模型中,可以得到令人难以置信的交互体验,无需强迫用户等待页面刷新时间。

6、Silverlight让开发者和设计者一起工作

Web正在强迫开发团队来更多的思考设计和美工工作。除非特殊情况,响应用户的体验和美观的界面已经变成了一个必须要考虑的方面。通常情况下,这就要求在应用程序开发中运用美工技巧和用户界面设计技巧。今天,一般通过雇用美工开完成网站的设计工作。

但是,美工所使用和实现的资源通常与开发者使用的工具是不相同的。通常情况下,美工将图片文件(例如Photoshop或.jpg文件)或HTML线框提供给开发者,然后由其来综合到一个项目中。无论你使用的技术是什么,这些设计必须被整合到Web应用程序代码中。随着设计的变化,这种整合工作被一遍又一遍的重复做着。Silverlight提出了一种更好的开发过程。微软的Silverlight工具集包括了传统的开发工具,像Visual Studio,还有新的面向设计者的工具,像Expression Studio(相关文章:《微软Expression Studio能挑战Adobe吗?》,http://tech.it168.com/i/2007-06-29/200706290828093.shtml)。

对于Silverlight来说,主要的设计工具就是Expression Blend,它允许通过一种对设计者方便而熟悉的方式来创建XAML。对于设计人员,使用Blend就像使用Adobe Illustraor或Photoshop一样方便。它们的比较大的区别是Blend与开发者使用相同的基础文件。Blend和Visual Studio操作相同的项目文件、XAML和JavaScript文件。当一个设计被创建和修改的时候,在Silverlight中不需要使用整合步骤。设计者可以看见他们的设计与开发者所增加的相同的逻辑进行交互。这样可以帮助设计者和开发者紧密的进行合作。

7、Silverlight可以分开提交内容 

    Silverlight是以分片形式提交给Web浏览器的。这意味着代码在一个或多个封装的包中(JavaScript文件、代码集等等),设计也是作为一个或多个包(作为XAML文件)进行传输,其他资源也是被分开进行传输(包括图片、字体和视频等)。一些对Flash的单一文件提交熟悉的开发者在才开始接触Silverlight的时候可能会认为这是Silverlight平台的一个不足。

而实际上,我认为这是一个好的功能。相比于Flash的方式,分开的数据包使动态服务器端的内容的创建更加轻松。它让我们可以在服务器上创建引人注目的动态XAML,并简单的以其他标记的方式来传输它。Silverlight具有一个工具可以使用zip文件来打包被XAML代码所使用的多个文件,并高效的下载它们到客户端,不过它不是一个必须的要求。

8、Silverlight是新事物

现在,Silverlight 1.0正处于候选版阶段(Release Candidate),而Silverlight 1.1则处于Alpha版。这是微软对此类技术的首次尝试。

相比于其他公司提供的类似服务,这个技术还不够成熟,其中与其竞争的最出名的就是Adobe的Flash和Flex产品。Flash目前的版本是9.0,它已经经历了很长的一段时间的发展,无论是在普及度还是功能丰富性都已经处于领先地位。但是,这不是说Silverlight就不会追上它。微软在从别人的成功和失败中学习方面有自己的一套东西。当然,也不是说Silverlight一定会赶上竞争对手。

如果你计划创建的应用程序主要是用来替代数据驱动的桌面应用程序,你可能会怀念在Silverlight中的所缺少的基本控制和数据绑定功能。Silverlight不是Windows Forms、WPF、Java Applets或Sharepoint的替代者。

简单来说,Silverlight不是被设计用来取代早期版本的企业应用程序。但是如果你想创建一个跨平台、跨浏览器的富用户体验的引人注目的应用程序的话,Silverlight无疑非常适合。

9、Silverlight XAML与WPF XAML的对比 

    人们很容易把XAML吹嘘为一个伟大的事物,因为微软的Windows表现层基础类库(WPF)也使用XAML。不幸的是,这些优势实际上不像它看上去那么吸引人,原因有二:WPF的低采用率和WPF XAML与Silverlight XAML的区别。

首先,与其他客户端技术相比,WPF的采用率还是相对比较低的。因此,考虑到XAML还未得到充分开发的事实,XAML是一个优势,但不是一个非常大优势。第二,相比WPF XAML,Silverlight XAML是一个简化版的语言,因此Silverlight XAML没有那么强大。这既是一件好事又是一件坏事。Silverlight XAML是非常易懂的,但是如果你的开发者是从WPF转到Silverlight上的,它看上去可能是不完整的。

在我看来,这种更简单的语法实际上更适合Silverlight,因为其运行时对终端用户来说是非常小巧和可管理的。Silverlight XAML不包含对一些对普通任务所不需要的一些内容。当然创建更多的功能到Silverlight中将是有好处的,现在的做法是非常谨慎的考虑什么功能要被增加到其中,才能保持API比较小和轻量级的特点。

10、Silverlight是学习XAML的一个伟大方式

正如前面所说的,Silverlight的XAML具有一个比较小的语法。这意味着它是学习XAML如何工作的一个最好的方式。试图学习XAML和了解这个技术的开发者将会把Silverlight作为创建清晰、简洁的代码的一种方式。大多数开发者将不久会开始思考他们会喜欢Silverlight的功能。当他们开始查看WPF的XAML的时候,他们会发现其中的大多数功能已经非常熟悉了。

相反,那些最初学习WPF的开发者在接触Silverlight后,将会需要放弃一些曾经拥有的功能。

目前Silverlight的运行时大约有4.5M。首次支持WPF的.NET 3.0运行时则接近30M。当然,并非所有的.NET 3.0全部内容都是WPF,但是WPF占据了其一大部分。从更小的Silverlight XAML开始是快速学习XAML的一个关键。你不会陷于高级WPF XAML概念的琐碎细节中,诸如模板、主题、数据绑定和3-D。

转载于:https://www.cnblogs.com/bihailantian/archive/2010/10/08/1846121.html

微软Silverlight,你应该知道的10件事相关推荐

  1. 大规模运行MongoDB应该知道的10件事

    MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其 ...

  2. 女孩做妻子前应知道的10件事

    女孩做妻子前应知道的10件事 一段时间的甜蜜恋爱期过后,你和心爱的他终于要踏上期盼已久的红地毯.你发誓一定要做个最幸福的小女人,要成一个永远让丈夫着迷的好妻子.从一个女孩的身份转变为一个妻子的身份前, ...

  3. 学习Go之前你应该知道的10件事 | Gopher Daily (2021.04.21) ʕ◔ϖ◔ʔ

    每日一谚:Don't use an interface if it's not clear how the interface makes the code better. Go技术生态 编写好的单元 ...

  4. 量子计算和人工智能:应该知道的10件事

    来源:中国机器人网 近年来,新兴技术变得突出.其中,量子计算具有改变我们世界的独特潜力.量子计算已经显示出有希望的证据,以令人难以置信的方式加速启发式计算.因此,在复杂的解决方案中应用量子计算来解决药 ...

  5. 使用Office 365前,企业必须要知道的10件事

    目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装 ...

  6. 关于微软Silverlight,你应该知道的10件事

    对于任何成长中的企业来说,设计一个合适的网站是一件非常重要的事情,但是如何让你的网站具有富互联网应用程序(Rich Internet Applications,RIA)的体验却不是那么简单.为了在这方 ...

  7. 关于Docker你应该知道的10件事

    如果你在企业IT工作,那你会听说过 Docker.即使在是像 Puppet.Hadoop 和 MongoDB 这样的热门技术中,Docker 也会脱颖而出.但正是因为 Docker 正处于炒作期,因此 ...

  8. 在IT界取得成功应该知道的10件事(ZT)

    1. 厚脸皮 - Thick skin 让我们面对现实吧.从各个方面来说,IT业从业人员很难受到欢迎.昨天有人坚持让你完成一项工作,如果你不好好干的话,你将会马上丢掉工作,因为客户的数据文件无法修复. ...

  9. 每个程序员都应该知道的10件事!

    如果你已经编程了一段时间,并且想学习编程,那么你可能在想什么才是一个好的程序员?计算机科学与技术专业毕业生能做些什么,来为软件开发职业生涯做准备? 在本文中,我将分享10件我认为每个程序员都应该知道的 ...

最新文章

  1. golang 切片 截取参数 简介
  2. Win7和VS2013上使用Intel的TBB
  3. scikit-learning_特征分析(数据挖掘入门与实践-实验7)
  4. C语言程序设计实验最短路径,7最短路径C语言程序设计.pdf
  5. 度盘转存工具 v1.8
  6. laravel5.5 php7,ubuntu 16.04+nginx+mysql+php7.1+laravel5.5环境
  7. linux搜索word文档内容,在目录中搜索MS word文件以获取Linux中的特定内容
  8. 小鸡模拟器android怎么玩,小鸡模拟器使用常见问题解决办法_模拟器使用FAQ_3DM手游...
  9. js如何实现扫描身份证识别_基于javascript实现根据身份证号码识别性别和年龄
  10. Base64解密转图片
  11. 为什么程序员难找对象?
  12. oraclenbsp;level关键字
  13. 【Shell】测试脚本
  14. 通信达股票交易接口-Java语言
  15. 比乌镇人少!西塘安静!杭州这3个古镇 1h 直达!
  16. 三极管电路必懂的几种分析方法
  17. 你走过的最漫长的弯路是这套吗?设计师的弯路
  18. 技术面试(上):面试官篇
  19. 【一起学UniGUI】--UniGUI的控件(Components)(9)
  20. 小学计算机第二课堂内容,小学科学第二课堂活动记录

热门文章

  1. asp.net 跨页面传值(一)
  2. 这个夏天,感动我的歌,感动我的你
  3. python将dataframe导出为csv_python将dataframe转换为csv,为每列导出一个格式独特的文本文件...
  4. 混淆矩阵怎么看_201.工具篇MECE法则:透过结构看世界。
  5. 最大公约数最小公倍数
  6. PHP培训选云和数据,送给云和数据郑州分中心PHP培训班全体学员的祝福
  7. 机器学习算法系列(一)-基础机器学习算法入门
  8. 鸿蒙os下载到电脑上,鸿蒙系统pc版下载2.0
  9. ug11 linux,UG11.0升级包MP02Win#Linux系统下载就上UG网
  10. mac设置首页访问php,mac系统下php项目除了首页全访问不了