仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 732|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Asp.Net中NHiernate的Session的办理

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。asp.net|session  NHibernate中的Session,在我的了解仿佛就相称于数据库中毗连。由于它也有Open/Close的办法,我没有研讨NHibernate的源码,不晓得这类了解是不是有误?我在网上搜了良多的关于Session的办理,年夜多都是在我必要数据库操纵的时分,就OpenSession(),操纵完后就CloseSession().这有点拟似如我们刚入手下手进修ADO.NET的时分,要Connection工具Open(),数据处置完后就Close().可是这里就带来了一个坏处,由于Connection的频仍的开关长短常损耗体系资本的。我记得之前在制造一个数据的录进界面的时,由于这个录进的界面数据元素对照多,并且良多DropDownList必要在数据库中读取数据并绑定。
  如许在该页面的Page_Load中必要挪用响应工具的办法逐一从数据库中检索数据绑定DropDownList.由于我们这些工具的办法都是利用自力的Connection,都有本人的Connection的Open和Close。以是,招致这个页面一翻开就必要守候好长的工夫,对照慢。厥后我们将这些必要绑定DropDownList的数据经由过程一个数据处置成一个DataSet,并将DataSet中的DataTable与DropDownList绑定。如许只必要一次的Connection的Open/Close.页面快了很多多少。
  以是,我以为上述的Session的办理举措不是很妥善。
  厥后,我看了Cuyahoga开源项目中他的Session办理,他利用的“session-per-request”这类形式。从字面上了解就是他为每一个Request创立一个Session,直到这个哀求烧毁,那末这个Session也就Close了。而Cuyahoga他的做法和session-per-request有点分歧中央就是,他为每一个Request都创立了一个CoreRepository工具,CoreRepository是体系所必要的数据处置服务的类。他的做法是先创立了HttpModule(NHSessionModule)用来创立CoreRepository工具和烧毁CoreRepository工具,以下:
privatevoidContext_BeginRequest(objectsender,EventArgse)
{
//CreatetherepositoryforCoreobjectsandaddittothecurrentHttpContext.
CoreRepositorycr=newCoreRepository(true);
HttpContext.Current.Items.Add("CoreRepository",cr);
}
privatevoidContext_EndRequest(objectsender,EventArgse)
{
//ClosetheNHibernatesession.
if(HttpContext.Current.Items["CoreRepository"]!=null)
{
CoreRepositorycr=(CoreRepository)HttpContext.Current.Items["CoreRepository"];
cr.CloseSession();
}
}
  如许在每次哀求的时分,会主动创立CoreRepository工具,当哀求终了后,就CloseSession(),在程序中经由过程HttpContext.Current.Items["CoreRepository"]就可以猎取CoreRepository工具了。
  如许也就变相的办理了NHibernate中的Session,也就到达了“session-per-request”的这类形式。
  具体的解说:经由过程完成IHttpModule初始化Nhibernate的Session
  这类体例比下面的谁人每次操纵都必要创立Session,功能和速率应当进步了很多,接着我就想,每一个哀求都创立Session,是否是我们能够象创立ConnectionPool一样,也创立一个SessionPool,如许就每次哀求的时分不是间接创立Session,而是在我们的SessionPool中拿已创立好的Session,如许效力不是更好?!
以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。
变相怪杰 该用户已被删除
沙发
发表于 2015-1-19 21:19:45 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
山那边是海 该用户已被删除
板凳
发表于 2015-1-28 05:38:53 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
柔情似水 该用户已被删除
地板
发表于 2015-2-5 12:30:35 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
小女巫 该用户已被删除
5#
发表于 2015-2-11 20:28:40 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-2 18:24:29 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
乐观 该用户已被删除
7#
发表于 2015-3-11 05:11:24 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
小妖女 该用户已被删除
8#
发表于 2015-3-17 21:08:25 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
蒙在股里 该用户已被删除
9#
发表于 2015-3-25 02:38:29 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 11:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表