發表文章

利用Silverlight實現網頁檔案上傳進度

  技術的變化總是讓人目不暇給,有時候回頭想也挺令人感慨。   我記得我一年多前,為了透過AJAX技術實現檔案上傳的進度機制,老實說吃了不少苦頭,當Silverlight 1.0出現的時候, 我針對這個功能也嘗試做了一個範例,但是礙於JavaScript在用戶端龐雜的程式碼,因此這個範例始終沒有跟大家見面(所以在Sivlerlight 1.0的書籍中當然您也沒有看到),時至2009年,最近終於有了一點時間,花了一兩天做了一個Silverlight 2.0的檔案上傳類別, 透過 Silverlight 2.0實作這個功能確實是比起用AJAX輕鬆了不少,例如透過Silverlight 2.0的功能我可以輕鬆的調用Web Service, 我可以相當容易的針對用戶端的檔案作存取, 不需要礙於Browser對於用戶端檔案沒有權限而費盡心思的處理安全性議題,檔案的上傳過程中難免也會有timeout或是其他的Exception, 透過Sivlerlight 2.0撰寫的用戶端程式碼, 要處理這些Exception容易很多, 也因此, 在Silverlight 2.0推出之時(嚴格說起來是1.1那時候), 我就在想, 或許對於大多數的ASP.NET開發人員來說, 檔案上傳進度才是我要透過Silverlight迫切實現的一些關鍵技術, 其他諸如很炫的UI? 2D或是3D動畫效果, 很抱歉, 老實說其實我對這些沒多大興趣...這些屬於加分用的功能, 可以讓我的產品賣相好一點, 但不太可能憑這些功能幹掉對手, 且這部分交給Designer來完成就好...(請原諒我的開發人員本位主義和要不得的程序員心態...^_^)   so, 或許你有興趣試試看底下這個prototype, 我會在快要寫完的Silverlight 2.0-3.0書籍中介紹(如果時間來的及, 或許我會先在下一期的RunPC介紹相關的程式碼開發方式), 另外由於Hosting的限制, 請不要上傳超過1.5M大小的檔案, 不然很容易把我用很便宜的價格租來的Web Server拖垮, 傳一兩個檔案玩玩就好, 這不是完整版, 所以也可能有一些bugs, 如果有任何問題, 請讓我知道。另外, 請不要上傳有任何安全性疑慮或爭議的檔案, 我無法保證你上傳上來的檔案的安全, 請留意。 [Upload File Progress with...

景氣寒冬中的小聖誕樹

圖片
一年當中,我覺得最讓人喜歡的節日莫過於聖誕節了,對我來說,聖誕節一直以來都是有著多重意義的,這個節日不僅讓人覺得溫馨,也有一點數算過去一年的點點滴滴,然後把希望寄放在即將來的另一年的感覺,好不容易,緊繃了一年,一切的勞苦愁煩似乎轉眼成空,終於在一年中剩下的幾天當中可以放下忙碌,讓腳步緩一緩,從容地深深吸一口氣,讓自己準備好心情迎接另一年的開始... 很有趣的是,每一年這個時間,不管你在台北街頭的哪一個位子,商家們總是很有默契的,一起放出了聖誕歌曲,讓你想忘了這個節期都很難,大家一同把塵封了一年的聖誕樹重新擺出來,景氣好的時候,樹一顆比一顆大,有一年,我特別抽了一天空,當天什麼事情都不做,就在台北街頭找聖誕樹進行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?   原因有很多,安全性、效能、使用上的便...