ASP. NET MVC4 NHibernate篇

本篇主要介绍一下asp.net项目开发的基础知识。要想独立开发一款基于NHibernate的项目,你需要掌握以下知识:C#语言及其编写、搭建项目架构、引用SpringNHibernate文件、掌握NHibernate的三种数据库语句编写、配置NHibernateSpring文件,以及HtmlCssScript( 可掌握easyUIJQuery、angularJS和bootStrap )语言。


1、项目架构

项目一般包含以下部分:

Views:存放用于页面展示的文件,例如.aspx.cshtml等为后缀的文件。

Configs:存放NHibernate的配置文件。

Controls:存放控制器。

IBLL:业务逻辑层接口。

BLL:业务逻辑层,处理业务上的逻辑判断等。

IDAO:数据访问层接口。

DAO:数据访问层,与数据库直接打交道。

Model:存放数据结构模型和模型映射文件。

Content:存放一些CSS文件和图片。

Scripts:存放JS脚本文件。

当然,根据需求不同,项目的架构也会随之改变。

2、配置文件

NHibernate的配置文件一般存放于Configs项目下。配置文件包括以下

Controls.xml:存放控制层的配置的文件。

Business.xml:存放BLL层的配置的文件。

DAO.xml:存放DAO层的配置的文件。

CommonDAO.xml

实例:


Controls.xml:配置控制器层

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
  <object id="HomeController" type="Web.Controllers.HomeController,Web">
    <property name="UserBLL" ref="UserBLL" />
  </object>
</objects>

Business.xml:配置BLL层

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
  <object id="UserBLL" type="BLL.UserBLL,BLL">
    <property name="UserDAO" ref="UserDAO" />
  </object>
</objects>

DAO.xml:配置DAO层

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
  <object id="UserDAO" type="DAO.UserDAO,DAO">
    <property name="SessionFactory" ref="SessionFactory" />
  </object>
</objects>

CommonDAO.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database">
  <description>
    Definitions for the NHibernate Objects.
  </description>
  <!-- 数据访问对象替换位置 -->
  <object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
    <property name="ConfigSections" value="databaseSettings"/>
  </object>
  <!-- Database and NHibernate Configuration  配置使用Nhibernate -->
  <db:provider id="DbProvider"
               provider="${db.provider}"
               connectionString="${db.connectionString}"/>

  <!--provider="SqlServer-2.0"  connectionString="database=BookDB;uid=sa;pwd=123456;server=.;"-->
  <object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider" />
    <property name="MappingAssemblies">
      <list>
        <!--这是配置嵌入资源 对应的xx.hbm.xml文件所在的项目名称-->
        <value>${nhibernate.domain}</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>
        <entry key="hibernate.current_session_context_class"
          value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate32"/>

        <!-- session管道 -->
        <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>

        <!--数据库方言-->
        <entry key="dialect" value="${nhibernate.dialect}"/>

        <!--数据库驱动-->
        <entry key="connection.driver_class" value="${nhibernate.driverclass}"/>

        <!-- 外连接 -->
        <entry key="use_outer_join" value="true"/>

        <!-- 是否显示SQL语句 -->
        <entry key="show_sql" value="${nhibernate.show_sql}"/>
      </dictionary>
    </property>
  </object>

  <object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider" />
    <property name="sessionFactory" ref="SessionFactory" />
  </object>

  <object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
    <property name="TransactionManager" ref="HibernateTransactionManager" />
    <property name="TransactionAttributeSource">
      <object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data" />
    </property>
  </object>
</objects>

最后,别忘了给xml文件的属性设置为“嵌入的资源”。

控制器里要写上用到的IBLL层对象的申请。

BLL层要写上用到的IDAO层对象的申请。


3、SpringNHibernate引用文件(版本必须要对应,否则会报错,以下是其中一种)

文件名 版本

Common.Logging 2.0.0.0
Common.Logging.Log4Net 2.0.0.0
Iesi.Collections 1.0.1.0(DAO)
log4net 1.2.10.0
NHibernate 3.2.0.4000(DAO)
Spring.Aop 1.3.2.40943(DAO)
Spring.Core 1.3.2.40943(DAO)
Spring.Data 1.3.2.40943(DAO)
Spring.Data.NHibernate32 1.3.2.40943(DAO)
Spring.Web.Mvc 1.3.2.40943
Spring.Web 1.3.2.40943
DotNetOpenAuth版本都要4.0.0.0


最后,你需要熟悉框架的流程以及数据传送json等 )

当用户浏览一个页面时,页面会将请求发送给控制层,然后通过业务逻辑层和数据访问层将相应的数据取出,通过Model回传给控制层,再由控制层决定该用哪个View来显示页面呈现给用户。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值