如何進(jìn)行VS2003學(xué)習(xí)的培訓(xùn)與課程
還記得在VS2003學(xué)習(xí)中,本地化特別是全局本地化文件,并沒有預(yù)想當(dāng)中的方便。很多情況下,我們往往會(huì)因?yàn)橘Y源太多,而漏掉幾個(gè)需要維護(hù)的資源,下面我就說一下具體VS2003學(xué)習(xí)注意事項(xiàng)與過程。
VS2003默認(rèn)的本地化策略是頁面級(jí)資源文件,但由于這種文件在 VS2003中資源管理器中的布局是跟著aspx文件的,使得維護(hù)很不方便,如果你要改一個(gè)資源,首先必須知道資源所應(yīng)用到的文件,再來就是資源的名稱。
出于這個(gè)原因,程序員們開始考慮使用全局資源文件(Global Resources File),但由于當(dāng)時(shí)在VS2003中沒有專用的設(shè)計(jì)器,且調(diào)用資源必須使用ResourceManager,使得一些初學(xué)者望而卻步,無形中提高了技術(shù)門檻。
這次的VS2005則完全改變了這種局面,這在VS2005的資源管理器中最容易體現(xiàn)——加入了 App_GlobalResources(全局資源)和App_LocalResources(本地資源)。正因?yàn)橛辛诉@兩個(gè)文件夾,你的所有頁面的資源不再是跟著頁面走了,任何一個(gè)頁面的資源都會(huì)直接被加到App_LocalResources目錄下,這樣就使頁面級(jí)資源文件管理變得相對(duì)簡單。
值得一提的是,這次還在Tools菜單中加入了Generate Local Resource項(xiàng),注意該項(xiàng)僅在設(shè)計(jì)視圖(Design View)下可見。通過該項(xiàng),你可以把一個(gè)頁面中的所有控件的資源自動(dòng)生成,資源會(huì)放在當(dāng)前頁面對(duì)應(yīng)的本地資源文件中,命名是你的控件名稱+'.'+屬性名稱,例如:有一個(gè)Label的ID為Label1,則生成的資源有Label1.Text, Label1.ToolTip,資源的值就是你生成時(shí)的Text的值和ToolTip的值,如果沒有則為空。
生成完成后,你會(huì)發(fā)現(xiàn)控件已自動(dòng)與資源綁定,這可以體現(xiàn)在兩個(gè)方面,***,在屬性編輯器(Properties)中,控件的Text和ToolTip沒有了值,取而帶之的是多了一個(gè)淺紅色的圖標(biāo),表示資源已綁定;第二就是在aspx的編碼界面中,控件的標(biāo)記屬性中多了一個(gè)meta:resourcekey=“[資源名]”。另外,VS2005的資源編輯器也比原來VS2003的方便,不再是通用的xml編輯窗口了,有了許多資源編輯器本應(yīng)該有的功能,如添加圖片、添加文本文件、添加聲音文件等,看來以后網(wǎng)上的第三方資源編輯器要沒市場了。
再來看全局資源。全局資源文件不會(huì)自動(dòng)被添加,但是我們可以自己建,也不會(huì)自動(dòng)被綁定(否則豈不成了VS200***I版)。當(dāng)你加完資源后,回到代碼編輯界面,你會(huì)發(fā)現(xiàn)Resources的智能感知會(huì)把資源文件名顯示出來讓你選擇,實(shí)在是方便,例如有個(gè)資源文件叫Res1,其中有一個(gè)String資源叫Text1,你就可以用Resources.Res1.Text1來獲得它的值??吹竭@樣的功能,再看看原來自己搭的 VS2003資源維護(hù)框架,不免覺得有些郁悶。
這樣做的好處很容易想到,一方面資源找起來方便,另一方面資源名不容易打錯(cuò)?;蛟S你會(huì)覺得有些好笑,資源名怎么會(huì)打錯(cuò),對(duì)于幾十個(gè)資源來說,這或許是可笑的錯(cuò)誤,但當(dāng)資源增加到數(shù)百個(gè)甚至上千個(gè),這種事情很容易發(fā)生。
不過,這次使用后,也發(fā)現(xiàn)了一些不足的地方,但是個(gè)人覺得從技術(shù)角度實(shí)現(xiàn)的確比較麻煩。比如,如果在使用過自動(dòng)生成資源后,控件改名了,如果再次自動(dòng)生成資源,VS2005會(huì)重建一個(gè)資源,而不是把原來的資源刪掉,這樣可能造成無用資源的堆積,特別是在多次的后期維護(hù)之后,當(dāng)然可能是我要求高了點(diǎn),大家不要見怪。
總的來說,我對(duì)這次的VS2003學(xué)習(xí)的本地化功能還是很認(rèn)可的,甚至有些感慨,開發(fā)工具能做到如此方便易用,真可謂是以用戶為導(dǎo)向,或者說以應(yīng)用為導(dǎo)向,在這方面,中國的程序員應(yīng)該好好向微軟的同仁們學(xué)習(xí)。
由于時(shí)間倉促,還沒有來得及看基于數(shù)據(jù)庫的資源支持情況,過兩天再說吧。