Helloj2ee学Silverlight之一

写这个系列主要是出于学习Silverlight吧。我是大学老师出身的,当上老师之后才发现一个道理:“学东西‘讲课’比‘听课’来得更快。”于是我就打算写这个系列。

Helloj2ee的背景和写作计划

       关于我的背景,这里有一篇简单的文章有介绍,关于我的名字——Helloj2ee。告诉你背景不是想说Helloj2ee有多牛或者有多遂,因为写文章会有一定的主观性,因此希望您在读的时候,可以考虑到本人的背景,对我所说的有所辨别,批判性地学习。

       另外这个系列,我打算一周写一篇,换句话说就是每七天更新一次,时间有点久哈,到Helloj2ee学完Silverlight完为止。因为Helloj2ee也很忙,要写论文,要干项目,还有轻松轻松等等。再加上今天看到这篇文章程序员们,请珍爱自己的身体,真是有点担心,大家也要小心,身体最重要。

Helloj2ee曾经对桌面技术比较了解,比如MFCWinForm,还有就是非常系统地学习过WPF,当然helloj2ee的主业是搞GIS的,但是至今是一个网盲。说起来比较好笑,Helloj2ee学习的方法非常古怪,当初想学Silverlight,结果学了很长时间的WPF,有多久呢?二年。二年下来还不会新建一个Silverlight程序。

这里,我大胆预测一下,Helloj2eeSilverlight前面会比较慢,但是后面可能和飞一样。因此各位看官有所心理准备。

    由于Helloj2ee是一个桌面专家,而是一个网盲。因此先说一下桌面和Web

 

桌面和Web

 

   桌面的程序比较简单,你点按钮,然后在按钮的事件处理函数里实现相应的逻辑。至于这个事件处理函数是通过回调函数实现的(Win32的手法),还是类的成员函数实现的(MFC的手法),还是委托(WinForm的手法),还是委托+路由事件(WPF的手法),都无所谓了。重要的是那都是在一个应用程序里实现的。

   但是到了网络上变了。事情都是分摊给客户端和服务器端两部分实现。从Helloj2ee的名字来看,知道Helloj2ee是搞过Java的。Java里就有appletServlet。后缀-let表示小猪尾巴,意思是小程序。applet表示是客户端的小程序,Servlet表示的是服务器端的小程序。作为一个彻头彻尾的网盲,学习Web开发遇到的第一个问题就是“不知道学什么?”为什么呢?

   桌面程序很简单,如果你用MFC开发,那么你就学MFC,用VB就学VB,用WinForm就学用C#开发WinForm或者VB开发WinForm,用WPF就学WPF

   但是网络开发一下子就能把人给弄晕,你学Silverlight,你会发现有JavaScript,还有ASP,还有什么IISHTMLCSS等等。不知道每一块干什么,起什么作用。这种感觉最为痛苦,看着一堆代码,一句话也不敢改,“伸手打手,伸脚打脚,战战兢兢,如履薄冰。”

   Helloj2ee作为一个传统的网盲,上来也是一阵头晕。但是解决的办法就是搞清楚每一块起什么作用,大可不必详细的去了解他们。

Web程序的组成部分

   

    一个Web程序一般来说一定是分成客户端和服务器端。客户端,平常我们都能看到的,IE浏览器或者火狐浏览器。由于我一直是微软的粉丝,这里无偿为微软作广告了“今年过年用什么啊用什么,IE7IE7,明年过年用什么啊用什么,IE8 IE8。”那么服务器端的咚咚我们通常是没有直接接触到的,但是我们实际上用Google搜索的时候,用的是服务器端提供的搜索服务,用Google Map或者Bing Map,用的是他们的地图服务。

    根据客户端和服务器端,作为网络开发的程序员,也会分成前端开发的程序员(客户端)和服务器端的程序员。通常服务器端的程序员会觉得自己比较牛一点哈。但是一系列的富客户端应用程序的出现(丛AJAX开始,到FlexSilverlight,还有传说中的HTML5),前端开发我个人感觉也是蛮有意思了。

    客户端和服务器端总是要联系的,武汉人之间联系用武汉话,东北人联系用东北话。说白了就是大家都规定某一种东西统称什么,比如武汉人说“鞋子”就是“孩子”,一说你穿的好漂亮的孩子,大家都心知肚明。这就是一种协议。客户端和服务器端,它们用什么,用的最多的就是HTTP协议,TCP/IP协议。当然现在还有若干传输协议,比如FTP等等。鉴于Helloj2ee是一个网盲,就不在详细介绍哈。

    作为客户端开发最为简单的就是HTML语言,这是一种静态网页技术,比如什么FrontPageDreamWaver等软件都可以“拖个按钮”或者“拉个文本框”可视化编辑的方法来形成一个HTML网页。但是这种方法在网络刚刚兴起的时候是可以的。我们把HTML网页放在服务器上,客户端向服务器端发请求,然后服务器端通过网络传输的协议比如HTTP协议,向客户端发送静态的HTML网页,再由浏览器将HTML网页解译为一系列可视化的界面。如下图所示 

 

(摘自 MSDN ms-help://MS.MSDNQTR.v90.en/iissdk/html/69bf1386-6a55-4128-894f-344ec0964fb1.htm

    这一种方法人们显然是不会满足的,就比如上面图中网页为了显示一个当天日期,我们不可能为每天都作一个HTML网页。于是人就想了一个动态网页的方法,写个函数来取得当前日期,当然这个工作可以在客户端作,那么这就需要写脚本语言比如(JavaScript)。我名字叫做HelloJ2ee,因此有必要再这里因我名字负责任为Java声明一下:各位乡亲,JavaScript真不是Java。当然也可以在服务器端写,那么就可以使用微软的流行技术ASPASP基本上还是认为是服务器端程序。如下图所示,当客户端要求得到一个显示当天日期的网页,再服务器端实际上只存有一个后缀名为asp的网页,根据一个ASP引擎解译形成显示当天日期的HTML网页再传给客户端。

(摘自 MSDN ms-help://MS.MSDNQTR.v90.en/iissdk/html/69bf1386-6a55-4128-894f-344ec0964fb1.htm

   说了这么半天,客户端和服务器端他们到底是什么呢?说白了他们就是装了不同软件的计算机。当然客户端和服务器端也可以在同一机器上。客户端上非常简单,只要有一个浏览器,保持网络畅通就行了。而服务器端就要复杂一些,如果你想专业一点的话,那么普通的操作系统,比如Windows XP2000就有点抗不住了。需要Windows 2000 Server2003 Server或者2008 Server这样的操作系统。当然硬拿一个XP,也不是不可以,那么就需要安装IIS,因为默认XP是没有安装IIS,那么IIS就是把一个普通计算机变成服务器的一个必须软件。在微软阵营里,我们通常会用IIS。在Java阵营里,则常用Tomcat

 

RIA异军突起 

 

    如果一直这样相安无事其实也挺好,但是最先开始的AJAX(和某个著名球队同名的技术)点燃了RIA的烽火。RIA全名是富互联网应用,一个富字了得。AJAX还只是异步的JavaScriptXML,这是一个前端的技术。当时最为有名的应用就是Google map。再后来AdobeFlex,到微软的Silverlight

    作为忠实的微软粉丝,Helloj2ee本着“微软吃肉,我们喝汤,抑或闻香”的国际主义精神又在这里免费为微软摇旗呐喊,“今年过年用什么啊用什么,SLSL”。Silverlight势头确实比较猛,从1.0到现在的4.0Beta,中间经历的时间非常的短。微软的东西通常有一个特点,第一版往往比较烂,再到后来趋于经典。所以我还是非常看好SL,特别是对比了Google MapBing Map,发现Bing Map在浏览时的用户体验不仅不输于Google Map,还感觉更为流畅,真是让我感到非常惊讶。

    但是SL的翻新快,也导致了国内的开发者总是感觉太快,步履匆匆地跟着微软跑。尤其是初学者就更为迷茫了,捧着一本SL2.0的书,前怕狼,后怕虎地再想是否要买的时候,城头已经变换了SL4.0 的大旗。

    SL属于前端技术,它非常像Flash,事实上我感觉它起初就是模仿Flash,这也是微软的一贯做法,他并不总是站在潮头浪尖,往往后来居上。当然这和他有钱有着不可分离的关系,想收购谁就收购谁,想弄谁就弄谁。

    它嵌入在网页当中,嵌入网页的方法是使用HTML或者是JavaScript

    文章快要结束了,我还是用一张图画一下SLWeb程序开发当中处于什么地位吧。当然这张图并不是一个完整的Web程序结构图,但是以后Helloj2eeSL也许就和这几样打交道了。

 

 

posted @ 2010-02-24 00:28  helloj2ee  阅读(1918)  评论(15编辑  收藏  举报