2009年4月25日 星期六

令人徬徨的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 3.0的一些新玩意兒,和推估了一下SL 4.0的狀況, 看來這個態勢有逐漸明顯的趨勢, 我發現:
1.確實很多廠商開始考慮使用Silverlight, 現在的障礙多半在開發工具, 但是這會在VS2010和Blend 3會逐步解決
2.如果要建置分散式架構, 用戶端安全性目前是個需要額外花功夫的部分, 並不像ASP.NET這麼單純, 這部分過去focus在ASP.NET的開發人員可能不太熟悉, 但Silverlight 3.0有提供一些解決方案
3.許多過去ASP.NET Solutions上需要花大成本才能完成的UI效果, 用Silverlight變得輕而易舉, 開發人員可以從局部導入做起, 暫時上兩者並存, 在需要的時候將Silverlight崁入ASP.NET即可
4.Silverlight相關的資源成長幅度超快, 你現在已經可以從網路上看到不少控制項, 有的還是免費並有Source Code的
5.我身邊很多朋友密切的問我一些Silverlight的問題, 這些問題都很扎實, 顯然, 不少人開始用Silverlight了
6.很多人已經知道Silvelright不需要去和Flash比較, 至於Flex, 確實跟Silverlight有得拼, 但是我相信在微軟的銀彈攻勢下, 勝利終究會站在有錢的一方的
7.市場占有率現在確實是Flex和Flash比較高, 但who care, 成長趨勢目前對Silverlight有利, 大家just wait and see ^_^

不過從產品開發的角度看, Silverlight就好比Mobile一樣, 對我來說都是presentation的一種, 也因此一直都沒有在ASP.NET或Silverlight中二選一的問題, WinForm/Mobile/Web Form/Silverlight, 這些都是展示層的解決方案, 好在我的專案或產品多半不靠展示層賺錢, 所以對我們來說這只是多了一種選擇, 由於過去的架構設計正確, 因此用Silverlight或是不用, 對於程式碼的調整幅度不大(這部分請參考筆者Silverlight2.0拙著, 有相關說明)

只是由於 Silverlight 3.0中Out of browser和一些新功能的出現, 不免讓我又懷疑MS是不是又想藉此機會在開發市場上一統江湖, 依照Silverlight 3.0的新功能, 如果市場接受, 會有產生底下的狀況, 我先列出來, 請讀者想想:
1.未來你用Silverlight開發出來的程式, 可以同時執行在Browser中或是Browser外(類似WinForm的桌面應用程式), 當然手機也是一個目標, 而請注意, 開發方式是完全一樣的.
2.用戶端可能不需要下載(因為微軟會內建)或下載不大的RunTime, 就可以執行Silverlight應用程式
3.可以跨平台(Linux/MAX/Mobile/Windows)
4.沒有WPF那麼龐大的負擔, 卻擁有類似WPF可實現優質UI效果的開發工具, 呈現出的效果比ASP.NET或WinForm都要好, 且效能也不差開發成本又低
5.不需要再寫JavaScript Code(所以坦白說我沒花多少時間研究最近很紅的一些JavaScript Libraries了), Web Solutions只需要focus在前端SL的C#/VB Code, 至於後端都是WCF Service, 也是VB和C#等.NET開發人員熟悉的語言
6.LINQ/ORM...等技術和一堆微軟正在開發的Service和.NET 3.5/4.0上的新技術可以立即應用, 同時也支援Cloud Computing
7.Web 開發人員不需要學習HTML/JavaScript和CSS, 甚至可能連SQL語法都可以丟一邊去, Focus在前端UI設計和WCF調用即可
8.開發方式與架構更貼近標準的分散式或SOA應用程式, 從各種角度來看, 都會是大型應用程式的一個好選擇

最近半年, 我已經很少鼓勵別人使用Silverlight了, 絕大部分的時間變成回覆別人與Silverlight有關的技術問題, 從這邊我也看到一些趨勢。 當然, 你說Silverlight完全沒問題嗎?當然不是, 畢竟它是一個新且快速改版的技術, 只是先前容或有所缺失, 現在也慢慢看到缺失逐步消除, 從這邊我們大概可以看到微軟的企圖心, 在這邊我不太想下結論或是定論, 我不知道未來技術會怎麼走, 每個技術人都有資格或權利下自己的判斷, 我看到的也應該只是一部分, 就只是提供大家參考了...

2 則留言:

catton - live fisher 提到...

6.很多人已經知道Silvelright不需要去和Flash比較, 至於Flex, 確實跟Silverlight有得拼 ==> 這一段文字顯然一點都不了解flex和RIA 的發展,silverlight 3的很多功能在Flex 2,3就有了, 有sense的講師應該好好的比較兩邊差異,並更進一步說明並說服silverlight 3比flex 優異部份,不只是說sl 3有多好多好

David 提到...

To fisher,

關於這部分我只能直接說抱歉了, 關於Flex或是AIR, 很抱歉我實在沒時間去仔細看了, 不過我的好朋友Bing有研究,我個人應該不會花更多的時間在 flex 或是 AIR上了, 我並非SL唯一的講師, 應該會有其他講師會去做這方面的比較...同時國外的比較也不少, 我想這部分的資源是有的。

我前幾天參加了Bing的session, 其實我的結論是這樣供您參考, 和當年的Java vs .NET一樣,雙方陣營的new feature一直是相互重疊著發展的, 所以Flex有的, SL會持續補上(這也是SL會改版那麼快的原因),當然我也相信SL有的Flex會陸續增添進來...

但我提到的6, 意思就是這樣, 從過去的經驗看來, 好技術從來都不是最長命的, 從來沒有人否認 boland 是好公司, boland C++是好產品, 沒有人質疑J2EE的價值, 也沒人懷疑Flex/AIR是不是有比SL優秀的地方...只是...時間會站在能繼續撐下去的那一方...而撐下去這件事情, 往往不能只是因為技術好而已...

這篇文章寫的時間是今年4月, 當時我確實沒花太多時間看Flex, 如果造成您的困擾, 我只能再次說聲抱歉了^^