2006年12月11日星期一

[未來軟件介面3D化] MS Expression Blend + .NET Framework 3.0 WPF 體驗記

很多人都說Windows Vista很正,很好用,介面很靚等等,但近期技術來說,影響最深遠的可能就是.NET Framework 3.0中的WPF (Windows Presentation Foundation)

WPF是軟件上的一個革命,足以改變廿多年來的軟件介面的規範.還是代號Avalon時,我已經被那技術吸引著.幾個月前我在台灣的微軟技術社群討論區詢問過一條問題:( WPF 對ASP.NET 的影響?? )同時.NET 語言底下的要員,但好像卻沒有得益,最後得知原來Microsoft決定開發一個叫WPF Everywhere的項目,目的就是讓Browser運行WPF的程序,或者就可以看待成為了對抗Flash Player,而且還是Cross-Platform的.

之前我有講過XAML語言問題,因為WPF下的介面是XAML而成,但傳統上一直設計介面除了在Design View上做,或者會透過程式碼控制,害怕轉變到XAML後,一時間程式員會很難適應.但幸好是,Microsoft Expression系列中有一個叫Blend的軟件 (前身為Interactive Designer), 這個Blend軟件就是用來視覺地創建XAML.而我亦實質地在Windows XP下實作一個WPF介面的軟件.

PicturePicture

未必的軟件介面可能會是這樣,你有想過嗎?
Blend介面很有型~黑色的介面! 一直都不是Microsoft的風格.Blend支援語言同樣是C#或者VB.NET.
從左手邊的選取Control後,可以任意把Control外觀變型.
PicturePicturePicture
我嘗試放下一個ListBox,想如VS2005般在Porperty加入Item時,出了一個不明的視窗.原來在Blend中,已經不可以好像VS2005般加入Item. 無論是ListItem,Gridview中的Header,Column,Row項目,Blend都把他們分開,需要在Control Box中拉至Design View並放入如Gridview,Listbox的Control中. (見下圖)
PicturePicturePicturePicturePicture

放入過後,可以經由表單的Property,設成Transparent,並測試.
大家看下圖,一個不規則的WPF介面就出現了. 但由於Blend並不可以輸入程式碼,故只可以體驗一下介面而已.
Picture

更多Blend的圖片:
Picture
WPF支援各個Control 重疊和Alpha-Blending.

Picture
這就是Blend創建的XAML碼.

Picture
WPF的3D引擎 ViewPoint3D

Microsoft Expression Web 試用

卒之有時間試用一下Microsoft Expression 系列,系列中分為Web / Blend / Design / Media ,而我就對Web同Blend有興趣,介面方面混合Office和Visual Studio,和Dreamweaver相比當然會差很遠,但用過Office的人都很快會上手.

PicturePicture

[Web] 除了要取代Frontpage外,另外的任務就是要彌補Visual Web Develop和Visual Studio的不足. 無論VWD或VS2005雖然都把ASP.NET程式預設是XHTML 1.0格式,
但CSS的管理就不如Dreamweaver般,Design Layout方面,以前會配合Dreamweaver做,但Dreamweaver由於不是MS出品,
不能直接在Design view上修改或引用ASP.NET Control,

但 [Web] 就可以做到這一點.我使用製作中的ASP.NET程式在[Web]中開啟,已經可以直接在Design View上修改Property了.
而和Dreamweaver一樣,可以用Split型式同時開出Design View和Code View.
Data管理方面,留意到上面有一項叫做Dataview的,我想應該是和VS2005一樣,可以引用OLEDB或SQL Provider打開Database,

而且[Web]中也有Behaviors一項,很多[即食]功能,但對經驗設計者作用不大.試用過後的感覺是,很就手,無論HTML或者ASP.NET項目的Porperty以下拉式清單顯示,比起Dreamweaver的Panel形式更方便.而價格上,[Web]是US$299,但Dreamweaver卻要US$399,如好像我現職公司般,是.NET的世界,已經沒有可能會選擇Dreamweaver了,始終整合ASP.NET方面很重要的.

PicturePicturePicture

2006年12月1日星期五

宣告時何時使用Public、Protected、Private等修飾詞?

這個課題是基本中的基本,不論是VB6還是.NET,[宣告]這樣東西,基本上是第一層功力.

但不知是否由於Visual Studio太自動化的原故,有很多人寫Class,Function,Sub時都會憤性使用IDE預設的存取範圍.
如VB6的Private ... / .NET的Protected .....

而宣告Variable就有理冇理都會用Dim , 無他的....因為我的確覺得很少人會著重這個東西.
近日工作上接手一個Project,我真的呆了....

宣告變數時,不設定DataType....大家都知道在VB6上,如不設定DataType,會自動變為Variant.
.NET上會變成Object,雖然而家的電腦快,但都不是這樣吧...濫用SQL Store Proceduce, Sub和Function不分.
有經驗的人都知道在.NET Framework低下, MSIL 可以看出, Sub在比Function快吧....
回歸話題,我在MSDN上找到兩篇講有關存取類型 - Public、Protected、Friend、Protected Friend 及 Private的文章,大家可以看一看.