Welcome to Cooldog's Blog
鄙视长期在本站留言发广告的家伙!
【Important】此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设。
所有此处的原创文章转载必须通知作者本人。如有疑问,请发邮件至: yexiaozhou2003 AT hotmail.com

ˇˇ加载 前行 音乐BOXˇˇˇˇ 上一首 | 〓播放/暂停〓 | 下一首 | 歌曲列表 | |
ˇˇ退出| 记时 | 循环 | 随机 | 停止 | 静音 | 小声 | 大声 | 00:00 | 00:00
Dynamic Plugins Manager
作者:cooldog 日期:2008-03-29
相册开通了 :-)
作者:cooldog 日期:2007-10-22
从Windows 1.0到Vista启动画面回顾
作者:cooldog 日期:2008-11-15
首先声明,我不是MS的托。文中的图片和图片注释,来自cnBeta。
回顾从Windows 1.0到Windows vista的启动画面发展进程,不得不感叹图形用户界面的魅力,如果没有当年Windows迈出的这一步,或许我们今天仍然像当年的DOS那样敲着命令,又或许繁琐的操作命令,仍然让许多人对电脑操作的复杂性望而却步。但在今天,windows在桌面市场的高普及率仍然诠释着Bill的神话以及windows的魅力。在cnBeta看到“从Windows 1.0到Vista启动画面回顾”这篇新闻,很值得收藏。于是贴了过来,顺便也唠叨几句自己的想法。
以下是从Windows 1.0到Vista启动画面回顾:

1985.11.20Windows1.01 —— 最早的“蓝屏”

1987.11.1 Windows 2.03 ——微软标识成形

1990.5.22 Windows 3.0

1992.3.18 Windows 3.1 —— 首次出现窗口旗帜

1993.11.1 Windows for Workgroups 3.11

1993.7.27 Windows NT 3.1

1993.7.27 Windows NT 3.1 AdvancedServer

1994.9.21 Windows NT Workstation 3.5

1995.5.30 Windows NT Workstation 3.51

1995.5.30 Windows NT Server 3.51

1995.8.24 Windows 95 ——“蓝天白云”并突出显示了集成的IE浏览器

1996.8.24 Windows NT Workstation 4.0

1996.8.24 Windows NT Server 4.0

1998.6.25 Windows 98

2000.2.17 Windows 2000 Professional —— 第一次使用进度条

2000.9.14 Windows Millennium Edition

2001.10.25 Windows XP Home Edition —— 进度条改成了循环滚动样式

2001.10.25 Windows XP Professional Edition

2003.3.28 Windows XP 64-Bit Edition

2003.4.24 Windows Server 2003

2004.8.6 Windows XP SP2 —— Professional字样被去掉

2007.1.30Windows Vista—— 改用黑屏

2007.1.30 Windows Vista —— 第二部分,看来微软不过瘾,非要在Vista里加上两个启动画面。
还有现在的Windows Server2008 和即将发布的Windows 7,让我们拭目以待吧……
回顾从Windows 1.0到Windows vista的启动画面发展进程,不得不感叹图形用户界面的魅力,如果没有当年Windows迈出的这一步,或许我们今天仍然像当年的DOS那样敲着命令,又或许繁琐的操作命令,仍然让许多人对电脑操作的复杂性望而却步。但在今天,windows在桌面市场的高普及率仍然诠释着Bill的神话以及windows的魅力。在cnBeta看到“从Windows 1.0到Vista启动画面回顾”这篇新闻,很值得收藏。于是贴了过来,顺便也唠叨几句自己的想法。
以下是从Windows 1.0到Vista启动画面回顾:

1985.11.20Windows1.01 —— 最早的“蓝屏”

1987.11.1 Windows 2.03 ——微软标识成形

1990.5.22 Windows 3.0

1992.3.18 Windows 3.1 —— 首次出现窗口旗帜

1993.11.1 Windows for Workgroups 3.11

1993.7.27 Windows NT 3.1

1993.7.27 Windows NT 3.1 AdvancedServer

1994.9.21 Windows NT Workstation 3.5

1995.5.30 Windows NT Workstation 3.51

1995.5.30 Windows NT Server 3.51

1995.8.24 Windows 95 ——“蓝天白云”并突出显示了集成的IE浏览器

1996.8.24 Windows NT Workstation 4.0

1996.8.24 Windows NT Server 4.0

1998.6.25 Windows 98

2000.2.17 Windows 2000 Professional —— 第一次使用进度条

2000.9.14 Windows Millennium Edition

2001.10.25 Windows XP Home Edition —— 进度条改成了循环滚动样式

2001.10.25 Windows XP Professional Edition

2003.3.28 Windows XP 64-Bit Edition

2003.4.24 Windows Server 2003

2004.8.6 Windows XP SP2 —— Professional字样被去掉

2007.1.30Windows Vista—— 改用黑屏

2007.1.30 Windows Vista —— 第二部分,看来微软不过瘾,非要在Vista里加上两个启动画面。
还有现在的Windows Server2008 和即将发布的Windows 7,让我们拭目以待吧……
VS2008快捷键大全
作者:cooldog 日期:2008-10-23
Ctrl+m+Crtr+o折叠所有大纲
Ctrl+M+Crtr+P: 停止大纲显示
Ctrl+K+Crtr+C: 注释选定内容
Ctrl+K+Crtr+U: 取消选定注释内容
Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写代码快捷键
Ctrl+Shift+空格键 / Ctrl+K,P: 参数信息
Ctrl+K,I: 快速信息Ctrl+E,U / Ctrl+K,U: 取消选定注释内容
Ctrl+K,M: 生成方法存根
Ctrl+K,X: 插入代码段
Ctrl+K,S: 插入外侧代码
F12: 转到所调用过程或变量的定义窗口快捷键Ctrl+W,W: 浏览器窗口
Ctrl+W,S: 解决方案管理器
Ctrl+W,C: 类视图
Ctrl+W,E: 错误列表
Ctrl+W,O: 输出视图
trl+W,P: 属性窗口
Ctrl+W,T: 任务列表
Ctrl+W,X: 工具箱
Ctrl+W,B: 书签窗口
Ctrl+W,U: 文档大纲
Ctrl+D,B: 断点窗口
Ctrl+D,I: 即时窗口
Ctrl+Tab: 活动窗体切换
Ctrl+Shift+N: 新建项目
Ctrl+Shift+O: 打开项目
Ctrl+Shift+S: 全部保存
Shift+Alt+C: 新建类
Ctrl+Shift+A: 新建项
Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+M,P: 停止大纲显示
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写
Ctrl+M+Crtr+P: 停止大纲显示
Ctrl+K+Crtr+C: 注释选定内容
Ctrl+K+Crtr+U: 取消选定注释内容
Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写代码快捷键
Ctrl+Shift+空格键 / Ctrl+K,P: 参数信息
Ctrl+K,I: 快速信息Ctrl+E,U / Ctrl+K,U: 取消选定注释内容
Ctrl+K,M: 生成方法存根
Ctrl+K,X: 插入代码段
Ctrl+K,S: 插入外侧代码
F12: 转到所调用过程或变量的定义窗口快捷键Ctrl+W,W: 浏览器窗口
Ctrl+W,S: 解决方案管理器
Ctrl+W,C: 类视图
Ctrl+W,E: 错误列表
Ctrl+W,O: 输出视图
trl+W,P: 属性窗口
Ctrl+W,T: 任务列表
Ctrl+W,X: 工具箱
Ctrl+W,B: 书签窗口
Ctrl+W,U: 文档大纲
Ctrl+D,B: 断点窗口
Ctrl+D,I: 即时窗口
Ctrl+Tab: 活动窗体切换
Ctrl+Shift+N: 新建项目
Ctrl+Shift+O: 打开项目
Ctrl+Shift+S: 全部保存
Shift+Alt+C: 新建类
Ctrl+Shift+A: 新建项
Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+M,P: 停止大纲显示
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写
Blog updated
作者:cooldog 日期:2008-07-31
Linq to SQL 的更新冲突与管理
作者:cooldog 日期:2008-07-03
前段时间工作中的一个新需求,有机会用到了Linq to SQL。使用后的第一感觉,就是方便很多,也为整个项目节约了一大把的开发时间,甚至代码量也少了很多。不过在程序的实际运行中,始终会遇到一些莫名其妙的异常,最令人不解的,就是“System.Data.Linq.ChangeConflictException: Row not found or changed.” 。当初凭自己和同事的判断,可能是数据库的数据异常所导致,后来发觉这个异常出现得越来越频繁,于是上MSDN查了查,原来是Linq中一个常见的问题:更新冲突。
这个词说起来比较玄乎,其实再平常不过了。下面可以通过一个简单的例子,来重现这个异常。
建立一个普通的测试表:LinqTest(如图)
在测试表中,插入一条测试数据(如图)

测试代码如下:
程序代码
namespace LinqTest
{
class Program
{
static void Main(string[] args)
{
TestDataContext db = new TestDataContext();
db.Log = Console.Out;
var result = from p in db.LinqTests
where p.ID == 1
select p;
var info = result.FirstOrDefault();
if(info != null) //插入断点
{
info.Age = 25;
db.SubmitChanges();
}
Console.ReadLine();
}
}
}
在测试代码中,将DataContext的日志定向到Console的输出部分,这样方便我们观察Linq实际执行的SQL语句是什么。重现的时候,我们需要在注释的地方,插入断点进行测试。对于示例中的代码,在正常情况下,是不会有错误的。执行过后,我们可以在Console的输出中,看到实际执行的SQL语句(如图)

再进行第二次...
这个词说起来比较玄乎,其实再平常不过了。下面可以通过一个简单的例子,来重现这个异常。
建立一个普通的测试表:LinqTest(如图)
在测试表中,插入一条测试数据(如图)

测试代码如下:
程序代码namespace LinqTest
{
class Program
{
static void Main(string[] args)
{
TestDataContext db = new TestDataContext();
db.Log = Console.Out;
var result = from p in db.LinqTests
where p.ID == 1
select p;
var info = result.FirstOrDefault();
if(info != null) //插入断点
{
info.Age = 25;
db.SubmitChanges();
}
Console.ReadLine();
}
}
}
在测试代码中,将DataContext的日志定向到Console的输出部分,这样方便我们观察Linq实际执行的SQL语句是什么。重现的时候,我们需要在注释的地方,插入断点进行测试。对于示例中的代码,在正常情况下,是不会有错误的。执行过后,我们可以在Console的输出中,看到实际执行的SQL语句(如图)

再进行第二次...
文章表情也更新了很多。看来作者是下了大功夫的,不更新太对不起作者的劳动成果了
希望这个版本不会有太多的bug。
去了……








