Galbanum之08总结

或许是项目的不可取性,也或许是个人的文字功能不佳,也或许是其他的或许.项目至今仍是一个人在做.但有幸的是,CSDN每一篇都有在首页推荐,在些感谢CSDN.


在使用.net开发中,大部分都使用着自己公司的框架。并不像java那么一致,大凡使用着hiberante+spring。在.net界貌似这两样并不是非常火,很多人更习惯于使用适合于自己的项目的框架。我也曾使用过许多框架,心中也一直育浴着适合于自己的东西.最近也抽空干了起来,一开始时本来想开源起来,然后让一些感兴趣的朋友加入并一起探讨,共同进步.没想到后来几乎还是一个人在写代码.呵呵,或许是因为人生势小的原因吧. 但不管咋样,一个人的代码还是要拿出来给大家分享分享的.一来呢或许可以帮助些人,(如果这样也算是如愿了).二来也好让大家分析分析其中的弊端,也是个进步的机会吧.全项目由于全是个人思想,所以如果有出入或者误导,那小弟我也就敬请见谅了.

  以下项目的的源程序下载地址: http://download.csdn.net/source/900959

  既然是总结,也就得说说大致思想和在技术上的取舍方案.

第一个是大家都可能比我还熟悉的Orm,思想启源于Nhibernate的attributeMapping.算是一个模仿吧,减少的是里面的缓存和多级特性.  大致描述的话应该是:实体类对应数据库表,类中的属性对应表字段,属性的特性对应的该字段中的DbParameter的一些属性.而在使用时通过不同方式来获取属性和特性来拼成SQL语句和DbParameter.在技术取舍方面,主要是使用缓存保存TableAttribute(对应表,类特性,具有ColumnAttribute集哈)和ColumnAttribute(对应列,属性特性).在赋值取值方面,即设置DbParamter用的是实体类的接口外调法,即:实体类必须实现IEntity接口,必须实现SetParameter之类的方法,以来避免使用反射.当然带来的是实体类的不简洁,如有好方法的朋友可以一起讨论讨论.

第二个是Cache..大家常用的.但是framework仅提供asp.net的.于是自己写了个缓存项目,可以在winform和类库中使用.大致设计是起一个子线程定时监控,到了过期时间就删除.Cache提供多线程同时操作,压力测试时比较大,应该使用时是没问题的.技术取舍来说,当时其实考虑过使用一个排好序的List来保存数据,每次操作时循环该List,过期则删除,因为是有序的,当判断到一个当前不过期时即可break,这样不用启动子线程,但是每次都循环.两种方案选择了子线程临控.


第三个是Logger..该项目做的时候是想把它整完美的.但是做出来还是有些不如意,大致思法是,可以自定义日志样式,可以共用样式,可以记录在不同路径下的不同文件.但是后来整成了一个实体一个样式了.但还好的是样式可以用switch来判断不同的实体,或者这样也可以减少样式的定义.因为样式是在配置文件中,通过缓存来获取的.所以定义过多会导致内存使用过多.暂未想出其他方案.所以大家有好的意见也可以联系偶.

第四个是Ioc...这是个小玩意,也是个大玩意,本来是模仿spring.net中的IOC,但后来又做了些修改,在项目配置文件中只需定义XML文件路路径,然后根据路径读起XML缓存xmldocument,再根据XML节点反射出实例.主要缓存有xmlDocument,和xmlNode.还有就是在反射过程中的Type,在对xmlDocumnet和xmlNode缓存是使用的前置加载,所以在第一次访问时可以会比较耗时间,当时也想使用xmlPath,使用来个缓存一个,但是想想还是使用了前者.

  以上的设计或者选择都是站在个人角度去思考的.所以针对大家的使用情况可以酌情使用,项目为开源的,若不适合可以适当的修改源程序.
  由于个人的时间和能力有限,项目中的注释和说明并不是很完善,如有不清晰的地方可以联系我共同讨论.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值