• 技术交流大会总结


    大家手里负责的项目都差不多OK了,前些天,大家在一起大概花了一整天的时间,对自己开发项目中的业务、问题、技术等,进行了交流。

    大家做项目的时间大概都是在3到4个月之间。记忆较为深刻的教务系统。它分为四个子系统:基础、选课、评教、考试。这是大家做的项目中,规模最大、涉及人员最多的项目。


     

    教务——基础部分设计:

    数据库不要设置外键约束,所有的关系使用第三张表来维护。也就是说,只要两张表有关系,就需要加一张表来维护它们的关系。目的就是通过降低效率,增加基础表的灵活度;

    采用主键生成器,保证生成的主键不会重复:一个类,返回一个id(每次都会不同),donet里面和数据库都有;

    触发器批量问题:级联触发触发器,二级触发的时候会只默认删除第一条数据,不能删除所有数据。解决办法是采用游标,强制全部删除。

    删除时,比如学院、专业、班级、学生。要倒着删除,就像存在外键一样,否则会出现各种问题。

    采用视图,第一次查询出来之后,并没有将其写入内存保存;每一次查询都会执行一次查询。所以说,采用查询很多表中的数据时,采用视图比较耗时。解决办法:将数据查出来后,将数据写入动态创建的表中。然后使用的时候,只在这一张表中查询使用;

    遇到的时间戳问题:没有必要太精确,太精确,太追求完美就把自己卡死了。

    工程学的概念:模模糊糊,差不多是大学问题。模模糊糊看问题,才能把问题解决掉。

    真删、假删的概念:字段标记,不对历史数据进行真正的删除操作,最多时沉默数据。


     

    教务——选课部分:

    一个学期充基础数据库里面拿一次数据,供学生选课,第二次选时,将数据放入历史里面,然后重新拿数据。

    客户端显示数据量不准确:这里的不准确我认为可以忽略,而且没有必要加锁。

    路径问题:CSS是相对于CSS文件的路径,JS是相对于项目的路径;

    事务的嵌套问题:<http://blog.csdn.net/jesse621/article/details/8696734>,TransactionScope事务,分布式时使用;


    教务——评教部分:

    圆饼图的使用,第三方控件;

    sql语句:order by newId,查询出来的结果是随机排序的;

    学习要以兴趣为主,保持继续学习的兴趣是第一位的;

    分布式不是用来解决备份问题的。当一台机器没有能力进行处理时,需要多台共同努力做一件事时,使用分布式;

    使用太多js,要考虑安全性问题的思考。


    教务——考试部分:

    大帅自己封装了一个级联控件,很是时尚新颖,贾琳写了一个父页,封装较为常用的方法。

    实现汉字转拼音:汉字数组、数字数组,进行字符串比对;

    遇到问题:AJAX并发量大,由于没有手动关闭数据库连接,而系统释放资源需要一段时间,导致一时间资源被大量占用,无法继续进行考试;

    jquery ui简介。


    远程查验:

    使用css框架BootStrap,浏览器兼容性问题是大问题;

    自己手动调整不兼容的页面,在css文件里面引入,相当于打补丁;

    各自学习原形工具,然后交流学习;

    菜单的动态改变,采用权限框架;

    水晶报表的使用:数据库中存储字段类型为:blob;

    手机和后台交互方面采用Socket协议传输;

    json序列化:对象json化;反序列化:json对象化;

    手机端安卓应用简要介绍(日后步春辉做专题,学术文员会提上日程);

    AJAX+XML,XML进行标识,实现刷新的最小区域化。


    电话拨号系统:

    树形结构:维护两份数据:数据库和XML。递归实现;

    Session的SQL Server模式介绍;

    关于iframe框架的使用介绍;


    化学系统:

    实现评论的树形结构;

    播放视频,播放课件,播放flash的实现。


    永和豆浆:

    讨论1:B层方法是否可以进行相互调用。最终大多是人认为:B层之间是可以相互调用的,如果用到别的地方的方法,就自己写一个的话,一个庞大的系统到处会出现重复代码,修改起来也是个麻烦事儿。

    讨论2:一个查询需要多个表,实现方式是什么。一是在B层对多个D层方法的返回值进行组合、拼接;二是采用视图在D层拼接好,然后查询视图。最终解决是看需求而定。

    接口:父类实例化一个父类类型的子类,子类的新增方法内部可以使用,外部调用不到;

    热敏打印机,没有进行讲解,用到的话现学去;

    二维码报告(日后李祥做报告,学术委员会提上日程);

    水晶报表报告(日后蒋倩兰做报告,学术委员会提上日程);

    最小发布,增量开发:http://blog.csdn.net/xiaoxian8023/article/details/8715837

    左边动态的菜单的实现;采用事件动态修改XML;

    动态编译的概念:很多按钮都能够动态生成,程序中,用到了动态生成类,使用该类的时候,需要对其进行动态编译;

    在服务器加载一些ActiveX,客户端只需要进行手动安装一下子就OK了,然后能够使用ActiveX里的功能。不采用这种方式,需要在使用该系统的客户机上注册该控件,非常不方便。然而这种方式需要为ActiveX控件加数字签名已经CA认证。


    订餐系统:

    global里面使用代码检测,只要iis服务开启,就能够进行实时监测。

    业务要求:提前订餐,如果到时候未就餐,则会处相应罚款;如未交纳罚款,无法进行下一次订餐。


    总结:

    这次技术交流大会,最大的收获就是极大的解决了“就怕不知道”的问题。大家用到的很多技术都给我耳目一新的感觉。很多知识,大家感觉到难主要是因为对它的陌生,就是一层窗户纸的事,点破了也就会发现,其实很简单。

  • 相关阅读:
    osharp3引入事务后操作结果类别的调整
    Code First 迁移
    表达式拼接Expression<Func<IEntityMapper, bool>> predicate
    ASP.NET中Session的sessionState 4种mode模式
    EF Code First Migrations数据库迁移
    啊里大鱼短信发送API
    asp.net服务器控件的生命周期
    osharp3使用经验:整合DbContextScope 文章 1
    关于MarshalByRefObject的解释
    数据库操作事务IsolationLevel 枚举
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3010862.html
Copyright © 2020-2023  润新知