發表文章

目前顯示的是 2008的文章

景氣寒冬中的小聖誕樹

圖片
一年當中,我覺得最讓人喜歡的節日莫過於聖誕節了,對我來說,聖誕節一直以來都是有著多重意義的,這個節日不僅讓人覺得溫馨,也有一點數算過去一年的點點滴滴,然後把希望寄放在即將來的另一年的感覺,好不容易,緊繃了一年,一切的勞苦愁煩似乎轉眼成空,終於在一年中剩下的幾天當中可以放下忙碌,讓腳步緩一緩,從容地深深吸一口氣,讓自己準備好心情迎接另一年的開始... 很有趣的是,每一年這個時間,不管你在台北街頭的哪一個位子,商家們總是很有默契的,一起放出了聖誕歌曲,讓你想忘了這個節期都很難,大家一同把塵封了一年的聖誕樹重新擺出來,景氣好的時候,樹一顆比一顆大,有一年,我特別抽了一天空,當天什麼事情都不做,就在台北街頭找聖誕樹進行David私人票選,看看哪一棵樹最大或是最亮眼... 這張照片,是周末的傍晚,我在園區的一家西雅圖咖啡寫稿,老實說,店裡面冷清到不行,幾個和我差不多年紀的客人,盯著NB螢幕的專注地盯著螢幕,喝咖啡看書的也鮮少抬起頭,不過我最喜歡這種店,不會有人吵我,所以儘管西雅圖的美式咖啡老實說今天真的難喝到不行,但我依舊有機會就來消費算是支持它,免得店家撐不下去又倒掉(別怪我烏鴉嘴,天知道這邊已經倒了多少家Starbucks,有些你喜歡的店,現在要常去支持,否則消失得很快,才一陣子沒去,店門口就變成招租的廣告),回到店裡,戶外其實很冷,約莫15度上下,但是店裡頭瀰漫的溫暖和咖啡香,我面前有顆小小的聖誕樹,店裡面也播放著聖誕歌曲,從喜樂的普世歡騰到寧靜的平安夜,我久違了的聖誕歌曲,在我30好幾的歲月當中,有連續著好幾年,聖誕節我是在充滿著溫暖的聖誕聚會當中度過的,我很喜歡那種外面冷冷的,但是屋子裡滿是溫情的感覺,它會讓你忘掉一年的煩惱,放開一些困擾你的不如意,讓你暫時避開煩心的事情,可以有餘力回過頭來,看看自己的人生是否真如自己期待的那樣,一步一步地往前邁進... 景氣寒冬中的聖誕樹,其實和往年一樣閃爍,並沒什麼特別黯淡之處,店裡面的客人少,但是服務員卻相對的熱情多了,我和我的NB在一角,欣賞著聖誕樹、欣賞著落地窗外來往的人群,牽著手的情侶、趕著公車的婦人、假日在外遊玩到不捨得回家的學生... 最近新聞上,沸沸騰騰的幾乎都是景氣不好或是裁員的消息,300人、500人、上千人,有時候我想,企業是迫於無奈可以理解,但是想到居於弱勢的基層員工,因為對公司的價值低,難逃被拋棄的命運

Silverlight Toolkit中的圖表繪製功能 - 透過程式碼來繪製圖表 與 資料繫結

圖片
這一篇,我大致介紹了如何透過程式碼來繪製圖表,在這個影片當中,也同時介紹了圖組如何與特定的資料物件進行資料繫結,Silverlight這個功能相當有意思,過去我在研討會上有介紹過Silverlight資料繫結的觀念,和ASP.NET不同,Silverlight的資料繫結機制原則上是進行在用戶端的,主要是讓記憶體中某個物件的Property與前端Silverlight UI element的Property之間進行繫結,和ASP.NET透過宣告式語法讓前端介面與資料庫進行繫結的觀念不盡相同。這是因為對於Silverlight來說,資料庫在遠端,所以Silverlight無法直接和遠端的資料庫進行繫結(這樣做也沒意義),但是卻可以透過WCF將遠端的資料以物件的型式傳送到用戶端的記憶體中再與UI element進行繫結。 anyway, 我們先來看怎麼透過程式碼繪製圖表,接著我會再陸續把其他關於Silverlight toolkit的範例和教學影片放上來,希望對各位有幫助。 [ 下載影片 ]

Silverlight Toolkit中的圖表繪製功能 - 透過XAML碼來繪製圖表

圖片
在12/4微軟的研討會當中,我Demo了如何透過Sivlerlight Toolkit來繪製圖表,你會發現透過 Sivlerlight Toolkit可以很輕易的建立出和使用者可以互動的圖表功能。相關Demo請參考 上一篇BLOG 。 不過,萬丈高樓平地起,我們先來看怎麼透過XAML繪製圖表,底下是Silverlight Toolkit中的圖表繪製功能的第一篇 - 『透過XAML碼來繪製圖表』,時間允許的話,我會再陸續把一些範例和教學影片放上來,希望對各位有幫助。 [ 範例下載 ] [ 下載影片 ]

研討會:利用Silverlight Toolkit豐富你的Web應用程式 - 投影片 與 範例展示

先前提到過的 12/4 在台灣微軟舉辦的『 利用Silverlight Toolkit豐富你的Web應用程式 』研討會 的相關 投影片 與 其中那個DataGrid與Chart的資料繫結 範例展示 請點選下載。 很感謝當天現場參與的每一位朋友, See you next time ^_^ BTW, 有學員問到先前幾場研討會的相關投影片,請參考台灣微軟網站: http://msdn.microsoft.com/zh-tw/aa570302.aspx

利用Silverlight Toolkit豐富你的Web應用程式

12月4日,將在台北微軟 7樓舉行一場MSDN研討會,重點將放在Silverlight Toolkit,對Silverlight有興趣(或是對如何在網路上建立圖表、或是數位儀表版...等有興趣)的開發人員請千萬別錯過囉,除了會場中所分享的內容之外,如果時間允許的話,或許我還可以提供一些額外的Resource,總之,到時候見啦。 搶先報名吧: http://www.microsoft.com/taiwan/msdn/events/webexperience/event081204.htm 議程: Silverlight 2.0 開發技術簡介 Silverlight 控件 與 User Control 的使用與開發 Silverlight Toolkit 介紹與使用技巧 內容:   眾所期待,Silverlight 2.0 終於在 2008 年底正式與我們見面,在這個版本當中,除了原有的 Web 動畫影音技術外,還大幅增加了資料繫結、遠端資料存取、控件、樣板樣式、多執行緒…等開發人員所需的各種功能,一舉將 Web 應用程式開發帶向另一個嶄新的里程碑。   隨著 Silverlight 2.0 的上市,微軟同時提供了 Silverlight toolkit 這一套內含原始程式碼的控件集,讓開發人員在架構 Silverlight 應用程式時免費使用,透過這組控件可輕易的產生各種互動式圖表、使用諸如 TreeView, AutoCompleteBox, DockPanel, UpDown, ViewBox…以及未來多達數十種控件與UI外觀樣式。 在這一個場次當中,我們將透過實際的範例,帶領學員進入 Silverlight 應用程式開發的領域、體驗 Silverlight Toolkit 當中豐富的控件,讓您將 Web 應用程式開發帶向另一個全新的未來。

技術的變與不變之間...Silverlight 3.0的驚鴻一撇

今天在公司開會的時候,一位作者好友透過MSN通知我Scott的BLOG上果然開始出現了Silverlight 3的消息,我一聽不得了,第一時間看了Scott的BLOG,大意是說,Silverlight 2在今年推出正式版之後,在一個月內,已經有超過100 million(哇哇,超過一億? 會不會太誇張??? 應該是很多機器overlap的重新計算了吧,像是我,至少裝了30次)機器安裝了Silverlight 2(不過,聽起來微軟好像對這個數字很爽的感覺^_^)。 而且,還有很多Sivlerlight 2使用在產品中的真實案例(嘿嘿,當然,內舉不避親,其中我覺得最重要的,就是K2的blackpoint,如果有人對這個產品有興趣,可以跟我聯絡),足以證明Silverlight 2是一個可以真實應用的開發工具。 接著Scott趁勝追擊的說,將在next year推出下一個版本的Silverlight 3,令人興奮的部分是,在大家開罵了很久之後,終於,終於,可以在Visual Studio和Visual Web Developer Express當中以所視即所得的方式設計Silverlight了,Data Binding的部分也有工具(Wizard)可以設定,而不需要手動去下Code(剛好這件事情就是那天去參加好友的seminar後,在路上和他討論的問題,嘿嘿,沒想到他還真有先見之明),另外加上對3D的支援,以及對H.264 video格式的support...總括一句話,就是功能越來越強就對了(老實說,就是Silverlight的WPF化),然後Scott暗示大家趕快投入開發的行列,因為早晚有一天,Silverlight會把Fl?x幹掉(後面這句話是我自己加的...^_^) 看了這一篇BLOG之後,我挺有感概,技術變化得太快了,對於寫書的作者來說,會不會是一個很大的打擊呢?Silverlight 1.0的書才剛出,Silverlight 2.0就馬上Beta 1,現在Sivlerlight 2的書還沒出,馬上就有Silverlight 3的消息,是怎樣?拼進度嗎? 回頭想想,到底是哪個環節出問題? 是外國人太快,還是我們太慢? 老實說,我相信大家都沒什麼內幕消息,而且現在到處都是BLOG,訊息非常透明,要有秘密也不容易,也就是說,這些Roadmap是大家早已知道的,而且三

以WCF來開發RESTful風格的服務

圖片
  在上周 『從Web Service到RESTful WCF的心情』 一文中,我提到了對REST的感想,而這一篇,則是介紹.NET 3.5 中對REST的支援,說明如何透過WCF開發RESTful服務,不過,當.NET開發人員要透過WCF來開發RESTful的服務之前,有一些基本的觀念需要釐清。所謂的REST技術,其精神是透過Uri來描述存在於網際網路上的資源,例如:     http://www.studyhost.com/Eshop/Products/Nokia5130   上面這串網址可表示一個產品資料表中的產品,產品名稱為Nokia5130,若我們想取得資料,可透過HTTP GET方法,以上述網址來取得。   若我們想刪除這個資料,則一樣是上面這串網址,但是對IIS伺服器送出的動作則是HTTP DELETE。如果我們想建立一筆新的資料,則可透過HTTP POST方法,至於要修改,則透過HTTP PUT方法。   也就是說,描述資源是透過Uri,而對資源要進行的動作,則是透過HTTP verb來進行。有了這樣的觀念之後,我們就可以開始嘗試建議建立RESTful的 WCF服務。我們建立出的WCF服務,只需要遵循上述的 REST風格,即可讓所有的開發人員存取。     一直說REST風格而不說REST規格,主要的原因是REST並非是一種哪一個機構或是協會設計出來的規格,由於架構簡單,它僅僅是一種設計風格,就是兩個要點,用Uri來描述資源位置,用四種Http Verbs(包含GET, POST, DELETE, PUT)來決定對這個資源要進行的動作,甚至當我們用調用某一個RESTful的服務時,該服務回傳的資料也沒有一定要以XML型別回傳,也可以是單純的文字或是HTML。總而言之,它就是簡單導向。   而HTTP Verbs到底是什麼呢?這對於絕大部分時間僅僅使用瀏覽器的開發人員來說,可能有點陌生,HTTP Verbs是HTTP協議定義出的規格,HTTP共有八種動作,包含:HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT,過去我們常用且熟悉的應該是HTTP GET和HTTP POST,當你在瀏覽器上輸入一個網址,對於IIS伺服器下的指令其實就是HTTP GET,而當你在瀏覽器上按下某一個Submit按鈕(或

John McCain Concession Speech(麥肯敗選演說)

看了新聞,提到麥肯的敗選演說,實在覺得應該要讓大家看看,我對麥肯的認識不深,但是不管怎麼說,這是一篇成功的演說,風度、格局展現無遺,希望台灣的政治人物(如果還有的話...因為大部分我覺得都是政客,距離政治人物還很遠...)可以學習.. ( 中文大意 ) MCCAIN: Thank you. Thank you, my friends. Thank you for coming here on this beautiful Arizona evening. My friends, we have — we have come to the end of a long journey. The American people have spoken, and they have spoken clearly. A little while ago, I had the honor of calling Senator Barack Obama to congratulate him. (BOOING) Please. To congratulate him on being elected the next president of the country that we both love. In a contest as long and difficult as this campaign has been, his success alone commands my respect for his ability and perseverance. But that he managed to do so by inspiring the hopes of so many millions of Americans who had once wrongly believed that they had little at stake or little influence in the election of an American president is something I deeply admire and commend him for achieving. This is an historic election, and I recognize

REST一下吧~ 從Web Service到RESTful WCF的心情

  前陣子我的技術前輩Ruddy在 MSDN研討會中 ,介紹了WCF在.NET 3.5上的一些功能增強,其中一個相當重要的部分是WCF對REST的支持。   你會發現,最近這一兩年, REST 這個字眼常常看到,儘管他是Dr. Roy Fielding在2000年時候就提出的,但是我想真正開始紅起來,是因為Amazon和Yahoo都開始拋棄Web Service改提供REST形式的服務,且RoR和一些其他陣營的開發工具都大張旗鼓的支援...所以,就紅了...-_-'''   而.NET似乎總是比其他陣營遲緩(或是嚴謹?)一點,不過仗著後台硬(現金多),對於各種技術的支援也總是後發先至,你會看到REST突然之間在.NET開發技術裡佔了一個不小的位置,WCF支持它、ADO.NET Data Service也支持它...   由於未來我會花一點時間談談ADO.NET Data Service(因為我要在Silverlight當中叫用它),你會發現這個服務也是建立在REST的概念上,透過相當簡單的URL來存取遠端的資料庫。   在過去,這不是Web Service的主要工作嗎? 是的,在2002年,我寫的第一本ASP.NET書籍當中,還努力的鼓催Web Service的使用,我還記得那時候提的範例,是一個郵遞區號的Web Service呼叫,我還說,如果郵局提供此Web Service,全台灣(或全世界)使用到台灣郵遞區號的程式或網站,就再也不用自己去下載郵局提供的3+2郵遞區號對照表(如果我沒記錯是Excel格式),還要手動轉成DB,還要常常自己上網更新,因為台灣的路名、郵遞區號等資訊常常變...透過Web Service,我們可以輕易的達成網站間或是應用程式間的資料交換,把資訊串起來,讓SOA的理想更有可能輕易實現。   但是,過了那麼多年,Web Service雖然成功的在企業中被使用,但是多半還是在同質的多系統之間進行資料交換,例如在.NET寫的HR或ERP系統之間交換資料。很少看到我們真正期待的在異質系統之間進行資料交換。Web Service儘管是RPC(遠端程序呼叫:remote procedure call)一個相當不錯的解決方案,但是鼓催了多年,卻始終很難達成異質系統之間的資料交換。why?   原因有很多,安全性、效能、使用上的便

Keep Walking - 王建民篇

哇, 我喜歡的Keep Walking廣告增加了王建民篇...看來我需要考慮要不要更新桌面了...^_^

兩岸會談對台灣資訊業的影響

  這篇文章的標題很嚴肅,但是我只是想談談自己的一些心情和看法...   這幾天有很多人在抗議,也有很多人期待這歷史性的一刻,不論如何,不管你是歡迎還是抗議,改變還是即將發生。或許絕大部分政治人物關心的主題是明天(10/6)馬陳會的時候,陳雲林到底要不要稱呼馬英九為總統,聽說這個很重要,因為這涉及主權,但是我比較關心這幾天簽出來的協議,對我未來的影響...   幾個磋商的重點,在這兩天都已經確認並簽暑完成了,其中是不是可能導致未來台灣IT產業相關的改變,是我比較關心的部分,至於主權這麼偉大的議題我想有太多人因為各種理由而比我關心的多,所以我這種小人物應該不需要特別擔心...(強調一下,我也覺得很重要,只是天塌下來還有別人擋著,感謝他們,所以我先關注一下其他我比較關心的問題...)   過去一年我的主要開發人員不在台灣,我和對岸的資訊社群、出版社都有密切的合作,不可否認的,由於台商到了大陸(這表示客戶到了大陸),所以過去幾年,有不少的軟體業被迫需要在對岸設點,進而慢慢把一些工作機會從台灣移到了大陸... (難怪買書的人變少了 ^_^)   這幾天碰到一家廠商,該廠商的主要開發人員(從SD以降)全部在對岸,在台灣只有SA以上的人力佈署,這種模式在這幾年我常常看到,最主要的考量是成本,而令人訝異的是,最近幾年同樣成本、同樣年紀、或是同樣工作經驗的開發人員相比較,對岸的成本明顯還是比較低、素質卻有明顯的提升,相較之下,台灣的junior開發人員和剛畢業的學生狀況頗令人擔心...   這個趨勢已經從developer蔓延到SD, 而SA因為要面對客戶,所以只要客戶在台灣,在目前大陸人士來台不是很方便的狀況下,被取代的可能性比較低(但是如果你的主要客戶是在大陸的台商,那情況就不一樣了),但是昨天會談的結果,不出所料的,兩岸正式邁向三通,從台北到上海只需要80分鐘,比台北到高雄搭高鐵還快...   未來,由於實體距離的縮短,是不是更有可能台灣的專案需求完全由大陸的開發團隊承接,我想不需要我們亂猜測,在未來一年內可以看到結果...   在某些政治人物擔心對岸農產品會不會來台,對岸工作人員會不會搶了台灣人的工作,努力的想要怎樣禁止或是怎樣有條件開發...我要講的是,人家Thomas Friedman三年前就說了, 世界是平的 ,那道牆早就瀕臨瓦解,與其滿腦袋想要怎麼阻擋,不如想想怎麼

在沒有LAN的狀況下讓host與VPC以網路通訊

圖片
不知道從幾年前開始,VPC從消遣打發時間的玩具,升級成我每天工作必備的開發/測試工具,雖著VPC使用的時間越多,其中的應用也越來越多元化。 一般來說,我的工作地點都有無線網路可以使用,我的作法會是讓host(我的主機, 也就是NB),跟VPC各拿一個IP,儘管用的是同一張網卡(VPC設定為一張網卡, 對應到host上的真實網卡),但是由於各自有一個真實IP,因此資料傳輸上沒有任何問題。 這個需求不是用來複製檔案,複製檔案從host拖曳到VPC裡面即可,不用繞來繞去透過網路那麼辛苦,這個需求多半是開發Client-Server之間的應用程式以及測試,因此會需要實際有兩個IP進行互動。 但是,在很多情況下我抓取不到兩個IP: 1. 根本沒有無線網路,連一個IP都沒有 2.有無線網路,但是並不是DHCP,連線也有限制,典型像WiFly,你沒辦法讓VPC有一個獨立的IP, VPC還是可以透過NAT方式上網,但是沒辦法和host以IP對IP的方式溝通。 碰到這種情況,殺手鐧就要來了,前陣子跟Michael學到一招不錯,記下來和大家分享,首先,你可以在host上安裝一張虛擬的網卡,名稱為:Microsoft Loopback Adapter: 接著設定這張網卡為固定IP,例如192.168.20.10: 然後將VPC的虛擬網卡設定,增加成兩張網卡(你可以一張設為NAT,一張設為Microsoft Loopback Adapter): 接著把VPC裡面,對應到Microsoft Loopback Adapter的那張網卡IP設定為同一個網段的固定IP,例如192.168.20.20: 你也可以順手把VPC中的另一張網卡設為DHCP。 接著,回到host,試著ping 192.168.20.20,你會發現host已經可以透過網路方式連線到VPC裡面的IP位置: 這樣的做法,可以讓我們在沒有LAN的環境下,在VPC中架設Server,然後從host當中進行存取,或是相關的測試。

Yes, 就是今天, Silverlight Toolkit正式亮相...

圖片
  不知道你有沒有參加現在正在美國舉行的PDC,我沒有,但是隨著資訊科技的進步,現在我們已經進入到一個資訊沒有延遲的時代,在PDC中,Scott正式介紹了幾個 Silverlight Toolkit中的新控件,這是我對Silverlight耳聞並且期待已久的控件實作專案,在這個專案中,內含了預計數十個控件(及原始程式碼),提供給開發人員免費使用。   先前在與微軟一起舉辦的hands-on Lab課程中,學員常常問到的Chart Control, 是的,也包含進去囉~ 目前已經看到的內容包括: AutoCompleteBox Chart DockPanel Label Expander TreeView UpDown ViewBox WrapPanel ImplicitStyleManager Themes (6): Expression Dark, Expression Light, Ranier Orange,Ranier Purple, ShinyBlue, ShinyRed   我在上課的時候不只一次被學員問道Silverlight的Chart要怎麼做,今天之前,我的回答都是需要自行撰寫Code, 透過UI Element把圖形畫出來,不然就得等其他控件廠商開發的圖表控件。     終於,Silverlight有免費的圖表控件可以用了,配合我在TechED的Demo,未來開發人員想要在Web環境中加上動態圖表,提供數位儀表板的功能將會輕而易舉。 圓餅圖: 折線圖: TreeView這個標準的控件也被加進去囉,你可以透過底下的代碼輕鬆的完成TreeView的設計: 還有幾套主題樣式可供應用:   總括來說,它讓我們看到在Sivlerlight上開發Web應用程式或是RIA未來豐富的可能性,同時也可以大幅縮短開發時程,這些控件目前並非此專案的全部,還有為數不少的控件會陸續推出,並且這些控件也在持續的修正與優化當中。   你對Silverlight 2.0還遲疑嗎? 或許這套控件組能夠大幅增加你對未來的信心... ^_^ 喜歡嘗鮮的朋友可以到底下的網址下載: Silverlight Control toolkit http://www.codeplex.com/Silverlight

給生命留一點餘地...

  有一本書你一定聽過,叫做『有錢人跟你想的不一樣』~   這本書裡面有一句話很經典,差不多是這麼說的:『你想賺多少錢? 如果你說你想賺一千萬,那很抱歉,你就『只能』賺一千萬...』   關鍵字在那個『只能』上面。   劉德華有一部電影,我忘了他的片名,但是其中有一句台詞我記的印象深刻:『有信心不一定會成功,但是沒有信心一定會失敗。』   說真的,上面這些,我都同意,因為我經歷過,而且我也相信,你的夢想有多大,成就就可以有多大。我習慣在每一年的年底(生日過後)幫自己訂下一年度的目標,說來你可能不相信,多半都實現了,只要有具體訂出來時程、數量的具體目標,實現的比例很高(誇張到自己也不相信的目標除外),當然偶而也有一些意外,但是我要說,真的差不多是這樣,你的夢有多大,成就就可以有多大...(這些,我會找一天寫一篇文章..)   但是,我今天想說的卻不是這些,而是...給生命留一些餘地...   為什麼會突然這麼說? 因為最近打開電視上,消極負面的東西實在太多,我猜最近很多人一定碰到了挫折,景氣那麼差,財源恐怕無法自然而然的滾滾而來,像我上一篇說的,想要幫客戶賺錢恐怕沒那麼容易,這個時點恐怕活下去比較重要一些,況且不僅財源不來,恐怕來的是裁員...   最近看周董的MV,『蹈香』真的很讓人感動,礙於著作權的關係,所以我不直接貼在下面,但是你進 youtube 隨便找,也可以找到這個MV,除了歌曲好聽之外,詞的意義頗令人反省和深思,MV拍的又讓人動容...衝著這一點買他個正版算是鼓勵一下...   話說回來,在多頭行情下,我會鼓勵大家往前衝,豁出去,有夢最美、財富相隨,管它世界局勢如何,拼下去多半會有結果,但是現在不是,現在是空頭行情,不過如果你想的是怎樣保守活命,那我覺得太消極,我覺得依舊可以努力,可以盡力,但是不要給自己過多的壓力,不要沒事就自焚抗議,或是成為公司中的激進份子,保住好工作,度過難關,恐怕是這個階段最重要的。   如果不幸,像MV劇情中的主角,被fire掉了,又找不到工作,我的建議是,不要急,政府有非自願性失業補助金,金額還蠻高的可以領六個月,不妨趁這個時間,乘著高鐵回老家看看、離開都市看看這世界其他美好的地方,作一些你一直很想做,但是卻沒機會做的事情,同時間,找朋友聊聊,去幫助別人,甚至去做義工,你會發現很多人其實都需要幫助,也不是每一個人都過得很幸運,

如果客戶不賺錢...

  在軟體業待了那麼多年,也做了不少的案子,當過甲方、也當過乙方,回顧過去,大小案子不少,但是有沒有哪一個案子直接跟客戶的獲利有關? 好像有,但是不多...   我們說服客戶買單的幾個重要原因(或是客戶找你買軟體、作專案的幾個重要原因)不外乎如下: 1.希望用了你的軟體之後,能降低營運成本 2.希望用了你的軟體之後,能提高效能(或產能),或是加快工作速度 3.希望用了你的軟體之後,能解決特定問題 4.不得不買,因為舊版的軟體過時或太爛 5.對未來的願景有所期待,典型的狀況就是聽了很多電腦化的優點之後,老闆下定決心,將公司全面電腦化... 6.預算太多,消化一下   先不管上面這些期待(或是原因)是否合理,還有在導入軟體正式上線之後有沒有真的發生,你會發現,就算真的都發生了,也很少能夠幫客戶賺錢,最高最高的效益大概是幫客戶省錢。   沒錯啦,廣義的來看,幫客戶省錢也是某種程度的賺錢,特別是這麼不景氣的時候。   但是這也表示,客戶並非非要你的軟體不可,它不是無可取代的,不是不可或缺的,在企業軟體當中,乍看之下似乎並不多能夠直接幫客戶賺錢的軟體或專案,幾個在軟體界常聽到的解決方案:ERP、EIP、CRM、PLM、BI、DSS、SCM...等,絕大部分的軟體都是以節省企業成本的角度來考量,而非幫企業提高獲利。   但是回過頭來看,節省成本這件事情有點吊詭,因為公司在短期間內不太可能因為買了你的軟體或導入你的專案,就立刻降低成本(例如因為工作效率提高了,所以把公司的員工fire掉一半,所以財報上看不出效益,頂多生意可以越做越大...但是財報上短期間還是看不到效益),反而會因為要導入新軟體,可能會增加工作量、聘用很多臨時性的工作人員,這又是一筆開銷...   等到軟體導入一兩年後,差不多可以幫助企業省錢(獲利)了,卻很少數據可以清楚的顯示,這一來一回之間,企業到底要花多久的時間才能換回當初的購置成本? 而軟體的變遷如此迅速,客戶的需求也如此多變,兩三年後這套軟體又要重新購置或是調整,企業是不是賺錢和到底是不是與導入了我們的系統之間有正相關,似乎很難得到一個正確的判斷...   是不是因為這個原因,所以我們也很少看到軟體廠商提出數據來佐證,因為XXX客戶導入了我們的產品,所以今年的業績成長一倍...或是YYY公司買了我們的軟體,所以今年EPS多了一塊錢...或是ZZZ公司成功導

Destiny

圖片
半夜兩點, 剛好不想睡... 回頭看自己寫的BLOG, 說真的, 讓自己感動的文章不多(廢話,都是技術文章,哪來的感動...) 倒是看到一篇自己很久以前寫的, 我很愛的電影 , 本來, 這個title我打算寫很多篇讓自己有感覺的影片, 沒想到上一回寫居然是幾個月前了... 看著 這一篇 文章, 我想到另一齣我很愛的電影, 航站情緣: 很輕鬆的休閒小品, 每年總是會有一些(多半都出現在聖誕節前後)的小品電影,像是尼可拉斯凱吉演的『扭轉奇蹟』、或是約翰屈伏塔演的『天使不設防』、或是前陣子休葛蘭的『K歌情人』,這些電影都有一些特性,劇情不複雜,輕鬆有趣(不會給人沉重的感覺),但是如果細細品味,總是讓人有所收穫,這是我喜歡的電影的典型... 話說回來,湯姆漢克的這一部『航站情緣』,也是一部讓我看了超過一次(已經很難得了)的電影,最近在HBO上也重複的播出,它描述一名從東歐小國搭機前往紐約的旅客--威特賴瓦斯基,因為祖國發生武裝政變,使得他的護照失效,只得滯留在美國的國際機場,無法進入美國國土,也無法回國,住在機場航站的過境大廳,等到祖國的戰爭結束。他所住的機場,每天有成千上萬的旅客來自世界各地,讓他在這裡看盡人生百態,甚至和一名美麗的女空服員艾蜜莉(凱薩琳麗塔瓊絲)展開一段沒有結果且極其短暫的戀情。 其中我覺得最發揮片中關鍵喜劇角色的是清潔工嘉塔(庫瑪帕蘭納),他讓整部片輕鬆不少,特別是他在湯姆漢克和凱薩琳晚餐的那一幕(表演特技和轉盤子,我每次重看都會笑一次): 而美麗的凱薩琳則是讓整部片子柔和的要素,凱薩琳是一個美麗的空姐,但是由於總是在各國之間奔波,使得她似乎沒有辦法維繫一段固定的感情,片尾,凱薩琳依舊選擇回到有婦之夫的情人身邊,留下一個字... Destiny~ 這個字,總是給這部片子一個很特別的結尾,我覺得我不喜歡結局亂搞喜劇,凱薩琳不可能跟湯姆漢克在一起的,至少我們這個年紀的觀眾會這麼認為,凱薩琳和湯姆漢克在一起的結局是給18歲的年輕人看的電影...這部片,我覺得不是,這部片中有那麼一點點世故和現實的無奈,而大家也都接受了,就像我們所處的人生一樣...不見得事事順心、事事如意,但是這就是人生, 儘管如此,我們也總是在一些片段的歡笑當中,留下了難忘的回憶,不是嗎? 周末,如果你呆在家裡只能上網無事可做,推薦你,讓自己休息一下,靜下心來享受一部輕鬆的好電影...

Vista的休眠功能消失

圖片
對我來說,Vista的休眠和睡眠兩個功能相當的重要,我絕大部分的時候都沒有關機,都是採用睡眠功能讓系統把狀態保留在記憶體中,由於這時候系統僅對記憶體和主機板供電,所以省去了把RAM中的內容保留在HD上所要耗費的儲存時間,而且並不耗電,所以即使在電池低電位的狀況下,放個一晚上也算是OK。 而休眠這個功能則是把RAM中的狀態存放在HD中,所以少說也要寫個幾G的大小,資料是存放在C:\hiberfil.sys檔案中的,但是不使用時卻占用了很大的空間(我的NB上大概佔了3.5G)。有一次在安裝系統時,為了空出C:的空間,我只好把這個檔案刪了,但是刪了之後,卻發現我的休眠功能不見了(如上圖)。 這個功能不見了對我來說有個問題,因為我常在四處遊走,所以電池是一直會使用的,先前我從不用擔心沒電,因為除了還有一顆備用電池外,若我長時間離開座位而電池沒電,Vista會貼心的幫我進入休眠狀態,但是由於先前我把休眠檔案給殺了,所以現在我的 Vista 是直接斷電,這對我來說就是一個大問題了... 找了半天設定,好像沒地方可以設定...-_-''' 只好上Google Search一番,解決方案如下: OK,我的休眠又出現了...^_^

除了正式發布Silverlight 2.0之外...

OK, 你一定已經知道Silverlight 2.0正式發布了(當然, 我是指英文版...), 如果你還不知道, 那表示大概有幾個該訂閱的BLOG而你沒訂閱...^_^ Anyway, 所以Silverlight 2.0的部分我就不多說了(很多BLOG上都提到了),新的控件、新的外觀樣式、還有一堆包含控件原始程式碼的Silverlight Toolkit專案(就是一堆免費使用的Silverlight控件啦)預計將在這個月的PDC後會有第一個preview版本。這個就蠻令人期待的, scott說,控件的部分目標是100+個...其實回頭看看這幾年類似的幾個Project,不難發現MS這一兩年真的蠻善用社群的力量, 不管在開發或是蒐集意見,社群都有蠻深度的參與...畢竟社群的力量是不可忽視的~ 另外一個我蠻開心的部分是,如果你有看過我在techEd 2008中ASP.NET 3.5 SP1場次Demo的Silverlight調用ADO.NET Data Services,當時採用的版本是beta 2, 在使用ADO.NET Data Services的時候, 需要手動執行底下的指令: DataSvcUtil.exe /language:VB /out:Proxy.vb /uri:http://localhost:50639/NorthwindDataService.svc 來產生一個class file, 其實骨子裡做的事情就是類似Add Web Reference動作所做的工作,那...怎麼不乾脆讓開發人員在VS2008當中用Add Web Reference就搞定呢? yep, 很多人問了這個問題,在正版中這部分也會改進囉...相當令人期待...^_^ Silverlight技術絕對會帶來Web Solutions開發上的改變,這部分的影響或許將會更甚於Flex, 老實說這部分很多人在討論,也有著不同的看法,但是這部分我卻有一個自己的看法,原因呢? 並非Silverlight比Flex技術來的優越, 而是.net開發人員對Sivlerlight 2.0的接受度,大概要比起Flash或是Java(PHP)開發人員接受Flex的機率來的高很多(我想會非常多), 而反過來,讓.net開發人員接受Flex的程度,恐怕要比讓Flex或Java(PHP)開發人員接受Silver

Silverlight 2.0 RC release!

Sivlerlight 2.0 RC版本公布了,這也表示正式版距離不遠了。 果不其然,大家在意的幾個控件加了進來,包含ComboBox, PasswordBox, ProgressBar, 除此之外, 比起Beta2, 在控件的外觀上做了一些調整(不過反正也只是換一套Skin, 這部分即使RC沒加進來,開發人員也可以輕易的透過客製化機制來完成。 而開發工具的部分,則可以透過Blend 2 SP1配合 vS2008進行開發,相關的下載與工具可以在底下網址找到: http://silverlight.net/GetStarted/sl2rc0.aspx by the way, 有一個非常重要的改變是,在beta 2版本時,ADO.NET Data Services的調用需要額外下載一個.dll檔案(如同我在TechED當中的介紹),而這部分現在已經加到RC版本裡頭了,期望在正式版本時,能夠直接搭配VS開發工具引用ADO.NET Data Service,那一切就更加的完美了。 ^_^

TechED 2008 taiwan

TechED 2008 Taiwan 研討會 WUX203 2008/09/24 16:50 - 18:00 使用Microsoft Silverlight 2建置豐富的Web應用程式 WUX306 2008/09/25 16:50 - 18:00 ASP.NET 3.5 Extensions與Silverlight 2整合應用實務分享 一年一度的TechED在晴朗的天氣與熱鬧的氣氛中結束了,上面兩個場次是筆者負責的主題,相關的下載點可以參考底下的位置,如果有任何問題,也歡迎來信一同討論。關於這兩個主題的其他相關訊息,我會陸續在BLOG上和大家分享。 Microsoft Silverlight Tools Beta 2 for Visual Studio 2008 http://www.microsoft.com/downloads/details.aspx?FamilyID=50a9ec01-267b-4521-b7d7-c0dba8866434&displaylang=zh-tw Microsoft Expression Blend 2.5 June 2008 Preview http://www.microsoft.com/downloads/details.aspx?FamilyID=32a3e916-e681-4955-bc9f-cfba49273c7c&displaylang=en Deep Zoom Composer - English http://www.microsoft.com/downloads/details.aspx?familyid=457b17b7-52bf-4bda-87a3-fa8a4673f8bf&displaylang=en ASP.NET MVC CodePlex Preview 5 Installer + Source (ASP.NET MVC 5 Source Code) http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775 ASP.NET AJAX Enhancement ASP.NET AJAX Script Combining (將多個Script在同一個行程載入時用到的ScriptRefere

對我的人生有重大影響的幾本書

在台灣(其實在很多其他地方也一樣)資訊人員成功(或是獲利高低)的關鍵幾乎都不是技術能力,或許技術能力是一張門票、或是入場券,但是真正讓人成功的因素,往往不是人人都有且可以迅速學習而得到的技術能力,常常左右你成功的因素其實是一些觀念和習慣,特別是工作上的習慣。 很幸運的,在過去我念書的過程中,有兩年的時間我讀的是管理,而學校的圖書館充斥著相當精典的管理書籍,特別是這些書都不難看,很生動的讓人愛不釋手,你往往會有捨不得翻完的感覺。 我不常分享這些書,今天突然想到,列一下清單,算是留個紀錄,如果以後有時間我會逐本跟大家分享,讀書一直是一個很好的享受,如果你能夠給自己留一點時間,不妨泡杯好茶,或是煮杯咖啡,好好享受讀書的時間,至於哪些書,我都列在下面,每一本書都對我人生(特別是工作)有很大的影響,希望對你也有幫助... 【與成功有約 系列】 《柯維七書(與時間有約、與成功有約、與幸福有約、與領導有約、與青春有約、與影響力有約、與生活有約)》天下文化著,天下文化出版。 【目標 系列】 《目標-簡單而有效的常識管理》高德拉特等著,天下文化出版。 《關鍵鏈-突破專案管理的瓶頸》高德拉特著,天下文化出版。 《絕不是靠運氣》高德拉特著,天下文化出版。 《仍然不足夠:ERP加TOC的企業電腦化新境界》高德拉特著,天下文化出版。 【乳酪系列】 誰搬走了我的乳酪? 禮物、峰與谷 [ 史賓賽.強森 ] 世界是平的 【狄馬克系列】 最後期限:專案管理101個成功法則 Peopleware: 腦力密集產業的人才管理之道 (Peopleware: Productive Projects and Teams, 2nd ed. ) 【棉花糖系列】 別急著吃棉花糖 萬一吃了棉花糖 【派屈克 藍奇歐尼 系列 】 總裁的迷惑 — 健康組織的四大準則(The four obsessions of an extraordinary executive) 開會開到死(Death by Meeting) 團隊領導的五大障礙(The Five Dysfunctions of A Team -–A Leadership Fable)

Silverlight的Password TextBox和ComboBox, Masked TextBox

在周四周五的場次中,都有學員問到一個問題,Sivlerlight 是否支援可以輸入Password的TextBox或是像是WinForm的Masked TextBox? 很遺憾,目前答案都是否定的,因此學員必須要繼承TextBox或採用UserControl自己開發類似的功能,不過我一直覺得這不會是個問題,因為WorldWide廣大的.NET開發人員會幫助你完成這個部分,我肯定在internet上一定早有這些控件,所以我回來找了一下,在CodeProject找到兩個符合需求的,提供給學員參考。 http://www.codeproject.com/KB/silverlight/slpassbox.aspx ←支援Password的TextBox http://www.codeproject.com/KB/silverlight/STextBox.aspx ←ComboBox, Masked Textbox(不過這是Beta 1版本, 在Beta 2使用需要修改一下) 兩個都有Source Code,需要的學員可以參考... 另外,其實如果我沒記錯在Beta 1 WatermarkedTextBox是存在的,但是在Beta 2就拿掉了,原因聽說是MS打算在正式版的TextBox加上一個Watermark屬性在textBox上,但是如果你需要原本的WatermarkedTe控件參考的話,可以從此位置下載 http://kkam.members.winisp.net/projects/watermarkedtextbox.zip

Silverlight 2.0 Simple Media Player

底下是周四在台北場次上課時設計的SimpleMediaPlayer,提供給需要Source Code的學員參考。其中包含了Timer的使用、全螢幕切換的技巧、MediaPlayer的設計、Grid的使用、InitParams的使用...等機制。 建議您在測試時,採用底下這樣的方式測試... SilverlightApplication6TestPage.aspx?VideoUrl=wmv影片url 若使用預設的影片位置, 由於影片解析度較高,需要連上internet並稍等影片下載... 若有使用上的問題歡迎來信討論... [ 下載 ]

Keep Walking

我很喜歡的那個廣告的主題曲... Come One Day Composer: Eddie aka DorYuk Lyricist: Eddie aka DorYuk All instruments: Eddie aka DorYuk Singer: Adrian DeSilva (Audio Traffic) Where, where are your dreams. You've miss placed them or so it seems. You, you've been running away. Been running from yourself, Its up to you and no one else. If you don't care, if you don't try, Then life will pass you by, But you won't know, and time will show, The fire burnt out long ago. Gotta to keep on pushing Push it everyday. Trying every way. Keep moving on, keep going now. Keep pushing on your way. Keep going now, don't hesitate. Your dreams will come one day. They will come one day... Maybe some day, Maybe somehow, You'll stand up and make us proud. And if they say, You're a fool to try. Just smile and walk on by. Need to keep on pushing, Pushing it everyday, Trying everyway. Keep moving on, keep going now. Keep pushing on your way. Keep going now, don't hesitate. Your dreams will com

九月Silverlight 2.0研討會行程

隨著Silverlight 2.0的正式推出在即,九月微軟安排了一些研討會,如果你對Silverlight 2.0有興趣,或者由於不同專案的需求、游移在各種開發Solutions之間,相信這個研討會應該會對你有所幫助。 在這個研討會中我會盡可能的在時間內完整介紹 Sivlerlight 2.0的新功能、說明Silverlight 2.0的開發架構、對於網站或Web應用程式開發甚至WinForm開發者的意義、說明如何應用在你的專案當中,並且稍微聊聊WinForm、WebForm、以及ASP.NET的未來...我們到時候見啦... 9/04 (四) 13:30 - 16:00 Silverlight 2 全新功能、展新體驗 台灣微軟 7A/B 會議室 [ 連結 ] 9/05 (五) 13:30 - 16:00 Silverlight 2 全新功能、展新體驗 台中金典酒店 13 樓 [ 連結 ] 9/12 (五) 13:30 - 16:00 Silverlight 2 全新功能、展新體驗 高雄漢來 [ 連結 ] 講題:Silverlight 2.0是微軟針對Web應用程式開發即將推出的重要技術,它讓Web應用程式的介面呈現邁入另一個里程碑,在Silverlight 2.0當中,許多眾所矚目的新功能陸續出現,在這個場次當中,我們將帶領學員由淺入深的探索Silverlight 2.0的各樣新功能,並且透過實務範例展示如何利用Silverlight 2.0建構絕佳的Web應用程式操作介面,並且輕易的與後端資料來源整合,讓學員得以迅速的掌握Silverlight 2.0的精華,快速的將此技術導入至您的專案當中,有效的提升您的Web應用程式質感與使用者體驗。

Silverlight 2.0當中的Deep Zoom效果

在上課的時候有學員問到Silverlight 2.0當中的Deep Zoom效果,我覺得底下這個範例可以大概表達出DeepZoom的功能和意義。 [Silverlight 2.0 developer reference] 上面這個網站中的圖檔大小將近10M,但是您會發現剛進入的時候很快就顯示出來了,因為在呈現時,我們並不需要整個圖檔下載,而是隨著時間同步下載。您可以拖曳圖檔或是透過滑鼠捲動放大縮小,請特別留意圖形中文字顯示的部分,比較看得出效果,您會發現放大的區域將會自動下載的更加的清晰,效果就跟Google Earth類似。 有學員問到說,DeepZoop是否可以呈現出所謂不失真的圖形效果? 當然不行,基本上DeepZoop只是把原始的圖檔原封不動的呈現在場景上,之所以放大後會有不失真的效果,是因為原始的圖檔很大、解析度很高,但是DeepZoop機制可以把一個很大的原始檔案(例如100M)加以切割,然後依照場景中需要呈現的部位逐步的動態載入場景之中,如此一來,就可以同時掌握速度和呈現品質,達到你看到的這個效果。 底下為原作者的網站位置: http://joestegman.members.winisp.net/DeepZoom

安裝完VS2008 SP1之後Silverlight 2.0無法開啟?

圖片
安裝完VS2008 SP1中文版之後Silverlight 2.0無法開啟? 看到底下錯誤訊息: 是的,沒錯,請重新下載安裝中文版的Silverlight_chainer.exe: http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=50a9ec01-267b-4521-b7d7-c0dba8866434 Silverlight Tools Beta 2 for Visual Studio 2008 SP1 (Silverlight_chainer.exe)包括: Visual Basic 和 C# 專案範本 Intellisense 和 XAML 程式碼產生器 Silverlight 應用程式偵錯 Web 參考支援 WCF 範本 的Silverlight 範本 Team Build 和命令列建置支援 Expression Blend 整合

.net framework 3.5 service pack 1 & V2008 service pack 1 正式推出

等待已久,眾多 SP1終於同步推出,SP1所帶來的改變不小,如果你覺得從ASP.NET 2.0到ASP.NET 3.5的新功能出奇詭異的少,那請別懷疑,SP1可以大幅滿足你的需求,因為很多新功能都出現在Service pack1了,目前你看到的SP1(VS2008 Sp1和.NET Framework 3.5SP1)包含了一些本來在ASP.NET 3.5 extendsions的功能,改變真的很多,除了MVC尚未納入之外,我所期待的針對 ASP.NET 3.5 的改變幾乎都上來了... 正如同先前說過的,ASP.NET 3.5已經從開發portal的小工具,變成可以登大雅之堂的Web Solutions開發工具,各種該支援的架構都支援了(喔...除了MVC ^_^),不過,光是底下這些,我相信就可以讓大夥玩很久了... 對於ASP.NET開發人員的改變如下: ASP.NET Data Scaffolding Support (ASP.NET Dynamic Data) 是的,ASP.NET Dynamic Controls,我在MSDN研討會講過囉,還有影片介紹,我先幫各位玩一下,過幾天再錄個影片和大家分享。 ASP.NET Routing Engine (System.Web.Routing) 新的URL Rourting機制,在Dynamic Data Controls和MVC裡面都會被用到。 ASP.NET AJAX Back/Forward Button History Support 小東西,讓AJAX機制支援上一頁下一頁,有影片介紹。[ 瀏覽 ] ASP.NET AJAX Script Combining Support ScriptManager控件的一點點JavaScript檔案處理效能提升。 Visual Studio 2008 Performance Improvements HTML Designer and HTML Source Editor 顧名思義,這部分是VS2008在HTML編輯上的效能提升。 Visual Studio 2008 JavaScript Script Formatting and Code Preferences Better Visual Studio 支援了一些檔案編輯與JavaScript格式處理的能力。 Ja

Mobile N95 的VOIP Solutions - fring + SkypeOUT

對我來說,手機最重要的功能就是通話,其他的附加價值其實意義不大,我對Mobile其實沒有太多研究,曾經買過一台PDA上面安裝了.net compact framework,這讓我可以用VS2005寫程式然後deploy到PDA上,為了這個我高興了很多天...不過無奈我沒有碰到太多跟Mobile有關的case,所以一直沒有機會好好研究一下相關的技術(不過最近我有一個在BPM+Mobile上的整合solutions,以後會有機會跟大家好好談談BPM順便介紹一下)。 OK,話說回來,前些時候我買了一支N95,唯一的原因是因為我以前都用Nokia,然後我常常摔手機,我印象中Nokia怎麼摔都很難壞,所以我始終支持Nokia,我的Nokia手機都是用到脫皮斑剝實在被身邊的人唸到爆,很煩之後才換下一支Nokia的,而那次買N95是因為內建了GPS又可以3G上網還可以拍照,我想說一支就搞定了,所以就給他開下去。 我幾年前在一家知名的網通設備公司,該公司一直有VOIP的計劃,我那時候就覺得很奇怪,VOIP這個東西也不是新鮮的概念,那時候Skype已經爆紅了很久,我就在想哪一天如果手機可以透過Wifi上網,然後Run一個Skype那我的電話費豈不是少到不行(有一陣子我的電話費超貴),OK,當時我跟負責VOIP的PM聊了一下,我忘了過程是怎樣,總之最後就不了了之了,不過我心裡想,這個技術應該是很簡單吧,就是在手機上Run Skype嘛,沒什麼大不了才是... OK, 多年後的今天,我們終於看到這些應用慢慢的在生活中實現,今天下載了N95的Skype程式,不過官方版本總是比較爛一點,所以居然在台灣無法透過Skype OUT發話,只能用文字Chat,誰要用手機打字Chat啊,拜託... 又找了找,終於看到Fring這個軟體,我相信已經很多人用過了,這套軟體基本上是一個代理的概念,他可以透過手機連接MSN、Yahoo、Skype等IM軟體,也就是說呢,透過Fring我可以輕易的用在N95上透過Wifi執行Fring再用Skype的Skype OUT發話,對於我要時常打到大陸給同事來說,實在是太方便了,試用了一下,品質還不錯,值得和大家推薦,只有一個唯一的小缺點,就是Fring會有一點點Lag...有點小遺憾,不過在Skype官方版本尚未出現之前,我會考慮用這套軟體...畢竟最近不景氣,能省則

重要的事情先做

圖片
從事IT行業多年,我一直有一個深刻的感覺,資訊科技日新月異,要能夠掌握足夠的資訊技術,並且讓自己能夠在業界不至於被淹沒甚至能夠在眾多的強者中異軍突起,所需要花費的精神和時間有時候已經讓人喘不過氣。不管是哪一個領域,MIS、SI、Vender site、User Site、Consultant、Trainer我大多都有扮演過這些角色、或多或少也都能夠體會不同角色中的辛苦。 不過也可能是因為IT相關領域(特別是Developer)所需要涉獵的知識一直在變和增加,這些部分已經讓人耗費心力,使得IT人員在一些基礎的管理技能上,顯得有些缺乏。說真的,我認識的IT人員很少不是聰明人(意思就是大多數都是聰明人...我真怕現在很多人看不懂這樣的中文寫法...),我覺得大家都很Smart,但是往往由於缺少了一些基本的管理知識,在專案中常常變成無頭蒼蠅,忙碌,卻不一定能夠產生預期的效益。 關於這部分,我最近和一個同事提起,對於IT人員,不管是系統開發人員,或是MIS、你要妥善規劃你的時間,有一個很關鍵的技巧,就是把重要的事情放在前面, 重要的事情先做,一直是時間管理當中很重要的一個部分。 不知道你有沒有讀過一本很不錯的管理書,作者把事情分為四種,急迫但不重要的(P2)、重要但不急迫的(P3)、不急迫也不重要的(P4),即重要又急迫的(P1)。 我記得我以前曾經提過這個觀念,這個觀念對我有非常大的幫助,我一直想找時間與大家分享,回頭想想這四種事情,你會先做哪一種? 你在哪一類的事情上你花了比較多的時間??? 一般人P1一定會先做,這個毫無爭議,典型這類的工作是:家裡失火、急病住院…不過這些事情都不常發生,更具體一點的 工作 像是明天要交付驗收的專案、下午會議要用的報表…等,都屬於P1的範疇。 P1類型的工作往往不會佔用你絕大部分的時間,但是如果你發現自己手上每天的工作全都是P1,這表示你每天都在救火(我就看過這樣的MIS部門和專案公司,我可以肯定的告訴你,你絕對在這家公司待不久,搞不好這家公司或這個部門自己也撐不了多久,碰到這種公司,我會建議你趕快準備104…),如果手上的工作大部分都是P1,不用懷疑,你(或你們)的時間管理絕對有問題。 P1類型的工作,我認為在正常的公司當中一週不應該超過一、兩件,每件應該也都要能夠在三小時內解決。(否則他就不是P1,而是P3轉換成的P1,我待會解釋)

Silverlight 廣告

不知道大家有沒有看過這個...在網路上找到這個廣告... 嗯...我猜這應該算是廣告吧...好像有點無厘頭...不過算是挺有趣的... 呵呵,它的精神是...有了Silverlight之後, 一切都變得更簡單了...

關於如何選擇VB和C#

有一位讀者在幾周前來信詢問到這個問題,我答應他要在BLOG上好好討論這個部分。 我相信很多初學者最近特別碰到這個問題,面對在.NET上要採用哪一種開發語言而困擾。在回答這個問題之前,有一個前提是要先確定的,關於效能的問題在這兩個語言之間的選擇是幾乎不存在的,特別是由於硬體設備的關係,因此效能問題很容易補強,若要說效能,到目前為止中高階語言當中C++依舊是效能最好的,Assembly依舊是效能冠軍,但是你會不會用這兩種語言來開發資料庫應用程式,答案是你絕對不會,因為這樣太辛苦了,好,我們的討論就從這一個point開始。 正如同你不會用C++來開發資料庫應用程式一般,除非沒得選擇(某些平台上只能選擇C++),否則有太多更適合用來開發資料庫的語言,C#, VB, Java, delphi...幹嘛選C++? 但是有沒有人會說C++語言不好?不會的... 因為大家心裡都明白,不是好不好的問題,而是適不適合的問題!!! 那問題來了,如果答案這麼明確,為何還會有人討論C#和VB到底要選哪一個呢?不是就是適合不適合的問題嗎? 對,但是有一個小麻煩,是C#和VB都是.NET的官方語言,而兩種語言能做的事情幾乎一樣,花的工也差不多,那就讓人困擾了,到底要VB和是C#? 好,探索這個問題之前,我們要明白語言的背景和特色,C#是C Like語言,從C, C++之後,出現了很多C Like語言,C#和Java都是其中之一,他本質上是C的語法,但是沒有C++那麼難,C++當中有很多古時候C語言保留下來的特殊語法,這些語法相當簡約,例如A++,這代表A=A+1,除了A++之外,還有++A這種語法(難倒你了吧,很多人不知道兩者之間的差異...)。C語言又加上物件導向的觀念之後,難度瞬間提升幾十倍吧,很多專家腦袋裡想出來的許多天馬行空的可能,都在 C++上實現了,像是多重繼承這類的觀念,導致原本已經很簡約的C語法,變的進入障礙更高。 PS.你知道C語言為何要那麼簡約嗎? 因為在C發展的那個年代,很多時候無法用鍵盤直接輸入程式執行的,是透過讀卡機把程式輸入電腦裡,而字寫得越多,讀卡紙片就越厚,所以大家盡量把語法搞得越簡單越好... 而Java的出現,簡化了C/C++複雜的語法和架構,有那麼一點去蕪存菁的意味,更貼近商用(注意,是商用)領域,加上那一年internet盛行,所

VB當中的新語法(四) - Lambda

這個世界上很多東西是沒有道理的...不知道你是不是也會這樣覺得。 老實說,過去寫程式寫慣了的人,一開始看到Lambda運算式會覺得怪怪的,我先講它的意義,官方說法是,Lambda運算式可以簡化程式碼的寫法、增加可讀性(老實說我覺得簡化程式碼的寫法這件事情很少跟增加可讀性可以一起發生,通常程式碼越簡化,可讀性就越差...),對Lambda運算式來說,簡化程式碼寫法可能是做到了,增加可讀性我就很猶豫了,不過如果真要說起來,Lambda運算式的出現(或是為什麼在這個版本出現)其實說穿了還是跟LINQ有關... 先寫一個簡單的Lambda: Function(para1 As Integer) para1 + 1 MSDN上說,Lambda運算式是沒有名稱的函式,所以上面名稱不見了,return也不見了,其實你可以想成: Function 函式名稱 (para1 As Integer) Return para1 + 1 上面這樣的簡寫,只是把函式名稱和teturn拿掉,這樣就比較容易懂了。 例如,原本應該寫成    '計算身高體重的BMI值    Function BMI (height As Single,weight As Single)      Return weight / ((height / 100) ^ 2)    End Function 就變成(拉成一行)    Function(height As Single, weight As Single) weight / ((height / 100) ^ 2) 對照著寫就比較容易理解了,函式名稱不見了, 自然End Function也不見了,Return也不見了,差不多這樣,就是Lambda運算式了。 注意:另外一個很重要的是,函式寫在程式碼區塊外面,Lambda運算式則混雜在一般的程式碼裡面。(往下看,就會知道意思) 好,定義出來的Lambda運算式怎麼用呢? 最簡單的方式是在Lambda運算式的外面加上 ( ) , 變成 ( Lambda運算式 ) 然後再把參數給進去,所以就變成: (Lambda運算式) (Lambda運算式需要的參數值) 例如:   Dim ret As Single   ret = (Function(height As Single, weight As Sing

最後的演講(The Last Lecture)

最近買了一本書,最後的演講(The Last Lecture),老實說,最近發生的事情讓我對人生的不可測開始有著另一層看法,有時候營營汲汲,所換來的回頭看看實在也不知道到底值得不值得,不過說真的,事情發生了,才會有這個想法,有些事情不是臨到頭了,恐怕一輩子也沒那個感覺。 回頭說這本書,書附贈了一片DVD,其實已經很多人在網路提起這個故事,我想說的是,當你看這個影片的時候,主講者在台上侃侃而談自己的故事時,你不知道的是,其實他有數次感到身體相當不舒服,幾乎要倒下,但還是硬撐完了全程,所以你看到的,是一個看似正常人一般的演說者,而不是一個生病的人。 讓我想到我小時候的英文老師,外表看起來很像一個糟老頭(年紀很大、臉上有點像是沒剃乾淨的白色的鬍鬚),他第一次走進教室我還以為是工友走錯了,但是沒想到他就是我們的英文老師,進門第一句話就是道道地地的帶有英國腔的英文(如果我沒記錯他是留學英國的),說真的,事隔多年,我對他沒什麼印象了,只記得他不只一次的說如果他可以選擇,他希望要死在講台上(因為他覺得自己教書很多年了,老囉~),他說他當了一輩子的老師,再也沒什麼比死在講台上(例如突然間心臟病發作)更圓滿的了... 自己有幸當講師之後,開始覺得也許站在講台上真的是需要一點對演說、教育由衷的喜好和興趣的,特別是和學員之間的互動,往往是吸引講者能夠一直努力下去的動力,我喜歡帶稍微小班一點(就是我有機會可以跟每一位學員說話的那種編制)的學員,很慶幸絕大部分的資訊課程都是這個編制,在這個過程中,其實是很愉快的,如果同時又真的能夠給學員一些幫助,那我覺得就更加的完美了。 每一個工作都能夠對社會有一些幫助,不過很少像教育工作那麼立即和明顯,我相信有一天回頭看,應該會讓自己感到安慰。人生並不長,時間有限,在埋首程式堆裡面的生活當中,偶而能夠和其它的開發人員有一些互動,又能不時幫助人,其實是蠻令人欣慰的。 BTW,這本書和影片可以買來看看,挺讓人深省的。我們有太多的書籍告訴我們怎麼寫程式、怎麼賺大錢、不過關於怎麼過日子的書籍,恐怕相對的少了很多,有時候放在書店的架上也不是非常顯目,不過,留一點時間給自己,看看這類的書籍,對自己好一點,因為有時候人生,並不全然會照著我們自己所編寫的劇本上映。

VB當中的新語法(三) - 擴充方法

圖片
在VB的幾個新語法當中,擴充方法也是很有趣的功能之一,某種角度來說,它讓我在上課時幾乎已經要丟一在一邊的Module關鍵字又重新開啟了另一個重生的機會。 簡單的說,擴充方法就是以額外的程式碼替原有的Class(不管你有沒有這個Class的原始程式碼,不管是原本系統的Class或是你自己寫的)增加新的Method。 作法是開啟一個新的Module檔案,並在當中建立一個Method,例如: Module IntergerExtensions    <System.Runtime.CompilerServices.Extension()> Public Sub Show(ByVal para As Integer )     MsgBox(para)   End Sub End Module 請注意,一定要宣告在Module當中,並且加上 <System.Runtime.CompilerServices.Extension()> 特徵關鍵字 。由於這個函式的參數是 Integer ,如此一來,就會自動幫原有的 Integer 類別增加了一個 Show 方法,因此你在撰寫主程式的時候,會發現只要用到integer的變數,打個點,就可以自動帶出 Show 方法: 當然,並不是Integer就真的有這個新的Method,更不是繼承的觀念,純粹只是Compiler和IDE進行某種程度的 "混淆視聽" 之後的結果。IDE負責讓你在開發的時候有intellisense可以用,Compiler則負責去解讀這種特殊的語法轉換成一般呼叫函式的程式碼。 使用的方法就是那麼簡單,即可讓原有的Class增加新的功能,別忘了,使用前要在主程式中Import這個Module。例如: Imports WindowsApplication1.IntergerExtensions (由於我的程式的root Namespace是WindowsApplication1,而Module Name是IntergerExtensions,因此我會這樣寫) 說真的,這個功能我覺得放在Module當中還蠻有點道理的,因為擴充方法其實是Public Shared 型別,且實務上我們可以把一些常用的Method(Sub或Fucntion)集中在一個或數個Module當中,賦予適當的Module Name

從Silverlight 2.0的新功能,遙想Web的未來

圖片
  Silverlight 2.0比起1.0令人驚艷不少,在1.0當中幾個過去被談到缺少的機制,在2.0大幅度補齊,其中與開發資料庫應用程式有關的,莫過於Data Binding技術以及IsolatedStorage機制。   透過Silverlight 2.0當中的Data binding技術以及IsolatedStorage機制,我們可以很輕鬆的建立出類似左邊這樣的用戶端資料處理介面( 按這裡試用看看 ),不僅程式碼相當簡單(不到百行吧),而且在UI上更勝ASP.NET與傳統的WinForm程式一籌。   除此之外,程式碼的撰寫以及維護和除錯,都比ASP.NET要容易不少,過去很多台灣和大陸地區的開發人員對於在Silverlight 1.0當中的中文字顯示和輸入問題的疑惑,相信在看到這個2.0的範例後這些疑慮你可以一掃而空。   透過IsolatedStorage機制,讓開發人員可以大方的把需要保存的資料存放在用戶端,不需要在意它的存放位置。若您不喜歡這樣的方式,你也可以透過WCF從伺服器端將需要的數據下載,暫存在用戶端的記憶體或是HD當中,透過程式碼來操作。   除了UI絢麗性與親和度大幅超過ASP.NET之外,我個人比較喜歡的原因是靈活性和自由度,有點讓我回想起從前開發WinForm的隨心所欲的日子.....   說真的,HTML給ASP.NET Developer的限制,以及為了模擬WinForm或是提高Web開發環境中的UI的效能而硬生生所加入的AJAX技術,已經讓原本應該要 "簡單輕巧" 的Web應用程式變的龐大而複雜不已,面對這樣的問題,有兩派不同的路線正在彼此較勁。   如果你觀察ASP.NET這幾年來的演變以及ASP.NET 3.5 extensions的出現,你會發現這一派儼然已經透過種種疊床架屋的技巧,把原本簡單的ASP.NET演變成可以開發大型應用程式的技術平台。本來ASP.NET在2.0前的訴求就真的比較適用於開發小巧的網頁或是輕量級的企業入口網站或是portal應用(OK,也因為這樣很多case被JSP搶去了),但是現在在3.5 extensions當中加上了LinqToSQL(以及ADO.NET Entity framework),加上了Data Services、加上了Dynamic Control、加上了MVC

Silverlight 2.0 中的 UserControl 開發與使用方式

圖片
先前介紹過的Silverlight 2.0 中的 UserControl 開發與使用方式的教學影片已經上檔了,請參考底下網址,而詳細的內容說明在本期的RunPC當中介紹。 http://www.microsoft.com/taiwan/msdn/elearning/Teaching/Silverlight/video10/

關於Microsoft .NET Framework 3.5 Service pack 1 Beta與ASP.NET 3.5 Extensions

Ok, bate 1 出現了,那距離正式推出又邁進了一大步。 Microsoft .NET Framework 3.5 Service pack 1 Beta當中有什麼呢?對於 ASP.NET開發人員來說,其中包含了一些相當重要的部分: ASP.NET Dynamic Data ASP.NET AJAX 增強功能 ASP.NET AJAX script combining ADO.NET Data Services The ADO.NET Data Services Framework 上面這些玩意兒根本就是從ASP.NET 3.5 Extensions搬過來的,正如同我們過去說的,目前MS的改版越來越快,ASP.NET 3.5這個版次其實有點吊詭,儘管跟著NET Framework把版本編號帶到了3.5,但是在新功能上卻沒有太大改變,而真正石破天驚的則是ASP.NET 3.5 Extensions, 如果依照目前我們所看到的態勢,ASP.NET 3.5 Extensions中的上述幾個功能,將會出現在.NET 3.5 Service pack 1 當中。 在三月的時候,我曾在微軟的研討會當中跟各位介紹ASP.NET 3.5 Extensions,接下來我會在 BLOG上花更多的篇幅討論關於ASP.NET 3.5 Extensions(也就是.NET Framework 3.5 Service pack 1 )的部分,ASP.NET更多的新功能看來正要開始出現。

VB當中的新語法(二) - 區域型別推斷 與 XML

圖片
當你看完筆者這幾篇關於VB的新語法介紹之後,你會發現其實都跟LINQ有很密切的關係,儘管有些功能看似語法上的新擴充,但是實務上會使用到這些語法的場合,大多跟LINQ多少脫不了干係呢~ 接著我們要來看的第二個VB新語法稱為『區域型別推斷』,簡單的說,就是當你宣告變數時不指定型別的時後編譯器會自動幫你決定變數的型別,而不是一律的以object作為變數的型別,運算時再透過boxing來解決。 過去,當你鍵入底下的程式碼: Dim v 這個變數v是Object型別,在舊版的VB 6.0當中,則是variant,如今,當你在編輯器當中輸入這樣的程式碼: Dim v = 3 你的變數v型別會自動設為integer,倘若是: dim v = 3.14 你的變數v型別會自動設為double。 總括來說,編譯器會依照初始值來決定變數型別。 甚至,變數的型別也可以由函式的回傳值來決定,例如: Dim ret = getBMI() 嚴格說起來,這些動作都是編輯器自動幫你做的, 對程式碼來說沒有什麼太大的影響,有一些部分也是因為在過去VB本來就會進行相當多的隱含型別轉換,所以這些動作對開發人員來說沒啥特別的感覺,但是實務上它可以加快程式運行的速度(因為不需要再做這些型別轉換) 然而,你可能看到更多的使用場合是把這個機制和LINQ的查詢回傳值混在一起,再回頭看前幾天介紹的LINQ語法: '查詢BMI值大於25的人 Dim result = From c In matrix Where c.BmiValue > 25 從這邊你會看到透過查詢語法所回傳的值,也是透過這樣的機制來建立的。總的來說VB在語法上的更新,蠻多都實現在LINQ相關的應用上,這也是先前說過VB新語法與LINQ幾乎脫不了干係。 另外,由於有型別推斷,你可以在VB當中直接這麼寫: 你可以直接把XML以Copy Paste的方式貼到程式碼編輯區,然後定義一個變數來承接,由於具有型別推斷的功能,因此xmlData變數會被定義成xElement型別,寫起程式來方便多了。

VB當中的新語法(一) - 匿名型別

上周跟大家介紹了LINQ在VB當中的應用之後,這次順帶介紹一下VB在這個版本中的改變,在VB 2008當中,配合LINQ新增了許多新的語法,底下這也是VB在建立物件時的新寫法:   Dim stud1 As New students With {.name = "David", .score = 100} 上述指令會建立一個students 物件的實體,並且填入預設的值。 這樣的寫法簡便不少,該物件的類別宣告如下: Public Class students   '這邊應該寫成property, 只是我稍微偷懶一下寫成field,不影響demo   Public name As String   Public score As Single End Class 上面黃色程式碼這樣的方式我們稱之為具名型別的物件宣告,既然,有具名型別,就一定會有匿名型別的宣告方式,語法如下: Dim stud2 = New With {.name = "David", .score = 100} 這個就炫了吧,不用型別照樣可以宣告出一個物件實體,這個在VB 2008稱為匿名型別,其實和LINQ有相當大的關係,幹嘛搞出一個匿名型別呢? 它可以方便我們不需要事先建立一個類別,就可以具有物件實體,會有這樣的需求? 某些時候,我們只想要產生一個物件,並且隨手就拿來用了,我們可能懶的宣告一個物件的類別,然後再用New指令產生一個物件實體,也有時候我們只是希望建立一個臨時的物件來存放特定資料處理(查詢)之後的結果,最典型的例子就是LINQ(容後再述),因此匿名型別就應運而生了。 匿名型別並不特別也不神奇,實現的方式很簡單,Compiler 會自動依照你的需要,幫您建立一個類別Class,幫你自動決定類別中屬性的型態。這個自動建立的類別沒有名稱(因為是編譯階段自動建立的,所以沒名稱也不打緊,反正我們在程式碼當中也不會用到這個類別,只會用到這個類別產生的物件實體)、這個類別會直接繼承自 Object,並且包含您在宣告物件時指定的屬性。 這個特性是一個基礎,它讓LINQ查詢的結果可以自動建立成一個物件,例如我們在 2008年6月18日 星期三 介紹的LINQ功能中,有一段程式碼: Structure BMI     Dim name As String  

Sharepoint 開發工具:Visual Studio Extensions for SharePoint Released

我不知道目前台灣有多少開發人員(或是MIS team)有使用MOSS,如果你是developer,也有使用MOSS的習慣,那你可能會對底下這個消息有興趣: Visual Studio Extensions for SharePoint Released (英文版, 簡中轉繁中之後的內文如下) SharePoint正迅速成為企業利用微軟.NET技術構建內部網站(EIP)的CMS(content management system)平臺。SharePoint雖然內建很多功能,但還是需要使用ASP.NET進行大量的客製。為了加快這種客製工作,微軟最近為SharePoint開發人員發佈了幾個有用的資源。 為了讓SharePoint專案易於開發,微軟創建了Visual Studio Extensions for SharePoint。 VS 2005版本 的已經於二月發佈,而 VS 2008版本 就在前幾天也發佈了。針對VS 2005版本(1.1版)的 User Guide, Samples, and Walkthroughs 現在已可下載。而VS 2008版本(1.2版)有望在這個月末發佈。 微軟還建立了一個新的SharePoint網站,專注于提高開發人員學習相關技術的速度。這個網站目前還在建設之中,雖然已經列出了大量有趣的主題,但還沒有足夠多的內容。當這個網站的建設完成後,讀者就可以看到每個主題都會包含一個虛擬實驗室、網路廣播、快速入門嚮導、白皮書和可供下載的動手試驗等。(David註:應該是我先前看過的一個線上Lab,有點像認證考試的那種)

有人問起C#的LINQ寫法...

有人問起C#的LINQ寫法...也很簡單... 關鍵的地方稍微修改一下,差不多是底下這樣...   //查詢BMI值大於25的人   var result = from c in matrix where c.BmiValue > 25 select c;   //顯示名稱   foreach (string item in (from c in result select c.name)) {     MessageBox.Show (item);   } 簡單吧,說真的,截至目前為止,我始終覺得LINQ是一個方便好用的東西,如果你的程式碼沒有太多向後相容的考量,且開發團隊也打算用.NET繼續開發下去,截至目前為止我找不到理由不在程式碼當中使用LINQ,這也是我對於讀者詢問的想法和回答。

LINQ其實很簡單

會寫這一篇是有原因的,不只一次有人問我,要不要學LINQ呢? LINQ看起來很難耶...為何要放棄以前的SQL來學LINQ呢?到底LINQ的意義是什麼? 反正就是有一缸子的問題,說真的,由於最近也沒時間寫本LINQ的書,但是工作累了順手寫寫BLOG還可以,所已針對LINQ這個主題,和大家有一些分享。 其實對於VB開發人員來說,掌握LINQ說真的比C#來的簡單很多,主要的原因就是VB當中有非常多"自動"的隱含型別轉換,是不需要寫程式碼的,也因此操作起來比起C#真的容易不少。 要掌握LINQ的精神,得要知道LINQ出現的目的,其實很簡單,只有一句話,就是希望 "能夠達成以單一的一種語法來查詢多種不同的對象" 的目的。這其來有自,過去我們要查詢資料庫要用SQL、要查詢XML要用XMLDOM物件、要查詢AD又要用另一種不同的查詢方式,總之,查詢這個動作一天到晚出現在電腦程式碼當中,但是開發人員卻要學習多種不同的方式,很困擾,所以LINQ就出現了。 所謂的LINQ,是 .NET Language Integrated Query,也就是在.NET的開發語言當中,直接把查詢的技術給 "整" 進去,目的就是要加快搜尋(速度)與降低開發成本。 所以從.NET 3.5開始, LINQ變成.NET標準語法的一部分,OK,就是這樣,所以我們來看看 LINQ怎麼查詢,首先,為了展示LINQ,我定義了底下這樣的結構: Structure BMI   Dim name As String   Dim height As Integer   Dim weight As Integer   Dim BmiValue As Single End Structure 你用類別也可以,總之上面的結構用來表達一個人的身高,體重,名稱和BMI值。 接著,我撰寫底下程式碼: '定義陣列 Dim matrix(5) As BMI '填入測試資料 matrix(0).name = "王小寶" matrix(0).height = 170 matrix(0).weight = 65 matrix(1).name = "韋大寶" matrix(1).height = 176 matrix(1).weig

Silverlight 2.0 beta 2 繁體中文版開發工具

圖片
很難得的,Silverlight 2.0在Beta 2的版本就看到了專屬的中文版開發套件(SDK),不禁令人感動不已,在這要先給台灣微軟、Moli、以及辛苦的RD同仁一個大大的掌聲。 帶著興奮的心情,趕快下載來試用一下,咦?安裝時間有點長唷,比英文版的長了不少...???不過沒關係,總是裝完了,來試試看。喔~連建立專案範本的對話視窗都是繁中的,真是太感動了。再把前幾天開發的那個紅綠燈控件拿來給它試試看,看起來不錯唷,配合VS2008 繁體中文版 ,一切相當順暢,沒啥大問題。所以,很放心的跟大家分享囉。 連建立專案範本的對話視窗都是繁中的呢,真是令人動容啊... 安裝過程也是繁中的唷... Microsoft Silverlight Tools Beta 2 for Visual Studio 2008 繁體中文版 下載位置: http://www.microsoft.com/downloads/details.aspx?FamilyID=50a9ec01-267b-4521-b7d7-c0dba8866434&displaylang=zh-tw 後記:說真的,我還是習慣繁體中文版的操作環境,大概因為我不是那種喝過多年洋墨水的歸國學者,也還沒有去"內地"待過太久...不過,雖然由於工作的需要,活在英文、繁中、簡中的各種混雜文件和郵件之中已經是常態,但是英文和簡中文字給我的感動總是少之又少,頂多就是理解意思而已,而繁中文字給我的親切與情感,恐怕是其他文字很難取代的,不過寫到這裡,也有一點小小的擔心,隨著使用人口的變少,不知道未來十年二十年之後,繁體中文的命運會如何? (最近聽說有人還在台灣學京片子,會不會哪天也開始學簡體字???) 隨著大家(包含我自己偶而也不小心)把資料庫稱為數據庫、把呼叫稱為調用、把控制項稱為控件...我的憂心越來越多... 後記二: 很多人問到安裝問題,請注意,要移除所有的Silverlight beta、SDK、1.0,總之移除所有跟Silverlight字眼有關的東西,才能安裝Silverlight_Chainer.exe

建立Silverlight 2.0 控件(User control)

圖片
Silverlight 2.0有一個非常重要的部分,就是控件技術的出現,透過可自行定義開發的控件建立機制,Silverlight 和 ASP.NET一樣,可以自行定義可重用的 UserControl,這對於開發人員有著相當重要的意義,這表示物件化的設計、ReUse與大量的開發開始變的可能。 有這些作為基礎,我們才有可能真正透過Sivlerlight 2.0建立中大型的應用程式或是RIA,也才有可能確保投資可以延續並且在團隊開發當中累積資源。 這麼重要的機制,當然要給他試用一下,左圖是我嘗試建立的traffic light控件,模擬一個紅綠燈,一樣具有屬性、事件、方法...可以跟外部的程式互動,畫面中的Button和TextBox則是Silverlight 2.0當中本來就有的控件,透過.NET Code的開發方式,你可以用C#或是VB,確實比過去1.0時代用JavaScript和AJAX方便很多。 在該控件在被使用者點選之後,會觸發一個Click事件,這個事件是我們自己建立出來的,我們可以在這個事件當中改變TextBox內的值(你試用看看就知道)。當然,我們也可以在其他控件(例如按鈕)當中來改變燈號(透過traffic light控件的屬性),總而言之,這就是一個標準的控件啦。 您可以點選[ 這裡 ]測試一下這個控件,關於程式碼的說明我會在七月的Run!PC當中介紹,如果您需要Source Code,請私下偷偷Mail給我。

Silverlight 2.0 beta 2

圖片
你知道Silverlight 2.0 beta 2推出了嗎? 是的,又是一缸子的增強,但是安裝檔案卻沒有膨脹,有哪些改變呢? 第一個,控件變多了,目前已經內建多達30多個,而且根據S老大的說法,未來預計提供100多個控件,是.....怎樣,有沒有搞錯???比ASP.NET還多? 而且設計好的控件還可以自行調整外觀卻不會需要動到控件源碼。(這個特性未來有時間我在寫一個範例介紹) 另外Sockets也支持跨網域了,同時也支援與伺服器端的WCF建立一個雙向通道,透過這樣的機制,不僅Client端可以向伺服器端要資料,伺服器端也可以主動把訊息推送到Client端。 同時,Silverlight beta 2也直接支援了ADO.NET Data Services,不用像3月時我在微軟研討會上寫那麼複雜的程式才能夠調用到遠端ADO.NET Data Services,使用上更便利了。如此一來,使用遠端資料庫裡面的資料完全不是問題。 另外,DataBinding也增強了,很多學員在Silverlight 1.0時代所面對的資料庫Issue現在可輕鬆的解決,這些內容,我會另外寫些範例和短文介紹。 至於Silverlight 2.0 該如何使用、怎麼著手開發、我在這個月的Run!PC已經有說明,如果讀者有興趣可以參考。