Browse by Tags
All Tags »
CSharp (
RSS)
很荣幸在Tech.ED2008北京场的社区技术专场中,本人讲了一场《 如何成倍提升企业级Web应用开发效率 》的课程。这次讲座是第一次在Tech.ED场合讲座,不过作为非正式课程,我很高兴的看到不少人放弃了正式课程的内容来听社区技术专场的内容。也许是这类课程更贴近大家的工作吧,形式也不拘泥,大家可以面对面地探讨,气氛比较好。不过我的课程时间把握的不是太好,造成了后期给大家讲解的内容有点仓促,不是很细,希望参会的朋友们原谅。讲课过程中,发现听课的人逐渐增多,而且似乎开始就过来听的朋友们都没有中途离场的,这对我是莫大的鼓舞。我将努力在以后的日子给大家带来一些更好的内容,敬请关注哦:D 在这里为大家提供本次课程的 课件 和 Demo 文件下载,希望对大家能有所启发和帮助,如果能真正使得大家在企业级WEB应用开发过程中提高了不少效率,将是莫大的欣慰和荣誉。 Read More...
最近给一些技术公司进行asp.net开发方向的培训,培训过程中曾发现一些简单的问题却几乎全军覆没的答错,而其中不乏一些曾在多年使用C#进行过项目开发的技术人员。比如说,我曾经出过一个题让参加培训的人员回答:int a=13/2的结果。技术人员的答案有以下几种情况 代码错误,因为13/2的值不是整形 7 6 1 那么我们知道,VS2008中写成 “var a=13/2” 的形式,如果我们将题目写成如此。那么大概更多的人会写成是答案为6.5了。原因是什么呢?原因是很多C#程序员对基本语法并不完全熟悉,想当然的认为一些运算的规则是如何如何。作为程序员,我想我们应该对自己严格要求才好,不然如果上面的运算是一笔资金,那么0.5的误差后面单位可能是百万或者亿,损失可就大了。 那么我们来看看msdn中如何描述“/”运算符的: 两个整数相除的结果始终为一个整数。例如,5 除以 2 的结果为 2。若要确定 5 除以 2 的余数,请使用 modulo 运算符 (%)。若要获取作为有理数或分数的商,应将被除数或除数设置为 float 类型或 double 类型。可以通过在数字后添加一个小数点来隐式执行此操作 由上面这段msdn对除法运算符的描述,我们知道题目的答案应该是6。那么我们如何才能得到6.5的值呢,方法大概如下 var a=13/2.0 var a=13.0/2 var a=13f/2 var a=13d/2 var a=13/2f var a=13/2d …… 上面几种方式,思路一致,就是让运算式中一个值为有理数类型,f和d都是字面值表示前面的数字为float类型和double类型的。当然了用m也可以啦,因为m表示decimal类型。 Read More...
近日党的十七大召开,而我没有电视看,就喜欢到 优酷网 上看看别人上传的相关视频,部分视频希望能在机器上有所保留,但优酷自己并不提供文件的下载功能。找了个维棠FLV视频下载软件,却发现它无法完整下载较长的优酷视频,我稍作了原因分析后,发现是优酷的一些较长的视频是采用多文件连播的方式,也就是一个视频由多个文件共同组成,于是乎自己花了一大袋烟的工夫用c#写了这个小工具,直接将视频所在的网页地址复制到该软件的指定位置,然后点击“Go!”按钮就开始下载了,哈哈…… 鉴于支持和促进和谐社会发展,俺也把这个自写小工具共享出来给朋友们使用。由于时间仓促,有一些不完善的地方敬请原谅,抽空俺也会继续更新这个小工具的:D 声明:本软件仅因个人爱好而开发,跟优酷网无任何关系:) 名 称:优荡 当前版本:0.5 环 境:Windows ,Microsoft .NET Framework 2.0 作 者:衣明志(网名:qihangnet) 最近更新: 2007年10月19日(0.5.0.0版): 代码进行进一步优化 加快了视频分析速度 显示视频文件总大小 显示当前已下载文件文件大小 显示下载总进度的 进度条 添加了 单视频的多文件自动合并功能 (一些视频优酷使用多文件存储的,本软件下载后将同一视频的多文件进行的无缝合并,并随后删除原始文件) 修复了多项小Bug 2007年10月17日(0.3.0.1版): 修复了2个界面上的小bug 下载地址: http://www.qihangnet.com/content/binary/YouDown.exe Read More...
近日党的十七大召开,而我没有电视看,就喜欢到 优酷网 上看看别人上传的相关视频,部分视频希望能在机器上有所保留,但优酷自己并不提供文件的下载功能。找了个维棠FLV视频下载软件,却发现它无法完整下载较长的优酷视频,我稍作了原因分析后,发现是优酷的一些较长的视频是采用多文件连播的方式,也就是一个视频由多个文件共同组成,于是乎自己花了一大袋烟的工夫用c#写了这个小工具,直接将视频所在的网页地址复制到该软件的指定位置,然后点击“Go!”按钮就开始下载了,哈哈…… 鉴于支持和促进和谐社会发展,俺也把这个自写小工具共享出来给朋友们使用。由于时间仓促,有一些不完善的地方敬请原谅,抽空俺也会继续更新这个小工具的:D 声明:本软件仅因个人爱好而开发,跟优酷网无任何关系:) 名称:优荡 版本:0.3 Beta 环境:Windows ,Microsoft .NET Framework 2.0 作者:衣明志(网名:qihangnet) 下载地址: http://www.qihangnet.com/content/binary/YouDown.exe Read More...
asp.net 2.0中引入的Membership机制给我们做web开发带来很多便利,使得我们在做很多项目开发时处理用户和角色及权限问题时减少了相当的工作量。不过我们开发中可能会碰到一个小小的问题如下: 我们知道MembershipUser中有如下重载的方法 MembershipUser.ResetPassword () :将用户密码重置为一个自动生成的新密码。 MembershipUser.ResetPassword (String passwordAnswer) :将用户密码重置为一个自动生成的新密码。 msdn中有如下描述: ResetPassword 调用 ProviderName 属性所引用的成员资格提供程序的 MembershipProvider.ResetPassword 方法,以将成员资格用户的密码重置为自动生成的新密码。然后将该新密码返回到调用方。 如果 EnablePasswordReset 为 false ,则成员资格提供程序将返回一个异常。 如果 RequiresQuestionAndAnswer 为 true ,则必须使用以密码提示问题答案作为参数的 ResetPassword 重载方法,并提供成员资格用户的密码。如果需要密码答案并提供了不正确的密码答案,成员资格提供程序将引发 MembershipPasswordException。 而另外一个方法 MembershipUser.ChangePassword(String oldPassword, String newPassword) 又必须提供原始密码,那么这里就产生了一个矛盾:我们希望用户能够通过安全问题和答案来作为找回密码,又希望管理员可以重置某用户的密码怎么办?上述方法均无法直接使用,要么使用...
最近不少Web技术圈内的朋友在讨论协议方面的事情,有的说web开发者应该熟悉web相关的协议,有的则说不用很了解。个人认为这要分层次来看待这个问题,对于一个新手或者刚入门的web开发人员而言,研究协议方面的东西可能会使得web开发失去趣味性、抹煞学习积极性,这类人应该更多的了解基本的Web技术使用。而对于在该行业工作多年的老鸟来说,协议相关的内容、标准相关内容应该尽量多些的了解,因为只有这样才能使得经手的web系统更加优秀(安全、漂亮、快速、兼容性好、体验好……)。本文我们来说一下MIME 协议的一个扩展Content-disposition。 我们在开发web系统时有时会有以下需求: 希望某类或者某已知MIME 类型的文件(比如:*.gif;*.txt;*.htm)能够在访问时弹出“文件下载”对话框 希望以原始文件名(上传时的文件名,例如:山东省政府1024号文件.doc)提供下载,但服务器上保存的地址却是其他文件名(如:12519810948091234_asdf.doc) 希望某文件直接在浏览器上显示而不是弹出文件下载对话框 …………………… 要解决上述需求就可以使用Content-disposition来解决。第一个需求的解决办法是 Response.AddHeader "content-disposition" , "attachment; filename=fname.ext" 将上述需求进行归我给出如下例子代码: public static void ToDownload( string serverfilpath, string filename) { FileStream fileStream = new FileStream(serverfilpath, FileMode...
将VS2003下的一个Web项目升级到VS2005后,去除明显错误后编译测试运行。某页面发现一个问题: “/”应用程序中的服务器错误。 分析器错误 说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误信息: 发现不明确的匹配。> 这个问题发生原因一般情况是: aspx页面里面的控件有与您的aspx.cs里的类变量重名(不区分大小写)的ID 那么我发现在代码中有如下的声明: protected System.Web.UI.WebControls.Label BlogID; protected System.Web.UI.WebControls.Label blogID; blogID在前台控件中不存在,仅在cs代码中声明了,因此产生了上述的问题。 由此看来虽然,C#等语言中允许我们使用大小写不同来声明不同的变量,但是我们应该尽量避免这样的情况,使用完全不同的名字区分不同的变量为好啊。 Read More...
将VS2003下的一个Web项目升级到VS2005后,去除明显错误后编译测试运行。某页面发现一个问题: “/”应用程序中的服务器错误。 分析器错误 说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误信息: 发现不明确的匹配。> 这个问题发生原因一般情况是: aspx页面里面的控件有与您的aspx.cs里的类变量重名(不区分大小写)的ID 那么我发现在代码中有如下的声明: protected System.Web.UI.WebControls.Label BlogID; protected System.Web.UI.WebControls.Label blogID; blogID在前台控件中不存在,仅在cs代码中声明了,因此产生了上述的问题。 由此看来虽然,C#等语言中允许我们使用大小写不同来声明不同的变量,但是我们应该尽量避免这样的情况,使用完全不同的名字区分不同的变量为好啊。 Read More...
String.Split 方法 :标识此实例中的子字符串(它们由数组中指定的一个或多个字符进行分隔),然后将这些子字符串放入一个 String 数组中。 Regex.Split 方法 :在由正则表达式匹配项定义的位置将输入字符串拆分为一个子字符串数组。 上面的两个Split方法,在使用单字符拆分字符串的时候效果一样。然而在使用多个字符拆分字符串时,就有所区别了: Srting.Split(字符串.ToCharArray())得到的结果往往不是我们希望的结果。所以在此推荐使用 Regex.Split方法 处理使用多字符拆分字符串。 Read More...
More Posts