随着时代的进步科技的发展Visual Studio的版本也快速的提升与升级,下面我就对升级前和升级后的VS2003资源,做一下自己的解析。希望能够对大家有帮助,中间可能有不少错误是我没有挑出的,欢迎大家指正。
VS2003默认的本地化策略是页面级资源文件,但由于这种文件在 VS2003中资源管理器中的布局是跟着aspx文件的,使得维护很不方便,如果你要改一个资源,首先必须知道资源所应用到的文件,再来就是资源的名称,很多情况下。
我们往往会因为资源太多,而漏掉几个需要维护的资源。出于这个原因,程序员们开始考虑使用全局资源文件(Global Resources File),但由于当时在VS2003中没有专用的设计器,且调用资源必须使用ResourceManager,使得一些初学者望而却步,无形中提高了技术门槛。
这次的VS2005则完全改变了这种局面,这在VS2003资源的资源管理器中最容易体现——加入了 App_GlobalResources(全局资源)和App_LocalResources(本地资源)。正因为有了这两个文件夹,你的所有页面的资源不再是跟着页面走了,任何一个页面的资源都会直接被加到App_LocalResources目录下,这样就使页面级资源文件管理变得相对简单。
值得一提的是,这次还在Tools菜单中加入了Generate Local Resource项,注意该项仅在设计视图(Design View)下可见。通过该项,你可以把一个页面中的所有控件的资源自动生成,资源会放在当前页面对应的本地资源文件中,命名是你的控件名称+'.'+属性名称,例如:有一个Label的ID为Label1,则生成的资源有Label1.Text, Label1.ToolTip,资源的值就是你生成时的Text的值和ToolTip的值,如果没有则为空。
#t#生成完成后,你会发现控件已自动与资源绑定,这可以体现在两个方面,***,在属性编辑器(Properties)中,控件的Text和ToolTip没有了值,取而带之的是多了一个浅红色的图标,表示资源已绑定;第二就是在aspx的编码界面中,控件的标记属性中多了一个meta:resourcekey=“[资源名]”。另外,VS2005的资源编辑器也比原来VS2003的方便,不再是通用的xml编辑窗口了,有了许多资源编辑器本应该有的功能,如添加图片、添加文本文件、添加声音文件等,看来以后网上的第三方资源编辑器要没市场了。
再来看全局资源。全局资源文件不会自动被添加,但是我们可以自己建,也不会自动被绑定(否则岂不成了VS200***I版)。当你加完资源后,回到代码编辑界面,你会发现Resources的智能感知会把资源文件名显示出来让你选择,实在是方便。
例如有个资源文件叫Res1,其中有一个String资源叫Text1,你就可以用Resources.Res1.Text1来获得它的值。看到这样的功能,再看看原来自己搭的 VS2003资源维护框架,不免觉得有些郁闷。
这样做的好处很容易想到,一方面资源找起来方便,另一方面资源名不容易打错。或许你会觉得有些好笑,资源名怎么会打错,对于几十个资源来说,这或许是可笑的错误,但当资源增加到数百个甚至上千个,这种事情很容易发生。
不过,这次使用后,也发现了一些不足的地方,但是个人觉得从技术角度实现的确比较麻烦。比如,如果在使用过自动生成资源后,控件改名了,如果再次自动生成资源,VS2005会重建一个资源,而不是把原来的资源删掉,这样可能造成无用资源的堆积,特别是在多次的后期维护之后,当然可能是我要求高了点,大家不要见怪。
总的来说,我对这次的VS2005的本地化功能还是很认可的,甚至有些感慨,VS2003资源开发工具能做到如此方便易用,真可谓是以用户为导向,或者说以应用为导向,在这方面,中国的程序员应该好好向微软的同仁们学习。
由于时间仓促,还没有来得及看基于数据库的资源支持情况,过两天再说吧。