随笔分类 -  02.FrameWork/C#

摘要:大多数情况下,vs.net中我们可以用断点来解决调试问题,但有些时候也可能手动需要输出一些信息做为调试的参考,你是否有过调试完成以后,忘记删除某条输出语句的经历?那么下面的技巧可以解决这个问题:#define debugusing System;namespace debugDemo{ class Program { static void Main(string[] args) { #if de... 阅读全文
posted @ 2009-12-04 16:50 菩提树下的杨过 阅读(3534) 评论(1) 推荐(0) 编辑
摘要:原以为int.MaxValue就是所有数组下标的最大值,编译也能通过,结果运行时发现报错:内存溢出。经过测试发现,原来在不同的系统/不同的配置上,这个值都不太一样,我笔记本经过测试byte[] b = new byte[int.MaxValue-56]; //windows 7 64位,4G内存换另一个机器,结果byte[] b = new byte[int.MaxValue/2]; //wind... 阅读全文
posted @ 2009-12-04 13:19 菩提树下的杨过 阅读(8006) 评论(1) 推荐(0) 编辑
摘要:序列化简言之是这样一种能力:能够把复杂的对象(Object)变成某种格式的字符串(常见的格式有xml,string,二进制文件等),这样可以方便的在各种系统中传输或交换(比喻socket编程中的数据包只能用byte[]传输),接收方得到该字符串后,通过反序列化可以还原为复杂对象,进而调用对象的方法或属性 -- 跟反射有点沾边:)这里先给出一个WinForm的序列化例子,功能为通过打开文件对话框选择... 阅读全文
posted @ 2009-11-30 15:20 菩提树下的杨过 阅读(4597) 评论(8) 推荐(1) 编辑
摘要:silverlight中的socket通讯支持,让sl开发基于web的聊天工具成为了可能,后来OpenFileDialog,SaveFileDialog的出现,更使得边聊天边传送图片(文件)得以实现,最新的SL4中又加入了摄像头支持,也许不久真的可以用silverlight开发出功能强大的视频聊天系统,目前唯一还没有解决的是p2p问题,根据sl3的sdk文档所述:Socket 类为网络通信提供了一... 阅读全文
posted @ 2009-11-27 13:51 菩提树下的杨过 阅读(3751) 评论(12) 推荐(2) 编辑
摘要:这二天在研究webabcd的socket多人聊天室,想尝试增加一些功能,比如:允许用户除发送文字外,还能发送图片或文件。问题:socket发送数据时,只能发送byte[]数组,且无法附带其它用户自定义参数,服务端如何知道用户发过来的是文字还是图片或是文件呢,所以只能在byte数组上动脑筋了.silverlight中,用户选择的图片或文件,都能变成FileStream,近而变成byte数组,初步想法... 阅读全文
posted @ 2009-11-26 17:02 菩提树下的杨过 阅读(3191) 评论(0) 推荐(0) 编辑
摘要:先来看一下简单的多线程控制台程序:[代码]入口方法Main里,创建了二个线程,分别调用方法t1与t2,再加上主线程本身,一并有三个线程,运行后,三个线程都在计数输出,结果类似如下:t2的x:1t1的x:1主线程中的x:1t2的x:2t1的x:2主线程中的x:2t2的x:3t1的x:3主线程中的x:3t2的x:4t1的x:4主线程中的x:4t2的x:5t1的x:5主线程中的x:5三个线程的顺序,在这... 阅读全文
posted @ 2009-11-26 13:24 菩提树下的杨过 阅读(1200) 评论(5) 推荐(1) 编辑
摘要:一般来讲,当启动一个应用程序时,系统里就生成了一个进程, 这个进程拥有自己的内存空间。(我们平时用windows的任务管理器看到的也就是进程)但也有特殊:比如IE8,它采用了多进程设计,打开IE8后,会在任务管理器里有多个iexplore.exe每个进程内部可以创建多个线程, 这些线程之间共用一个进程的内存空间(即线程之间可共享内存)。我们做多线程开发,其实就是在同一个进程内部创建了多个线程。 阅读全文
posted @ 2009-11-26 13:21 菩提树下的杨过 阅读(522) 评论(0) 推荐(0) 编辑
摘要:单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如:[代码]运行时,会报出一个无情的错误:线程间操作无效: 从不是创建控件“textBox1”的线程访问它。究其原因,winform中的UI控件不是线程安全的,如果可以随意在任何线程中改变其... 阅读全文
posted @ 2009-11-25 11:37 菩提树下的杨过 阅读(5797) 评论(16) 推荐(11) 编辑
摘要:近日在研究webabcd的silverlight socket聊天室时,发现一个很眼生的东东SynchronizationContext(它不认得我,我也不认得它,哈哈),摆渡了下,发现园子里有一位兄弟的文章解释得不错,转贴与此,原文:http://www.cnblogs.com/Kevin-moon/archive/2009/01/13/1374353.html理解Synchronization... 阅读全文
posted @ 2009-11-24 17:01 菩提树下的杨过 阅读(982) 评论(1) 推荐(2) 编辑
摘要:一、委托Delegate一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如[代码]但是有些时候,我们希望把一个方法本身当做参数传递给另一个方法,比如myObject.callMethod(HelloWorld);在没有委托之前,这是一件极困难的事情,委托出现以后,这就是一件很容易的事情了,简单点讲:委托就是一种能把方法当... 阅读全文
posted @ 2009-11-23 16:11 菩提树下的杨过 阅读(9424) 评论(17) 推荐(9) 编辑
摘要:原文:http://blog.csdn.net/banmuhuangci/archive/2009/05/16/4192031.aspx刚接触Silverlight的时候,除了其异步应用WCF、流媒体、动画效果等方面外,Socket是最另我兴奋的功能。在Web上实现Socket虽然不是什么新鲜事了,Activex,flash等都可以实现这样的效果,但是Silverlight这样方便的运用Socke... 阅读全文
posted @ 2009-11-23 10:33 菩提树下的杨过 阅读(3017) 评论(1) 推荐(0) 编辑
摘要:昨天在调试项目时,意外发现一个奇怪的问题,实在不知道如何准确描述,所以随便起了个标题。项目中有一个wcf供jquery调用,wcf示例代码如下:[代码]简单得不能再简单了,返回一个json格式的Hello World!在非IE浏览器里用 http://localhost/wcf/service.svc/Test/ 测试(因为IE7以上版本好象不能直接打开访问wcf中的办法,会提示禁止访问,所以只能... 阅读全文
posted @ 2009-11-04 10:35 菩提树下的杨过 阅读(4160) 评论(3) 推荐(0) 编辑
摘要:虽然linq to xml随着.net framework3.0一起发布N久了,但因为自己以前参考网上的代码封装了一个xml操作类(当时linq to xml还没出来,这个封闭工具类一直也用得很顺手),所以在项目中也几乎极少用linq to xml,最近业余时间学习silverlight,原来针对winform/webform开发写的一些工具库部分要作修改才能用于silverlight,懒得一一移... 阅读全文
posted @ 2009-10-29 22:02 菩提树下的杨过 阅读(998) 评论(2) 推荐(0) 编辑
摘要:明天是win7中文版的正式发售日期,作为MS的粉丝,特地在今天到网上down了一个D版(是旗舰版哦!)体验了一把,基于xp/vista在web程序员心中的恶劣印象(主要是xp的IIS不能新建站点,只能建虚拟目录这一点让我很反感;vista则太难用,简直鸡肋),本来对win7也没抱多大希望,结果试了一天发现比我想象中的要好,以下是试用手记(仅做学习交流之用,建议大家有银子的话,还是支持正版)1.先到... 阅读全文
posted @ 2009-10-22 15:12 菩提树下的杨过 阅读(7827) 评论(0) 推荐(1) 编辑
摘要:[代码]测试结果:Linq排序耗时: 2131毫秒二分法排序耗时: 2083毫秒二者几乎差不多 阅读全文
posted @ 2009-06-17 08:31 菩提树下的杨过 阅读(2257) 评论(0) 推荐(0) 编辑
摘要:晚上闲来无事,突然想测试一下Ado.Net连接池带来的连接速度提升,写了以下代码:[代码]本机执行结果1:--------------------------------1连接所用时间:4802192连接所用时间:1303连接所用时间:604连接所用时间:47--------------------------------本机执行结果2:------------------------------... 阅读全文
posted @ 2009-06-14 20:31 菩提树下的杨过 阅读(1087) 评论(2) 推荐(0) 编辑
摘要:FileWatcher能实现对某一目录的文件(新建,改名,内容修改,删除)的实时监视[代码]注:如果目录下还有子目录,FileWatcher默认情况下并不能监视到子目录下的文件,可以通过设置watcher.IncludeSubdirectories = true; 解决这个问题源代码下载:http://files.cnblogs.com/yjmyzz/FileWatcher.rar 阅读全文
posted @ 2009-06-07 19:59 菩提树下的杨过 阅读(9142) 评论(1) 推荐(0) 编辑
摘要:虽然有一些现成的第三方解决方案比如:OpenID,Passport,SpaceCard等都还不错,但是要么就是收费的(passport),要么就是有点用不习惯(比如OpenID),另外中途跳到一个界面完全不相同的第三方站点上输入,用户感觉也不太放心。当然博客园和csdn上也有不少人已经给出了相应的解决方案,但是一圈看下来,虽然思路都行得通,貌似就是没找到不同主域名下直接利用Membership实现的例子。那么还是自己“造轮子”弄一个简陋一点的方案吧,其实只要用过Membership的朋友都知道“用户是否已经登录”以及“用户当前的role是什么”等问题的判断依据就是检测客户端有没有(当前要访问) 阅读全文
posted @ 2009-06-03 16:53 菩提树下的杨过 阅读(3188) 评论(0) 推荐(3) 编辑
摘要:1.关于System.Web.Security.Membership.ValidateUser("username", "password")每次调用这个时,您注意到背后都执行了哪些sql语句吗?(a)用户名不存在时,将执行以下语句exec dbo.aspnet_CheckSchemaVersion @Feature=N'Common',@CompatibleSchemaVersion=N'1'e... 阅读全文
posted @ 2009-06-02 21:52 菩提树下的杨过 阅读(1026) 评论(0) 推荐(1) 编辑
摘要:引言Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进行处理(应该记得Page类实现了IHttpHandler)。从 Http 请求处理流程 一文的最后的一幅图中可以看到,在Http请求由IHttpHandler处理之前,它需要通过一系列的Http Mod... 阅读全文
posted @ 2009-05-18 11:45 菩提树下的杨过 阅读(503) 评论(0) 推荐(0) 编辑