All Posts (293) 293


简单性能测试:使用Stopwatch测算程序执行时间

今天逛博客园,发现有人写了一篇关于List.FindAll()和For循环性能的文章,作者木有给出他的代码,因此不晓得他是怎么测时间的。我以前做这种很简单的性能测试往往都是定义两个datetime,dt1放在算法开始之前,dt2放在算法结束之后。最后用dt2-dt1计算出算法执行的时间。我相信许多人都是这么做的,并且我以前看MSDN Webcast的时候,连微软的MVP都是这样做的。所以我对datetime测时间的方法深信不疑。 不过在那片文章的回复中,我看到有人贴出了一段测试代码,其中用的是Stopwatch类。略有意思,于是研究了一下。 对Stopwatch的描述是这样的: Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。 在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed...

Stopwatch Performance Testing

HTML5学习小结

前段时间公司培训了几次HTML5,虽然我还没有实际应用过,但看着好像很厉害的样子!下面总结一下初步的学习收获。 一、更改的标签 HTML5的DOCTYPE标记和以前不一样了。现在只需要一个“”就完成了。文字编码和以往类似,写在meta标签里。如果要让屏幕阅读器等设备知道网站所采用的语言,就在html标记后面加个lang属性,比如“”。一个最简单的结构如下: Fuck with HTML5 如果要引入CSS和Javascript,也和以前稍有不同,HTML5是这样引用的: 注意,script标记不再有language和type了,style也没有type了。 二、新的标签 HTML5提供了非常语义化的新标签,这些都是根据以往网页设计的经验,提取出的最常用的部分。比如header, foote...

HTML5

使用Visual Studio在VMWare虚拟机上远程调试程序

我用的是VMWare8,安装的时候附送了我一个Visual Studio的插件,似乎是跨机器调试程序用的。也就是在主机的VS上调试虚拟机中的程序,看着很牛逼,于是稍微研究了一下。下面是攻略: 我建了个很简单的控制台程序用来演示。断点加在了主函数入口。 第一步:启动虚拟机,我用的是一台XP的虚拟机,记得安装VMWare Tools,要调试.NET程序也当然要安装对应的.NET Framework。然后,去【控制面板\管理工具\本地安全设置\本地策略\安全选项】中,把网络访问:本地帐户的共享和安全模式改成“经典”,如图: 第二步:在虚拟机中增加一个和主机当前登录帐户一模一样的帐户。比如主机的帐户是Edi_Wang,密码是123456,那么虚拟机上也得建立同样的用户,并且放在管理员组,然后用这个帐户重新登录虚拟机。 第三步:打开虚拟机设置,在Options选项卡中,找到Share...

Debug VMWare

刚进IT公司的大学生需要掌握的技能与术语

进Infosys实习已经一年了,还有几个月就可以毕业转正了。在这一年里,我目睹了很多刚进公司的大学生蛋疼的事情,现在的大学生们,不管哪个大学的,好多人都没什么有实践经验,根本配不来环境,装个软件也会搞砸,如果没有熟人带一下,估计就跪了,做事一点也不像个计算机专业,专业,专业!!的学生,呵呵。我是看在眼里,疼在蛋上。我不是在炫耀我有多牛逼,我只是觉得现在的大学,和大学生们,真该好好反省一下了。下面切入正题: 本文不会探讨操作细节,只是列出一个提纲供大家检索。当然不是每个公司的情况都一样的,我下面说的都是我在Infosys的体会。 必要技能: 1.使用远程桌面 公司管理服务器,一般都不会要你自己上机操作,用的都是远程桌面。这是Windows自带的功能,分为客户端和服务端。服务器只要打开了这个服务,你就可以用远程桌面客户端连接上去了(开始、运行、mstsc)。使用很简单,没什么好说。但你...

IT 大学生

Edit Class Template in Visual Studio 2010

在公司里写程序,往往都有规定的代码模板,比如要求每个类都有注释,说明开发者是谁,类的功能,以及其他信息。如果每次建一个类,手工去复制这些信息很麻烦,也容易遗漏。我们可以直接修改VS2010创建类的时候所用的模板,帮我们加上这些信息。 VS的模板位于这个路径:[你的VS安装目录]\Common7\IDE\ItemTemplatesCacheC# Class的模板在 CSharp\Code\[你安装的VS语言版本代码]\Class.zip 比如我的机器上,64位环境,英文版VS(1033),则我可以找到这个位置:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\1033\Class.zip 我们修改这个压缩包里的Class.cs,并保存。重启VS后,...

Visual Studio 模板

SQL Server 2012 Express 安装图解

前段时间微软发布了最新最犀利的SQL Server 2012,我第一时间下载回来尝鲜。在3台机器上实验安装了一下,都没有出问题。安装过程和以往类似,写这篇文章的目的是帮助刚接触SQL Server的初学者入门。高手请直接飘过。 首先,安装SQL Server需要注意的是它的版本。微软最新发布的是SQL Server 2012,但目前使用比较广泛的是2008版。对于初学者来说,安装哪个都一样。不过SQL Server 2008或2012都分别包含两种版本。超大的那个,4个多G的,是给企业用的。几百M的是给学生和开发者用的免费版,也就是Express版,它可以从微软的网站上直接下载。本文讲解的是SQL Server 2012 Express(似乎只有Windows7以上版本可以安装),读者可以寻找下面两个连接去下载: http://wwwco1vip.microsoft.com/downl...

SQL Server

修改开机密码后SharePoint无法使用的解决办法

公司使用的是ActiveDirectory账户,安装SharePoint用的也是自己的域帐号。但公司有定期修改密码的策略。修改密码后,机器上的SharePoint就爆了。我们需要给SharePoint也重设一个密码才能运行。 首先要去IIS的程序池里改密码: 然后去SharePoint Central Admin里修改密码: 选择Use existing password 重启一下IIS,然后试试访问80端口的站点。如果不能访问,重新执行Config向导就会好。但可能会丢失原有的站点和配置信息。请格外小心。...

IIS SharePoint Password

ASP.NET制作基于的XML导航栏

首先说明,本文为照顾刚入门的新手,有些地方可能会稍微说点基础的东西,高手可以直接忽略。 场景:以前做网站的时候,导航栏的链接都是写死在页面中的,这样不易与维护。于是今天写成了用XML配置的导航栏。用到了LINQ to XML。 先介绍一下功能: 储存导航栏信息的XML文件如下: Title是显示名称,Link是URL,OrderId表示排序的序位,Enabled为是否启用。这个菜单将最终被解析为一个ul列表: Shitter Shit Shitting Shitfully 然后我们来看看如何实现: 首先需要给菜单创建一个只包含属性的模型类,它的作用是成为对具体某一个菜单项的描述,系统中传递的将是这样一个模型: public class MenuItem { public...

ASP.NET XML

LINQ语句检查空对象的问题

今天在写博客的页面集功能,根据URL去寻找Page,LINQ语句从SitePage的GetModelList()集合中获取符合条件的page,如果查询不到则跳转到404页面。代码是这样的: var page = (from p in optSitePage.GetModelList() where p.VirtualUrlPath.ToLower() == requestTitle.ToLower() select p).First(); if (null == page) { context.Response.Redirect("/404.html"); return; } 我故意传了个不存在的URL,结果linq语句直接报错:System.InvalidOperationException: Sequ...

First FirstOrDefault LINQ null

在ASP.NET4中配置和使用Log4net

最近打算更换博客的日志功能,自己写的那个日志模块弱爆了,所以拿著名的log4net试试。查了些资料,自己试了几把,终于成功了。具体方法如下: 首先从官网下载并解压log4net,在项目中添加log4net.dll的引用(官方包的路径是log4net-1.2.11\bin\net\4.0\release\log4net.dll)。这个dll会自动拷贝到网站的bin目录下。 然后在web.config里如下配置。log4net节点没有智能提示,这没关系。配置文件中的file节点是日志文件的路径,可以自己设置,我自己用的是txt文件。 错误描述:%message%newline" /...

log4net Logging