`
ol_beta
  • 浏览: 289879 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

最近...

 
阅读更多

最近做了两个项目,一个B/S的,一个C/S的。

我以前是做java开发的,不过最近自学了C#正好试试手。java里面的框架很多,而且成熟好用,学了C#后也看了关于.net开发的框架跟工具。

似乎搞.net开发的是不太喜欢用框架,不像java那样追捧框架。Hibernate在java的开发中很流行,而且Hibernate也有.net的版本NHibernate。花了几天时间看了NHibentate,其实用法跟Hibernate差不多,不过就是配置上有些繁琐。又花了两天时间用codesmith把NHibernate给封装了,这样以后开发就方便了。

C/S:党费管理系统。

这个活是学院老师给介绍了,给校党支部做一个党费管理系统。以前的党费管理都在excel中进行,就是想把所有的管理操作集成起来,我跟史听了老师的需求后,觉得用java做B/S的桌面app有些不妥,java做web app当然没得说,但是做桌面app真是挺恶心的,想起我们以前做的一个酒店记账系统,界面巨难看,而且巨慢。正好我看了C#,派上用场。

开始我们的分工是史画界面,我把后台架子打起来。本来后台史想用nettiers,但是我没看过,最后还是用了大家都熟习的NHibernate。正好自己封装的Hibernate也派上用场。

powerdesinger设计的数据库感觉结构简单,三个表

其实感觉如果不用框架的话一个表就OK,只不过荣誉字段多了点。codesmith生成工程后就搭好了后天,然后导入我打包的Hibernate

测试OK就把史的界面那过来开发。开始我们俩分析的挺简单的,就是简单的CRUD,仔细分析后才发现并非如此。党费管理是分层的,不论那一层数据发生变化,其他各层都发生变化,不过还好有Hibernate,面向对象让开发简单了不少。

不过在开发工程中有一个很棘手的问题是Hibernate的Session管理,每个按钮,每个事件几乎都要涉及到Session的,而Hibernate的Session的建立是很耗费资源的,每一次事件都要new Session的话,系统吃不消。最后我们的用了最笨的方法,程序启动创建一个静态的Session,每个界面、按钮、事件需要Session的时候就把这个Session传递过去,测试勉强过得去,不过有事报异常:Session is Closed!这个异常不经常出现,忍了,反正是B/S,就一个用户操作,就这样做完了这个项目,老师回去用着感觉还可以,有些细节方面反馈给我们,我们改了后这个项目就算结束了。

B/S:Onninen OB IIS

我跟史刚接这个项目的时候都笑了,感觉简单,一个礼拜搞定。没想到真的没那么顺利。

开始谈完需求感觉还OK,美工要求不高。客户说晚上有人跟我细谈需求分析,我把他给我的需求文档看了看,有了个大概了解。晚上9点电话,一看号码惊了,+35……。长这么大第一次接国际长途,当时手都僵了,蛋定!还好我喂了一声对方回答的是汉语。聊完后感觉网站的需求差不多了,晚上又跟史沟通一下,打算明天开始……

这个网站已经有了域名和空间了,我们联系了空间客服后当时就傻了,php的空间。我跟史都是java出身,php都没碰过,本来觉得没法接了。后来仔细看看他们的空间说明看的了支持asp.net。觉得还有戏,但是我们不能使用java了,还是用学了不到两个月的asp.net吧。史在公司用的是C#,而且用nettiers。后台由他搭建,我弄弄前台界面。

没想到不顺一个接着一个,空间的数据库是mysql,用nettiers的话要在服务器上安装插件……唉,没辙。还是用NHibernate吧。其实我挺担心的,上次做B/S的时候Session问题现在还没解决。

搭好架子传到空间上测试……不能运行,各种错误。联系了客服我芬特了……他们的空间支持的.net版本是1.0和2.0。等于说我们用.net3.5做的应用根本不能运行。

还是没有放弃,更换了编译环境后经过跟客服一步步沟通终于能运行了。

开发还算顺利,但是Session问题越来越明显,动不动就session is closed!哎~,绞尽脑汁,看了一天的NHibernate源码,上了好多论坛,才发现原因:事务提交的时候session已经关闭了。但是怎么解决,session自己close了。又花了半天的时间把打包的Hibernate重写了一遍,不让session自动close。问题算是解决了。以前做java开发的时候Hibernate session的管理都是有spring管理的,也没太注意,这次算是个教训吧,多看看源码。

后来的开发也不怎么顺利,各种问题……终于在大年二十八完成了 v2.0 beta 剩下的年后再说吧……

程序员很累,全天下的程序员春节快乐!

Technorati 标签: Hibernate,Nhibernate,Session,.net
分享到:
评论

相关推荐

    rdpwrap.ini 10.0.22598.1及以下版本

    10.0.17738.1000.ini 10.0.17746.1000.ini 10.0.17763.1369.ini 10.0.17763.1697.ini 10.0.17763.1971.ini 10.0.17763.1971.ini 10.0.17763.2213.ini 10.0.17763.2213.ini 10.0.17763.2268.ini ...

    蚂蚁怎样走最近.doc

    蚂蚁怎样走最近.doc

    magento用户使用手册.pdf

    什么是Magento........................................................................................................................6 Magento的元素和专业术语.............................................

    com.google.gson.Gson.jar

    json我们在网络请求中经常用到,最近最火的微信小程序开发中更是必不可少。平常我们都是用net.sf.json.JSONObject来把对象转为json,但是当对象是一个对象列表如:List<Users> list =new ArrayList(); 用户列表对象...

    英语连接词大全版本.doc

    - `lately`: 最近... - `as soon as`: 一...就... - `afterwards`: 之后... - `temporarily`: 暂时... - `earlier`: 早些时候... - `now`: 现在... - `anyway`: 无论如何... - `in the meantime`: 在此期间....

    微型电动汽车离智能化最近.pdf

    微型电动汽车离智能化最近.pdf

    C# 提取Word目录适用WPS,Microsoft.Office.Interop.Word

    在IT行业中,尤其是在软件开发领域,经常会遇到与文档处理相关的任务。C#作为一种强大的编程语言,结合Microsoft.Office.Interop.Word库,可以实现与Microsoft Word的交互,包括读取、编辑和创建Word文档。...

    世界500强面试题.pdf

    1.1. 简介 ............................................................................................................... 8 1.2. 面试题集合(一) .........................................................

    35.(leaflet篇)leaflet+turf计算离点距离最近线上的点坐标.zip

    在本教程中,我们将深入探讨如何使用Leaflet和Turf.js这两个JavaScript库来计算离给定点最近的线上的点坐标。Leaflet是一个流行的开源库,用于创建交互式地图,而Turf.js则是一个地理空间分析库,提供了丰富的地理...

    sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用已解决

    最近项目实验发现导入工具程序后项目有错,查看发现sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用,找不到相应的类。 二、原因分析 冲浪后发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中...

    OPatch11.2.0.3.27.rar

    6. **回滚机制**:如果发现新安装的补丁导致问题,OPatch提供了一个回滚功能,通过`opatch rollback`命令,可以撤销最近一次的补丁安装,帮助恢复到之前的状态。 7. **补丁冲突和依赖**:OPatch会检查补丁之间的...

    Reflector7.1.0.143.zip 最近版本

    《Reflector 7.1.0.143:反编译神器的最新迭代》 Reflector是一款广受程序员喜爱的反编译工具,它的最新版本7.1.0.143带来了诸多改进和增强,旨在提升开发者的代码分析和调试效率。此版本的发布表明开发者对...

    16第16讲 这样写工作汇报,让你离升职加薪最近.pdf

    16第16讲 这样写工作汇报,让你离升职加薪最近.pdf

    TensorRT-8.4.3.1.Linux.x86-64-gnu.cuda-11.6.cudnn8.4.tar.gz

    2. **精度与速度平衡**:TensorRT提供多种精度模式,包括浮点32位(FP32)、浮点16位(FP16)、整数8位(INT8)和最近引入的混合精度(TF32),用户可以根据应用场景在性能和精度之间做出权衡。 3. **动态形状支持*...

    GeoIP.dat.gz + GeoLiteCity.dat.gz 20200206.zip

    例如,可以将请求路由到最近的CDN节点,或者为不同地区的用户提供不同的内容。安装和配置Nginx的GeoIP模块需要先下载并解压GeoIP和GeoLiteCity数据库,然后配置Nginx的配置文件,指定数据库路径。 总的来说,GeoIP....

    squid-3.5.28.tar.gz

    4. 多种缓存策略:如LRU(最近最少使用)、LFU(最不常用)等,可根据需求调整。 5. 访问控制:可以设置IP黑白名单,限制特定用户的访问行为。 6. 身份验证:支持多种身份验证机制,如Basic、Digest等,增强了系统...

    squid-3.5.25.tar.gz

    8. **缓存策略**:Squid支持多种缓存策略,如LRU(最近最少使用)、LFU(最不常用)和FIFO(先进先出),可以根据不同场景选择合适的策略以最大化缓存效率。 9. **缓存防盗链**:防止外部站点盗用内部网络的资源,...

    com.google.android.gms:play-gms:play-services:15.0.1

    解决: Could not find play-services-basement.aar ...最近google 出现不少问题 1、google 欧洲反垄断罚金 2、android 系统 手机策略变革 部分goolge依赖也编译不了 ,,,,,,,,,,,

    C#实体类生成器...............................................

    C#实体类生成器...............................................

    jsjiami.com.v7代码解密工具+详细教程.zip

    最近项目遇到很多使用jsjiami.com.v7的程序,使用AST方式(依赖Babel插件)实现的JS代码净化工具,包括常见的几种类型:字面量还原(全局、代码块),死代码清理、扁平化还原,条件、循环语句规范化,特殊函数清理,...

Global site tag (gtag.js) - Google Analytics