0%

纪念逝去的又一个月(上)

  明天回大连,虽然周一又要赶回调兵山,心中还是充满着期待。期待个啥,我也不知道,反正是觉得有点期待。记得上次好像是7.20来的,已经一个多月了,为了这逝去的一个月,还是留下些东西为好。先写文档,虽然很没趣,但是还是应该写的,写这份文档前,先对bingosoft感谢一番,然后对师兄徐俊文表示非常感谢。这段时间,弄明白了很多东西,包括原来的老高的那个IRP软件的大部分的功能,对于这个软件,我不太喜欢,因为看到这个软件的数据库表的表名,就知道这个软件没有很好的按照软件工程来做,这个系统没有外键,据说他们认为不加外键是因为这样会提高程序的效率,对这个说法我持保留意见。现在我发现若果看到一个程序里头包含很多label1,linkbutton1的变量的话,我会很生气,不晓得这个算不算是我对软工的一个实践呢。这段时间我还将上次在公司里头学到的大部分东西都用上了,包括那些布局和用户控件,以及样式,启用了主题模式,启用了sitemap管理,仿照以前的那个需求,写了一份需求,重用了以前的masterpage,使用了Util来做全局静态重用函数,使用basepage来提高扩展性,虽然我觉得我的代码写得还不是很好,但是我已经很记住以前老大说过的,重用重用,代码要精简,安全,对于以前公司使用的ORMWeb,我们使用了LINQ来代替。先说说LINQ,这个东西很不错,中间件的课程论文我的题目是对比LINQ,Nhibernate,以及ADO.net+SP的效率,LINQ的效率和NHibernate相仿,与ADO.net+SP的效率不会相差很远,尤其是在我们的这个项目,没有海量的数据,很重要的是LINQ完成了PETSHOP中DAL,IDAL,BLL中的工作,匿名对象的引入增加了LINQ的灵活性,因为,有了匿名对象,我们对数据的投影产生的数据集也成为了对象集,更显示出了C#提出的处处皆对象的理念,引入了LINQ,数据访问层非常简单,维护一张DBML表就可以,原本我们做DAL的体力活就可以大大节省,而且不需要配置任何的XML,不过只能支持SQLServer。对于多表查询尤其是对很多实体的关系表,在ADO。Net+SP中经常我们会做多表连接,而在lINQ中,只需要一次查询,所有的实体的信息已经被查出,对于这样的好处,功过参半吧,对于不需要实体信息的时候,这个查询是有些庞大,有些浪费,但是如果需要使用实体的信息的话,这个LINQ就节省了很多功夫。在没有发现可以只用一条LINQ语句之前,我会把这个工作分成两部分,先查询,放在一个集合里,然后用这个集合和实体类联合查询从而完成以前3表或3表以上的查询,这个工作的提升是NHibernate和ADo.net+SP无法完成的,而这些新的特性很有效的提高了我们的效率,既要保证代码的质量,又要保证工程的进度,还要符合良好的框架。另外使用了匿名对象会导致有一点,在GridView的数据库绑定的时候,在进入RowDataBound函数的时候,通过e获得的DataItem就是一个匿名对象,为了使用这个匿名对象,在网上找了不少资料,后来终于找到一个方法,新建一个同样的匿名对象,然后获得这个对象的类型去做强类型装换。而其在项目开发中往往会遇到这样的一个问题,数据库有可能会经常的有变动,毕竟虽然有需求,有数据库设计,但是设计和具体的开发还是有差距的,尤其是我们这样的新人,如果使用NHibernate或ado.net+sp的时候麻烦就大了,包括属性要自己写,每一个功能还要先写SP,虽然效率高,但是项目进度不能快,尤其是新人。此日志来自QQ邮箱!方便快捷写Qzone的新方式,详情请进>>