随笔分类 - .Net技术
.Net及相关技术专区
注意C++和C#引用的区别
摘要:C#用多了,最近又回到C++编程。发现有些致命的区别,如果不注意,很可能导致一些莫名其妙的bug。引用类型就是其中一个。在C#中,引用跟指针比较接近,除了值类型(int, float, struct等),其它类型都是引用类型。它本身是一个栈上面的变量,指向堆上面的具体实例,可以随意更改它指向的实例。而在C++中,引用是变量的一个别名而已,它需要在初始化时指向一个实例,之后对它的操作就相当于在原来实...
阅读全文
在应用程序里识别UserAgent对应的浏览器
摘要:本文介绍了如何在WinApp里能像WebApp一样用UserAgent识别出浏览器,对于移动设备开发者很有帮助。
阅读全文
在64位Windows的IIS上开启32位程序支持(zz)
摘要:经常碰到32位的DLL什么的不能在64位Windows的IIS上调用,在网上找到这篇文章也许能够解决很多问题。总的思路就是先允许IIS支持32位程序,然后再用.Net Framework注册IIS。Enable 32-bit Server Applications on 64-bit MachinesASP.NET applications that use TX Text Control .NE...
阅读全文
VS2005新体验
摘要:教育网还是有很多好处的,特别是大软件、电影,一般公众网上出现不久,就会在教育网上有分流了。VS2005亦是如此。而且学生使用软件可以美其名曰“用于教育学习等用途,不算盗版”。 听说2005英文正式版出来了,赶紧下了来装(DVD的ISO)。在网上看到其它人的安装、卸载经验,用一个小工具就把原来的beta版(还是CTP版) 删除干净了,然后顺利地装上了VS2005。该版本自带了SQL Serve...
阅读全文
ASP.Net中让网页“立即过时”
摘要:让网页“立即过时”有时候是一个很有用的功能,比如防止用户使用后退来破坏程序逻辑;程序主动刷新某个页面等等。在ASP中最有效的方法是: Response.CacheControl = "no-cache" 就这么一句足矣,Response.Expires=-1之类的其实都不需要,也不符合我们的要求。 但到了ASP.Net的时代,当我还糊里糊涂地使用这条语句时,发现MSDN中对Response...
阅读全文
ASP.Net关于Validator控件的奇怪问题
摘要:前几天做ASP.Net的工程碰到一个奇怪的问题,在服务器控件中加入RequiredFieldValidator控件会使表单提交不了(即满足Validator的条件后点按钮也没有反应),查了挺长时间都没结果,上网也找不到类似的错误。后来想干脆再注册一下ASP.Net:aspnet_regiis -i结果居然就可以了!看来ASP.Net的奇怪问题还真不少。
阅读全文
在.Net中用TTS
摘要:微软的SAPI(Speech Application Programming Interface)提供了强大的Text To Speech接口,而且支持自动化。这样可以在.Net的程序中引入该COM组件:先添加SpeechLib的引用,在系统盘Program Files\Common Files\Microsoft Shared\Speech目录中找到sapi.dll。在代码中调用SpVoiceC...
阅读全文
从WMI看VC++到.Net的变迁
摘要:WMI(Windows Management Instrumentation)是Windows下可以与系统信息(包括软硬件等)的一个管理框架,通过WMI可以很方便地对机器进行管理。现在以通过WMI来打开(或创建)一个记事本(notepad.exe)进程为例,看看VC++到.Net的变迁,一览.Net是如何让程序员从繁琐晦涩的程序中解放出来。 1、预工作: VC++中需要在源代码中加入: #incl...
阅读全文
Longhorn 5048还要再装WinFX才支持XAML?
摘要:去掉了WinFS的Longhorn果然快了好多,但跟XP SP2愈发相似,连Update的网址都是XP SP2的?……正准备用该版本学习Avalon时,发现xaml文件默认已经无法打开。本来在Longhorn上一个4074版本中可以直接用IE打开、运行的xaml已经无法运行了,上网搜索一下发现也有人提出这个问题,估计要再装个WinFX SDK才行了,看来Avalon又有一定的改动。参考这两个地方也...
阅读全文
VS.Net 2005 Beta2连接Team Foundation Server的问题
摘要:在尝试使用VSTS的时候,连接局域网内的Teanm Foundation Server后,在下一次打开VS.Net 2005 Beta2时,发现总会出现“Unable to connect to BIS service”的错误提示。然后再怎么连接或试着重新添加服务器都无法连上该服务器了……在服务器端重启服务/IIS都没有用。突然想到原来是用机器名连接服务器,换成IP地址连接,居然跳出登录框,可以了...
阅读全文
注意C#中的ref及out关键字
摘要:因为C#中参数默认是引用的,所以一直没注意ref及out参数修饰符的作用。一般的参考资料也没说清楚这二者的作用。 其实可以这样理解:ref及out就相当于C/C++中的对参数取指针,使用时就相当于把该参数的实际地址传到函数中,可以在函数中对其进行赋值。而指针与引用的差别在这里也是可以体现出来的: public void foo1(StringBuilder s){ s.Append(...
阅读全文
ASP.Net 2.0加了不少控件
摘要:今天又试了下ASP.Net 2.0,发现加了不少控件,居然有“Wizard”这种控件!但似乎做得还不够完善,Wizard的每一步内容虽然都可以自己设置,但放置内容的表格大小不能更改的?以致于很不整齐。 另,好像ASP.Net的页面默认已经不是GridLayout了,拖放控件已经是逐个排开了(当然也可以改成绝对定位),难道MS终于意识到做网站毕竟不同于做应用程序了?呵呵
阅读全文
ASP.Net 2.0居然不向下兼容!
摘要:今天装了VS.Net 2005 Beta2,结果它更新了IIS,运行原来ASP.Net 1.1的一个工程,居然出错了:发现原来是.Net Framework 2.0不支持string到byte[]的自动转换!只好用System.Text.Encoding.Default.GetBytes(string)函数来转成byte[]数组。 用VS.Net 2005 Beta2打开工程,发现提示要转...
阅读全文
使用IPAddress解析IP地址时要注意的问题
摘要:因为.Net中没有了IP输入框这样的控件,所以对IP的输入和解析我们都只能自己来。.Net给我们提供了一个方便的IP地址处理类:IPAddress,它不仅能用于IPv4,还能处理IPv6的IP地址。不仅.Net如此,Winsock2也给我们提供了inet_addr函数可以用来解析IP地址。 但当我们使用IPAddress.Parse或inet_addr函数来解析IP时,问题出现了:填入“...
阅读全文
初试Longhorn和Avalon
摘要:在虚拟机里装了Longhorn 4074英文版,速度可想而知。失败的WinFS占用大半的系统资源,虽然推荐的内存是512M,但系统一启动完毕后(从开机到安静下来至少要5分钟以上……,而且据说4074版较以前一个版本已经快了很多了-_-)就占了400多M了,稍微动动就上500M。但愿去掉WinFS的Longhorn能给我们带来惊喜。(btw:前天发布的5048版Longhorn据说已经没有Win...
阅读全文
善用脚本交互——网页中的服务器端和客户端脚本(三)
摘要:懂客户端脚本的未必是好的Web程序员,但只懂服务器端脚本或编程的肯定不会是好的Web程序员。至少在现今阶段,要写出高效Web网页或Web应用程序,不对这两个脚本充分理解熟谙于心是不行的。聪明的程序员能灵活使用脚本,对各种Web程序的业务流程得心应手。 比较常用的技巧是用服务器端脚本来写客户端脚本,这里用一个较流行的局部刷新的例子来展示该技巧。前提是对客户端脚本有较好的了解。 “ ...
阅读全文
分清脚本——网页中的服务器端和客户端脚本(二)
摘要:一般介绍动态网页开发的资料都会机械式地先讲HTML,再则有空讲讲JS,然后切入正题讲动态网页部分,最后给出一些实例,比如留言板、论坛,甚至小型电子商务网站等等。而更新的ASP.Net甚至可能只从WinForm讲起,然后就讲WebForm了……这样更加使程序员无法接触底层的代码,无法理解整体架构和工作流程。我认为ASP.Net的出现有点像高级语言的诞生,高级语言的编译器实现了自动编译链接高级语言...
阅读全文
ASP.Net的反思——网页中的服务器端和客户端脚本(一)
摘要:步入.Net时代,MS想让人们把网页开发当成应用程序一样开发,而且还在ASP.Net 2.0加了很多控件,像Loginform,Treeview等等。但在网页脚本语言(如ASP、PHP、Perl等)和J2EE还在继续占领着WWW大部分江山的情况下,如果只懂得写codebehide里的东东是远远不够的。 现在很多ASP.Net初学者居然都不知道何为JavaScript,或者只是听说过,而...
阅读全文
悲哀的VB.Net
摘要:虽然VB升级到VB.Net,其面向对象的特性已经完全发挥出来,其易用性也带到了.Net中,但是C#已经完全抢占了它的风头。有一本《C Sharp and VB.NET Conversion Pocket Reference》书中比较C#和VB.Net的区别,几乎全部是语法上的细微之差别,原先VB vs. VC的感觉已荡然无存。原来的VB开发数据库相关项目有着绝对的优势,灵活多变、有多种可供选择...
阅读全文