顯示包含「Silverlight」標籤的文章。顯示所有文章
顯示包含「Silverlight」標籤的文章。顯示所有文章

2010年11月5日星期五

Silverlight 玩完???

還記得上一年,有一個新興名字叫RIA (Rich Internet Application),現在都已經沒有太多人在意這個字。
所謂RIA,正式定義可以上維基看看,但其實大家都知道這是泛指用Microsoft Silverlight / Adobe Air / Adobe Flex / JavaFX所寫的Web Apps。

Silverlight由1.0開始我都有隨意地學習,雖然目前還未基於興趣或工作上做過任何Production的Project,但
對Silverlight有一定的情意結。

不過這幾天在我的Google Reader中的Silverlight,WPF,Windows Phone 7的subscription都看到很多類似說"Silverlight已死"的標題。

細看之下,原來不是激進人士的空談說話,只是微軟"今天的我打倒昨日的我"。
在上星期的Professional Developers Conference (PDC)上,微軟親口說出日後方針把Silverlight發展放在Client上,而HTML5則才是Web上的重點。
與兩年前說的不一樣,當時在推廣Silverlight時,說RIA會在Web的平台上大行其道,當時甚至有人擔心微軟會忽略ASP.NET。

不過其實有留意的話都知道,其實無論Adobe Air,Adobe Flex,還是Sun Java FX都已經很早就放慢腳步了。
用的人不多,寫的人亦不多,RIA佔有率雖然或多或少都受高效能的javascript Framework影響,但事實上做這類RIA的開發門檻較高,需要的人力或資源都較多,而且未來5大Browser,IE9/Chrome 8/Firefox 4.0/Opera 11/Safari都已經對HTML5作好準備,而用HTML5的Canvas做遊戲甚至用WebGL做3D遊戲都已經有多人做範例去實現,所以要做一些較動態的網頁已經不用靠RIA了。

而且Cross Platform依然是一個問題,就我自己工作上來說,早一兩年還可以只兼顧IE和Firefox就可以,但現在實在不能再忽視WebKit的Safari和Chrome。
Silverlight的Player雖然也有Firefox和Safari版本,但到現在有多流通性亦存有疑問,始終這並不是硬性要安裝的東西。

而所謂Silverlight for client,其實就是指Out-Of-Browser的Silverlight Apps和Windows Phone 7,但為什麼要說到要"死亡"就是Out-Of-Browser的Silverlight根本沒有太大存在價值,要做Client軟件的,自然會用WPF去做真正的Desktop Apps,至於WP7.......我還是那句...來得太遲了。

所以還在想學Silverlight的人可能要重新考慮一下,或許我自己都應該準備一下HTML5了。

外國有很多Blogger都對這個消息作出回應,值得睇睇。
Silverlight is Dead, the Moon is Made of Cheese, and HTML 5 is Ready for Prime Time
Silverlight Is for the Client, HTML5 for the Web
Microsoft Shifts From Silverlight to HTML5
Microsoft: Our strategy with Silverlight has shifted

2008年10月20日星期一

Silverlight in Eclipse IDE - eclipse4SL

我之前一直在想,有沒有免費的軟件是取代MS自家的Expression Blend,我找到的都是商業軟件,免費的如XamlPad,只是人手輸入XAML,不是一個Design Tool。莫非要設計XAML,就一定要付錢買軟件?既然最新Silverlight 2支持免費的Visual Web Developer做程式部份,那圖形部份怎麼辦? 好彩MS在有意無意支持一個計劃。

寫過Java/PHP的人應該一定知道什麼是Eclipse,但有誰想過可以用Eclipse設計Silverlight,這個軟件叫做eclipse4SL (Eclipse for Silverlight)。
Homepage : http://eclipse4sl.org

網頁說明是這樣的 :
- XAML Editor & Preview with code hinting and code completion: Eclipse will contain an advanced, standards-compliant XAML editor with code hinting and code hinting features which helps detect and correct coding errors.
- Full compatibility with Microsoft's Development and Design Tools: The XAML and Silverlight projects created by Eclipse will be fully supported by both Microsoft Visual Studio and Microsoft Expression Studio tools.
我未有時間試玩,不過有 ScreenShot 睇下。

Silverlight 2 Released!!!


搞左咁耐,Silverlight 終於都出左RTW(Release to Web)版,發展到而家,Silverlight 由最初受注目的動畫表現,到而家很多人更注重Application層面表現。

其實我始終相信短時間內 Silverlight 不可能取代Flash,即使再過多一兩年亦是,要製作Silverlight動畫,成本比Flash要更多。再者,寫開Flash既人都應該不願意或冇需要轉寫Silverlight。本身已經是Adobe派系亦未必願意花時間去學MS的產品。Microsoft應該都知道呢一點,始終Silverlight的最大群族還是.NET語言的Developer,所以慶幸Silverlight 2已經包含UI。

2008年3月18日星期二

Silverlight vs. Flash




Silverlight vs. Flash: The Developer Story
http://weblogs.asp.net/jezell/archive/2007/05/03/silverlight-vs-flash-the-developer-story.aspx

Silverlight vs. Flash – An Analysis Report
http://silverlight.net/forums/p/3015/8462.aspx

Silverlight - Animations Programmatically With C#/VB

既然SL 2.0支援.NET Language,除了用StoryBoard之外,當然還可以如WPF / Xbap般,使用程式去做動畫喇。
以下是其中一個例子,由10x10的正方形漸變大小至600x400:
public void Create_And_Run_Animation()
{
//新建一個10x10和紅色的正方形
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 10;
myRectangle.Height = 10;
Color myColor = Color.FromArgb(255, 255, 0, 0);
SolidColorBrush myBrush = new SolidColorBrush();
myBrush.Color = myColor;
myRectangle.Fill = myBrush;

//把正方形加進既LayoutRoot的子集
LayoutRoot.Children.Add(myRectangle);

//Duration設成8秒,時間越短越快,你可以想像成Timeline一樣
Duration duration = new Duration(TimeSpan.FromSeconds(0.8));

//因為我們需要同時改變寬和高,所以要建立兩個DoubleAnimation
DoubleAnimation myDoubleAnimation1 = new DoubleAnimation();
DoubleAnimation myDoubleAnimation2 = new DoubleAnimation();

myDoubleAnimation1.Duration = duration;
myDoubleAnimation2.Duration = duration;

//新增StoryBoard
Storyboard sb = new Storyboard();
sb.Duration = duration;

sb.Children.Add(myDoubleAnimation1);
sb.Children.Add(myDoubleAnimation2);

//把目標轉向myRectangle和Property
Storyboard.SetTarget(myDoubleAnimation1, myRectangle);
Storyboard.SetTarget(myDoubleAnimation2, myRectangle);
Storyboard.SetTargetProperty(myDoubleAnimation1, "(Rectangle.Width)");
Storyboard.SetTargetProperty(myDoubleAnimation2, "(Rectangle.Height)");

myDoubleAnimation1.To = 600;
myDoubleAnimation2.To = 400;

//放進Resouce,就好似使用Blend建立的StoryBoard 時一樣
LayoutRoot.Resources.Add(sb);

//開始動畫
sb.Begin();
}

Silverlight - Using StoryBoard From Expression Blend

很多年前都一直有玩Flash,約是Flash 4至Flash MX2004期間。所以Blend其實不是太難上手,玩過Silverlight 2.0 和Expression Blend後,我學習SL覺得首先的就是要放下Flash的基本概念。雖然Flash和Blend都同樣使用Timeline,Keyframe去達到動畫效果,但Blend並沒有類似MovieClip的東西出現,反之是用一樣叫StoryBoard的東西,透過改變Target,Property去做到一個"劇本"的效用。而StoryBoard同樣是XAML,並不是好像MovieClip般可以當是一個物件。

以下是我學習期間,導入StoryBoard方法

按此觀看Demo

Page.xmal
<Canvas>
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<DoubleAnimation x:Name="myDoubleAnimation" Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:2" AutoReverse="True" />
</Storyboard>
</Canvas.Resources>
<Rectangle x:Name="MyAnimatedRectangle1" Canvas.Top="10" Canvas.Left="10" Width="100" Height="100" Fill="Blue" MouseLeftButtonDown="Start_Animation" />
<Rectangle x:Name="MyAnimatedRectangle2" Canvas.Top="10" Canvas.Left="120" Width="100" Height="100" Fill="Blue" MouseLeftButtonDown="Start_Animation" />
<Rectangle x:Name="MyAnimatedRectangle3" Canvas.Top="10" Canvas.Left="230" Width="100" Height="100" Fill="Blue" MouseLeftButtonDown="Start_Animation" />
<Rectangle x:Name="MyAnimatedRectangle4" Canvas.Top="10" Canvas.Left="340" Width="100" Height="100" Fill="Blue" MouseLeftButtonDown="Start_Animation" />
</Canvas>

Page.xaml.cs
public void Start_Animation(object sender, MouseEventArgs e)
{
myStoryboard.Stop();
Rectangle myRect = (Rectangle)sender;
myDoubleAnimation.SetValue(Storyboard.TargetNameProperty, myRect.Name);
myStoryboard.Begin();
}

以上例子就是利用sender的Name去代入SetValue()中的myRect.Name,
換句話說,透過SetValue()再引用正確的dependency property,就可以同樣Override 其他數值。

Adding Timer to Silverlight Application

前一段時間學習LINQ,算是了解基本的概念和應用後,就試一試了解Silverlight。

一開始就想寫一個類似以前任天堂時代的撞撞波遊戲,遊戲的中"板板"已經完成跟隨Mouse,"波波"亦可以照預設方面進行Double Animation , 但是Game Logic和Game Loop部份真是很難搞。



例如波波反彈的方向,總不是一直都是直線前進,直線反彈吧。

力度,速度等等都是考慮的,本身我未讀過Vector Maths和Geometry方面的東西。
幸好網上有人已經用Silverlight 1.0 + JavaScript寫了一個Sample,我可以作為參考。
但Game Loop部份,Silverlight 1.0可以使用setTimeout()的方法。但Silverlight 2.0本身既沒有setTimeout(),
亦沒有什麼Timer Control的東西。所以查了一查後,我們可以用DispatcherTimer去做到。

詳情可以按連結去查看:
For Silverlight 1.1:
http://adoguy.com/2007/05/15/Silverlight_and_Timers.aspx

For Silverlight 2.0:
http://pagebrooks.com/archive/2008/03/07/silverlight-2-has-a-timer-dispatchertimer.aspx

2008年2月26日星期二

Silverlight 2真面目出來了

.NET之父 - Scott Guthrie(微軟開發部門總經理)日前更新了Blog,詳細地解釋Silverlight 2.0和編寫Digg範例。
我完整地看過整篇文章,有幾點值得注意:

- Silverlight 2.0 是Cross Platform / Cross Browser ,無論是Windows或Linux,都可以支援,因為Silverlight 本身就是Client Side的東西。

- Silverlight 2.0 有自己的WPF UI Framework ,同樣有collections, IO, generics, threading, globalization, XML,亦支援LinQ.

- 和現有的Xbap一樣,會連同一系列Control.

- Silverlight 除了自身會Compile至Xap File外可以連同HTML或ASP.NET頁發佈,而本身亦有System.NET 和Sockets的Class,可以支援cross domain access,估計可以如以往使用TCPClient般去存住資源.

- Client Side本身不需要install任何.NET Framework.



原文:
First Look at Silverlight 2
http://weblogs.asp.net/scottgu/archive/2008/02/22/first-look-at-silverlight-2.aspx

以下是Scott Gu所寫的tutorials :

2007年9月8日星期六

Silverlight 1.0 & Silverlight 1.1 Alpha Release!

Silverlight第一個正式版本在9月5日正式推出,
雖然Silverlight配套已經很好,Visual Studio 2008 Beta / Blend / ASP.NET Future etc...

但很多人和我一樣遲遲未能起步,我個人最大難處就是JavaScript, 因為1.0是用Javascript語言去做程序,
但1.1已經可以使用Managed Code去做背後程序,暫時支援Visual Basic 和C#語言,未來會支援IronPython和IronRuby,

不過我當然只擔心VB部份吧 :) ,看過使用VB語言製作的Clock Sample,理解不算難,
但用Code去做Drawing部份就似乎不算容易.

下圖是SilverLight Final 的Map,整個Silverlight架構,方向都可以看到,尤其是對ASP.NET照顧有加.大家如果細心睇睇會看到一種語言叫VBx,其實這不是什麼新語言只是代表VB9而已.



連結:
Silverlight 主頁
http://silverlight.net
Silverlight 1.1 Sample
http://silverlight.net/community/gallerydetail.aspx?cat=4

2007年6月4日星期一

台灣Microsoft的一堆Silverlight 學習資源文章



  • Silverlight 架構概觀
    本白皮書中包括 Silverlight (先前代號為 "WPF/E") 架構的概觀,並說明此架構如何適用於 Microsoft 所推出、可用來建立新一代 Web 應用程式的產品。此外,此白皮書亦將探討 Silverlight 技術的架構。
  • 以 Silverlight 嵌入媒體播放
    了解如何使用 Silverlight 建置服務,將視訊嵌入部落格 (或任何其他網頁),只需要一個 iFrame,連結到服務位置 URL,便可以完成這項工作。
  • 使用 Silverlight 和 RSS 搭配 ASP.NET 建置主題榜了解如何使用 Microsoft Silverlight 和 RSS,透過 ASP.NET 建立容易自訂和重新產生的主題榜 (Hero bar)。
  • Silverlight 入門
    本白皮書提供精闢的 Silverlight 概觀,以及如何將它融入新一代 Web 應用程式的開發堆疊中。

2007年5月18日星期五

學習Silverlight 困難重重

前幾天試玩Silverlight 真是玩到頭都大埋。

下載SDK同Blend後,立即打開Visual Web Developer,但竟然找不到Project Template,連Project都冇。

那我試試在C# Express看看都是沒有,當然VB 2005都是沒有....
於是在Blend中找到Project Template,但心想...那Code方面在那裡辦?

原來Silverlight 需要以External方式用VS 2005做Code Editor,那我立即建立一個Silverlight VB Project,但竟然出現Message Box說VB需要VS Orcas執行,,,,天呀.....那我唯有建立C#的....

老實說,我寫VB,如做一些經常做的程序,經常用的Class,寫Code都算是行雲流水。
但一轉至C#就想停一停想一想.....始終同時兩種Language,在腦中都會出又現"打結"情況....

而且C# Syntax是Case-Sensitive , 變數/宣告/Operator又大不同...所以一切都以龜速速度進行....

不過玩玩下...AVG竟然話Blend有Virus....真是頭痕.....

Picture Picture

其實我都看到國外有些網友說Silverlight真是很Beta...
Microsoft’s Silverlight Disappoints
http://www.simplifiedchaos.com/2007/05/15/12/

2007年4月25日星期三

Microsoft SilverLight - 對抗Adobe Flash和Adobe Apollo的終極武器!


一切都來得太快~先不說Microsoft的就已經有Adobe的 Apollo, CS3系列, Borland CodeGear的Delphi For PHP. 雖然已講過,對Adobe的完全沒興趣,但好像是突然很多新東西出現.

之前叫WPF/E (E for Everywhere) 的代號,還以為要再等多一段時間才發佈和名字會保留為WPF/E ,
但Microsoft把這項技術正式命名為SilverLight ,並會在4月底的MIX大會公佈.

相信是Microsoft 用來對抗Adobe Flash 和Adobe Apollo的終極武器!這個名字真係很有型!
但想一想,SilverLight和Flash 都有"閃光"之意,都可以理解的名字.

官方網頁都已經開張 ,但那個CTP版本都是舊的版本 , 但就有美麗的Wallpaper Download,技術方面就不講了~太新,我自己都不太懂。
但就有很多Sample可以讓你知道什麼是Silverlight 和為什麼我覺得SilverLight是未來Microsoft Framework上的重要技術.

Microsoft SilverLight官方網站 :
http://www.microsoft.com/silverlight

MSDN Silverlight Dev Center
http://msdn2.microsoft.com/zh-cn/asp.net/bb187358.aspx

Youtube上演示Forest Key Silverlight Demo :
http://www.youtube.com/watch?v=Q-dM4fGJ6Rw

一些SilverLight 的 Demo
http://channel9.msdn.com/playground/wpfe/

SilverLight 開發基礎問題1 & 2
http://blog.joycode.com/joy/archive/2007/04/06/100553.aspx
http://blog.joycode.com/joy/archive/2007/04/16/101280.aspx