ASP.NET&Spring.NET&NHibernate最佳实践(三)——第2章环境准备

2.1. 开发工具
 Microsoft Visual Studio 2005
 ASP.NET AJAX Extensions V1.0(http://www.asp.net/ajax/
 AJAX Control Toolkit V1.0.20229(http://www.codeplex.com/AtlasControlToolkit/
 Spring .NET V1.1.2 (http://www.springframework.net/
 NHibernate V1.2.1.GA(http://www.hibernate.org/343.html

2.2. 解决方案结构


2.3. ASP.NET配置
2.3.1. 网站地图

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    
<siteMapNode url="~/Default.aspx" title="首页"  description="">
      
<siteMapNode url="~/Salaries.aspx" title="工资管理"  description="" />
      
<siteMapNode url="~/SalaryQuery.aspx" title="工资查询"  description="" />
      
<siteMapNode url="~/Depts.aspx" title="部门管理"  description="" />
      
<siteMapNode url="~/Employees.aspx" title="员工管理"  description="" />
      
<siteMapNode url="~/Users.aspx" title="用户管理"  description="" />
      
<siteMapNode url="~/Roles.aspx" title="角色管理"  description="" />
      
<siteMapNode url="~/UserRole.aspx" title="权限设置"  description="" />      
    
</siteMapNode>
</siteMap>

2.3.2. Web.config
<?xml version="1.0"?>
<configuration>
  
<system.web>
    
<pages theme="Default">
      
<controls>
        
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions"/>
        
<add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
        
<add tagPrefix="gfc" namespace="GFC.Web.UI" assembly="GFC.Web.UI"/>
      
</controls>
    
</pages>
    
<httpHandlers>
      
<remove verb="*" path="*.asmx"/>
      
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    
</httpHandlers>
    
<httpModules>
      
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    
</httpModules>
    
<authentication mode="Forms">
      
<forms loginUrl="~/SignIn.aspx" name=".SalaryPrj" protection="All" slidingExpiration="True" timeout="60">
      
</forms>
    
</authentication>
    
<authorization>
      
<allow users="*"/>
    
</authorization>
    
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
      
<providers>
        
<add name="XmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/>
      
</providers>
    
</siteMap>
    
<compilation>
      
<assemblies>
        
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        
<add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      
</assemblies>
    
</compilation>
  
</system.web>
</configuration>

2.3.3. 母版页(MasterPage.master)
(略) 
2.4. Spring.NET配置
2.4.1. 数据库配置(Config/ Common.Config)
本示例采用Access数据库,DbProvider使用OleDb-2.0,NHibernate使用 JetDriver驱动,需要引用NHibernate.JetDriver.dll。
<objects xmlns="http://www.springframework.net"
         xmlns:db
="http://www.springframework.net/database">
  
<db:provider id="DbProvider"
                   provider
="OleDb-2.0"
                   connectionString
="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Database.mdb"/>

  
<object id="sessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
    
<property name="DbProvider" ref="DbProvider"/>
    
<property name="MappingAssemblies">
      
<list>
        
<value>Guushuuse.SalaryPrj.HR</value>
        
<value>Guushuuse.SalaryPrj.Salary</value>
        
<value>Guushuuse.SalaryPrj.Security</value>
      
</list>
    
</property>
    
<property name="HibernateProperties">
      
<dictionary>
        
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
        
<entry key="hibernate.dialect" value="NHibernate.JetDriver.JetDialect, NHibernate.JetDriver" />
        
<entry key="hibernate.connection.driver_class" value="NHibernate.JetDriver.JetDriver, NHibernate.JetDriver" />
      
</dictionary>
    
</property>
  
</object>
  
<object id="HibernateTransactionManager"
       type
="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">
    
<property name="DbProvider" ref="DbProvider"/>
    
<property name="SessionFactory" ref="SessionFactory"/>
  
</object>

  
<object id="hibernateTemplate" type="Spring.Data.NHibernate.HibernateTemplate">
    
<property name="SessionFactory" ref="sessionFactory" />
    
<property name="TemplateFlushMode" value="Auto" />
    
<property name="CacheQueries" value="true" />
  
</object>
  
<object id="autoProxyCreator"
          type
="Spring.Aop.Framework.AutoProxy.DefaultAdvisorAutoProxyCreator, Spring.Aop">
  
</object>
  
<object id="transactionAdvisor"
          type
="Spring.Transaction.Interceptor.TransactionAttributeSourceAdvisor, Spring.Data">
    
<property name="TransactionInterceptor" ref="transactionInterceptor"/>
  
</object>
  
<object id="transactionInterceptor"
          type
="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
    
<property name="TransactionManager" ref="HibernateTransactionManager"/>
    
<property name="TransactionAttributeSource" ref="attributeTransactionAttributeSource"/>
  
</object>

  
<object id="attributeTransactionAttributeSource"
          type
="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data">
  
</object>
</objects> 

2.4.2. Web.Config
新增spring配置节
<sectionGroup name="spring">
      
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
      
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>

新增httpModule
<add type="Spring.Context.Support.WebSupportModule, Spring.Web" name="WebSupportModule"/>
 
<add type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate12" name="OpenSessionInViewModule"/>

spring节
<spring>
    
<parsers>
      
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>
    
</parsers>
    
<context>
      
<resource uri="~/Config/Common.config"/>
      
<resource uri="~/Config/Guushuuse.SalaryPrj.HR.Config"/>
      
<resource uri="~/Config/Guushuuse.SalaryPrj.Salary.Config"/>
      
<resource uri="~/Config/Guushuuse.SalaryPrj.Security.Config"/>
    
</context>
  
</spring>
posted @ 2010-05-26 14:26  弹着钢琴设计  阅读(347)  评论(0编辑  收藏  举报