这些天总结的一些开发经验

Posted on 2008-03-30 18:03  名号M  阅读(258)  评论(0)    收藏  举报
 

1.       注释的写法。

C#文件一般在文件头处注释上此文件的创建时间,创建人,修改时间,修改内容等。而在类头应写名此类的用途,其它的修改什么的信息就可以免了(因为在VS中调用时是会显示的)。

2.       Session的小问题

注意在引用Session之前,一定要判断一下它是否为空,否则调试的时候不定的异常可让你受不了啊。

3.       UI层页面后台代码不要设计内部逻辑

比如我在导入文件的页面中包含了如何导入的代码,耦合性就太强了,不利于复用和维护。最好在BLL层定义一个这类功能的工具类来进行相关处理。

4.       调试SQL语句的问题

在调试模式下,发现问题是SQL语句的问题后,可以把sql语句拿出来放到查询分析器里去调试,逐级缩小范围,很可能就是某个字段的问题

5.       导入文件到数据库的经验

有些文件格式不是很规范,比如出现“;”“()”之类的东西,如果用户允许,最好导入时做个格式化处理。省的事后查询麻烦。另外有些数字在数据库字段设置的时候,不一定要设成int行,如果没涉及到具体的统计计算,设成nvarchar就好了。

6.       设置页面大小的问题

一般px用的比较少,设成百分比,改也好改。另外,页面的控件不要拖动(那样会生成不干净的代码),在主题里统一设定比较好。

7.       使用UpdagePanel的注意事项,可能会出现PageRequestManagerParserErrorException 的异常

1.不能使用Response.Write, 可以用Writer.Write 代替

2.不能使用Reponse.Redirect,请使用静态链接代替

3.如果Trace打开,也有可能出现异常

4.HttpModules也不要采用Response.Write直接修改输出流

有时候在实际使用中,Response.Redirect,也是可以的。

http://blog.csdn.net/xiaojun153/archive/2008/01/24/2063541.aspx

8.       改程序的经验

代码尽量不要把以前的做修改,特别是底层的东西,尽量添加新的。某天就遇到了灵异事件,发现昨天还好好的模块突然就不能用了,后来沮丧的查了半天才发现是慧宇把数据库的一个存储过程给修改了,导致调用失败。我都快哭了!这是惨痛的教训啊!

9.       异常处理

对异常一定要做抛出处理,象上面那个问题,UI层在进行数据源获得的时候没有进行异常处理,导致那个可能是轻量级的异常没有在UI层发现,这样调试时就难以看到。

10.   Css大黄如是说

他的习惯是

CSS一开头就写上这句:

*{

margin:0px;

padding:0px;

       border-width:0px;

}

11.   SQL Server2005还原备份

可能会选择好了备份却出现“备份集中数据备份与现有数据库不同”。一定要在“选项”中选择“覆盖现有数据库”!

12.   导入文件处理空格

适当使用string.Trim()把不该有的空格去掉

13.   Session超时问题

有一个<system.web>下的<sessionState>标签里设置timeout但是解决不了问题。用户登陆超时主要是Cookie的问题,需要在Forms标签下设定timeout属性。

http://blog.csdn.net/lizhenhuatop/archive/2007/11/05/1867949.aspx

14.   垃圾代码不要留

改代码往往把原来的老代码注释了,不想删,后来看看感觉很乱,删了反正有版本控制机制,反正不会丢失。

15.   异常处理的错误信息

一般把些概况反馈给用户,而不是实际的错误信息,实际的信息可以附加上。概况信息一般可以自定义异常类或者统一用Xml给异常信息做映射。

16.   不同浏览器的问题

IE7IE6<div><table>设置有很大差异。比如设置绝对px值在IE6中可以正常显示,在IE7中就会出现显示的问题(页面乱了)。解决方法是设置相对大小用%来代替pxIE7<div><table>等嵌套比较复杂情况时里面的<Panel>控件中的ButtonCheckBox等服务器控件可能出现无法相应的情况。这在IE6是不会出现的。解决方法是去掉过多的层次嵌套。

17.   注意DateTime是有范围的!

datetme是从1753-1-19999-12-31。还有一种smalldatetime是从1900-1-12079-6-6http://blog.163.com/afishman@126/blog/static/471226472008270590146/

18.   TextBox输入带有字母和"<"的字符串,比如"<html>",点击查询系统就会抛出异常。从客户端中检测到有潜在危险的 Request.Form

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EditFileTemplate.aspx.cs" Inherits="EditFileTemplate" ValidateRequest="false" %>

page中加入 ValidateRequest="false"就可以了。如果有许多页面,可以在web.config中的<pages ValidateRequest="false">就统一设置了。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3