随笔分类 -  ASP.NET

摘要:本文将介绍利用C#播放声音的四种方法,希望那个通过本文,大家能在C#播放声音方面有所突破。本文使用的是微软的播放器,其他播放器大家可以尝试。第一种是利用DirectX 1.安装了DirectX SDK(有9个DLL文件)。这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll2.引入DirectX 的DLL文件的名字空间: usingMicrosoft.DirectX; usingMicrosoft.DirectX.DirectSound;3.建立设备Device dv=new Device();4.设置Cooperat 阅读全文
posted @ 2010-12-27 00:31 左正 编辑
摘要:这五种C#排序方法,其实在其他语言平台中也是常见的,因此C#排序方法也可以说是其他语言的排序方法,只不过实现的语言不同罢了。在网上看到很多经典排序方法,算法分:1:插入排序 a.直接插入排序 b.希尔排序2:交换排序 a.冒泡排序 b.快速排序3:选择排序 a.直接选择排序4:归并排序 a.归并排序5:分配排序 a.箱排序 b.基数排序本人常用的三种C#排序方法:1.直接选择排序 2.直接插入排序 3.冒泡排序;我用C#语言来讲解一下。第一种:冒泡排序原理:对一个数列,我们将它进行轮循和交换,每次轮循出最大数或最小数放在对尾,依次进行循环,轮循长度为-1。publicclassEbulliti 阅读全文
posted @ 2010-12-27 00:21 左正 编辑
摘要:C# XML解析通过XPath的方式是如何办到的呢?具体的操作步骤是什么呢?那么下面我们就向你介绍通过XPath的方式来实现C# XML解析,希望对你了解C# XML解析有所帮助。C# XML解析通过XPath的方式的步骤:1、需要先加载文档,然后再读取想要的节点值。◆xml文档protected XmlDocument doc = null;◆xml文档的根元素(节点)protected XmlElement root = null;◆xml文档的名空间管理器protected XmlNamespaceManager nsmgr = null;2、接下来就是加载文档了protectedvoi 阅读全文
posted @ 2010-12-26 23:43 左正 编辑
摘要:C# XML解析通过XPath的方式是如何办到的呢?具体的操作步骤是什么呢?那么下面我们就向你介绍通过XPath的方式来实现C# XML解析,希望对你了解C# XML解析有所帮助。C# XML解析通过XPath的方式的步骤:1、需要先加载文档,然后再读取想要的节点值。◆xml文档protected XmlDocument doc = null;◆xml文档的根元素(节点)protected XmlElement root = null;◆xml文档的名空间管理器protected XmlNamespaceManager nsmgr = null;2、接下来就是加载文档了protectedvoi 阅读全文
posted @ 2010-12-26 23:40 左正 编辑
摘要:C# XML解析方法都有哪些呢?在程序中访问并操作XML文件一般有两种模型:流模型和DOM(文档对象模型)。流模型中有两种变体——“推”模型和“拉”模型。 C# XML解析方法之“推”模型:“推”模型也就是常说的SAX,SAX是一种靠事件驱动的模型。它每发现一个节点就用“推”模型引发一个事件,而我们必须编写这些事件的处理程序,很麻烦。C# XML解析方法之“拉”模型:.NET中使用的是基于“拉”模型的实现方案。 “拉”模型在遍历文档时会把感兴趣的文档部分从读取器中拉出,不需要引发事件,允许我们以编程的方式访问文档,这大大的提高了灵活性,“拉”模型可以选择性的处理节点。在.NET中,“拉”模型通 阅读全文
posted @ 2010-12-26 23:37 左正 编辑
摘要:本文分别介绍Java与C#事件处理,包括介绍在C#中,事件(Events)成员就是用来声明一个类事件的。Java与C#事件处理都是实现了事件源-事件响应者机制,但又不完全相同。Java实现的是一种事件源与事件响应者两级实体对象方式,这里的事件响应者也是事件监听者,而C#实现的是一种事件源-代理-事件响应者三级实体对象方式。下面就这两种方式来具体说明。Java事件处理从概念上讲,事件是一种在"源对象"和"监听者对象"之间,某种状态发生变化的传递机制。事件有许多不同的用途,例如在Windows系统中常要处理的鼠标事件、窗口边界改变事件、键盘事件等。在Java中则是定义了一个一般的、可扩充的事件机制 阅读全文
posted @ 2010-12-26 23:24 左正 编辑
摘要:这里我们主要介绍C#和Java,包括介绍C#和Java都是对传统C++面向组件的编程方式的革新,但7年前就出道的Java在这方面显然与C#不可同日而语等方面。自C#诞生之日起,关于C#和Java之间的论战便此起彼伏,至今不辍。抛开Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#和Java都是对传统面向对象程序设计在组件化软件时代的革新之果,可谓殊途同归。虽说两种语言有着“90%的重叠”,但那另外“10%的较量”也往往能够左右一架天平的方向。C#和Java都提出了对传统C++艰深、晦涩的语法语义的改良。在语法方面,两者都摈弃了C++中函数及其参数的const修饰、宏代换、全局变 阅读全文
posted @ 2010-12-26 23:17 左正 编辑
摘要:C#抓取网页程序是如何实现的呢?我们首先来了解在HTTP,它是WWW进行数据访问最基本的协议之一,在.NET的基本类型库类中提供了两个对象类:HTTPWebRequest和HTTPWebResponse,分别用来向某资源发送请求和获得响应。为了得到一个资源的内容,我们先指定一个想要抓取的URL地址,用HTTPWebRequest对象进行请求,用HTTPWebResponse对象接收响应的结果,最后用TextStream对象来提取我们想要的信息,并在控制台打印出来。C#抓取网页程序的实现步骤: 第一步:打开VS.NET,点“文件”-“新建”-“项目”,项目类型选择“Visual C#项目”,模板 阅读全文
posted @ 2010-12-26 15:38 左正 编辑
摘要:C#调用浏览器的理解我们可以从一个实例中看到C#调用浏览器实现原理:以"IE浏览器"登陆到"搜狐"网站为例。我们可以通过在"开始"菜单中选则"运行",然后在输入框中输入"IEXPLORE http://www.sohu.com"就可以登陆到"搜狐"网站的主页。那么我们可以得知,IE流览器是一个单独的程序,它的程序名是IEXPLORE.EXE,它的第一个参数是网站的网址。所以我们只要在C#程序中调用IE流览器程序并指定它的运行参数就可以实现这个功能,代码如下:System.Diagnostics.Process.Start( "IEXPLORE.EXE","http://www.sohu.com 阅读全文
posted @ 2010-12-26 15:30 左正 编辑
摘要:C#发送短信,我们都知道这个基本的应用,但是内部的原理是什么呢?这里我们想大家简单介绍,希望对你理解C#发送短信息的原理有所帮助。我想当很多读者一看到本文的题目一定会想本文内容一定非常深奥,并且作者一定知道了电信的发送短信的网关地址,其实并非如此。本文其实是利用一个现成的资源,一个可发送短信的Web Serviec。这个Web Service就是新浪网就提供的一个,可供用户直接调用的发送短消息的Web Service。这个Service的地址是http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl。在这个Service中提供了一个发送短消息的 阅读全文
posted @ 2010-12-26 15:28 左正 编辑
摘要:C#发送邮件使用System.Net.Mail来实现,那么在这种实现中要注意这样几个问题是什么?C#发送邮件使用System.Net.Mail来实现的具体的实例是什么呢?现在开始我们的讲述。1、System.Net.Mail是.NET 2.0以后的版本中被推荐使用的方法,它解决了一些编码问题和一些安全验证的问题,并且对MailMessage类重写,提供了更多的函数,使得建立MailMessage更加便利。2、System.Net.Mail.MailMessage中,加入SubjectEncoding属性,而且对于To, Cc, Bcc都加入了一些域下的方法,使得可以更便利的实现邮件群发。而且使 阅读全文
posted @ 2010-12-26 15:25 左正 编辑
摘要:一、RDLC报表   主要缺点:  (1)报表组件不丰富:如CheckBox、Barcode等组件均没有  (2)不支持最终用户自定义报表格式。如果不同客户对报表格式需求千差万别,就最好不要选择RDLC.  (3)不能在每一页显示明细数据的标题(除非费力的采用一些特殊方法)  (4)若要在报表标头显示公司logo,且logo来自数据库,则显示起来很麻烦,而且有多页的话,只能在第1页显示logo,除非是静态添加的图片。  (5)若报表格式复杂,比如一个报表含多个子表,各子表行数不固定,则会出现这样的情况,第1页没显示完,还有大半页以上空白位置,可其余内容却接着跑到下一页去显示了,折的位置这个很不 阅读全文
posted @ 2010-12-26 15:08 左正 编辑
摘要:虽不算什么高深的东西,但至少也算一点点小经验,分享分享吧,如果您是高手,而且您还有点时间,那么请你耐心看完整篇文章,然后再帮忙指点指点,留下您的经验,我也好学习学习。链接中的例子是一些脚本攻击相关的内容,有时间的朋友可以点开看看。1.不要相信Request.QueryString:相信在asp时代,这个问题比较严重,不信,随便到网络上找几个asp的企业站,找到这种url"view.asp?id=xxx",改成"view.asp?id=xxx or 1=1",相信你会看到不一样的东西,到了.net,应该很少了,不过上次看到有人说CSDN爆过哦,简单的解决方法是在取得数据时做数据类型验证或转换。比 阅读全文
posted @ 2010-12-25 21:25 左正 编辑
摘要:今天的文章不涉及到代码方面的东西,只是说说思想方面的东西,当然,我说的这些其实很简单,毕竟我也只是做了2年的程序而已,但未必每个团队都是这么做的。首先就是如何分层,分几层。很多情况下,三层架构是最常用的思想。的确,数据库访问,业务,页面。但有了服务,接口,对象的概念以后,很多人并不只是简单的在三层上实现。当然视项目大小而言,如果是个小功能,把所有代码也一个页面上也未必不可。分层的优势就是在于提高可维护性。我认为一个完善的架构,我不得不说的就是规范性的东西,我认为规范是个很重要的东西,当然,规范不只是说大家统一用某种形式命名变量,方法等等,这只是对程序员而言的规范,如果这个划做横向规范的话,那么 阅读全文
posted @ 2010-12-25 21:21 左正 编辑
摘要:处在待业状态最适合做的事情就是对以前的工作和学习做一个总结。 读过一些开源的架构,比如PetShop的架构,Nhibernate的架构,ibatis.net的架构。 自己写过的架构,从最早的简单三层,到面向服务,面向对象,面向接口编程思想的架构的转变,顺便乘着空余时间做下总结,很分析。 也希望得到高人指点,给初学者一些帮助。 我个人不是太过喜欢于ORM框架,但如果在适合的时候或者对ORM有偏向的时候,我想我也会对架构做一个ORM设计,但目前不是。 从整体来说,整个架构设计采用服务的思想,比如ObjectService继承于IObjectService接口。这个就是接口服务层和实现服务层的组成。 阅读全文
posted @ 2010-12-25 21:10 左正 编辑
摘要:大多数用户看到”该页无法显示",”服务器内部错误"等默认错误提示信息会立马关闭浏览器窗口,我们为什么不能自定义一下呢?让用户从错误信息中得到真正的帮助?错误信息的页面应该做到以下几点:1.给普通访客友好提示。告诉他们这是怎么了,简单,再简单,不要出现技术专业词汇,同时告诉他们一些建议如何避免和解决当前的错误。2.给网站管理员提示。比如如果程序的确运行错误后,我们需要得到详细错误信息,所以我们屏蔽错误信息的页面应该给予提示如何打开详细错误信息,而且要操作简单,容易,让管理网站的人即使不懂 .net 也能修改配置打开错误信息显示。3.屏蔽详细的应用程序错误信息。为了安全,我们一般隐藏应用程序的详细 阅读全文
posted @ 2010-12-25 19:43 左正 编辑
摘要:读取源代码是每一个开发人员成长的必经之路,一份优秀的源代码,是作者多年开发技术的心血结晶,研究一份优秀的源代码,总是能够让你的技术得到一定程度的提升。然后,读别人的源代码并不是拿着代码在那里瞎看,而是要充分了解作者的编程思路,了解代码的优点和缺点,在了解作者思路的基础上,自己尝试写出比该代码更优秀的代码,才能达到“通透”的境界。如果在读取源代码时能够遵守以下准则,那么效果就会更好。准则1:必须尊重作者的劳动成果。我们读取别人的源代码后,如果需要拿到自己的项目中使用,建议能够在代码处详细注明代码的出处(但我们中国人很多都不重视这一点,外国人比较重视,我看fyiReporting的源代码时,作者如 阅读全文
posted @ 2010-12-25 19:24 左正 编辑
摘要:昨天写自动化测试的CASE的时候,碰到一个疑难杂症,调用截图的函数去截取一个Popup窗口,但是总是把背景程序给截下来,Popup窗口就跟看不到一样。本来以为是同步的问题,也就是以为先截图再点击弹出Popup窗口了。后来加了N个Thread.Sleep来测试,发现根本不是因为这个原因,而是截图的函数截不下来这个窗口。这个为啥呢,只好把截图的函数代码翻出来看,以前是用这种方式的:BitBlt(dcImage, 0, 0, (int)(rect.Width), (int)(rect.Height), dcScreen, (int)(rect.Left), (int)(rect.Top), Tern 阅读全文
posted @ 2010-12-25 19:20 左正 编辑
摘要:对于ASP.NET Forms验证,想必大家都非常的熟悉。然而,在控制用户的(过期时间)expired time的时候,你是否遇到过一些奇怪的现象呢?虽说只是一个小小的cookie,但是其中可能有很多的东西你都不知道。今天我将和大家详细讨论一下cookie的注意点。在ASP.NET 的Forms验证中,通常我们会使用ASP.NET自带的Login控件来进行验证。同时,在web.config文件中,我们所有的Forms设置都设为默认。现在,问题就来了。1) 为什么我明明点了"Remember me",而大概半个小时后,我又Log out了?2) 为什么我明明设置了timeout为无限期 e.g. 阅读全文
posted @ 2010-12-25 18:05 左正 编辑
摘要:现在网络上已经到处可以看到使用模板开发出来的网站。使用模板开发网站有很多好处,最主要的就是模板与程序完全脱离,用户可以根据规定好的标签任意开发模板,导入到模板引擎里就能正常运行。所以美工人员跟程序编写人员彻底的独立了。提高了开发网站的效率,程序的重用性发挥的淋漓尽致。 智能建站系统、速成网站、自助建站系统、只会打字就能做网站,等等广告字眼我们已经不再陌生了,所有的这些无非都是围绕着模板做文章。也正是因为这样的系统越来越普及,对于要求不高的企业或者个人用户,拥有一个完全属于自己的网站,用现成的模板要比找网络公司定制省钱的多。性价比要高的多,所以目前中小型网络公司的生存问题堪忧。 提供模板做论 阅读全文
posted @ 2010-12-25 17:55 左正 编辑