摘要:本文主要介绍ASP.NET编程中的一些常用方法,内容涉及代码技巧、性能优化等方面。 1.跟踪页面执行 设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:
<%@PageLanguage="C#"Trace="true"> 跟踪信息可以分为两类: a.页面执行详细情况 其中主要包括页面生命周期中各事件列表、控件树列表(可以查看每个控件的HTML字节数以及ViewState字节数)、 阅读全文
艾伟:memcached完全剖析–1. memcached的基础
2011-08-29 00:09 by 狼人:-), 128 阅读, 0 推荐, 收藏,
摘要:本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaafasdfsaf 翻译一篇技术评论社的文章,是讲memcached的连载。fcicq同学说这个东西很有用,希望大家喜欢。
发表日:2008/7/2 作者:长野雅广(Masahiro Nagano) 原文链接:http://gihyo.j... 阅读全文
艾伟:Cache总义
2011-08-29 00:09 by 狼人:-), 154 阅读, 0 推荐, 收藏,
摘要:Cache用法之页面声明
<%@outputCacheDuration="#ofseconds"Location="Any|Client|Downstream|Server|None"VaryByControl="ControlName"VaryByCustom="browser|customstring"VaryByHeader="headers"VaryByParam="Parametername"%>
Cache用法之代码控制HttpCachePolicy类 阅读全文
艾伟:从别人那拷下来的几点Session使用的经验(转载)
2011-08-29 00:09 by 狼人:-), 129 阅读, 0 推荐, 收藏,
摘要:问:当页面中是否了frameset,发现在每个frame中显示页面的SessionID在第一次请求时都不相同,为什么?答:原因是你的frameset是放在一个htm页面上而不是ASPX页面。在一般情况下,如果frameset是aspx页面,当你请求页面时,它首先将请求发送到Web服务器,此时已经获得了SessionID,接着浏览器会分别请求Frame中的其他页面,这样所有页面的SessionID就是一样的,就是FrameSet页面的SessionID。然而如果你使用Html页面做FrameSet页面,第一个请求将是HTML页面,当该页面从服务器上返回是并没有任何Session产生,接着浏览器会 阅读全文
艾伟:ASP.Net中控件的EnableViewState属性
2011-08-29 00:09 by 狼人:-), 119 阅读, 0 推荐, 收藏,
摘要:在ASP.Net中对各个WebForm控件引入以前没有的EnableViewState属性。这个属性究竟有什么用。我们知道对于WebForm而言,其代码是在服务器端的,以处理客户端的请求。当用户通过浏览器浏览网页的时候,会对网页进行某些操作,比如打开新链接,或单击某个按钮。在ASP中,这些是通过脚本语言对其进行处理,之后再传递给服务器端。但是在ASP.NET下,由于采用了code behind技术,在coding的时候,通常是将以前客户端完成的工作放到了服务器端。 那么,服务器是怎么知道客户的操作的呢?比如我在文本框输入的内容,或者单击了登录按钮,服务器端是怎样得到这些信息的呢?因为没... 阅读全文
艾伟:控件之ViewState
2011-08-29 00:09 by 狼人:-), 154 阅读, 0 推荐, 收藏,
摘要:主题,控件的viewstate状态 一“七七八八”
有次,朋友开玩笑说,不知道什么时候,微软会取消viewstate,不再使用隐藏字段在服务器与客户端保存状态!虽然,可以使用客户端技术减少一些回传,但是,一些必要的服务器状态还是要保存的,现在网络带宽已经不是问题,所以在网络上适当的传递一些状态数据,还是可以容忍的!当然,如果终端是mobile,可以考虑把viewstate保存到服务器上!
二“误解viewstate” 园子里,有不少描写viewstate的文字,也看了不少,知道Viewstate实现了IStateManager接口的一个属性和三个方法!刚接触“她”的时候,一直以为contr.. 阅读全文
艾伟:C#多线程学习(六) 互斥对象
2011-08-29 00:09 by 狼人:-), 143 阅读, 0 推荐, 收藏,
摘要:本系列文章导航C#多线程学习(一) 多线程的相关概念C#多线程学习(二) 如何操纵一个线程C#多线程学习(三) 生产者和消费者C#多线程学习(四) 多线程的自动管理(线程池)C#多线程学习(五) 多线程的自动管理(定时器)C#多线程学习(六) 互斥对象 如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。
我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mu... 阅读全文
艾伟:C#多线程学习(五) 多线程的自动管理(定时器)
2011-08-29 00:09 by 狼人:-), 171 阅读, 0 推荐, 收藏,
摘要:本系列文章导航C#多线程学习(一) 多线程的相关概念C#多线程学习(二) 如何操纵一个线程C#多线程学习(三) 生产者和消费者C#多线程学习(四) 多线程的自动管理(线程池)C#多线程学习(五) 多线程的自动管理(定时器)C#多线程学习(六) 互斥对象 Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。
初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000); // 第一个参数:指定了TimerCallback 委托,表示要执行的方法... 阅读全文
艾伟:C#多线程学习(一) 多线程的相关概念
2011-08-29 00:09 by 狼人:-), 185 阅读, 0 推荐, 收藏,
摘要:本系列文章导航C#多线程学习(一) 多线程的相关概念C#多线程学习(二) 如何操纵一个线程C#多线程学习(三) 生产者和消费者C#多线程学习(四) 多线程的自动管理(线程池)C#多线程学习(五) 多线程的自动管理(定时器)C#多线程学习(六) 互斥对象 什么是进程?
当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。
而一个进程又是由多个线程所组成的。
什么是线程?
线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
什么是多线程?
多线程是指程序中包含多个执行流,... 阅读全文
艾伟:C#多线程学习(四) 多线程的自动管理(线程池)
2011-08-29 00:09 by 狼人:-), 182 阅读, 0 推荐, 收藏,
摘要:本系列文章导航C#多线程学习(一) 多线程的相关概念C#多线程学习(二) 如何操纵一个线程C#多线程学习(三) 生产者和消费者C#多线程学习(四) 多线程的自动管理(线程池)C#多线程学习(五) 多线程的自动管理(定时器)C#多线程学习(六) 互斥对象 在多线程的程序中,经常会出现两种情况:
一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应
这一般使用ThreadPool(线程池)来解决;
另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒
这一般使用Timer(定时器)来解决;
ThreadPool类提供一个由系统维护的线程池(可... 阅读全文
艾伟:.NET中Flags枚举的使用
2011-08-29 00:09 by 狼人:-), 259 阅读, 0 推荐, 收藏,
摘要:.NET中的枚举我们一般有两种用法,一是表示唯一的元素序列,例如一周里的各天;还有就是用来表示多种复合的状态。这个时候一般需要为枚举加上[Flags]特性标记为位域,例如: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->[Flags] enum Styles{ ShowBorder = 1, //是否显示边框ShowCaption = 2, //是否显示标题ShowToolbox = 4 //... 阅读全文
艾伟:[你必须知道的.NET] 开篇有益
2011-08-29 00:09 by 狼人:-), 154 阅读, 1 推荐, 收藏,
摘要:本系列文章导航[你必须知道的.NET] 开篇有益[你必须知道的.NET] 第一回:恩怨情仇:is和as[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类[你必须知道的.NET] 第三回:历史纠葛:特性和属性[你必须知道的.NET] 第四回:后来居上:class和struct[你必须知道的.NET] 第五回:深入浅出关键字---把new说透[你必须知道的.NET] 第六回:深入浅出关键字---base和this[你必须知道的.NET] 第七回:品味类型---从通用类型系统开始[你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理[你必须知道的.NET] 第九回: 阅读全文
艾伟:ASP.NET跨页面传值技巧总结
2011-08-29 00:09 by 狼人:-), 128 阅读, 0 推荐, 收藏,
摘要:关于页面传值的方法,引发了很多讨论。看来有很多人关注这个,我就我个人观点做了些总结,希望对大家有所帮助。 1. 使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e){ string s_url; s_url = "b.aspx?name 阅读全文
艾伟:C#中抽象类和接口的区别
2011-08-29 00:09 by 狼人:-), 145 阅读, 0 推荐, 收藏,
摘要:对于抽象类以及接口的概念,大家都容易把这两者搞混,其实我也一样,在听李建忠老师的设计模式时,他也老把抽象类说成接口,弄的我就更糊涂了,所以找了些网上的资料。 一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 二、接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三点: 1. 不能实例化; 2. 包含未实现的方法声明; 3. 派生类必须实. 阅读全文
艾伟:如何编写一个C#程序
2011-08-29 00:09 by 狼人:-), 192 阅读, 0 推荐, 收藏,
摘要:在编写一个C#程序之前,我们首先讲一些必要的概念:注释,Main方法,及控制台下的人机对话(输入输出语句).1.注释:是指对某些不容易理解的事物的说明,那么在程序开发中的意义也是一样的.注释就是对我们所写的代码的说明,注释是不会影响你所开发的代码的任何执行的. C#当中共有三种注释分别为:单行文本注释:在程序中"//"描述一个单行的文本注释,我们一般写在语句后部或上部.
//单行文本注释
多行文本注释:在程序中"/* ---------*/ "这样描述一个多行文注释.
/**//*一场地震,生死两难;只道三四险,不知五月难;纵有六双眼,泪也流不完;七颗心 阅读全文
浙公网安备 33010602011771号