整合Spring.net到asp.net网站开发中初探

 

Spring提供了一个轻量级的用于构建企业级的应用程序的解决方案。Spring提供一致并清晰的配置并整合AOP(Aspect-Oriented Programming)至你的软件中。Spring.net最耀眼的功能是在中间层提供声明式事务管理用于构建全功能的ASP.NET框架。

Spring.net是一个提供综合的基础结构用于支持企业级.Net开发的应用程序类库。它帮助我们在程序开发过程中减少复杂性。

将Spring.net应用到asp.net中

首先在web.Config中配置:(初次配置建议使用.net framework 2.0,因为其web.config相对简洁一些,可以给配置减少些麻烦)

<configuration> 
<configSections> 
<!-- Spring --> 
<sectionGroup name="spring"> 
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/> 
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/> 
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/> 
</sectionGroup> 
<!-- Spring --> 
</configSections>

<spring> 
<parsers> 
</parsers>

<context> 
<resource uri="config://spring/objects"/> 
</context>

<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database"> 
<!-- Pages --> 
<object type="Default.aspx"> 
</object> 
</objects> 
</spring>

<sysyem.web> 
<httpHandlers> 
<!-- Spring Handler --> 
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/> 
</httpHandlers> 
<httpModules> 
<add name="SpringModule" type="Spring.Context.Support.WebSupportModule, Spring.Web"/> 
</httpModules> 
</sysyem.web> 
</configuration> Default.aspx.cs文件:

public partial class _Default : System.Web.UI.Page 

private string message; 
public string Message 

set { message = value; } 
get { return message; } 
}

private Math math; 
public Math Math 

set { math = value; } 
get { return math; } 
}

protected void Page_Load(object sender, EventArgs e) 

Response.Write(Message); 
Response.Write("</br>"); 
Response.Write(Math.Add(20, 60)); 

}在app_code文件中添加math.cs文件,代码如下:

public class Math 

public int Add(int a, int b) 

return a + b; 

}在web.config稍做些修改如下:

<spring> 
...... 
<objects xmlns=http://www.springframework.net xmlns:db="http://www.springframework.net/database">

<object name="MyMathObj" type="Math, App_code" />

<!-- Pages --> 
<object type="Default.aspx"> 
<property name="Message" value="Hello from Spring.Net"/> 
<property name="Math" ref="MyMathObj"/> 
</object>

</objects> 
</spring> 翻译的文章来源自:http://www.codeproject.com/KB/aspnet/spring-asp.aspx

在执行上述网址下载的源代码时出现如下问题:

一、The IDbCommand and IDbConnection implementation in the assembly MySql.Data could not be found. Ensure that the assembly MySql.Data is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly.

该问题有些蹊跷,将mysql.data拷贝到本地bin文件夹中可解决

二、Error thrown by a dependency of object 'MySql' defined in 'assembly [Spring.Data]

在web.config中添加如下代码可解决:

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
<dependentAssembly> 
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral"/> 
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="5.2.5.0"/> 
</dependentAssembly> 
</assemblyBinding> 
</runtime> 参考自: http://forum.springframework.net/archive/index.php/t-950.html

http://forum.springframework.net/showthread.php?t=3564

三、Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition

在web.config中添加如下代码可解决:

<!--TxManager--> 
<object id=”HibernateTransactionManager” type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">

<property name="DbProvider" ref="DbProviderMySQL"/> 
<property name="SessionFactory" ref="SessionFactory"/> 
</object>

<object id=”PersonDaoTx” type=”Spring.Transaction.Interceptor.TransactionProxyFactoryObject,Spring.Data”>

<property name="PlatformTransactionManager" ref="HibernateTransactionManager"/> 
<property name=”Target” ref=”PersonDao”/> 
<property name=”TransactionAttributes”>

<name-values> 
<add key=”Save*” value=”PROPAGATION_REQUIRES_NEW”/> 
<add key=”SaveO*” value=”PROPAGATION_REQUIRES_NEW”/> 
<add key=”Delete*” value=”PROPAGATION_REQUIRED”/> 
<add key=”Query*” value=”PROPAGATON_REQUIRED”/> 
</name_values> 
</property>

</object>

整合Spring.net到asp.net网站开发中初探的更多相关文章

  1. ASP.NET网站开发中的配置文件

    来源:微信公众号CodeL 1.配置文件层次分类 Machine.config:  对.netframework整体的配置 web.config(framework目录下):  对所有项目所公有的应用 ...

  2. asp.net 网站开发流程总结

    由于这学期要做asp.net的网站开发,导师让我们在前期做详细的计划说明,时间安排.由于网站开发流程不知道,以及需要学什么指示都是盲懂,所以计划安排需在了解大致流程之后才能做出来,一下是询问同学和在网 ...

  3. 网站开发中很实用的 HTML5 & jQuery 插件

    这篇文章挑选了15款在网站开发中很实用的 HTML5 & jQuery 插件,如果你正在寻找能优化网站,使其更具创造力和视觉冲击,那么本文正是你需要的.这些优秀的 jQuery 插件能为你的网 ...

  4. 网站开发中使用javascript获取浏览器滚动条宽度

    在网站开发中,有时候需要获取浏览器滚动条的宽度,在武汉蚂蹄软件服务中心的技术人员指导之下,我实现了该需求.记录如下: 首先说明一下原理: ①生成一个div,设置滚动条不可见,记录其宽度: ②将上面的d ...

  5. asp.net -mvc框架复习(1)-ASP.NET网站开发概述

    1.网站开发的基本步骤: 2.网站开发的需要的知识结构 (1)网站开发前台页面技术 页面设计:HTML  .CSS+DIV 页面特效:JavaScript.jQery (2)OOP编程核心公共技能 C ...

  6. CGI、ASP、PHP、JSP、 ASP.NET网站开发语言比较

    一.主流网站开发语言的简介及优缺点. 现在主流的网站开发语言主要包括cgi.asp.php.asp.net.jsp等. HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持. (一)  ...

  7. 网站开发中的相对URL问题--JSP

    问题描述: 入门网站开发时,我们会在相对URL问题上有疑惑.例如,在一个jsp页面中引入css外部文件, <link rel="stylesheet"          hr ...

  8. Spring Boot学习笔记:项目开发中规范总结

    Spring Boot在企业开发中使用的很广泛,不同的企业有不同的开发规范和标准.但是有些标准都是一致的. 项目包结构 以下是一个项目常见的包结构 以上是一个项目的基本目录结构,不同的项目结构会有差异 ...

  9. 我在网站开发中经常用到的几个js函数01

    这是我在最近的一个网站项目中频繁用到的几个js函数,非常实用.包括:1.js获取地址栏参数:2.返回cookies字符串中指定键对应的值:3.json格式的日期转换为正常格式4.清除cookie. / ...

随机推荐

  1. 提高mindmanager 8的启动速度

    提高mindmanager 8的启动速度一连串 发布于:2010-01-13 18:12不少人抱怨mindmanager 8的启动速度较慢,用以下办法配置一下就能解决:1.进入mindmanager ...

  2. linear encoder 和 PCA

  3. Aix字符集

    aix 安装中文字符集 1.看到系统安装过的字符集 locale -a 2.安装 smitty-->System Environments-->Manage Language Enviro ...

  4. poj 3020 Antenna Placement (最小路径覆盖)

    链接:poj 3020 题意:一个矩形中,有n个城市'*'.'o'表示空地,如今这n个城市都要覆盖无线,若放置一个基站, 那么它至多能够覆盖本身和相邻的一个城市,求至少放置多少个基站才干使得全部的城市 ...

  5. OAuthBase.cs

    using System; using System.Security.Cryptography; using System.Collections.Generic; using System.Tex ...

  6. C#中的枚举类型

    浅谈C#中的枚举  转自http://www.cnblogs.com/liyingyi/archive/2005/12/28/306772.aspx   枚举类型是一种的值类型,它用于声明一组命名的常 ...

  7. jquery单页网站导航插件One Page Nav

    这是一个轻量级的jQuery的单页网站导航插件.增加了单击后平滑滚动导航和当你浏览不同的部分时自动选择正确的导航项. changeHash: false, 改变当用户单击导航,就改变changeHas ...

  8. $(this) 和 this

    在使用 jQuery 时,$(this) 和 this 具体指: this :是当前 DOM 对象: $(this) 是jQuery对象: 例子: <input type="text& ...

  9. 浅谈Oracle数据库性能优化的目标

    Oracle性能优化保证了Oracle数据库的健壮性,为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.从数据库性能优化的场景来区分,可以将性能优化分为如 ...

  10. UIPasteboard 粘贴板

    UIPasteboard *pasteboard = pasteboard.string = self.label.text;