silverlight 在企業應用開發中的定位

iDotNetSpace發表於2009-04-09
  從silverlight 1開始,MS對這個技術的定位似乎更重視於網際網路應用的娛樂性體驗,但是,我認為silverlight技術應該更多關注一下企業應用的解決方案。

    把html應用於企業應用的原始動力是易於維護和部署,但是由於html的設計先天上就只是為了內容的展示而非互動,因此在實現企業應用中常有的複雜邏輯、介面邏輯控制方面根本就是草率應付,雖然後來加入了JS來擴充套件應用,但是基礎html規範的簡陋,使得即使我們只是想要實現一個限定型別的輸入框,也不得複製一堆堆繁瑣而醜陋的程式碼。

    另外一個問題是http協議的無狀態性。功能提交後的新頁面實際上與之前的頁面之前沒有任何關係,即使你只是剛剛離開了0.1秒,伺服器都不會記得你是誰,你之前有沒有來過,你的上下文資訊等。可以說,WEB應用的開發,有一半努力都是在圍繞如何解決這個問題而展開,session, cookies, viewstat, hiddeninput, url string ... 雖然通過這些或高明或不高明的手段,會話上下文資訊可以得以一定程度的延續,但是比起CS架構的程式中上下文的自然持續來,WEB程式為解決這種問題而付出的努力、進而造成的資源浪費,真得是讓人無法接受。

    http協議的無狀態性帶來的另一個問題是很難實現WEB事務,而操作的一致性卻正是企業應用中所最重視的。使用者可以隨便地在頁面之間中斷,關閉,回退,前行,把介面控制邏輯搞得無所適從,一團亂麻,真是企業應用的惡夢。

    http的這種設計,是為了提高伺服器的效能容量而,以及受限於協議開發時的技術能力,而做出的妥協,html亦然。因此,web程式極合適於開發資訊釋出系統,而不宜於開發邏輯要求、介面控制要求較高的企業應用。

    silverlight來自於AcitiveX\jave applet等這種嵌入式程式的思想,但是MS用新的.net技術和為這種思想進行了重新再造,雖然是新瓶裝舊酒,但是有可能新一舉解決部署和功能兩方面的問題,即有web程式的易於部署和維護,又有客戶端程式的易於開發,加上嚴格的UI行為控制,加強的安全性策略,以及更先進的通訊能力,silverlight會成為下一代企業應用的主流解決方案。

    但是,silverlight似乎把解決企業應用問題放在了比較低的優先順序上:1.0時,不支援強型別的.net語言開發,到2.0時,.net語言功能的加入使得已經可以在企業應用場合中試著做一些嘗試了。但是,很多功能還只是簡化版,無法完全滿足要求,而企業應用中比較不重視的娛樂、多媒體等功能卻得到了大力的增強。

    這與MS一向忽視企業使用者的傳統一脈相承,同一個原因讓MS忽視過internet開發,忽視過資料庫,忽視過伺服器產品,忽視過服務應用開發。也正是同一個原因,使.net這個優秀平臺在進入很多大型企業應用的核心地帶時多遇阻礙。但是好在MS總是能及時醒悟,通過強大的技術能力收復失地。IE來了,SQLSERVER來了,.net來了,現在,silverlight也來了,但是,和MS的一貫作風一樣,silverlight首先解決面向個人客戶的問題。

    我對silverlight這個技術報以最熱忱的希望,因為它把應用開發、邏輯控制、與部署維護等幾個要素調和在同一種技術中,提供了目前為止最好的解決方案,因此,silverlight的架構非常合適於企業應用的開發。希望silverlight能在後續的發展中,能在解決富UI體驗的同時,再為企業應用方案方面提供更多支援。

    可喜的時,在silverlight 3.0的改進中,果然已經包括了一些對企業應用支援的增強。
   
    Richer text control                                   富文字框
    Support for spell checking                            語法檢查
    Support for inline tables                             行內表格
    Support for PDF                                       PDF文件支援!
    HTML rendering                                        html生成。
    Printing                                              列印!!
    Offline storage                                       離線儲存!!
    Local database storage                                本地資料庫!!
    Database synchronization                              資料同步!!
    Can install Silverlight application on desktop        可以把應用安裝在桌面上!!
    Access to local hard drive limited to MyDocuments     可以訪問本地硬碟上的“文件” !!!
    Access to all of hard drive                           可以訪問本地硬碟!!!
    Can drag & drop from desktop to Silverlight           可以從桌面上拖拉物件到silverlight!!
    Ability to create new Silverlight windows             可以建立新視窗!! 是不是指對話窗那樣的模態視窗?
    Support for device access such as USB                 可以訪問本地裝置!!
    Hardware accelerated graphical effects                硬體圖形加速。
    Blend modes                                           融合(?)模式
    Frame. based animation                                 幀動畫
    Inverse kinematics / bones                            反向動力與骨架!
    3D                                                    3維動畫


    接下來我們還需要什麼?
   
    http上下文的訪問能力。
    伺服器session物件訪問能力。
    更方便地訪問宿主頁的viewstat。
    根據安全設定, 可完全訪問web service。
    模態對話窗。
    應用Closeing, Closed,Unload事件支援。
    一個伺服器資料來源對映層,透明提供對伺服器資料來源的操作功能?
    事務支援。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-586867/,如需轉載,請註明出處,否則將追究法律責任。

相關文章