第一节、为什么要用 Silverlight API?
你用上 3G 手机了吗?你可能会说,我就是喜欢用 nokia1100,ABCDEFG 跟我都没关系。
但你不能否认 3G 是一种趋势,最终我们每个人都会被包裹在 3G 网络中。1100 也不是一成
不变,没准哪天为了打击犯罪,会在你的 1100 上强制装上 GPS。GIS 工作既然建立在计算
机的基础上,当然也得随着 IT 行业与时俱进。
看看现在计算机应用的趋势吧。云(计算),这个东西可讲不清楚,因为云嘛,飘忽不
定的。不过可以这样来看它,以后计算机网络上就有一坨(或者几坨)万能的云,有什么需
求云都可以满足我们,包括各种资源或者计算工作,就不需要在自己的机器上安装任何软件
了(甚至操作系统都可以由天边那朵云来提供给你)。更具体点,SaaS(Software as a
Service),各种的网页邮件系统,google docs(一个在线的 office)都是 SaaS。收发邮件登陆一
个网页就行,而不需要在自己机器上安装一个软件。这就是计算机应用的一个趋势,把所有
东西都做到网上。再来看看网上的趋势:RIA(Rich InternetApplication)。RIA 简单来讲就
是一个网页(网络应用),在完成基本功能的同时,会让你觉得很漂亮,操作起来很舒服,
效果很炫,而不是打开后立刻就想关掉它。其实大受欢迎的开心网(各种插件)和 twitter,
甚至 QQ 空间等,都有 RIA 的身影。
好了,ArcGIS 之所以在行业领先,特点之一就是它能紧跟计算机发展的趋势。ArcGIS
Online 就是那朵天边的浮云;JavaScript API,Flex API,Siverlight API 就是 ArcGIS 自己 RIA
的三驾马车。
这里还得插一句,我觉得 ArcGIS Server 的主角本来是 ADF,通过它我们可以完成一个
无所不能的 ServerGIS。但在大多数情况下,GIS 都是作为特定的业务嵌入在一些 MIS 中的,
相比购买 ADF 这辆悍马来说,还是直接驾驭三套车跑的更轻快一些。
现在看看我们的主角。其实是 ArcGIS API forSilverlight/WPF(以下专注 Siverlight 部
分),那么 Silverlight 和 WPF 的关系如何呢?Silverlight 原来叫 WPF/E,E 就是 Everywhere,
从命名可以看出它们的关系:Silverlight 是 WPF 的一个子集。WPF 是.NETFramework 3.0 的
组成部分之一,微软视其为下一代用户界面,总之很高档就是了(在 Vista 和 Windows7 中
看到的大量与 XP 不同的界面,就是 WPF 的身影);Silverlight 可以看做是 WPF 在浏览器里
的一个外挂,用于向网络用户展示自己的强大能力,由于受限于网络环境,所以是 WPF 的
一部分核心功能。Siverlight 的设计初衷是跨平台,跨浏览器的。
如果这些还是比较抽象,那么可以造一个排比句来进一步说明。之前先肯定一点,Flash
现在在网络中的的主导地位。开始造句。Adobe 有 Flash,微软有 Silverlight;Adobe 有
AIR,微软有 WPF;Flex 有 mxml,Silverlight 有 xaml;Adobe 有 ActionScript,微软有
Code-Behind(C#/VB.NET)或者 JavaScript;Adobe 有 CS(包括 Dreamweaver,Flash,
Fireworks,Photoshop,Illustrator),微软有 ExpressionStudio(包括 Blend,Web,Design,
Media,Encoder)。现在,能够看来 Siverlight 到底是何方神圣了吧?
最后再来说说 ArcGIS 这三驾马车(JavaScript API,Flex API,SiverlightAPI)。国外有
人说,随着 Siverlight API 的推出,与 Flex API 一起,将会使 JavaScriptAPI 慢慢退出历史舞
台,因为前两者就是为 RIA 而生的。但其实也不然,随着 Google 和 Mozilla 工程师的推进,
他们能够使 JavaScript 的执行速度提高非常多,Chrome 就是例子。在这种背景下,一些非
常 cool 的程序员会让古老的 JavaScript 获得重生。到底哪匹马跑得更快?别回答这种问题,
赶紧挑一匹自己的马儿,快马扬鞭吧~~
在今年的 ESRI 开发用户大会上,一阵鼓声过后,ESRI 隆重推出了 ArcGIS API for
Silverlight/WPF(beta)。接下来我将把自己在学习 Silverlight API 中的一些经历和大家分享,
与大伙共同进步。
第二节、Getting Started