2009年9月25日 星期五

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的應用技巧。

總之,很謝謝大家的參與和支持,很高興在會場有機會碰到大家。

2009年9月20日 星期日

傳說中的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,有興趣的朋友可以看看這段測試,你會看到我用SL做了一個簡單的網站,並且讓圖片、影片、圖表、資料等物件都可以透過Multi-Touch放大縮小,控制起來算是相當順暢(順暢度主要跟程式寫法有關,到是跟Hardware關係不大),詳細的Touch Screen實測報告容後再寫,如果我在TechDays的SL場次時間來得及,我會現場Demo一下(不保證一定來得及)。

總的來說,我拿到的這台Touch Screen蠻順的,真的是挺順,比起我過去用過的和聽說的都好很多,如果要我買我可能會買這種(而非那種All-In-One的PC或NB),只是大大一台螢幕攜帶比較不方便。(強烈降低我搬到TechDays Demo的意願)

而SL3要怎麼撰寫支援Multi-Touch的應用程式呢? 其實這部分一點也不困難,程式碼的部分我會在後天的TechDays和大家報告,同時在下一期的Run!PC雜誌和我後續的BLOG上會陸續和大家分享。^_^

嘿嘿,SL3...果然準備好了!

2009年9月6日 星期日

讀者留言回覆:如何在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" Text="TextBox" TextWrapping="Wrap"/>
<TextBlock Height="30" HorizontalAlignment="Left" Margin="29,32,0,0" VerticalAlignment="Top" Width="111" Text="規則運算式:" TextWrapping="Wrap" FontSize="16"/>
<TextBox x:Name="TextBox2" Height="29" Margin="140,80,270,0" VerticalAlignment="Top" Text="TextBox" TextWrapping="Wrap"/>
<TextBlock Height="30" HorizontalAlignment="Left" Margin="29,80,0,0" VerticalAlignment="Top" Width="111" FontSize="16" Text="規則運算式:" TextWrapping="Wrap"/>
<Button x:Name="Button3" Height="30" HorizontalAlignment="Right" Margin="0,80,180,0" VerticalAlignment="Top" Width="65" Content="驗證" FontSize="16" Click="Button3_Click"/>
<Button x:Name="Button1" Height="30" HorizontalAlignment="Right" Margin="0,32,133,0" VerticalAlignment="Top" Width="112" FontSize="16" Content="範本 - email" Click="Button1_Click"/>
<Button x:Name="Button2" Height="30" HorizontalAlignment="Right" Margin="0,31,18,0" VerticalAlignment="Top" Width="112" FontSize="16" Content="範本 - Mobile" Click="Button2_Click"/>
</Grid>

執行結果如下:

http://blog.studyhost.com/BlogData/20090906/RegexExampleTestPage.html
透過這個內建的方法,我們在SL3當中也可以輕易的針對使用者的輸入進行驗證,相當方便好用。

2009年9月1日 星期二

課程: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