Silverlight應(yīng)用技巧相關(guān)經(jīng)驗(yàn)總結(jié)
Silverlight的推出為我們帶來(lái)了耳目一新的開(kāi)發(fā)環(huán)境。在開(kāi)發(fā)人員眼中,這應(yīng)該是一款在圖形媒體的處理方面非常強(qiáng)大的開(kāi)發(fā)輔助工具。而且在一定程度上還能提高程序員的開(kāi)發(fā)效率。我們?cè)谶@里為大家總結(jié)了一些Silverlight應(yīng)用技巧的經(jīng)驗(yàn)。#t#
最近公司里個(gè)項(xiàng)目,還在技術(shù)選型的階段,是屬于OA性質(zhì)的,小生當(dāng)時(shí)突然有個(gè)大膽的想法:用Silverlight做一個(gè)整站,就像現(xiàn)在互聯(lián)網(wǎng)很流行的網(wǎng)頁(yè)游戲一樣,全FLASH。
但是想歸想,一定要分析可行性的。下面就是我列出來(lái)的一些思路:
在目前所涉及的領(lǐng)域內(nèi),用來(lái)做完整的SILVERLIGHT的解決方案,還有許多問(wèn)題存在
Silverlight應(yīng)用技巧一、切換問(wèn)題(一個(gè)泛泛的定義),具體如
集成登陸后,如果定位在相關(guān)的頁(yè)面,眾所周知,我們出發(fā)點(diǎn)就是用Silverlight做整站,所以入口只有一個(gè)頁(yè)面,那么如果用戶進(jìn)入系統(tǒng)后需要進(jìn)入不同的功能界面怎么辦? 2)怎么實(shí)現(xiàn)前進(jìn),后退,F(xiàn)5刷新等功能?
Silverlight應(yīng)用技巧二、項(xiàng)目架構(gòu)和設(shè)計(jì)模式
在這樣的系統(tǒng)中,基本上不存在web頁(yè)面,有的只是xap,那么選擇什么樣的開(kāi)發(fā)模式會(huì)更合適,用MVC會(huì)不會(huì)更好?用什么樣的數(shù)據(jù)通信方式,Web Service ? Web Client ?Remoting ?
Silverlight應(yīng)用技巧三、對(duì)office的支持,對(duì)本地IO操作,特別是ACTIVEX支持
對(duì)上述Silverlight應(yīng)用技巧的問(wèn)題可以有一些方案彌補(bǔ)
1,Silverlight是有許多種傳參形式的,可以寫(xiě)一個(gè)專門(mén)的路由器(我在開(kāi)發(fā)中習(xí)慣這位稱呼,也可以理解為控制器,但用來(lái)分發(fā),我感覺(jué)用路由器這個(gè)名字更合適),用來(lái)根據(jù)參數(shù)定位界面,有點(diǎn)相似于urlRewrite,同時(shí)也可以借AJAX的書(shū)簽方案,進(jìn)行頁(yè)面定位,可以實(shí)現(xiàn)瀏覽器效果,前進(jìn)后退,刷新
2,表現(xiàn)層和數(shù)據(jù)提供層之間,用SILVERLIGHT封裝一層適配器,便可無(wú)視來(lái)源的處理WEB SERVICE,XML,REMOTING的數(shù)據(jù),至于開(kāi)發(fā)模式,可能MVC更好一些,對(duì)MVC不熟,不便評(píng)論太多。
3,暫無(wú)未找到解決辦法,但因?yàn)槭荗A類的項(xiàng)目,這方面是必不可少的。如果有達(dá)者知道怎么處理,在SL里加入ACTIVEX控件,可以來(lái)教教我,那和OFFICE的結(jié)合不知道有沒(méi)有好的方法,比如能有個(gè)OWC這樣的控件。對(duì)于PPT,PDF之類的支持同樣重要。
而與此同時(shí),在局部應(yīng)用方面的Silverlight應(yīng)用技巧,又存在很大的優(yōu)勢(shì)。
1.動(dòng)態(tài)的表現(xiàn),對(duì)于多維報(bào)表,圖形報(bào)表,都 有很好的支持方案
2.復(fù)雜的業(yè)務(wù)邏輯頁(yè)面處理。
現(xiàn)行的頁(yè)面在處理,父子,本源-分支的頁(yè)面關(guān)系時(shí)都是使用打開(kāi)IE窗口來(lái)實(shí)現(xiàn),而對(duì)于一些復(fù)雜的頁(yè)面邏輯,比如實(shí)時(shí)拖拽應(yīng)用,實(shí)現(xiàn)效果展示,及追求業(yè)務(wù)的完整性方面,現(xiàn)行都是普遍使用JS+DHTML方案,而SILVERLIGHT可以很好的解決之方面的問(wèn)題
1,把父子,本源-分支的頁(yè)面關(guān)系封裝來(lái)一個(gè)頁(yè)面來(lái)實(shí)現(xiàn),避免了由于IE安全性設(shè)置或是第三方IE插件所引起的局部性失效,同時(shí)頁(yè)面控制由于一個(gè)通用管理器,方面于變量的傳遞
2,由于SILVERLIGHT本身的特性所致,會(huì)出現(xiàn)“一體性”的特點(diǎn)。既,對(duì)用戶來(lái)說(shuō),如果安裝了SILVERLIGHT插件,則SILVERLIGHT就能使用,反之,則不能使用,對(duì)用戶來(lái)說(shuō),不存在第三種可能,它是完整的存在。
而JS用于其不存在完整性驗(yàn)證,在用戶大訪問(wèn)量或是網(wǎng)絡(luò)傳輸不穩(wěn)定的情況下不能保存其完整性,如目前互聯(lián)網(wǎng)上大型的門(mén)戶或是要求安全級(jí)較高的網(wǎng)銀系統(tǒng)同樣存在這個(gè)問(wèn)題(我就發(fā)現(xiàn)了不止一次招行的網(wǎng)銀報(bào)JS出錯(cuò),刷一下就好了,刷刷更健康)。