先记下这些小毛病,后面在慢慢回味-第二篇_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 先记下这些小毛病,后面在慢慢回味-第二篇

先记下这些小毛病,后面在慢慢回味-第二篇

 2017/10/26 2:55:52  专注写BUG  程序员俱乐部  我要评论(0)
  • 摘要:理解需求:理清业务逻辑,根据业务场景,选择合适的解决方案按照开发语言的编程规范开发对象的序列化:处理ajax请求时,一般都是将后台要返回的数据序列化成json对象,这样便于页面获取json数据如果后台返回给页面的数据已经是json对象了,但是前台仍然获取不到,可以用$.parseJSON(data);在jquery3.0以后,请用$.parseJSON已经过时,不建议使用,将字符串解析成JSON对象,请使用原生的JSON.parse方法来代替。在三层架构中,DAL和BLL的创建
  • 标签:
  1. 理解需求:理清业务逻辑,根据业务场景,选择合适的解决方案
  2. 按照开发语言的编程规范开发
  3. 对象的序列化:处理ajax请求时,一般都是将后台要返回的数据序列化成json对象,这样便于页面获取json数据
  4. 如果后台返回给页面的数据已经是json对象了,但是前台仍然获取不到,可以用 $.parseJSON(data); 在 jquery3.0以后,请用$.parseJSON已经过时,不建议使用,将字符串解析成JSON对象,请使用原生的JSON.parse方法来代替。
  5. 在三层架构中,DAL和BLL的创建,都要以数据来源为依据,不能根据UI的要求去创建对应的BLL文件;数据库的每一张表,对应一个实体类,对应一个DAL,对应一个BLL,这样可以保持整个项目结构比较简洁,便于后期维护,不要到处创建BLL。对于通用的操作,可以写在BaseDAL(或者BaseBLL)中。asp.net MVC亦是如此。
  6. 数据模型(实体类)以业务为主,既有通用性,又具有独特性。如果数据模型(实体类)不满足当前业务,可以写一个扩展类,继承于当前的数据模型(实体类)
  7. 在三层架构(或ASP.NET MVC中),尽量做到各层各司其职。
  8. 数据库只用来存储据(少写存储过程,少写SQL)
  9. model层的实体类,只用来存与数据库每张表对应的实体,以便各层用model传递数据
  10. DAL层操作数据库,如果用ado.net操作数据库,尽可能的少用DataTable;推荐使用EF框架,尽量减少与数据库的交互,合理使用缓存
  11. BLL层,用来处理从DAL层拿到的数据,主要是从业务的角度去处理
  12. UI层,用来做展现,在将数据展现给UI层之前,最好是将数据序列化为json对象,便于前台处理
  13. 对于数据的增删改,不要从页面上取数据,所有的数据都从数据库来。例如要修改某个用户的信息,这个时候后台一般有两个editUser的方法,示例如下: 
    1.   [get]
          public User EditUser(string UserID)
          {
          //这个方法的作用是:1.从数据库获取用户信息
                              2.当数据获取到之后,进行下一步操作(跳转到修改页面,或者是弹出一个框)
                              3.将获取到的数据,传递给真正用来提交数据的那个方法
          }
          
          [post]
          public bool EditUser(User user)
          {
              //这个方法,才是真正将修改后的User信息,提交给服务器
          }
  14. web端需要提交的数据,尽量放在form里,然后用$("#formid").serialize()方法,将表单数据封装成json
  15. 所有的增删改操作,都最好有日志记录,对数据的删,一般都会保留原有的数据,新增一条新纪录,做软删除。
  16. ambda表达式其实是对当前对象的迭代,使用时,要明白每一个操作之后返回的对象是什么。
  17. EF框架中的lambda表达式,select和where的顺序在写法上不分先后,因为是懒加载,用的时候(比如调用ToList()方法)才会生成一条完整的sql。select是必须的,否则会出异常
  18. 普通的lambda表达式,不操作数据库的时候,只是对当前数据的筛选和计算。要注意select和where之间的顺序,select和where 都不是必须的
  19. JS比较大小,要用parseint()和parsefloat() 将字符串转换为对应的int或float类型之后,才能做比较
  20. sqlserver的递归和游标,使用时注意全局游标与本地游标的区别
  21. 浏览器调试,注意打断点的位置
  22. 理解ajax的异步原理和执行过程
  23. 数据库建表,要避免表的冗余,相同结构的数据,可以放在同一张表中做好标识
  24. 配置表要具有通用性
  25. 学习项目结构(架构)设计,提升项目的性能。项目结构要具有可扩展(接口式编程),易卸载的特点
  26. 系统的通用部分:全局异常处理(可提高系统的稳定性)、日志监控(便于快速定位问题)、用户权限配置、数据导入导出、邮件服务
  27. 代码中尽量不要写绝对路径
  28. 如果程序本机正常,在服务器上运行异常,解决办法:1.查看服务器系统日志 和IIS日志 2.用VS进行远程调试
上一篇: SQL调优 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名