总结一下散乱的开发点滴(2) (高手勿入)
最近做的都是些杂活,总结出来的更偏重于一些vs.net的使用方法,不过挺有用的,怕以后忘记,丢出来先:)
1. options > source control > SCC > perform background status updates > 去掉,可以省去每次打开项目时自动进行后台版本控件的状态更新(这东东让VS。NET启动速度大大的慢)
2. 用过vs.net里的bookmark和navigate吗?当然有很多人用过,不过偶从来没用过 T.T,我突然发现这东东特好用,比如在页面中设置一个书签,再切换过去,不过vs关掉就消失了,而且书签的导航只能限于一个文件;navigate可以记录你点击过的行数的顺序,使用前后按钮可以切换你点击过的东东(比较方便喔,不用"咦?我刚看的方法跑哪去了?" 这么老是找来找去的)
3. 编译的时候,可以实现检查是否每个方法前都有XML的注释,如果没有注释,就有warning的提示:) 不过具体方法(?) - -!
4. ReSharper工具不错,能反射出来此方法在什么地方被调用过,主要是用于代码重构
在重构的过程中起到很方便的作用,能提取出接口,公共类等。在寻找调用过它方法的功能上尤其能胜任:)
还有一些其它的好处,等待大家发现
5. aspnet_static 有没有试过有时这个服务启动不了呢,它有什么用.
在web.config里面定义 session_status: 有一个inproc,一个为aspnet_static...一个是session为共用的(编译后session不会消失),一个是aspnet_wp进程内的
6. dos命令 - -!
cd: 待删文件的顶层目录
dir FOLDER
>del *.keep/s //s,删除子文件夹D东东(可以把*.bak等,cc里生成的*.keep都给del掉,方便)
7. 对viewstate定义枚举量的方法来进行实现,可以省去定义属性的麻烦(其实这种也很麻烦,得不停的ToString()转换:( )
{
/// <summary>
/// 存储项目编码的ViewState名称
/// </summary>
ProjectNo,
/// <summary>
/// 存储是否是添加课程信息的ViewState名称
/// </summary>
IsAdd,
}
实事上我们更偏向于用属性来进行存取
8. 有没有试过在vs.net里定义一些常用的快捷键( Tools > options > environment > keyboard ) 呢,我现在觉得有用的快捷以及功能如下,可以存为自己的命名如syveen:
Edit.CompleteWord (自动完成关键词) alt+j
Edit.CommentSelection (注释代码) alt+w
Edit.unCommentSelection (反注释代码) alt+e
另外还有一些已经定义的有用的:
页面书签导航 Ctrl+k , Ctrl+n
扩展收缩代码 Ctrl+m , Ctrl+l
(还有有用的快捷和功能吗?)
9. objArr = object.getElementsByTagName("select"); ^^ 找出页面所有select的Tag的控件对象,可以实现编辑页面直接用js来达到显示文本的目的(上次帮朋友想的,本机没代码:( );
思路及实现步骤:
1) 整理页面需要显示的对象,如input(文本框),select(下拉框)
2) 隐藏当前控件,使用obj.style.display = "none",注意不要用其它隐藏,因为页面可能使用过这些控件
3) 用 objArr.parentNodes[0].innerHtml 取出父控件下的所有html代码,将obj中显示的值写进objArr.parentNodes[0].innerHtml中(当然是用 += 来连接串了)
最后注意循环控件时要从大往小循环,以避免一个TD(或父控件)出现一个以上的需要处理的控件对象
*JS中得到select的ITEM的个数,为selObj.options.length 而非items.length
10. System.Collection.HybridDictionary是什么?
MSDN: 在集合较小时,使用 ListDictionary 来实现 IDictionary,然后当集合变大时,切换到 Hashtable。
建议在集合比较小时使用HybridDictionary而非Hashtable;
我记得这儿有人贴过另一种名值对的对象(?)
11. SELECT COUNT(1) FROM TBL 来进行记录数的统计,而不需要用count(*),以小小节省性能
12. 对于在一个域内只使用一次的非静态公共方法,可以用
来进行实现, 而不用总是:
int iRet = _pa.DecomposeInternalFee(user);