24
二
2009,Restart!
弄了一个晚上,终于把URL给解决了,现在可以显示英文别名,也就是传说中的Permalink,又可以在这写东西了,分类还有点问题,晚上回来接着弄。加油!
code is poetry!
归类于:生活芝门 标签:重新开始
29
一
自己在写网页时,基本上都是使用的xhtml1.1的doctype,今天才vs2008下添加一个链接的target是,提示Attribute "target" is not a valid attribute of element "a"。
上网查了下原因:规范制度者认为,链接的打开方式应该由使用者自己决定。
归类于:交互设计 标签:XHTML Target
26
一
何为二次点击?简单来说,在我们的程序中基本上都包括按钮、菜单等控件,他们都具有Click,用户点击后,程序响应事件并进行处理,一般情况下,用户在点击后不会继续点击,而是等待处理结束,或者是在新弹出的界面上进行操作,等一切都处理完后,用户才进行第二次点击,但假如用户在第一次点击后,没等程序处理完,又继续点击呢?程序会怎么处理,会不会与正在进行的处理发生冲突?我姑且称这种情况引发的BUG为二次点击。
今天很走运,测试那边报的几个BUG都是与这个相关的,而且我自己后来也发现了一个更隐蔽的这类BUG,连测试人员都忽略了,这个BUG是这样的:
我们的程序有个系统托盘,右键点击托盘会弹出菜单,然后菜单里有个菜单项,点击会弹出一个模式对话框,按理模式对话框会占据当前程序的所有焦点,用户只能在模式对话框上进行操作,但模式对话框却屏蔽不了系统托盘,用户依然可以对系统托盘进行操作,于是错误就发生了。
归类于:未归类 标签:BUG 二次点击
21
一
如果你在使用visual studio.net 开发调试程序时,使用过output窗口,那么你一定见过a first chance exception,那究竟什么是a first chance exception呢?
我平实基本上也不用output窗口,最近同事在调程序时发现output窗口有很多a first chance exception,而且有很多是从.net framework 的dll中抛出来的,比如:A first chance exception of type System.Threading.ThreadAbortException occurred in mscorlib.dll,不明白到底是怎么回事,于是google了一下,基本上明白了。
a first chance exception信息,发生在调试阶段,当程序中有任何异常发生,调试器能立即收到异常通知,收到通知后便会在output窗口输入一句:“A first chance excetipn...occurred in ...”,然后程序继续运行,如果程序内部捕获了异常,程序就会继续往下走,如果这个异常没有被处理,则调试器会再次收到异常通知(这次就按顺序被叫做second chance exception),调试器收到通知后,弹出我们常见的异常信息框,等待我们处理。
恩,就这么简单,所以a first chance exception,并不一定代表我们的代码有问题,只是表面一个异常发生了,而second chance exception就肯定是有问题了:)
归类于:未归类 标签:IDE Exception
16
十二
关于时间: 基础知识
Q:什么是tick?
A: 一种时间单位,在C#中1s = 10,000,000tick = 1000,000,000ns.
Q:什么是闰年?
A:我们一年实际的天数是约为365.2422日,这样差不多4年就多出一天来,于是历法中就规定,4年设一闰,即被4整除的年份为闰年,另遇世纪年(末尾数字是两个零的年份),必须被400整除才算闰年,闰年二月有29天。
Q:如何计算某天对应的星期天数。
A: DateTime提供了一个DayOfWeek的属性,其实现如下:
DayOfWeek DayOfWeek
{
get{return (DayOfWeek)((int)(((this.InternalTicks/0x92a69c000L)+1)%7L));}
}
其中:0x92a69c000L = 864000000000 = 24*60*60*10000000;
原理:InternalTicks的值为从0001年1月1日凌晨开始到现在的tick值,所以(this.InternalTicks/0x92a69c000L)+1就是0001年1月1日到现在的天数,再求除7的余数,
那么如果你知道0001年1月1日是星期几吗,你也就知道今天是星期几了,你知道0001年1月1号是星期几吗?:)
关于星期,还有一种算法,就是大家常说的基姆拉尔森公式,思路不太一样,有兴趣的可以研究一下。
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) % 7
(未完待续)
归类于:代码人生 标签:关于 时间 基础 知识
07
十一
In brief:
◇ 这个由visual studio 编译产生的文件,你应该的在发布版中删除掉。
◇ 可以通过Project →Properties → Debug tab → Enable the Visual Studio hosting process CheckBox 开启或禁用。
Visual studio 2005里编译完项目,会发现有同名的assemblyName.vshost.exe产生。关于这个文件微软官方的解释其作用是:提高调式的执行效率,使VS能够在设计时进行表达式运算和Partial-Trust调试。
◇ 提高调试效率
宿主进程(vshost.exe)创建一个与当前应用调试器相关联的应用域(Application Domain),执行这个操作很明显将增加开始调试到应用程序启动之间的时间,但是宿主进程可以通过这个应用域来提高调试效率和在应用运行期间保存应用域和调试器的状态。
◇ 设计时表达式运算
现在你可以不需要运行应用程序,就可以在 Immediate 窗口进行代码测试。
◇ Partial Trust 调试
应用程序可以通过 Project Designer 的安全设置页面指定为一个Partial Trust应用,调试这类型的应用需要特别初始化应用域,而该初始化工作由vshost.exe来完成。
注:如果你使用hosting process的话,AppDomain.CurrentDomain.FriendlyName和Assembly.GetCallingAssembly().FullName 的值与不使用时是不一致的。使用时AppDomain.CurrentDomain.FriendlyName的值为appname.vshost.exe,否则为appname.exe,使用时Assembly.GetCallingAssembly().FullName的值为mscorlib,否则为你应用的信息。
可能存在的bug:The program .vshost.exe: Managed has exited with code -1073741819 (0xc0000005).
解决办法:使应用程序路径长度少有128字符,应用名称字符少于10字符。
Keyword:Hosting Process vshost.exe 宿主进程 visual studio
适用于:visual studio 2005 visual studio 2008
归类于:代码人生 标签:VisualStudio 宿主进程
