發表文章

目前顯示的是 2009的文章

Multi-touch? Gesture? how about this???

會不會每天接觸電腦,透過開發工具撰寫程式的我們,反而讓電腦世界制約(抑制扼殺)了我們的想像力? 或許,這一切真的有不同的可能性?

Silverlight 4 中的RichTextArea 支援

Silverlight 4 beta當中出現了一堆社群中期待很久的好功能,針對這個部分,我忘記是SL的產品經理還是開發Team的誰,對於被訪問到SL4的新功能時,還『謙虛』的說:這沒什麼,我們只是把社群提供的Wishlist中的Top 10(還是多少我忘了),實作出來而已。 這一實作,就增加了WebCam, HTML Browser的支援, Printing, RichTextArea...等功能。一個個都直接命中開發人員期待(還是抱怨 ^_^)已久的需求。 先前介紹過了WebCam與列印,今天要介紹的是RichTextArea,這也是社群強烈要求的功能之一,看來這次是沒有落空了。 RichTextArea和過去我們熟悉的RichTextBox一樣,可以控制文字的B, U, I, 當然也可以改變文字大小、字型、顏色...承襲SL的一貫風格, RichTextArea當然也支援插入圖形和HyperLink,甚至任何的物件(例如Rectangle...),這讓SL可以輕易寫出Windows Form或Web Form沒法做出的編輯器。 控制的方法很簡單,程式碼如下: private void button_B_Click(object sender, RoutedEventArgs e) { richTextArea1.Selection.SetPropertyValue(TextElement.FontWeightProperty, FontWeights.ExtraBold); //設定粗體 richTextArea1.Focus(); } private void button_U_Click(object sender, RoutedEventArgs e) { richTextArea1.Selection.SetPropertyValue(TextElement.TextDecorationsProperty, TextDecorations.Underline); //設定底線 richTextArea1.Focus(); } private void button_I_Click(object sender, RoutedEventArgs e) { richTextArea1.Selection.SetP...

Silverlight Multi-Touch研討會

感謝許多朋友們參加了昨天12/17的 MSDN研討會 , 在這個場次中我大致上介紹了Silverlight開發Multi-Touch Application的概念與一些技巧,研討會中的投影片和要提供給各位的Component我會在整理完成後放到blog上,預計周末前可完成。 很感謝大家天氣那麼冷還到場參加,會中看到了很多先前的老朋友以及之前沒見過面的朋友們,很謝謝各位的支持。 BTW, 先前在Blog上沒有提醒大家是因為報名已經滿了,我也收到許多中南部的朋友們的建議,我會跟微軟反映,盡可能爭取到能夠到中南部舉辦的機會。謝謝大家的支持。

雲端運算說明影片

最近在幾個演講的場合談到雲端運算,因此也隨手上網找了一些影片或介紹,發現底下這個影片很簡潔扼要的清楚的說明了雲端運算,因此分享給大家: 他從一般End-User的角度來介紹何謂雲端運算,以及對於使用者(或企業用戶來說有哪些好處)說明的清楚易懂,算是不錯的影片。 英文版

Silverlight 4 中的WebCam支援

在剛推出的Silverlight 4 beta版中,終於支援了大家期待已久的WebCam功能,底下是測試頁面: [ 測試 ] 但請注意,測試前需先安裝SL4 Developer runtimes: Windows 然後才能執行,Webcam是建立網路服務應用程時相當需要的功能。 整個程式的設計方式並不複雜,主要的程式碼片段如下: private void Button1_Click(object sender, RoutedEventArgs e) { //判斷目前啟動狀態 if (!CaptureDeviceConfiguration.AllowedDeviceAccess) { //透過RequestDeviceAccess要求使用者允許使用WebCam(這時畫面上會跳出Yes/No詢問視窗) if (!CaptureDeviceConfiguration.RequestDeviceAccess()) { MessageBox.Show("can't access device."); return; } } //建立CaptureSource CaptureSource CaptureSource = new CaptureSource(); //建立VideoBrush VideoBrush vb = new VideoBrush(); Grid1.Background = vb; //將VideoBrush的Source設為CaptureSource vb.SetSource(CaptureSource); //start web cam CaptureSource.Start(); ...

SL3當中的Out Of Browser功能

圖片
前陣子有讀者問到SL3的Out Of Browser功能,我才發現我在Blog上似乎跳過了,因為這個功能雖然是SL3的重要新功能,但是因為相對而言是相當簡單的,所以可能被我略過了。 Out of Browser是SL3當中的重要功能之一,它讓SL應用程式在瀏覽器外執行。不過實際上使用此功能卻相當簡單,只需要在Silverlight專案上按下滑鼠右鍵,選擇Properties,在顯示出的屬性視窗上就可以設定了: 相關的細節可以點選[Out-of-Browser Settings]按鈕進行設定。 絕大部分的參數細項,均可透過設定指定完成。設定好了之後,這個SL應用程式就支援Out of Browser。這時候,使用者可以隨自己的需要,將該SL應用程式安裝到用戶端,安裝時只需要在網頁上按下滑鼠右鍵,就會出現底下這樣的選單: 點選『安裝到此電腦』,使用者即可直接將應用程式安裝到用戶端,甚至會為您建立桌面捷徑或是開始功能表捷徑(依照使用者自行選擇而定)。 除了以設定的方式為SL應用程是添加Out of Browser功能之外,我們也可以透過底下這樣的程式碼,將SL應用程式安裝到用戶端: '用戶點選安裝鈕 Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) '安裝在用戶端 If Application.Current.InstallState = InstallState.NotInstalled Then '安裝 Application.Current.Install() End If End Sub 從上面的程式碼您可以發現,我們可以透過『Application.Current.Install()』將SL應用程式安裝在用戶端,也可以透過『Application.Current.InstallState』來得知目前該應用程式的安裝狀況。 除了取得應用程式是否已經安裝到用戶端等資訊之外,幾個與Out of Browser有關的資訊取得方式我們分別列舉如下。 首先,我們可以透過底下的程式碼,來判斷目前用戶端...

在windows 7中安裝Loopback Adapter

圖片
先前曾經介紹過透過Loopback Adapter讓VPC和host透過網路相連的方式[ 參考這裡 ],透過Loopback網卡,可以很輕易的讓你的主機與VPC以區域網路的方式相連,這對我來說相當重要,因為我常常把VPC當作Server(不管是IIS, SQL Server, 或是其他Server),而把自己的NB當作工作環境(Client)。 先前都相安無事, 不過換成W7之後,突然找不到安裝Loopback Adapter的地方(-_-'''), Google了一下,把心得和大家分享。 原始來源網址: http://www.windowsreference.com/windows-7/how-to-install-a-loopback-adapter-in-windows-7/ 首先,請利用管理員身分執行cmd.exe: 接著在命令列模式執行hdwwiz.exe,會出現底下畫面: 請按下一步,接著以手動方式安裝硬體: 接著選擇網路介面卡: 確定之後下一步: 這樣就OK囉。

office 2010 the movie : 很有趣的影片

office 2010 the movie : 很有趣的影片,還高畫質咧... 不過外國人的幽默有時候還真不好懂...

幾個我喜歡的爵士(Jazz)樂台

除了上回我介紹過的音樂電台之外,我最近又發現了幾個還不錯的網路電台,網路電台有兩種類型,一個是純網路電台,沒有在真實世界FM/AM發聲,只有在internet上傳遞,另一種是傳統的AM/FM,具有真實的廣播網路,然後透過網際網路發聲。 不管是哪一種,你會發現現在媒體是全世界傳播,無國界已經是一個趨勢,這十年毫無疑問的網際網路改變了我們的生活和世界。 最近發現的電台網址是:http://www.live365.com/cgi-bin/directory.cgi?genre=jazz 嚴格說起來它是一個電台的集合,我覺得有趣的是,蒐集一些電台變成清單,也可以變成一種生意,看來網際網路上可玩的business Model真的很多。 不過不管如何,對我來說,免費的東西總是好東西,況且台灣能聽到好爵士樂的地方真的不多。所以這幾個電台現在變成我的最愛,而且台北3.5G上網不是問題,電台還能隨身攜帶,挺好的。 [ 試試看 ] 你猜,我最常在什麼時候聽這個電台? 我肯定你猜不到,是洗碗的時候,音樂讓洗碗都變成一種享受...

Silverlight 4 中的列印功能

過去的Silverlight 1,2,3,經歷了22個月,改版速度快的讓人吒舌了,但是我相信沒有比PDC的時候SL4 beta突然推出更讓人訝異的事情了,真的,我們不是前陣子才在SL3 Launch嗎? SL4 beta已經出了? 真是驗證了我以前烏鴉嘴講的揣測,看來Silverlight的改版硬是要直接追上.NET Framework的進度,一起邁向 4.0。 不過我們更關心的,是SL4增加了哪些功能? 第一個想跟你分享的,是Silverlight的列印機制,SL4提供了一個簡單到不行的概念,但其實還真的蠻實用的東西。 請參考底下這個測試頁面:[ 列印功能測試 ] 但請注意,測試前需先安裝SL4 Developer runtimes: Windows 然後才能執行 你會發現這個小程式很輕易的SL把畫面列印出來了,這個功能怎麼完成? 看看程式碼,簡單到不行: Imports System.Windows.Printing Partial Public Class MainPage Inherits UserControl Public Sub New() InitializeComponent() End Sub '列印物件 Private WithEvents pd As PrintDocument 'PrintDocument的PrintPage事件負責處理要列印的東西 Private Sub pd_PrintPage(ByVal sender As Object, _ ByVal e As PrintPageEventArgs) Handles pd.PrintPage e.PageVisual = Me '將表單本身(me)列印出 e.HasMorePages = False '後續沒有其他頁面要列印 End Sub 'Button1被按下 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.C...

Silverlight 4 beta 登場 : 此時無聲勝有聲, 一切盡在不言中...

http://www.silverlight.net/getstarted/silverlight-4-beta [ 懶得看英文? ] http://www.techweb.com.cn/news/2009-11-19/474275.shtml 你認為該有的,過去卻沒有的,現在都有了, 列印, 滑鼠右鍵, WebCam, 拖曳檔案, 驗證與安全性, RichtextBox, 剪貼簿, 輸入法支援... 每回PDC總要要丟出一些令人訝異的東西...Anyway, 不多說了, 此時無聲勝有聲, 一切盡在不言中... 以下節錄自Tim's Blog • Visual Studio 2010 Beta 2 or Visual Web Developer Express 2010 Beta 2 (pick one) • Silverlight Tools for Visual Studio 2010 • Expression Blend for .NET 4 Preview – for authoring Silverlight 4 and WPF 4 applications • WCF RIA Services (formerly .NET RIA Services) (NOTE: This is actually included in the SL Tools for Silverlight 4) • Silverlight 4 SDK CHM (offline documentation) – optionally online here as well • Updated Silverlight Toolkit for Silverlight 4 • Developer runtimes: Windows and Mac platforms • Silverlight 4 SDK only – not needed if you install the tools above • Silverlight Media Framework – a new, Open Source media player framework for you to use.

Windows Azure 雲端應用程式開發

微軟煞有介事的弄了一個 『Windows Azure 雲端應用程式開發』網站 ,提供SDK和相關資源的下載。雲端應用程式,簡單的說,就是把我們寫的應用程式放在遠端伺服器上(雲端),透過internet串聯,開發人員不需要去管(不需要在意)雲端的實體狀況,雲端設備供應商負責營運、維護、擴充、並確保效能上的最優,而開發人員只需要focus on開發的部分。(甚至有些雲端服務供應上會負責軟體的使用付費或收款) 如此一來,開發人員就可以專心開發,關於程式儲存位置、資料庫實體位置、使用者資訊(組織或帳號)這些都不需要操心,且開發出的應用程式可以在任何有網際網路連線的地方即可執行(當然也可以考慮開發出離線應用)。 而微軟和Google都提供了所謂雲端應用程式開發的SDK和相關資源,也就是說,你只要透過這些開發技術並且符合整個設計框架,就可以開發出所謂的雲端應用程式,放在網際網路上讓眾人執行。 當然,由於程式位於雲端,所以我們不(需要)知道具體的位置,微軟的雲端服務承諾我們24小時不打烊的服務以及最穩定和高效能的平台,只要你的程式放上去,隨即可以在網際網路上執行,但是由於在雲端,因此整個開發並不像我們把程式寫在實體機器或是部屬到IIS這樣的概念,所以沒有實體的SQL Server,沒有實體的資料庫,取而代之的是SQL Data Services,這是一套微軟提供的資料庫服務,我們可以申請帳號,然後免費(目前)存取,你的應用程式資料存放,就透過這組服務來進行,這表示你的資料也在雲端,你也不需要知道他的具體存放位置,微軟(運端服務供應商)負責保障資料的安全性。 同樣的,與組織、人員登入有關的機制,微軟提供了Live Services,負責管理使用者資料及應用程式資源,所謂的使用者資料其實就是過去的Windows Live技術,除此之外,還有一套Microsoft .NET Services,類似過去的.NET Framework,提供開發人員所需要的類別庫(現在是以服務的形式出現)。 有了這些,開發雲端應用就變得相對簡單了。還有不足之處?別擔心,除了微軟之外,還有太多的廠商正準備涉足這一塊,提供各式各樣的雲端服務,讓開發人員使用(當然,以後這些服務都要錢),慢慢的軟體變成租賃性質,甚至我們寫程式時用到的組件、服務,都變成租賃性質,回頭想想,這一切都是建立在全世界的連線基礎intern...

Office Live與雲端技術

圖片
隨著所謂的雲端技術的逐漸熱門(說到熱門,每隔一段時間就有一些熱門或風雲技術,但會不會撐下去則不一定,有的熱門技術沒多久就再也沒也人提起了,不過不知道你有沒有發現,最近一期的Run!PC和商業週刊,都在討論所謂的雲端技術...而Google、微軟等大廠都在用各種不同的方式支援,所以和Live有關的,我們也不免俗的要討論一下),Office也支援了雲端的儲存和共享機制,從現在開始,你可以下載Office Live Update 1.4套件,同時在 這邊 申請一個Office Live Workspace 帳號,完成之後,就可以享受 線上儲存、遠端多人合作等功能。 Office Live Workspace 有點類似MOSS,可以讓多人共享、共同編輯同一個檔案,或是作為團隊(公司、同學、家庭)的文件存放位置,同時你可以針對不同的工作區或文件設定分享,讓有權限的人才可以存取。微軟贈送5G的儲存空間,所以我可以把研討會的投影片直接放在網路上,只要有任何一台裝有office的NB就可以直接工作。 不僅如此,還可以跟Outlook整合,把通訊錄和行事曆拋轉到網路上。 而Office Live Update則讓你可以直接從Word、Excel、PowerPoint直接存取雲端中(Office Live Workspace )的檔案: 你會發現儲存檔案時,除了Local之外可以直接存到遠端: 另外,Office也快推出Web版,有興趣的朋友可以參考[ Video ],Office的Web版配合Office Live Workspace,這顯然會帶來一股不小的改變,看來微軟對雲端真是磨刀霍霍,對於開發人員來說,是否開始需要思考自己的應用程式是否也能搭上雲端的這股浪潮呢。

VS2010中的Silverlight Toolkit

圖片
自從Silverlight Toolkit開始被我歸類為必備品之後,VS2010beta2推出後,我最擔心的就是Silverlight Toolkit是否能夠在VS2010環境中運行,特別是DataForm。 如果有看過我在TechDays或是Silverlight Training介紹DataForm的讀者或網友,肯定也和我一樣,很關心DataForm是否在SL on VS2010的環境中也可使用。 所幸經過測試當然是OK的,使用SL Soolkit Oct 19 2009的版本,在V2010中也可以正常運行: 另一個很有趣的部分是VS2010的開發環境,你會發現圖中Button的上下左右四條線條,是可以點選的,和Blend當中一樣,這可以用來設定Aligment的,依照傳統WinForm設計的概念,就是Dock: 總的來說,至少在VS2010當中已經有所視即所得的開發環境,不需要每次非得切換到Blend進行開發了。 BTW, VS2010切換到Blend的時候會出現一些警告訊息,Blend 3目前是看不懂VS2010的專案檔的,不過你可以選擇忽略這個訊息,Blend 3依舊可以邊修VS2010產生的XAML檔案。

缺席的ASP.NET 3.5

上周有一些時間,到書店晃了一下,坦白說,我已經很久沒有逛(嚴格說起來也不是逛,來去匆匆實在沒有逛的感覺)書店了,老實講,每回去書店我還是會站在電腦書籍那一兩櫃之間徘徊,不管是不是電腦書的專賣店,我都會去看看『市場狀況』,不過最近這一年也少了,主要的原因一方面是電腦書籍的寫作和出版目前不是我的主業,另外一方面是最近也沒出什麼新書,甚至沒有很確定的寫作計畫,所以暫別一下市場也沒啥不好。 這回去,我看到架上有非常多的ASP.NET 3.5新書,新書是指,今年出版的書籍,看了之後不免也有些慚愧,從ASP.NET 2.0之後,我沒有再撰寫ASP.NET的書籍,一方面是Silverlight佔去了我相當多的時間,另一方面是(對,跟大家碰到的問題一樣),技術的改版太快,而書的整體銷量也確實沒有以前好,聽說(我沒有數據,所以真的是聽說),現在在架上所有的軟體開發類資訊書籍一個月銷量的總和,可能還不及過去一本暢銷書一個月的銷量,對這一點我是蠻相信的。但是反觀作者的寫作成本卻很高,拿我的好友奚祭司的經驗來說,扎扎實實的認真寫一本書大概要超過半年,縱使寫作速度快一些的,恐怕3-6個月還是跑不掉,但是現在一本書的銷量可能不及2000本,但是幾乎不到一年就得改版或更新,換算一下,全職作者每個月的工資恐怕差不多一個初階工程師一個月的薪水。 這也是你會發現很多作者其實是Part time在寫書的,大概大夥算算也發現不合,所以還是得找一個『正職』才行。同時你也會發現,市場上多了很多新手作者,或是大陸作者寫的書,原因是對出版社來說,新手作者(或大陸作者)的成本比較低,在沒有把握書一定會賣的狀況下(即便過去的暢銷書作者,也沒人有把握書一定賣的),能省任何一點的成本,都是能繼續活下去的關鍵,氣比別人長,在現在這種書市一片蕭條的狀況下,也是成為最後贏家的重要條件。 從作者和出版社的角度看,是市場變小了,大家都不買書了,或是開發人員(寫程式的人)變少了,至少在台灣正體中文書籍的市場很明顯是這樣,而出版又是一個需要規模的市場,沒有規模是無法獲利的,如果每一本書都只賣個一兩千本,那出版社距離收攤也不遠了。 但是從讀者的角度來說,則是可選擇的書籍少了,且品質或內容變差了,學習的成效變差了,能夠在職場上應用的就更少了,然而在網路上可尋得的資源卻變多了,這也是目前出版市場碰到的一很大的問題。如果閱讀只是為了取得片段的...

Silverlight Multi-Touch程式範例與說明

在這個月(2009/11)的Run!PC當中,我介紹了如何利用Silverlight開發Multi-Touch應用程式,包含如何同時拖曳多Element、利用Multi-Touch技術針對Element進行放大縮小,或是利用Multi-Touch配合Ink達成繪圖或手寫輸入的功能,有興趣的讀者可以參考。

VS2010 Beta 2

先前由於時間的關係,所以實際談VS2010的機會不多,終於,VS2010 Beta2現在開放下載了,同時,這次的下載附帶了一個『Go Live許可』,意思是你可以在特定的授權狀況下,開始以beta2的軟體開發你的產品,某種程度上也意味著微軟對於Beta2品質的信心以及希望能夠在剩餘的時間內廣泛的收取用戶的建議。 依照我們過去的經驗,Beta2某種程度上已經相當接近RTM版本的主要功能,同時,在安裝中您也會發現MVC 2和SL3已經是預設安裝的一部分了。很多新東西可以玩,ASP.NET 4.0的新功能在TechDays 2009場次中我也曾大致介紹,但是由於時間的關係,沒法完整的和大家分享,接下來我會盡可能就ASP.NET 4.0的部分和大家有更多的分享與說明... VS2010 Beta 2下載位置: http://www.microsoft.com/downloads/details.aspx?FamilyID=dc333ac8-596d-41e3-ba6c-84264e761b81&displaylang=en#filelist

不患寡而患不均

剛看完班艾佛列克和羅素克羅所演的絕對陰謀(State of Play)讓我覺得有些感慨,片子還算挺好看,只是我感慨的部分是關於報紙這個載體,當然,這跟劇情無關,只是片中羅素克羅說了一句:『你覺得現在都沒人看報紙了嗎?即便如此,我堅信讀者還是希望知道真相。』 這句話讓我想到這幾年由於網際網路等電子媒體(包含最近很熱門的電子書)興起之後,報社關的關倒的倒、換人經營的也不少,而剩下來(或興起的)報社,報導的真實性和正確性,則同時隨著報社價值觀的改變(銷量導向),和過去我們年輕時完全不同。 這幾年我的感覺是,訊息變多了,內容卻變得空泛了,報紙張數變很多,但是有深度的專訪和內容越來越少;電視節目很多,但是能讓你靜下心來看的越來越少;新聞台變成24小時放送,但是八卦流言和未經證實的小道消息卻變成新聞的主流;台灣書出得越來越多,但是值得放在書櫃上留下來的卻越來越少;可以吃的食物和新花樣很多,但是讓人健康的越來越少,反倒是有問題的食品層出不窮。 這幾年很多事情都變了。過去的價值觀,被持守的正直、公平、誠信、憐憫...在這個時代似乎都只是變成參考,好像成功和口袋賺得飽飽的才是王道。即便被抓到貪汙賄選定罪,但是選舉還是可以有票。 小小的台北市同時存在著一坪上百萬的豪宅和流浪街頭的老漢,有一天我搭高鐵很晚回到台北,才知道原來台北車站底下有那麼多流浪漢。在貧富差距越來越大的社會中,大多數的市民是永遠不會快樂的,幾千年前孟子早說了:『有國有家者,不患寡而患不均,不患貧而患不安』。 公平是穩定社會的碁石,我相信這個世界上大多數的人都想當好人,只是我們須要先建立出一個能夠鼓勵好人的社會。很多傳統的東西,還是值得留下來的...

Silverlight的Ink機制

Silverlight一直以來就有所謂的Ink手寫功能,過去我很少提到這部分,最近有一位讀者問到操作的方式,因此一併在BLOG上介紹。 InkPresenter控制項是筆墨的關鍵,你可以透過InkPresenter的Strokes集合屬性,把一個或多個Stroke物件加入Strokes集合中,而Stroke物件的StylusPoints屬性所表達的就是一群連續的點,用來在畫面上呈現出各種線條。 而透過滑鼠的MouseMove事件,我們可以很輕易的取得滑鼠經過的每一個點,例如: private void InkCanvas_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { //將每一點加入NewStroke NewStroke.StylusPoints.Add(e.StylusDevice.GetStylusPoints(InkPresenter1)); } 如此一來,我們就可以輕易的建立出可以手寫繪製的畫板了。 [ 測試範例 ] [ 完整範例程式碼下載 ] 當然,Ink機制也可以跟Multi-Touch配合,關於這部分在下一期的Run!PC當中會配合Multi-Touch一併介紹與說明,有興趣的讀者可以參考Run!PC 11月號。

找出專案的潛在問題

最近因為一些公司的專案忙得昏天暗地,剛好前陣子是TechDays,整個重心都放在TechDays上,又同時得顧及手上的一些專案工作,實在是有蠟燭兩頭燒的感受,很多事情即便列出優先順序,卻發現實在是時間不足,我常常有一早起來,坐在電腦面前,突然間一天就過去了的經驗,一整天都處於緊繃和忙碌中,偏偏email又一直來,突發事件不斷...似乎沒法喘口氣釐清一下事情的整個狀況。 回顧十多年的軟體開發生涯中,偶而會陷入這樣的情境中,這時候除了救火之外,找出問題的核心變得相當重要,我想起過去一個前輩告訴我的,他分享了他的經驗,因為每一個主管手上的專案和工作都相當多,實在沒有辦法深入到每一個項目中。可是,如果不深入到項目中,怎麼能發現問題在什麼地方呢? 怎麼發現專案哪邊可能有潛在的問題? 並且提早處理呢? 我之所以會突然想到這位前輩的經驗分享,是因為我最近就碰到了這些問題,手上同時有很多專案,坦白說我沒法深入每一個專案,但是畢竟我是負責這些專案的管理者,我得要能夠預先發現問題,確保專案能夠順利進行。 這時候,『問對問題』變得很重要,過去的經驗讓我發現,確實有很多主管問的問題都一針見地,立刻可以掀出專案潛在的問題,讓可能發生的意外無所遁形,我過去以為這些PM大概天賦異稟或是有常人沒有的洞察力,但是我後來發現,其實似乎也有一個方式可以遵循。 其實道理很簡單,當年,那位前輩各訴我,當你發現某些地方越被找理由蓋起來,那些地方就越要掀開來看,包含主管自己對自己的要求也是一樣,人都有惰性,你發現自己越不想碰的問題,越表示那些地方將有著大問題,甚至,有些其實是自己潛意識根本不想去碰的部分。做主管的得要能察覺這些現象。 自己寫了多年的程式碼,也帶了多年的專案,越來越覺得真的是這樣,當某些模塊,在專案討論的時候,總是被成員找理由(理由多半是很合理且冠冕堂皇的)跳過或是忽略,當時程總是被粗估簡化,當驗收條件總是被模糊化,系統流程好像不是很solid,那很抱歉,這些地方多半都有著嚴重問題,特別是我們(開發人員)很喜歡把規格模糊化,或是你在進行專案會議時,發現針對某些部分專案成員的回答似乎總是有些不很確定,那幾乎可以斬釘截鐵的肯定告訴你,這表示這些地方將來真的會有大問題。 大多數主管其實心裡也知道,只是因為自己也很忙,所以下意識的跳過了,想說算了,下次開會的時候再盯一下,這時候千萬要提醒自己,別忘了這一塊...

ASP.NET 4.0中的URL Routing

在今年TechDays 2009的ASP.NET 4.0場次中,我介紹了一些ASP.NET 4.0的新功能,其中有許多功能都是在 3.5 SP1中展露頭角,可能在MVC中,也可能在Dynamic Data中,這些3.5 SP1中的功能在釋出後深受開發人員的好評,很多開發人員反映是否可以加入在Web Form中,因此MS也就從善如流的照辦了,其中一個功能就是 URL Routing機制。 過去URL Routing機制僅被MVC和Dynamic Data支援,如今ASP.NET 4.0當中直接納入了Routing類別,也就是說,WebForm也直接支援了Url Routing機制。 URL Routing機制可以讓我們很輕易的建立出REST風格(請參考 REST一下吧 )的網址,也可以讓我們輕易建構出類似Dynamic Data風格的網址,像是: http://myWebSite/Product/Edit/XBOX 我們可以用上面的網址來表達要編輯一筆產品資料,產品名稱為XBOX。這樣的網址呈現方式不只更加的直覺清楚,同時也有著相當大的延展性,例如,我們可以用底下的網址表明要編輯名稱為Student資料表中的David同學的資料: http://myWebSite/Edit/Student/David 當然,也可以用底下這個網址來表達要編輯名稱為Employ資料表中的Eric員工的資料: http://myWebSite/Edit/Employ/Eric 而這兩個網頁理論上行為上完全一致,其實可以用同一個.aspx頁面來執行。 也就是說,傳統的WebForm .aspx頁面,在編輯不同的資料表時,幾乎註定要寫不同的頁面(來維護多個資料表),如果有三五個資料表要維護,這不是問題,反正透過Wizard很快就可以建立出這些.aspx頁面,但是,如果是一千兩千個資料表,那你就要好好思考了... 為何傳統的WebForm不能用『一個』.aspx頁面來處理這一兩千個資料表呢? 其實每個資料表的編輯行為(Behaivor)不是都一樣嗎? 是的,但是這背後的原因很多,主要是因為SqlDataSource、FormView、GridView的行為和DataBinding機制,造成了ASP.NET注定讓UI層和DB的相依性過高(在.aspx頁面中有SQL指令或是DataForm/Data...

[推薦] 網路電台

很久以前,在我小時候的那個年代,我很喜歡一個電台『中廣音樂網』,每天24小時不停放送的音樂,大部分都是我很喜歡的類型,輕音樂、爵士、或是抒情搖滾,但是前幾年可能因為電台的經營策略或是改組,這個電台轉型了,轉型之後我就再也不是忠實聽眾了,因為整個電台的類型和我喜歡的差異頗大。 最近這幾天,因為某些原因,我在醫院住了幾天,陪著家人,在偶然的機會下,發現了兩個網路電台(沒有FM/AM頻道的,就只能在網路上聽),由於我時常會有需要在辦公室外工作的機會,因此身上總是會帶著一台小型的Router,可以透過LAN或是USB 3.5G網卡上網,並且建立一個Wireless的工作環境,因此收聽網路電台對我來說是比收聽實體電台還來的方便。 聽了幾天,覺得很喜歡,因此推薦給大家, http://www.goodnews.org.tw/classic.php http://www.goodnews.org.tw/ccm.php 這兩個網路電台是佳音廣播電台建立的,其實佳音廣播電台是一個台北的區域小電台,沒有很好的資源,或是很強的經濟後盾,但是隨著藉著現在科技的進步,可以讓電台不需要用很高的成本,就可以透過網際網路對全世界廣播,把好聽的音樂傳遞出去。 就跟以前的中廣音樂網一樣,這兩個電台的屬性當是我相當喜歡的類型,讓人可以安靜下來,特別是我在醫院,所以相當受用。 如果你偶而心情不好,如果你需要安靜思考,如果你希望能夠整理情緒、重新有一個平靜安穩的心情,那不妨聽聽這兩個頻道,在如此忙碌競爭的環境中,或許會讓你有不一樣的感受。

[轉貼]多點觸控程式設計競賽 (及 如何用滑鼠模擬多點觸控)

隨著微軟最新作業系統 Windows 7 終於進入上市最後倒數階段,微軟與.DotBlog舉辦「Windows 7 多點觸控程式設計大賽」,個人參賽者組得獎作品可奪得多點觸控筆記型電腦。 活動網址「Windows 7 多點觸控程式設計大賽」 http://w7contest.dotblogs.com.tw/competition.aspx 開發者可以從 http://msdn.microsoft.com/zh-tw/windows/default.aspx 取得相關的技術文件。 不過比較讓我感興趣的是,其中有介紹如何透過模擬方式在Vista上透過滑鼠模擬多點觸控,挺有趣的,相信有不少人需要,提供大家參考。

Silverlight 3 中的multi-Touch程式開發

圖片
TechDays 2009忙完了,終於有一點點時間可以回頭寫SL3中的多點觸控,隨著Windows 7的Launch在即,我開始屢屢被問到Silverlight 3中的多點觸控程式開發的部分。 在TechDays 2009中也稍微提過,其實SL3中的多點觸控一點也不複雜,架構上相當簡單,底下這是SL3中多點觸控的訊息架構: 從這邊您也不難發現,觸控螢幕(或面板或NB)、Windows 7、IE8當然都是必要設備,缺一不可。 對於SL3應用程式來說,只是很簡單的從IE8接受多點觸控事件,或者是模擬成滑鼠事件。至於很多人關心的可以接收到幾點,端看設備而定,如果設備傳入的是兩點(我手上的觸控螢幕和NB都只支援兩點),傳入SL3的就是兩點;若設備支援多點,SL3就接收到多點,如此而已,沒啥特別的。 要在SL3當中接收到多點觸控的信息,再簡單也不過,最簡單的方式如下,動作只有兩動: 1.Hook Multi-Touch事件 2.在事件中取得點,進行處理或運算。 程式碼如下: public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); //Hook事件 Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported); } void Touch_FrameReported(object sender, TouchFrameEventArgs e) { //取得點數 int n = e.GetTouchPoints(this.LayoutRoot).Count; this.textBlock1.Text = "points : " + n; //將每一點座標顯示出來 foreach (System.Windows.Input.TouchPoint p in e.GetTouchPoints...

Tech.Days 2009 研討會順利結束

感謝大夥的熱情參與,今年 Tech.Days 2009 研討會 順利結束了,在這次的研討會中,SL3的部分是focus在企業的應用,透過.NET RIA Services, Business Application Template以及SL3當中的一些技巧,很快速的建立典型的企業應用程式;同時也提到了OOB與離線應用,和前陣子我Demo的SL3 Multi-Touch技術;而ASP.NET 4.0這個主題,則是概略性的介紹了未來ASP.NET 的四個大方向,包含Dynamic Data, WebForm的改變,AJAX 4.0的Client Template與Binding, 還有MVC的概念。 短短的70分鐘,實在沒法把整個主題全數介紹,僅能挑出幾個比較重要和較有意義的部分和大家分享,因此細節的部分我會在接下來一兩個月全數放到BLOG上,陸續介紹ASP.NET 4.0的一些新功能和SL3的應用技巧。 總之,很謝謝大家的參與和支持,很高興在會場有機會碰到大家。

傳說中的Silverlight 3多點觸控(Multi-Touch)應用

圖片
SL3推出已久,傳說中,SL3支援Windows 7的Multi-Touch功能,為何是『傳說中』呢? 因為一直以來苦無Touch Screen設備可以讓我測試,害我在present Silverlight Application時,總是有那麼點小小的遺憾,這個心頭的遺憾始終揮之不去...(不是我不去買,是市面上還買不到通過W7認證的螢幕,不過大家別擔心,馬上你就會看到支援W7的Touch設備將如雨後春筍般的出現啦) 可能是微軟聽到了我在連續四場研討會的小小抱怨(...ㄟ...是懇求),終於肯弄台Touch Screen借我來玩玩,難得微軟這麼大發善心,此時不借更待何時,儘管當天要從遙遠的客戶處繞到微軟總部,但還是專程去了一趟... 周五,Touch Screen終於到手,回家第一件事情就是把塵封已久的Windows 7打開(是的,其實我W7早就灌好了很久,但是沒有Touch Screen始終讓我意興闌珊),把螢幕給接上去...怪怪,怎麼沒反應咧??? 東弄西弄,開始有畫面了(似乎觸控也work),只是怎麼解析度怪怪的,依照Anne跟我說的,只需要把螢幕接頭接上,插上USB就搞定啦??? 研究了半天,原來根本不是Touch Screen的錯,Touch Screen還真的是接上去就可以用,原來是我剛灌好的Dell NB的W7顯卡驅動程式還沒安裝,導致無法輸出正確的訊號到Touch Screen,立刻到nVIDIA網站,下載,安裝,搞定。 嘿嘿嘿,接下來花了約莫1.5個小時,第一個Silverlight Multi-Touch應用程式完成!!! 底下是我寫好的第一個SL3 Multi-Touch應用程式範例,嘿,這應該是現階段少數可以用Multi-Touch控制的網站喔(有Windows 7+IE8+Touch Screen的朋友可以連上去測試一下Multi-Touch在Browser上執行的狀況): http://blog.studyhost.com/BlogData/20090921/MultiTouchTestTestPage.html PS.檔案很大是因為我用了一個MediaPlayer的控件,跟Multi-Touch無關... 但我想目前能測試的網友肯定不多,因為大家都還沒有Touch Screen,所以我拿攝影機錄製了一段Video,有興趣的朋友可以看看這...

讀者留言回覆:如何在Blend 3當中設定Effect

讀者留言: 董老師您好, 雖然了解到在Blend 3裡新增了陰影的功能, 但怎麼試都試不出來...我簡單地畫了一個矩形, 選取Effect裡的DropShadowEffect, 但怎麼試都沒有反應, 因此想請問一下, 一個簡單地矩形+陰影(如同一般繪圖軟體的陰影效果), 該怎麼實做呢? 回覆如下: 只要安裝有SL3 SDK, Blend 3, Blend 3 SDK等元件的開發環境,都應該可以順利的使用Effect才是,相關的Xaml碼相當簡單: <Rectangle Fill="#FF00D3FF" Stroke="Black" Height="106" Margin="53,40,289,0" VerticalAlignment="Top"> <Rectangle.Effect> <DropShadowEffect BlurRadius="36" ShadowDepth="13"/> </Rectangle.Effect> </Rectangle> 操作步驟影片:[ 影片 ] [ 範例下載 ]

Silverlight 3中規則運算式(Regular Expressions)的支援

在SL3當中,有一個新支援的重要類別,也就是位於System.Text.RegularExpressions命名空間底下的Regex,在RegularExpressions命名空間底下包含了幾個與規則運算式有關的重要類別,而最方便使用的莫過於Regex,使用的方式很簡單: System.Text.RegularExpressions.Regex.IsMatch(要驗證的文字, 規則式) 其中IsMatch是一個靜態方法,因此我們直接呼叫即可,完整的程式碼可參考底下範例: Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Me.TextBox1.Text = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" End Sub Private Sub Button2_Click(ByVal sender as Object, ByVal e as System.Windows.RoutedEventArgs) Me.TextBox1.Text = "0\d{2,4}-\d{6,8}" End Sub Private Sub Button3_Click(ByVal sender as Object, ByVal e as System.Windows.RoutedEventArgs) MessageBox.Show(Text.RegularExpressions.Regex.IsMatch(Me.TextBox2.Text, Me.TextBox1.Text)) End Sub 此場景的XAML指令碼如下: <Grid x:Name="LayoutRoot"> <TextBox x:Name="TextBox1" Height="29" Margin="140,32,270,0" VerticalAlignment="Top...

課程:Silverlight 3.0 RIA應用程式設計與網站開發實務

課程:Silverlight 3.0 RIA應用程式設計與網站開發實務(18 hr) 地點:新竹清華大學 時數:18 hr 在新竹地區第一次舉辦的Silverlight 3.0課程,報名時間快截止囉, 位於新竹的朋友若有興趣可參考底下網址: http://edu.tcfst.org.tw/query_coursedetail.asp?courseidori=98C078

Silverlight 3 當中的EasingFunction

圖片
EasingFunction是SL3當中針對動畫機制加上的特效處理,如同Effect一樣,SL3當中內建了基本的一些功能,當然開發人員也可以繼承基底類別開發自己的EasingFunction,我們先來看如何使用。 Dim sb As New Storyboard Dim da As New DoubleAnimation da.From = 0 da.To = 350 da.Duration = New TimeSpan(0, 0, 3) Storyboard.SetTarget(da, ellipse2) Storyboard.SetTargetProperty(da, New PropertyPath(Canvas.TopProperty)) sb.Children.Add(da) sb.Begin() 上面這段程式碼用來動態建立一段動畫,並且讓動畫發生在一個圓球物件(ellipse2)上,這段動畫很簡單,在三秒內,讓圓球從上往下墜落,沒什麼特別的。 但是一旦加上EasingFunction: '設定EasingFunction da.EasingFunction = New BounceEase With {.Bounces = 10, .Bounciness = 2, .EasingMode = EasingMode.EaseOut} 動畫就將大大不同,球體(ellipse2)墜落動作變成具有彈跳性: 從這邊我們可以知道,透過設定DoubleAnimation的EasingFunction 屬性,我們可以指定特定的效果給動畫,而BounceEase就是效果之一,其位於System.Windows.Media.Animation命名空間之下。您可以在該命名空間下找到其他更多的效果,如前所述,您也可以繼承EasingFunctionBase類別建立自己的EasingFunction特效。

Silverlight 3中的bitmap API

圖片
SL3中的Bitmap API,是影像處理的基礎,它讓我們得以直接在記憶體中建立一個點陣圖畫布,使用的方法很簡單,直接透過Imaging底下的WriteableBitmap即可: Dim wBitmap As New System.Windows.Media.Imaging.WriteableBitmap(…) 建構函式有三種呼叫方式,可隨您的需要使用: WriteableBitmap(影像來源BitmapSource) WriteableBitmap(寬Int32,高Int32) WriteableBitmap(任何物件UIElement, Transform物件) 例如,底下的程式碼將會建立一張空白的畫布在記憶體中: Dim wBitmap As New System.Windows.Media.Imaging.WriteableBitmap(640,480) 而WriteableBitmap物件的Pixels屬性則可以讓我們設定點陣圖的影像: wBitmap.Pixels(y * wBitmap.PixelHeight + x) = pixel 而上面的Pixel則可以透過底下這樣的方式計算出來: Dim brg As Byte() = New Byte(3) {} 'Blue, B brg(0) = CByte(color.B) 'Green, G brg(1) = CByte(color.G) 'Red, R brg(2) = CByte(color.R) '透明度 brg(3) = color.A Dim pixel As Integer = BitConverter.ToInt32(brg, 0) 透過這樣的方式,您可以很輕易的建立出類似底下這樣的影像雜點效果:

Silverlight 3 研討會 台中&高雄場次

錯過上周MSDN Silverlight 3研討會的朋友們, 在八月底將有兩場位於台中和高雄的Silverlight 3研討會, 相關資料如下: 2009/08/21 台中金典酒店 - 金典二廳 01:30PM - 03:00PM Silverlight 3 新功能開發實務 [ 詳情 ] 2009/08/28 高雄漢來飯店 9F 金鳳廳 01:30PM - 03:00PM Silverlight 3 新功能開發實務 [詳情 ]

Silverlight 3 中的Element to Element Binding

在SL3當中,針對Binding的功能增加了Element to Element Binding機制,雖然並不困難也不複雜,也不像是Out of Browser或是.NET RIA Services/DataForm那種大功能,但是其實妥善的運用這個小技巧也能讓我們在開發應用程式的時候方便不少。 例如,如果我們希望能夠讓 Slider在拖曳的時候,可以直接把值填入TextBox,過去SL2是一定要寫程式的,現在則可以利用底下這樣的Xaml指令碼,就可以很容易的完成: 這類的Binding機制還可以運用在data binding或是圖表等場合,實用性相當高,底下是上面Slider的例子。 [ 範例 ]

Expression Studio 3 just released on MSDN

Hi folks, The Expression Studio 3 just released on MSDN subscription (x86) - DVD (English)

研討會:Silverlight 3 技術講座 順利完成

Silverlight 3 技術講座順利完成 多謝大家參加 7/23 的 Silverlight 3研討會,希望今天介紹的內容對大家有幫助,投影片的部分可以在微軟的網站下載,同時今有學員問到相關的問題和需要協助的學員,請記得直接發一封Mail給我。 另外,如果您位於台中或高雄,今天沒有機會參加,在八月中旬我們還會再安排台中和高雄的場次。詳細時間請參考微軟網站或筆者BLOG。

我今天才知道Google有程式碼搜尋這回事

小弟不才, 我今天才知道Google有程式碼搜尋這回事 http://www.google.com/codesearch 我今天也才知道有這樣的搜尋結果...-_-''' http://www.google.com/codesearch?q=%E4%BB%96%E5%AA%BD&hl=zh-TW&btnG=%E6%90%9C%E5%B0%8B%E7%A8%8B%E5%BC%8F%E7%A2%BC http://www.google.com/codesearch?q=%E5%B9%B9%21&hl=zh-TW&btnG=%E6%90%9C%E5%B0%8B%E7%A8%8B%E5%BC%8F%E7%A2%BC 看來程式設計師應該要多休息, 大家壓力都太大了... ^_^ 資料來源原址: http://www.dotblogs.com.tw/sanctuary/archive/2009/07/22/9632.aspx

Silverlight 3 研討會

時間 : 2009/07/23 09:30 AM 地點 : 微軟 7AB 是什麼樣的技術, 需要在短短不到22個月的時間當中,迅速的推出了三個版本? 是什麼因素使得微軟在面對全球景氣訊號尚未明朗時,依舊毫不猶豫的投入大量的人力與物力,一反常態的讓Silverlight 3這個看似不會帶來任何額外收入的開發技術推陳出新地展現在全球開發人員以及設計師的面前? 究竟微軟對於Silverlight乃至於RIA的計畫和目標為何? 開發人員在面對眾多的RIA技術時,又該如何因應與選擇呢? 在這一場研討會當中, 我們將聊聊這些議題… 詳細資訊: http://msdn.microsoft.com/zh-tw/dd996595.aspx

Silverlight 3 中的Pixel Shader Effect

圖片
Silverlight 3內建了Bitmap API,並支援了像素特效技術(Pixel Shader effects),這讓Silverlight中的每一個物件(UI Element),都可以輕易的具有模糊、陰影等效果。當然,設計師也可以自行建立各種特效,例如水紋、風動、版畫…等,在Silverlight當中重複使用。 開發人員可以透過物件的Effect屬性,讓物件有這種特殊效果: Dim myEffect As New ShaderEffectLibrary.RippleEffect myEffect.Amplitude = 0.1 Me.Image1. Effect = myEffect 例如底下這個範例就相當有趣,其實這只是一張很單純的圖片,但是當使用者以滑鼠點選圖片時,你將會看到水紋的特殊效果: [ 範例 ]

找回生活 之 青境花墅(新竹)

圖片
這家店是我最近去過最理想的餐廳之一, 本人對理想的定義如下: 1.餐好吃 2.人不多 3.能上網 4.距離近 5.服務態度好 6.價格吸引人 這家餐廳上述全符合 其實我也一直搞不懂, 為什麼越靠近台北越沒有理想的餐廳, 你可以上網搜尋青境花墅, 會找到更多照片和簡介, 因此我就不多說了, 一入園之後的大草地, 是台北根本不可能看到的奢侈(台北會弄成座位因為坪效之故), 顯然老闆不是以賺錢為主要目的, 餐廳內可以帶寵物, 可以攝影(有攝影棚可以讓小朋友當Model), 非常適合舉家一日或半日遊的地點... 圖一:餐廳內部 圖二:好吃的餐點 圖三:其實吃不太完

SL 3中的Local Connections

其實說來也挺詭異的, SL3 的Runtime並沒有大多少, 但是卻提供了許多新功能, 不知道MS他們怎麼塞進去的, 例如System.Windows.Messaging這一組功能就是其中之一, 他讓運行在同一個用戶端, 同一個domain下的SL App可以彼此之間交換資料, 稱為local connection. 寫法很簡單, 一樣撰寫一個傳送者和一個接受者, 例如: 傳送者: Dim messageSender As New LocalMessageSender("receiver", LocalMessageSender.Global) 接收者: Dim messageReceiver As New LocalMessageReceiver("receiver", ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain) 分別在兩個不同的Browser中...就可以彼此傳訊了...相關的功能都會有事件可以使用... [ 傳送者 ] [ 接收者 ]

SL 3 貼心的設計: 全螢幕以及視窗大小調整時的自動縮放

其實我覺得, SL 3最令人覺得貼心的設計, 並非是Child Window, 也不是新增的一堆功能和先前提過的滑鼠滾輪, 最讓我覺得貼心的是, 由於調整了Silverlight Host Control以及預設的Silverlight project template, 使得開發人員現在在設計full window的Silverlight Application時, 預設狀況下SL程式中的控件就會隨著視窗大小而自動縮放, 比起2.0來說真是貼心不少, 過去2.0這部分還需要而外寫code(不只是SL中的程式碼, 還包括網頁上的JavaScript)才能達成此功能, 現在隨手做的任何一個SL App中的控件大小, 都可以隨著瀏覽器視窗大小以及全螢幕的切換自動調整, 已經越來越像是一個完整的應用程式開發環境了... 開發RIA應用程式嗎? 報告: Silverlight 3 準備好了...^^ [ 範例 ]

生命中的不完美...

你有三分零二秒嗎? 建議您靜下心來看這段影片... 人生就是這樣, 拱手一生, 記憶最深的卻是, 這一些點點滴滴的不完美, 凝聚成我們心中的完美。

終於 "滑鼠滾輪" 的部分SL3也直接的支援了...

圖片
過去SL 2.0中還算是秘技之一的滑鼠滾輪功能, 在SL3.0正式被支援了... 沒啥特別的技巧, 就是一個delta屬性罷了... [ 範例 ]

看來 Silverlight 3 Toolkit也要裝...

害我找了半天, 後來看release document, 才發現偉大的DataForm控件被移到 toolkit中了, 看來SL 3 Toolkit也要裝 [ Silverlight 3 Toolkit ] 我最愛的SL3新功能之 DataForm Demo 詳情如下: Breaking Changes since Silverlight 3 Beta 3.1 DockPanel, WrapPanel, Expander, HeaderedContentControl, Viewbox, DataForm moved to the Silverlight Toolkit The following controls and types have been removed from the Silverlight SDK: • DockPanel • WrapPanel • Expander • HeaderedContentControl • Viewbox • DataForm • ExpandDirection • ExpanderAutomationPeer • LengthConverter • StretchDirection They are now in the Silverlight Toolkit, which is available from http://www.codeplex.com/Silverlight.

Silverlight 3 RTW - 真是歷史性的一刻啊

圖片
多謝Wizard的提醒,這真是歷史性的一刻啊... Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd 不過, 果然不出我所料... 把先前安裝的開發人員Run Time移除之後, 就可以了... 對於很多人來說 或許3.0是一個好的起點, 過去擔心不穩定、功能不足、或安全性的疑慮逐漸淡去, 接著我們也將會看到開發工具更全面的配合...嘿嘿, Developer們, 是否開始準備大展身手了呢? 補充一下, 別忘了要安裝新版的Blend 3, 否則將無法以所視及所得的方式來編輯Xaml檔案: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609 是的, SL 3 Tools for VS2008 Sp1中, 取消了在VS2008中preview Xaml檔案的功能...>_ Design Preview Disabled in Silverlight 3 Tools Due to performance and rendering issues, the preview window has been disabled in the Silverlight 3 Tools for Visual Studio 2008. The functionality of the XAML editor remains intact, including IntelliSense, error messages, and the ability to drag controls from the Toolbox into the editor. WYSIWYG XAML design can be done by using Expression Blend or Visual Studio 2010. 真是令人con...

我最喜歡的Silverlight 3 新功能(一)之 SaveFileDialog

圖片
My favorite Silverlight 3 new features ... Part 1...SaveFileDialog ----------------------------------------------------------------- Silverlight 3.0推出在即,有幾個我個人很喜歡的新功能, 當然要陸續介紹一下,第一個我最感興趣的是SL 3中的檔案儲存能力,這邊指的檔案儲存當然是儲存到Client端,透過這個功能我們的SL應用程式儘管運行在瀏覽器上,但再也不是對用戶端的檔案存取毫無能力了,要使用這個功能,關鍵在於SaveFileDialog物件... 線上展示: (若需要測試此頁面, 請先安裝 Silverlight 3 Beta - Windows Developer Runtime ) 主要程式碼如下: 下載 範例程式。

ASP.NET MVC 1.0初探 - 教學影片

可以預期的,在接續即將推出的ASP.NET 4.0中,MVC會併入並且成為ASP.NET新功能中一個相當重要的部分。在接下來的幾篇文章當中,我們會帶領讀者鳥瞰整個ASP.NET MVC 1.0,從開發人員需求實務上的觀點,引領您進入ASP.NET MVC的世界… 在ASP.NET 3.5 SP1中, 並沒有來得及支援MVC,儘管ASP.NET MVC 1.0在經過了5個preview版本的洗禮之後,終於推出了正式版,但是無奈時間點又恰好卡在ASP.NET 3.5 SP1與4.0這2個大版本之間,使得ASP.NET MVC 1.0似乎有些雷聲大雨點小之憾。 然而不可諱言的,從目前我們看到的ASP.NET 4.0架構當中,並沒有看到任何其他特別新鮮的玩意兒,絕大部分是ASP.NET 3.5 SP1與ASP.NET MVC的延伸,可以預期的是,接續即將推出的ASP.NET 4.0中,MVC會併入並且成為ASP.NET新功能中一個最主要的部分。 在筆者這一系列討論ASP.NET 3.5 SP1與4.0新功能的文章當中,我們會用幾個篇幅很快的帶領讀者鳥瞰ASP.NET MVC這個新的Framework,並且展示如何透過ASP.NET MVC來提升你的Web應用程式,如何開發出結構與條理分明的Web應用程式... 完整的文字稿說明刊載於本期 Run!PC ASP.NET MVC 1.0 初探 - 教學影片 http://www.runpc.com.tw/content/main_content.aspx?mgo=184&fid=e00n

Run!PC 雜誌 - ASP.NET MVC 1.0初探

對於ASP.NET下一個版本或是ASP.NET MVC Framework有興趣的朋友,可以參考筆者在本月(2009年6月份)於Run!PC發表的ASP.NET MVC 1.0初探, 其中有筆者對於ASP.NET MVC的看法以及一些介紹,同時也附有Step By Step的教學影片,有興趣得讀者請勿錯過。

VS2010中的Silverlight 2.0/3.0開發

安裝好了VS2010的beta1版本, Silverlight 的部分只有 2.0的template, 至於若您想要開發SL 3.0你必須安裝而外的 Silverlight 3.0 SKD (請注意不要安裝Silverlight Tools for VS2008 SP1, 不work)和 for Developer 的 Silverlight 3.0 Run-time 之後才可以正常使用。 安裝好了之後就可以選擇用SL 2.0或是SL 3.0的範本來開發, 等待很久, 終於VS支援了所視即所得的Silverlight場景Layout方式, 同時也支援絕大部分的屬性(包含漸層顏色的調整),不過目前看起來似乎還不支援動畫以及SL 3.0中透視法3D的部分, 依照過往, 開發人員可以安裝Blend 3 Preview版本, 來處理這個部分。 另外, 整個VS2010整體的感覺在效能上比起VS2008並不差, 目前看起來穩定性也挺好, 有興趣的朋友們可以從MSDN Subscription 下載來玩玩。 相關的影片展示請參考底下位置: [20090521-VS2010與SL 3.0.wmv]

ASP.NET MVC 1.0研討會

感謝大家共襄盛舉,今天在微軟7F舉辦的研討會( 利用 ASP.NET MVC 提升您的 Web 應用程式 )順利完成了,本來以為MVC這個冷冷的主題應該沒多少人會參加,沒想到到場的夥伴們還爆多的,謝謝大家的支持囉。 相關的介紹文章會在下一期的Run!PC中刊載,同時間也會在網路上以及這個BLOG上提供今天現場Demo的建立ASP.NET MVC應用程式的Video,今天的投影片可以在底下 這個位置 下載。

Refactor! for Visual Basic 2008

前陣子由於工作上開發一些專案, 自己動手下去認真的寫了一些Code, 先前沒有特別留意, 總覺得VS2008在撰寫VB的時候有點彆扭, 又說不上來哪邊不對...後來碰巧回頭用了以前安裝的VS2005環境才恍然大悟發現少了一個過去我在VS2005寫程式的重要工具 Refactor! for Visual Basic... 趕緊到網路上找了一下, 果然有也有2008的版本 Refactor! for Visual Basic 2008, 底下是下載位置: http://msdn.microsoft.com/en-us/vbasic/bb693327.aspx VB developer不可或缺的重要工具。 (BTW, 我不確定是否支援中文版VS2008, 使用時請自行留意)

推薦:孫叔的Yahoo奇摩專訪

我要推薦一個很好的訪問, 我強烈建議網友 "完整的" 看看這段專訪, 我有幸和孫叔相處過幾年做過同事, 孫叔是我最敬佩的同事, 沒有架子, 親和力超級強, 我以前常和孫叔一起走在路上看著孫叔跟走過來不認識的路人打招呼, 和我們年輕小夥子在一起的時候一點點架子都沒有, 孫叔是我打從心底欽佩的人。 影片訪談一開始, 說到孫叔會用電腦, 這也是我欽佩的事情之一, 我教過孫叔電腦, 孫叔的好奇心, 學習能力, 耐心, 是我們這一輩的年輕人望塵莫及的, 孫叔是我人生當中非常非常難得的榜樣。更不用說孫叔的表演專業以及從事公益的愛心, 這也是我一直只能用欽佩兩字形容這位長輩的原因... 我認識孫叔很多年, 對他來說我只是一個小朋友, 但是說真的, 我有幸和孫叔同事的時候, 聽孫叔講話從來沒有覺得乏味或無聊過, 他的人生歷練和對生命的認識, 是我一直都很想學習的... 底下是他在Yahoo奇摩的專訪, 我整個看過了, 推薦給大家...很有生命力!!! http://tw.leaders.news.yahoo.com/leader/5/93/ (上) http://tw.leaders.news.yahoo.com/leader/5/94/ (下)

令人徬徨的Silverlight?

昨晚熬夜連續看完兩檔院線片之後, 上網轉換一下心情, 路過自己的BLOG, 驚覺似乎雜草又長高的幾吋, 不上來耕耘一下有點對不起冤親債主(ㄜ...不是, 是親朋好友), 不過, 昨晚熬了一整夜看完兩部片之後發現天已經亮了, 畢竟自己已經老了, 經不起年輕時候這樣糟蹋身體的方式, 補眠後才上網把這篇BLOG寫完。 跟大家報告一下最近的狀況, 話說...最近碰巧有幸拜訪一些微軟的Partner, ISV, 很自然的大家就談到了Silvlerlight這個技術, 我發現大家對Silverlight都花了不少心思, 不論是正在評估或是正在設法導入到自己的產品和專案當中, 當然我也知道這背後的秘辛與原因, 廠商們或多或少是在微軟的淫威之下, 被迫不得不奮發向上...ㄟ...不過我也要幫MS說說話, 不經一番寒澈苦, 哪得梅花撲鼻香...這些努力當然是會有代價的... 例如我最近已經聽到不少客戶對採用Silverlight技術所開發的產品大加讚賞, 一個是國內reporting/BI廠商(聯銓), 另一個, 內舉不避親, 是.NET Solutions上的BPM大廠(K2), 聯銓我很久以前和該公司合作過(也不算合作, 當時我是客戶端), 最近比較沒有接觸了, 關於聯銓使用到Silverlight相關的技術成果都是輾轉從客戶端聽到的, 但是客戶端給的評價都很高, 顯然我以前認識的該公司的開發人員有在Silverlight上下了一些功夫。 K2我當然就很熟了, 如果你對.NET上的BPM產品有興趣, 不難發現從去年開始, K2是第一個將Silverlight用在商業用途上的微軟Partner, 並第一時間推出相關產品(BlackPoint)的廠商, Scott的BLOG上還有介紹。 即便是這樣, 還是有不少學員或讀者會正式或非正式的問我, 到底Silverlight怎麼樣? 會不會取代ASP.NET? 對於Web Solutions的開發將帶來什麼影響?關於這種申論題, 一般而言我比較在書上回答, 而且畢竟我不是搞算命或搞政治的, 我很難掐指一算就告訴你未來的方向...而且,ASP.NET的書我還是會出(最近還有一些Plan, 我想寫寫跟ASP.NET架構設計有關的書), 這也表示我不會立刻放棄ASP.NET, 但是Silverlight又要在Web Solutions中擔當...

關於Silverlight中的RichTextBox以及文字處理

有朋友問到Silverlight當中如何設定TextBlock文字的顏色,例如.. ABCD EFGH IJKL 我才恍然發現一件事情,我一直沒有談論到這個部份...-_-''' 補充一下資料如下, 在SL當中,TextBlock是透過XAML標記 ... 來區分不同的文字區塊, 也就是說, 如果您要針對TextBlock的內容設定不同的文字顏色, 可以透過對TextBlock的inlines集合增加一個Run物件即可...例如 ..... , 而透過程式碼設定的方式如下 : Dim wordsWithFormat As New Documents.Run wordsWithFormat.Text = Words wordsWithFormat.Foreground = New SolidColorBrush(color) textblock.Inlines.Add(wordsWithFormat) 如此即可設定特定區域文字的顏色,範例程式請參考底下, 按 這邊 下載。 至於RichTextBox,在SL 2.0沒有直接提供,但在codeplex上有一個project, 包含 source code, 您可以參考底下這個URL : http://www.codeplex.com/richtextedit (不過有一些小遺憾是, 這個project停留在beta2)

4/7 南台科大 Silverlight 2與現代互動式網頁程式設計 研討會後的感想

4/7到台南 南台科技大學分享 Silverlight 2與現代互動式網頁程式設計 這個主題, 讓我重溫了很久沒有享受到的校園氣氛, 在這個場次當中, 我介紹了Silverlight這個技術對於網頁與web應用程式的意義, 以及相關的應用, 投影片可以從 這裡 下載。 我回想起我剛畢業那時候, 算算到現在似乎也已經十多年了, 時間過得真快, 同樣是寫程式, 身為學生的心情和現在面對工作, 可說是截然不同, 從台上看下去, 有些學生對於未來躍躍欲試, 有些學生對於將來的挑戰似乎有些擔憂, 當天我也分享了這一兩年來我看到的兩岸就業狀況以及將來學生會面對到的挑戰, 我不太確定是否所有的同學們都和我一樣感受到種種競爭的迫切性, 面對台灣目前的狀況, 全球經濟的不景氣, 以及兩岸甚至全球人才彼此之間的競爭壓力, 這些對於還有一年才畢業的學生來說似乎有點早了... 但是, 誰知道呢, 或許實際上我們並沒有那麼多的時間可以準備了, 回想到『世界是平的』作者費里曼在書上提到的種種, 在資訊產業中的我們剛好身歷其境躬逢其盛, 書上描述的每一個現象都在我們身邊發生... 最近看到電視上有一個廣告, 蠻touch人的, 廣告中的主角只說了一句話, 我相信這是他的座右銘, 我也佩服他對於面對人生的勇敢與毅力, 看到他的努力, 我想當我們碰到困難的時候, 我們沒有一個人有資格放棄...的確, 機會是給有準備的人的...

線上研討會 4/1 Microsoft Virtual Techdays...完成

謝謝大家參加 4/1 Microsoft Virtual Techdays線上研討會, 呼, 我承認, 要一小時講完時在是太難了...Demo的部分我會在整理後放到 BLOG上, 謝謝大家的熱情參與^_^

線上研討會 4/1 Microsoft Virtual Techdays

圖片
  錯過3/12 於台灣微軟 7AB 舉辦的Silverlight研討會的朋友們, 可以在 台北時間 (更正) 4/1 中午 12:30 參加 線上版的研討會 Microsoft Virtual Techdays, 在Virtual Techdays一小時的時間當中, 我會提供3/12當天的精華濃縮版。   在這個場次中, 主要內容會聚焦在如何透過Silverlight建立N-tier架構的Web應用程式, 介紹整個開發觀念以及其中所需要的技術, 同時會展示如何從無到有建立一個N-tier架構的Silverlight應用程式, 以及Silverlight如何和ASP.NET進行整合。   從整個場次的展式和內容當中, 你也會看到Silverlight對於Web應用程式所帶來的改變與價值, 當然, 如果時間夠的話, 我會順便稍稍展示一下Silverlight 3.0 beta 的幾個重要新功能, 諸如3D功能, 遠端資料繫結, 離線執行的Out of browser等機制, 歡迎對Silverlight開發或Web應用程式有興趣的朋友們一同參與... 網址: http://www.msfttechdays.com/public/home.aspx (請先從此網址進入註冊帳號) 場次:WEB203 Techniques For Developing Great Silverlight 2.0 Applications 帳號註冊完畢之後,建議您可以演說語言(Chinese)做為關鍵字搜尋, 然後參加每一個中文場次(因為不多, 中文場次只有三場, 切勿錯過)。 畫面如下: 另外, 建議請先安裝 Microsoft Live Meeting 2007 ...

3/12 MSDN研討會範例與投影片

3/12在微軟7AB的Silverlight研討會順利完成囉,在這個場次中我們介紹了以Silverlight開發RIA Web應用程式的觀念與方式、以及N-tier架構下需要注意的一些設計規範和準則,也介紹了相當多的範例。會後很多學員對今天的分散式應用程式開發架構有興趣,這個範例以及今天的投影片已經在下方的連結上了,不過要提醒大家,如果您沒有參加當天的研討會,可能僅看投影片或是範例有點霧煞煞不容易明白,如果你對範例有疑惑,請在blog上留言或是參考筆者Silverlight 2.0書籍。 要特別對今天來到會場的每一位學員說聲謝謝,很高興在會場能夠看到大家。^_^ [ n-tier架構下的Silverlight應用程式基本範例 ] [ 投影片 ]

Silverlight 2.0 新書 目錄

圖片
[ 購買(PC-HOME 24 hr購物 今天18:00前下單,明天中午12:00前送達) ]   底下是Silverlight 2.0一書的目錄,其中不僅包含了整個目錄架構,也包括了每一章的概要說明,以及部分章節的相關範例video展示(video的部分我會陸續放上去,礙於錄影軟體的效能以及頻寬考量,某些動畫效果在video上可能看不清楚,請讀者包涵。   此外,video僅錄製範例功能的一小部份, 完整的功能請參考本書內容),讀者可以從底下的Iframe視窗直接瀏覽,如果你無法瀏覽或覺得視窗太小,請點選底下連結: http://book.studyhost.com/Silverlight2Examples/Silverlight%202.0%20book%20contents.htm

Silverlight 2.0 範例權威講座 一書完稿

  折騰了很久,終於,Silverlight 2.0的書籍已經完稿送印,讀者應該可以在下周看到這本書,在這本書當中,除了Silveright的技術、開發架構的討論之外,還收錄了一些中型的範例,諸如以Silverlight開發的RIA版本EIP、討論區、即時通訊、簽核系統、PIM個人行事曆管理、線上訂票系統、數位儀錶板、類似Excel的圖表功能、大檔案上傳機制、梭哈遊戲、媒體撥放器、影片字幕機、ASP.NET與Silverlight的整合技術...等等琳瑯滿目的內容,這些範例有部分過去我用ASP.NET開發過,如果讀者稍做比較,就會明顯發現以Silverlight開發出的這些範例和過去ASP.NET的範例有著相當大的不同。   接下來幾天,我會把書中的一些範例和章節、以及目錄都貼上來,這本書對我來說是蠻特別的,除了歷經很多波折之外,自己也拖了很久的時間,底下是這本書的序,這篇序大概是我有史以來寫過最長的序了,隨手寫來,一發不可收拾,索性就全文照刊,算是和大家的一點分享了。 2009 的感言 - 代序   坦白說,這本書的出版是稍稍有點艱辛的…除了筆者自己拖稿延誤之外,其他大大小小波折還真不少…   故事可以從2007年開始說起,07年,微軟推出Silverlight 1.0,在台北這個偉大的小地方,就出了四本原創的繁體中文書,幾乎可以說是有史以來第一遭,台北的出版速度快於全球,能量也可說是居冠亞洲,其中幾位作者的Silverlight書籍也都陸續在內地上市出版(包含筆者自己的),很快的,一年過去了,時至2008,Silverlight 1.0已經大幅度改變成2.0,並於2008/10月正式誕生,但是隨時全球景氣的趨緩(或是我應該說衰退?),出版Silverlight 2.0書籍的出版社和作者不僅速度變慢,同時能量也變少…   難道,新聞報導的全球蕭條以然來臨?   在商言商,出版社和作者很難在出版與撰寫一本書的時候完全不考慮銷量,或許我們在BLOG上可以純粹為了紓發一己之悠情,不計代價的隨手寫寫貼貼,但是從文字稿檔案到出版成一本書,其中出版社所耗費的精神(或是費用)其實不能說完全不用考慮,這導致很有可能一些相當好的主題卻沒有辦法跟大家見面,例如有一位讀者一直鼓勵 (後來變成建議、最近開始變成要求…) 我用VB寫一本design pattren的範例書籍,我要老實地說,...

真是太閒了...

圖片
今天一時無聊上網看電影介紹,想說找個電影來看,習慣上,我會先看看網友討論的部分,發現一段對話如下(發話者認為網站上的影評有錯...),看了一下發言時間,也不像是刻意弄出來的: http://bbs.atmovies.com.tw/bbs/bbs.cfm?action=view&c=102&s=59622 (原址) 我只能說,這世界上無聊(或幽默?)的人實在是不少...呵呵, 顯然很多人是太閒了~^^ BTW, 最近真是沒啥電影好看...唉...

Silverlight 的 Linux 版本釋出

昨天看到一個 訊息 ,Silverlight的Linux版本釋出,盡點道義推一下,不過老實說,Linux我不常用,所以沒特別的感覺,如果要讓我稍為興奮一點的,我寧可看到的是手機版的Silverlight推出,不過看來還需要等一段時間,期待囉...

辛勤工作的獲利

我最近發現了一件我早該發現的事情,那就是,原來賺錢是一門專業,而不是一件自然而然就會發生的事情,這個論點和過去一些管理大師(A到A+那位)的看法大相逕庭,不過似乎挺符合台灣這邊的前幾年的現狀。 很久以前的有一陣子, 我脫離了園區工程師這個頭銜(我進入的很晚, 又脫離的很早, 所以既沒有攬到一個新貴的稱呼, 也沒分到什麼有價值的股票, 所幸前陣子的金融海嘯也沒掃到我), 當時我離開園區後(好幾年前了), 我整天研究技術處理專案,偶而寫寫書稿, 待在StarBucks, 伯朗等咖啡店, 同時也接一些課程和顧問工作, 那時候我才知道, 原來---原來---台北那麼多的人是不用上班工作的。 而且更令人詐舌的,是這些看起來沒啥工作的人(請注意,我肯定這些人不是學生、也不是業務員之類...),出手都比我大方得多....而且是很多很多,那時候我在內湖、天母看到一些穿著短褲拖鞋進入Starbucks的人,比起我看到西裝筆挺的人還要謹慎點,因為我後來發現...原來財主常常隱藏在令人不注意的外表下...(^_^) 說遠了, 回頭, 很多讀者以為寫技術書籍很賺錢, 或是從事資訊行業能夠如何如何,或是剛畢業的小朋友覺得到了科技業可以怎麼發展...但是根據我這十多個年頭的觀察,如果你的目標是想要賺錢,你的專業絕對不能只是(只有)資訊技術,你的專業應該要是『如何賺錢』...相信我,這是一門高深的學問,而資訊業中的許多人對這一門學科恐怕都是不及格的。 在我身邊從事軟體開發工作的,至今還沒有哪一個工程師(後來變成老闆的除外)讓我覺得他日子過得很優哉的(至今, 一個都沒有),無一不是加班熬夜酗咖啡,稍稍有一點點成就的,這種狀況就更加的明顯。 幾乎每一個我認識的講師、作者、專家、或是技術人員,都只能勉強算是中產階級,幾乎每個人都要為小孩子的學費和房貸傷腦筋,我沒有認識任何一個可以買豪宅的人(我猜這是我也買不起的原因),在這些人當中,當然也沒多少是對時尚、名牌、或是精品有研究的,自然也不太可能有炒股的空間,即使我想要個內線交易也從來不曾有人給我真正的明牌, 就算我真的知道了個明牌,最慘的是,我猜大多數人也沒那個本錢去炒...從某種角度來看,幾乎也可以說是典型的市井小民了... 對照台灣少部分可以不用工作,一直念書,還可以住在豪宅的幸運兒,和從來不需要考慮收入是不是不夠(可能只需要擔心太多沒地方放)的人來...

從Silverlight開發架構看到的一些感慨

最近在撰寫Silverlight的文稿(書稿和雜誌稿)、範例、和一些課程教材的時候,看到Web開發技術的發展回頭對比台灣的開發環境實在有一些感慨。 先講第一個,話說從頭,有一陣子我介紹了ASP.NET上的MVC,MVC這個架構是個好的Pattern,可以幫助開發人員達成建構出有架構、便於更新維護、便於抽換的應用程式,問題是這是(只是)一個規範、一個樣式,所謂的規範就表示,你應該遵循藉以得到一些好處,但是有趣的是,規範這個東西在台灣不見得一定會被遵循,老實說我本來以為在全世界都是這樣,但是根據我的觀察,在台灣這個狀況比較明顯,反觀我在台灣以外的一些合作夥伴和團隊,對於 "規範" 這個事情的嚴謹度和遵守(你也可以說是死板),超過了我的想像和期待。 我舉幾個簡單的例子: 1.估時程:我常常看到,為了爭取到某一個案子,在時程評估的時候,就已經放棄架構了,我們給了客戶一個若要遵循架構就根本不可能達成的預計完成時間。 2.當進度落後:當進度落後的時候更慘,本來SA,SD花時間想好的架構,可以因為進度理由一夕之間失效,更有趣的是,這個架構可能是先前花了兩三個月決定的,但是Developer+PM可以在一天內推翻。 3.當客戶要求不合理:一樣的狀況, 有時候客戶會有一些超越常態或是超越技術可能性的要求,為了成案,往往PM答應的莫名其妙,而怪的是,最後還是可以做得出來,天知道這後面隱藏了哪些可怕的東西。 剛講到MVC和所謂的規範,可能很多人對我說的 "規範" 的定義不清楚,舉個ASP.NET開發人員應該要知道的例子,有幾個我所謂的規範簡單的具體例子就是: 1.ASP.NET頁面(.aspx和.aspx.cs 或.aspx.vb)當中,不得有ConnectionString or SQL指令。(你應該寫在一個表(不管是資料表或是對照表)當中,以便於後續維護。(但是,誰敢說自己的.vb或.cs中沒有SQL指令碼?我看是一堆吧...) 2.ASP.NET程式碼當中不該有商業邏輯,只能有處理UI的Code, 也就是說,你應該要有一個Business object。 3.超過100行的Method或Sub, Function 應該再切割。 類似像上面這樣的說習慣也好, 說規範也行,是不應該被打破的,但是,有多少因為時程關係而破壞規範的例子? 多的慘不忍睹...

利用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...