上午第一個Session:突出重圍,使用軟件工廠和MSF成功打造優質的企業應用。因為昨天聽的一個關于“微軟軟件工廠”的講座,所以來聽這個Session也是為了加深對“微軟軟件工廠”的認識的,來了一個才知道這個Session更多講的是MSF。MSF是微軟提出的一個軟件開發方法學,我是第一次聽說MSF,通過這個Session我感覺MSF是敏捷開發與CMMI的一個結合體。由于采用“微軟軟件工廠”以后系統就分為核心模塊開發和外圍Features的開發。采用MSF以后核心模塊做不斷的持續集成,而外圍Features則在核心平臺的每一個版本出來以后再做周期性集成。針對目前很多國內項目人數比較少的現狀,他提出了進行角色合并的方式來組成一個小團隊,比如測試人員和產品經理可以合并,但是開發人員就不能和測試人員合并。
國內軟件企業面臨的問題:
(1)、整體軟件業在快速增長,但主要在外包領域
(2)、受到國外ISV強烈挑戰,沒有掌握標準和話語權。大部分是在做系統集成工作。
(3)、平臺產品難以外化,成功外化的盜版橫行。自己的平臺自己用,一旦開放就會被盜版。比如WPS就無法維持金山的生存。
(4)、不重視規避法律問題。很多商業項目中大量使用GPL協議的開源產品。
(5)、項目管理和開發流程不規范,失敗率高盈利率低
(6)、時間緊任務急,客戶需求多變
(7)、人員素質參差不齊,缺乏優秀團隊模型和技術交流
(8)、沒有駕馭優質企業應用的經驗,上線后問題眾多。比如奧運訂票網站的當級就是一個最生動的例子。
通過這個Session,我也終于糾正了我昨天的一個錯誤“微軟軟件工廠就是代碼生成”,現在我的認識是“微軟軟件工廠就是基于某些方法論和架構的代碼生成”,并且生成的代碼也是無法用其他手法消除掉的boring代碼。
上午第二個Session:SilverLight開發的極速體驗。講師是微軟的美女郭曉穎(偶也系廣大色狼中的一份子),講座風格很有女孩子的特點,不知道是不是她做講座的經驗不多,感覺語氣過于平淡,有點令人boring。SilverLight非常容易開發、調試和部署,可以很容易的自定義控件,并且可以很容易與服務器交互,比如在SilverLight中只要調用被標記為WebMethod的方法就可以很容易的與服務器交互;還可以在SilverLight中調用腳本或者Dom。
講座結束以后我提問了我最關心的兩個問題:是否可以把自定義的ActiveX控件加入SilverLight(應用場景就是用SilverLight做網銀客戶端);SilverLight是否可以操作本地硬件(應用場景就是用SilverLight做銀行柜員終端顯示技術)。這兩個問題得到的回答都是“NO”,很失望,看來SilverLight是不能用來做銀行相關的這些東西了,也許微軟只是把它定位為一個多媒體的東西吧。
下午第一個Session:SilverLight1.1CLR內核架構。講師是andrew pardoe和美女郭曉穎。這也是我唯一聽的一個英文課程。可能考慮到了在場的大部分是國人,所以andrew的英文發音挺標準、聽起來不算費勁,而且他還不時的蹦出幾個中國字“你好,我是from。。。來的,不是牛”,呵呵。他主要講了SilverLight的底層CoreCLR的實現內幕,不熟悉的讀者可以把CoreCLR想像成運行SilverLight的虛擬機。CoreCLR和代碼實用的是和CLR一樣的代碼,所以GC(垃圾收集)、JIT(實時編譯,呵呵,從JavaHotSpot中學去的技術)都依然是存在的。不過為了減少無用的功能以減小CoreCLR的尺寸以及為了使用沙箱機制來保證應用的安全性,因此移除了正則表達式的編譯、本地代碼調用等功能,并且對于文件系統的訪問也進行了受限處理(這讓我想起了J2ME以及Applet)。由于CoreCLR就是SilverLight的虛擬機,所以客戶端機器無需安裝.Net Framework也能Run SilverLight的應用,這也就是為什么MACOS中也能Run SilverLight了,所以如果有耐心,我們也可以讓SilverLight Run在Unix以及其他操作系統下。目前SilverLight即將支持Linux,不過SilverLight是只能運行在SUSE下的,不能運行在其他的Linux下,看來這也是和Novell合作的結果,剛才查了一下SUSE下是使用MONO實現的CoreCLR。
這個Session中讓我感到的一個亮點是我們可以用Python(IronPython)以及Ruby(IronRuby)來寫SilverLight(任何能生成CLR的語言都可以用來寫SilverLight),也就是完全可以在運行時動態運行SilverLight。andrew用的演示Demo就是IronPython寫的一個在線Python命令行界面,在這個界面中敲入Python指令就可以使得SilverLight中的圖形發生變化,真的是太棒了。
講座完了以后我同樣問了andrew一個問題:從Tech-Ed的一開始到現在,我們看到的都是用SilverLight寫游戲、寫媒體播放器,那么我們是否可以用SilverLight來寫企業級應用。也許是andrew只是做CoreCLR底層技術的,所以對這種商業性的問題也并不是很清楚,所以他的回答是:微軟是一家大公司,而且我們有很多的合作ISV,所以沒有做不到的事情,他還說百度不是用SilverLight做出來企業級應用嗎(我注:貌似百度的那個視頻播放頻道不是我指的那種企業級應用)?他的回答比較失望,再次驗證了我的結論:SilverLight只是用來做Game、Player等多媒體應用的東西,微軟沒有打算讓我們用它來做企業級應用的表現層。
下午第二個Session:SoftGrid應用程序虛擬化。這個專題也是我最期待的。本以為SoftGrid是開幕式上鮑爾默演示的那個虛擬Office,聽了以后才明白鮑爾默演示的是升級版的Windows Terminal,只是進行了輸入輸出的重定向。而SoftGrid則是另外一種程序的部署方式。程序以文件的形式保存在SoftGrid服務器中,當用戶要運行程序的時候,只需要下載程序運行所需的最小組件集合(dll等),然后就可以運行了。程序是運行在客戶機的SoftGrid提供的一個虛擬環境中,這個虛擬環境模擬了COM、注冊表、字體等關鍵位置的調用,這樣應用程序所做的任何修改都只會影響到這個虛擬環境,不過對客戶機產生任何修改,這樣就可以輕松運行相沖突的軟件了(比如Office2003是不能和Office97同時安裝的,但是通過使用SoftGrid,我們就可以在一臺機器中同時運行他們)。由于SoftGridClient只是模擬了COM、注冊表、字體等,并不像VMWare、VPC那樣完全模擬以計算機,所以其運行效率非常高。由于它不像Windows Terminal那樣是運行在遠程終端服務器中的,所以可以減小服務器的壓力、提高客戶端的響應,而且不像Windows Terminal那樣受服務器版本的限制大,同時當服務器Down掉或者處于脫機環境中的時候程序仍然可以運行(再次提醒,程序是Run在客戶端的,而不是運行在服務器端的)。講師給出的一個性能數據是:一臺服務器上可以Run 1000個客戶端。
SoftGrid不是Windows Terminal的終結者,它和Windows Terminal之間是一個互補的解決方案,在某些應用場景下可以發揮各自的優勢來實現組合應用。
不過SoftGrid進行組件的依賴性判斷不可能是完全準確的(比如有可能是動態的組件調用或者運行的程序是Java程序),所以如果第一次不是100%下載,那么運行時有可能出錯,而如果第一次是100%下載,則就會大大減慢程序的部署速度。不過SoftGrid只是微軟的一個剛剛起步的技術,希望它未來的發展不會讓我們失望。也許銀行的圖形前端技術也能用它來實現呢!
下午第三個Session:通過微軟Office Communications Server2007召開企業級的音頻視頻和在線會議。這是今年Tech-Ed的最后一節課,大部分人已經提前離開九華山莊了,所以參加課程的人非常少,主講用非常幽默的方式把大家全部集中到了會議室的前邊。由于是第一次接觸OCS(因為錯過了前邊了解OCS的Session,所以我把握住了最后這個機會來了解它)。由于聽課的人中有相當大一部分(聽課的一共才二三十個人,呵呵)不了解OCS,所以主講首先介紹了OCS,正好滿足了我的愿望。OCS是一個非常優秀的企業級的辦公系統,可以非常方便的使得員工能夠通過語音、郵件、視頻等各種方式進行交流,而且可以借助于會議預定、預約等功能輕松的進行時間管理。這個Session主要講的就是使用OCS來組建公司內網視頻會議系統,優點多多,無奈我是門外漢,只是概念上有了了解,這里就不獻丑了。最后的一節課我回答對了問題,得到了我的唯一一個獎品:《Exchange Server2007安裝部署指南》,正好送給我們公司做信息管理的同事:)。
三天的Tech-Ed就此結束,離開的時候還有點戀戀不舍。我這三天的“報道”也到此結束了,當然我對Tech-Ed的學習還沒有到此結束,不僅因為很多我感興趣的Session由于與我選的其他Session時間沖突造成沒法去學習,而且也因為這三天我接觸了很多好東西,需要進一步了解,這樣我就需要對照著那三大本講義繼續研究微軟產品好的一些東西。以后我也很可能會把我學習的經驗教訓繼續與大家分享,不過這可不是我的promise呀,我盡力吧!好啦,午夜了,也該休息了,這三天睡眠明顯不足(聽課也比工作更累人,今天早晨都用咖啡來提神了),正好好好利用周六補個覺嘍,明天睡到太陽下山,哈哈,晚安!