Spring.net 与visual studio.net的集成
1、 XML编辑和验证
Spring管理的对象是由XML配置数据来定义的,并由Sprint.NET的XML Schema在运行时进行验证。创建IApplicationContext的XML配置数据所在的位置,可以是Spring的IResource中所支持的任何资源位置。(参考6.1 introduction)要使用独立的XML配置文件来创建IApplicationContext,标准.NET应用配置的自定义配置节会去读取下面的部分:
<spring>
<context>
<resource uri=file://objects.xml/>
</context>
</spring>
VS.NET 2005的XML编辑器可以使用xsi:schemaLocation作为提示,来将schema文件的物理位置与正在编辑中的XML文件联系起来。VS.NET 2002/2003不能识别xsi:schemaLocation元素。在VS.NET 2005中,如果按照下面的方法来引用Sprint.NET XML的schema,就可以在编辑Spring配置文件的时候使用IntelliSense特性和验证支持。要想在VS.NET 2002/2003中享受同样的待遇,就需要在VS.NET中注册schema,或者将schema作为应用项目的文件包含进去。
<?xmlversion="1.0"encoding="UTF-8"?>
<objectsxmlns="http://www.springframework.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.nethttp://www.springframework.net/xsd/spring-objects.xsd">
<objectid="..."type="...">
...
</object>
<objectid="..."type="...">
...
</object>
...
</objects>
通常,将schema集成入VS.NET或者VS.NET 2005,是比较方便的。因为可节省XML文件的体积,并且不需要将XSD文件复制到每个创建的项目中。VS.NET 2003的schema保存目录为:C:\ProgramFiles\MicrosoftVisualStudio.NET2003\Common7\Packages\schemas\xml (VS.NET 2003)或:C:\ProgramFiles\MicrosoftVisualStudio.NET\Common7\Packages\schemas\xml(VS.NET 2002)。VS.NET 2005保存XML schema的目录为:C:\ProgramFiles\MicrosoftVisualStudio8\Xml\Schemas。
为了帮助完成这个文件复制任务,可以使用Spring所附带文件目录,中位于doc/schema目录之内的NAnt所调用的build文件,并执行:nant。
默认的nant目标会将文件spring-object.xsd从doc/schema目录中拷贝到适当的VS.NET目录中。
完成在VS.NET中对schema文件的注册后,就只能向objects元素中添加相应namespace中的声明了。
<?xmlversion="1.0"encoding="UTF-8"?>
<objectsxmlns="http://www.springframework.net">
<objectid="..."type="...">
...
</object>
<objectid="..."type="...">
...
</object>
...
</objects>
注册成功之后,仅用namespace的声明就可以从VS.NET得到IntelliSense和配置文件验证的支持了。或者,通过选择xsd文件的方式,在PropertySheet中为配置文件设置targetSchema属性,也可以达到同样的目的。
如4.7节“与IObjectFactory共同工作”中所展示的,Spring.NET支持使用.NET的应用程序配置文件作为保存object定义的位置,以供object factory管理。
<configuration>
<configSections>
<sectionGroupname="spring">
<sectionname="context"type="Spring.Context.Support.ContextHandler,Spring.Core"/>
<sectionname="objects"type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
</sectionGroup>
</configSections>
<spring>
<context>
<resourceuri="config://spring/objects"/>
</context>
<objectsxmlns="http://www.springframework.net">
...
</objects>
</spring>
</configuration>
在上面这种情况下,VS.NET2002/2003仍然会提供IntelliSense的帮助,但是不能完全验证整个文档,因为App.config的完整schema仍然不能获取。要验证这个文档,需要安装.NET 配置文件schema,和额外用来操作<spring>和<context>配置节以及要创建的<objects>的相关schema。
对schema的验证是VS2005提供的新特性。它伴随着对XML文件的编辑过程,提供全程验证,在Error List窗口后可以看到它发现的任何错误。
当决定在何处放置配置信息后,要记得相应的tradeoff。当进行快速的原型开发时,可以在App.config中保存,如果要进行很重要的开发,可以使用另外的IResource位置,文件或其他内嵌组件资源。
2、 XML schema的版本
从Spring1.0.1升级到1.0.2,Schema的版本做了升级,以支持泛型。1.0.1版本的schema可以在http://www.springframework.net/xsd/1.0.1/处找到,最新版本的schema可以在http://www.springframework.net/xsd/处找到。
3、 集成API帮助
作为安装过程的一部分,Spring.NET API文档注册到Visual Studio。有两个版本的文档,一个供VS.NET2002/2003使用,一个供VS.NET2005使用。它们只是格式不同,VS.NET 2005使用又好又新的格式。好好享受吧!