代码改变世界

08 2012 档案

摘要:摘 要说到序列化,大家都非常熟悉XML序列化,还有二进制序列化,经过序列化的数据流更方便传输和存储。其实我们可以对序列化进行更多的控制,比如对序列化(和反序列化)前后的数据操作、定义自己的可序列化类型等。这一章我们来讨论一下有关于序列化和反序列化。第一节 序列化1、 序列化序列化包括正向序列化和反向序列化,一般我们将正向序列化说成是序列化。序列化(Serialization)是将一个类对象转化成一个字节流。反序列化(Deserialization)是将一个字节流转化成一个对应的类对象的过程。在WCF通信中,当向服务端发送请求的时候,WCF是先把本地的内存对象序列化成XML或Binary通过信道 阅读全文
posted @ 2012-08-31 13:35 focusdada 阅读(207) 评论(0) 推荐(0)
摘要:摘 要线程,一般认为只有在“复杂场景”中才会使用,有人对它望而生畏,因为它难以管理和控制,而又总有人对它摩拳擦掌,因为它提高了程序的响应速度。这一章我们来讨论Windows对线程的支持、CPU调度、线程开销、线程池、多线程数据同步等,并且再介绍一点关于异步编程的东西。第一节 Windwos线程及CPU调度在我们学习操作系统的时候已经知道:Windows 是一个多线程但并非实时的操作系统。Windows是在一个进程中运行应用程序的每个实例,基于Windows内核可以运行多个进程实例,Windows为每个进程分配了一个独立的虚拟地址空间以保证一个进程无法访问另一个进程的数据,如此一来,不但提高了各 阅读全文
posted @ 2012-08-31 13:34 focusdada 阅读(179) 评论(0) 推荐(0)
摘要:摘 要经过上一章的讨论,我们知道,CLR会在必要的时候启动垃圾回收器对不再使用的对象所占的内存进行回收,其实,在一个对象被回收前我们还可以通过析构函数来实现终结操作释放资源,了解终结操作后,我们还可以使用Dispose模式进行手工强制清理资源。这一章我们将讨论这些相关话题。第一节 析构函数和Finalize方法C#与C++有着类似的析构函数,都是对资源进行清理,但是,在C++中,开发人员明确知道析构函数会被调用,而C#中,开发人员不太明确析构函数会在什么时候被调用,它是由CLR管理的,通常是在一个对象被标记为垃圾对象,如果有析构函数,CLR的垃圾回收器会先调用析构函数,然后再回收其内存。类型S 阅读全文
posted @ 2012-08-31 13:34 focusdada 阅读(166) 评论(0) 推荐(0)
摘要:摘 要基于.NET平台的开发语言中,最让开发人员爽的一点就是垃圾回收处理机制,在编码过程中,终于可以解放你的双手来关注更重要的事情。很多的资料中在讲到.NET中的垃圾回收机制时都说“CLR在合适的时候进行垃圾回收”,但什么时候才是“合适的时候”?内存又是如何分配的?CLR是如何对内存进行回收的?这一章我们来讨论有关垃圾回收的相关内容。第一节 垃圾回收机制早期的C/C++开发中,一个对象的生命周期大概像这样:计算对象大小——查找可用内存——初始化对象——使用对象——摧毁对象。如果在上面的过程中,开发人员忘记了“摧毁对象”这一步骤,则很有可能导致内存泄露!这是一个非常可怕的事情!幸好,CLR的开发 阅读全文
posted @ 2012-08-31 13:33 focusdada 阅读(181) 评论(0) 推荐(0)
摘要:摘 要几乎所有的资料都告诉我们,在频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能,不辞劳苦的我们也写示例验证过,确实如传说的那样!但为什么StringBuilder 在操作字符串会有优异的表示呢?它真是像很多资料中所说“每次新追加进来字符串和旧有字符串总长度超设定容量时,会新键一个数组存放串字符,并且丢弃原有旧数组”吗?这一节我们来看个究竟。第一节 StringBuilder在前面的章节中我们已经知道,字符串是由字符组成,由于字符串具有不可变性,所以每一次对字符串的变动都会重新分配内存、创建一个字符串对象、丢弃旧对象,在重新分配内存过程可能会导致垃圾回收 阅读全文
posted @ 2012-08-31 13:32 focusdada 阅读(251) 评论(0) 推荐(0)
摘要:摘 要人非圣贤,孰能无过。代码是人写的,当然也不可能不出错,我们只能期望代码更健壮,不可能追求完美,能做更多的就是如何从错误中恢复或寻找替代方案。CLR提供了异常处理机制,它不仅能让代码在出错的时候更优雅地让人们去解决异常,也能在必要的时候抛出异常。那么,如何更规范的定义和使用异常消息呢?抛出异常会不会影响性能呢?第一节 CLR中的异常在早期的Win32 API设计中是通过返回true/false来表示一个过程(方法、函数)是否执行成功,在COM中是使用HRESULT来表示一个过程是否正确执行,然而这种处理异常的方式使开发人员对哪里出错,为什么出错,出什么样的错这些问题很难找到明确的答案,再一 阅读全文
posted @ 2012-08-31 13:32 focusdada 阅读(661) 评论(0) 推荐(0)
摘要:摘 要字符串是保存文本的System.String类型对象。它跟值类型(如:Int32、Int64等)有着相似的使用方法及表达目的,但它并不是值类型。由于在编程中会大量使用字符串,所以CLR为了提高性能及开发方便,对它进行了特殊处理。这一章,我们来介绍一下字符串的驻留机制、字符串池及字符串的比较等特性。注意,本系列所有测试代码均运行于.NET 4.0。第一节 字符串的定义(System.String)字符串被定义为System.String类型的对象,既然它是引用类型,那么一个未初始化的对象声明将保留为null,并且它的内存只能在堆上分配。它在内部维护的是字符Char的集合,所以它有一个属性L 阅读全文
posted @ 2012-08-31 13:31 focusdada 阅读(159) 评论(0) 推荐(0)
摘要:摘 要设计类型的时候可以使用各种成员来描述该类型的信息,但有时候我们可能不太愿意将一些附加信息放到类的内部,因为这样,可能会给类型本身的信息描述带来麻烦或误解。我们想为类型、属性、方法及返回值附加额外的信息,这些附加信息可以更明确的表达类及其对象成员的状态,怎么办?定制特性Attribute可以做到。为了避免Attribute与Property翻译性误解,我们以下的讨论中将以特性表示Attribute。细心的读者可能会发现如下类似定义://项目的AssemblyInfo.cs文件内有:[assembly: Guid("df510f85-e549-4999-864d-bb8925456 阅读全文
posted @ 2012-08-31 13:31 focusdada 阅读(166) 评论(0) 推荐(0)
摘要:摘 要抽象类,是一种特殊的类,可以定义具有实现的方法,也可以定义未实现的方法契约,本身不能被实例化,只能在派生类中进行实例化。接口,对一组方法签名进行统一的命名,只能定义未实现的方法契约,本身也不能被实例化,只能在实现类中进行实例化。二者都可以有部分数据成员(如:属性),它们貌似有着相同的“契约”功能,但对各自的派生类(实现类)又有着不同的要求,那么,到底它们有何异同呢?这一章将从四个方面来讲解它们的相同与不同之处。第一节 定义抽象类 不能实例化。抽象类的用途是提供多个派生类可共享的基类的公共定义,是对类进行抽象,可以有实现,也可以不实现。使用关键字abstract进行定义。如下定义一个抽象类 阅读全文
posted @ 2012-08-31 13:30 focusdada 阅读(157) 评论(0) 推荐(0)
摘要:摘 要委托与事件,这是一个老生常谈的话题,很多人在讲,很多人在用,但似乎它是一个永远也说不完道不尽的东西。那么,到底什么是委托?什么是事件?委托链又是怎么回事?为什么使用事件时常常用到+=/-=?委托又是如何支持协变和逆变的呢?你喜欢使用Action和Func<T,TResult>吗?由于内容比较多,这一章将分上、下两部分慢慢为你讲解。第一节 委托回调函数是Windows编程语言中一种常见而有用的编程实践,在C/C++中,它指的是函数调用的指针,通过这个指针可以方便地对函数进行调用,当然这个指针也是可以被传递给别的函数使用。在.NET Framework中,回调是通过委托来实现的, 阅读全文
posted @ 2012-08-31 13:28 focusdada 阅读(137) 评论(0) 推荐(0)
摘要:摘 要2012年7月21日,北京因暴雨灾害导致劳命伤财。这个事情过去后,“自然灾害预警”系统又一次被人们提起,它就是将自然现象前交发送通知给人们,这个过程能很好地解释C#语言中的事件。在上一节《C#基础知识梳理系列五:委托与事件(上)》我们主要讨论了与委托相关的知识,包括委托的内部实现、委托链等。那么事件与委托是什么关系呢?事件又是如何工作的呢?这些将是这节主要讨论的内容。第二节 事件气象局可以利用移动通信平台向人们的手机以短信的方式发送天气情况,只要你的手机在开机状态,在它向周围寻找基站并注册的这个过程就是订阅者对发布者发布的事件的订阅过程,正常情况下,只要你的号码不欠费,基站就允许你注册成 阅读全文
posted @ 2012-08-31 13:28 focusdada 阅读(122) 评论(0) 推荐(0)
摘要:摘 要世界上存在着男人和女人,如果没有某种东西把男人和女人连接起来构成“男女关系”,那么这些男人将立如树桩,仰天长叹,女人们将飘如小舟,荡无归处,整个世界毫无生机,自然离合。C#语言的类也是如此,有了字段和属性这些基础数据,必然要有一种东西让它们存储着某种联系且相互作用,它就是方法。这一章将介绍类中的构造器、方法以及方法参数。第一节 构造函数(构造器)构造函数也称为构造器,在创建类或结构的时候,CLR会都会调用类的构造函数,对于结构,CLR可能会隐式地调用默认构造函数。构造函数是一种特殊的函数,它不能被继承,可用public 和private修饰,但不能被virtual、new、overrid 阅读全文
posted @ 2012-08-31 13:27 focusdada 阅读(166) 评论(0) 推荐(0)
摘要:摘 要类 就像自然界的事物一样,拥有反应其自身状态特性的一系列数据。类状态数据是由常量、字段、属性等一些基础成员组成,且有静态和实例之分。它们之间有什么区别呢?可以互相替代吗?常量与静态只读字段有什么区别呢?属性是用方法实现,那么实现它的方法可以有参数吗?本章将解释这些奥秘。第一节 常量常量是一个符号,是在编译时已经存在且在程序生命周期内不会发生改变的值,它被保存在程序集的元数据中,只能使用C#内置的数据类型(基元类型)定义,如:int、uint、long 等,当然不包括System.Object。既然是内置类型定义,它必然是在声明时同时已初始化。常量使用const定义,C#编译器总是默认为s 阅读全文
posted @ 2012-08-31 13:26 focusdada 阅读(233) 评论(0) 推荐(0)
摘要:摘 要如果说C#是CLR特邀演员阵容之一,那类型class绝对是C#的演绎/演艺大师、不朽灵魂!它不仅演绎了C#的豪放,也演艺了C#的柔美。时而恢弘、时而细腻。一切类型皆System.Object。这一章将向您解释类型的生成,类型的演绎转换及类型设计的必要元素、类型成员的内存分配,当然还有装箱及拆箱操作。第一节 类型C#里,所有事物都是被按类划分,一切事物皆对象,任何对象都会对应为某一类。所有被划分出来的类都被归为一个超级“类”,即System.Object。Object被定义在命名空间System 门下,居住于程序集mscorlib.dll小区。类型Object是一个比较开放的类,成员不多, 阅读全文
posted @ 2012-08-31 13:25 focusdada 阅读(158) 评论(0) 推荐(0)
摘要:摘 要.NET Framework 到底是什么?公共语言运行时和 .NET Framework 类库分别指的是什么东西?CLR、 CLS、 CTS、FCL等这些又是什么?为什么出现程序集的概念?它与动态链接库的区别是什么?什么是强命名程序集?如何签名及部署程序集?这一章将帮助您学习和了解其中的秘密。第一节 .NET Framework是什么?.NET Framework(.NET框架),是由微软提出并实施的一个集成在Windows中的组件。它基于虚拟机技术实现的平台无关性的软件开发平台,它以语言运行库(CLR)为平台支持多种语言开发,如C#、VB、托管C++等,以强制的类型安全为基础实施运行在 阅读全文
posted @ 2012-08-31 13:19 focusdada 阅读(196) 评论(0) 推荐(0)
摘要:接着看函数——这个具有魔幻色彩的对象。在上篇文章中说函数内部属性时,还遗留了一个this内部属性没有解释,不过在说this之前,我想先说一说执行环境和作用域的概念。6、执行环境和作用域(1)执行环境(execution context):所有的JavaScript代码都运行在一个执行环境中,当控制权转移至JavaScript的可执行代码时,就进入了一个执行环境。活动的执行环境从逻辑上形成了一个栈,全局执行环境永远是这个栈的栈底元素,栈顶元素就是当前正在运行的执行环境。每一个函数都有自己的执行环境,当执行流进入一个函数时,会将这个函数的执行环境压入栈顶,函数执行完之后再将这个执行环境弹出,控制权 阅读全文
posted @ 2012-08-31 09:05 focusdada 阅读(140) 评论(0) 推荐(0)
摘要:变量类型 在说函数之前,先来说说变量类型。1、变量:变量在本质上就是命名的内存空间。2、变量的数据类型:就是指变量可以存储的值的数据类型,比如Number类型、Boolean类型、Object类型等,在ECMAScript中,变量的数据类型是动态的,可以在运行时改变变量的数据类型。3、变量类型:是指变量本身的类型,在ECMAScript中,变量类型就只有两种:值类型和引用类型。当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型。在不引起歧义的情况下,也可以称变量的数据类型为变量类型。 那么,值类型和引用类型有什么区别呢?最主要的一个,就.. 阅读全文
posted @ 2012-08-31 09:04 focusdada 阅读(137) 评论(0) 推荐(0)
摘要:砌好墙,下面出场的就是房子了,在ECMAScript中,对象就是我们所说的房子,至于你所写的整个应用程序,那就是一整套建筑群了。在房子里面可以放你想放的任意事物——如果你有足够的美学造诣,你甚至可以弄一个房中房试试——当然,为了方便管理,我们会给房子里存放的所有事物都会取上一个不重复的名字,比如医药房间里的各种药品名称。在ECMAScript中,你可以在对象中存放任意你想放的数据,同样,我们需要给存放的数据取一个名字——也就是对象的属性名,再存放各种数据。再看看ECMA-262中对象的定义:无序属性的集合,其属性可以包含简单数据类型值、对象或者函数。 进入对象,我开始有些激动了,说实话,让我. 阅读全文
posted @ 2012-08-31 09:04 focusdada 阅读(161) 评论(0) 推荐(0)
摘要:砖瓦和水泥都有了,接下来该是砌墙了,在ECMAScript中,语句就是我们需要砌的墙了。语句也和操作符一样,对于有C背景的人来说再自然不过了,下面采用类似的形式整理一下语句的相关知识,重点突出一些ECMAScript中比较特别和个人认为比较有意思的地方,同样,没有强调的但比较基础的语句并非不重要,而是我认为你已经熟悉。语句一览语句语法简要描述简单语句 ;语句以分号(;)结束,在不引起歧义的情况下也可以省略分号。语句块{}使用大括号({})将一组语句放一起组成一个语句块,在ECMAScript中,有语句块,但没有语句块作用域。if语句if(condition){}if(ocndition){}e 阅读全文
posted @ 2012-08-31 08:56 focusdada 阅读(182) 评论(0) 推荐(0)
摘要:数据类型是编程语言的砖瓦,是所有你能想象到的复杂抽象的基础,在现代编程语言中,除了语言本身内置的一些简单数据类型外,基本上都提供了用于自定义数据类型的语言机制(在C中也可以利用结构体来实现),这些机制在一定程度上也决定了该语言的流行度和生命力。ECMAScript是一种动态类型的语言,构建于5种简单数据类型(Undefined、Null、Boolean、Number、String)和一种复杂数据类型(Object)的基础之上。这篇文章就来复习一下简单数据类型,我会尽量从编程实践的角度来描述,下面代码运行环境为FireFox 14.0.1。简单数据类型简单数据类型取值Undefinedundef 阅读全文
posted @ 2012-08-31 08:55 focusdada 阅读(174) 评论(0) 推荐(0)
摘要:如果说数据类型是编程语言的砖瓦,那么运算符和操作符则是编程语言的石灰和水泥了,它是将各种数据类型的值有机组合的糅合剂,使得数据值不再只是一个孤立的值,而有了一种动态的灵性。在ECMAScript中,有非常丰富的运算符和操作符,在这篇文章中将按通常的分类来稍微整理一下,不过在整理之前,先说明一下:1、虽然标题是运算符和操作符,然而在我看来并没有多少严格区分的必要,在英文中,貌似也是用一个Operator来表示,所以在下文中我可能会混用。甚至,一些不属于运算符和操作符范畴的,我也整理在这里,只要我觉得必要。2、对于运算符的优先级,你无需一一牢记——我相信你知道最简单的”先乘除,后加减”,至于其它的 阅读全文
posted @ 2012-08-31 08:55 focusdada 阅读(132) 评论(0) 推荐(0)
摘要:在JavaScript面世之初,没有人会想到它会被应用的如此广泛,也远比一般人想象中的要复杂强大的多,在我自己学习的过程中,曾经有过多次震撼,只是常常没有过多久,很多美轮美奂的用法就又模糊起来,希望通过对JavaScript高级程序设计(第3版)的专题学习笔记,能够较为系统的将基础知识梳理一次,也能够将自己平常学习与工作过程中遇到的一些美妙用法记录下来,便于自己再次学习,当然,也希望可以给有需要的朋友们一些力所能及的帮助。相关术语 先简要说一下和JavaScript相关的一些背景术语,就不详细讨论JavaScript的历史了,想了解的朋友可以参考原书。ECMA:欧洲计算机制造商协会(Stan. 阅读全文
posted @ 2012-08-31 08:54 focusdada 阅读(159) 评论(0) 推荐(0)
摘要:这一篇复习一下ECMAScript规范中的基础语法,英文好的朋友可以直接阅读官方文档。JavaScript本质上也是一种类C语言,熟悉C语言的朋友,可以非常轻松的阅读这篇文章,甚至都可以跳过,不过建议你最好还是看一看,在介绍的同时,我可能会引用一些自认为不易理解且比较流行的用法。基础语法1、标识符:所谓标识符,实际上就是指一个满足一定规范,能够被引擎识别的名字,可以用来表示常量、变量、函数名、函数参数、对象、对象属性等所有可命名对象的名称。(1)区分大小写。(2)以字母、下划线(_)或美元符号($)开头,其它字符可以为字母、下划线、美元符号或数字。这里的字母包含扩展的ASCII或Unicode 阅读全文
posted @ 2012-08-31 08:54 focusdada 阅读(165) 评论(0) 推荐(0)
摘要:Web前端代码中,HTML是根本,CSS和JavaScript也是围绕着既有的HTML结构来构建,所以良好的HTML代码结构,除了提高了HTML代码的可读性,可维护性和执行性能之外,也可以让相对应的CSS和JavaScript代码更好的构建。距前面两篇探讨JavaScript(前端代码标准最佳实践:JavaScript篇)和CSS(前端代码标准最佳实践:CSS篇)之后,我们今天来探讨Web前端HTML的一些最佳实践。(1)HTML代码的基本规范1. HTML的命名和格式任何代码的混乱都是从命名和格式的混乱开始的,所以一定要有统一和规范的命名和格式,以下是一些基本的规范。HTML代码所有的标签名 阅读全文
posted @ 2012-08-30 12:49 focusdada 阅读(182) 评论(0) 推荐(0)
摘要:Linq快速入门——Lambda表达式的前世今生Lambda表达式其实并不陌生,他的前生就是匿名函数,所以要谈Lambda表达式,就不得不谈匿名函数,要谈匿名函数,那又要不得不谈委托。何为委托匿名方法Lambda表达式扩展方法泛型委托A Simple Lambda DemoLambda表达式树何为委托委托非常好理解,类似于C++里面的函数指针(指向了一个方法),并且委托约束了待指向方法的签名(由返回类型和参数组成)。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespac 阅读全文
posted @ 2012-08-30 12:48 focusdada 阅读(142) 评论(0) 推荐(0)
摘要:还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗。 今天我们就开发一个12306网站自动登录软件。 帮助您轻松订票通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web的原理.Web的原理就是,浏览器发送一个Request给Web服务器,Web服务器处理完这个请求之后发送一个HTTP Response给浏览器。如果我们用自己写的程序来发送Request给Web服务器,然后再捕获Web服务器发回来的Response. 检查它与期望值值是否一致。 这不就是Web自动化测试吗? 这样的自动化测试叫做请求响应测试, 别小看这样的自动化测试。 什么开心农场助手,自动投票机。 阅读全文
posted @ 2012-08-28 17:11 focusdada 阅读(324) 评论(0) 推荐(0)
摘要:在做单元测试的时候,我们会发现我们要测试的方法会引用很多外部依赖的对象,比如:(发送邮件,网络通讯,记录Log, 文件系统 之类的)。 而我们没法控制这些外部依赖的对象。 为了解决这个问题,我们需要用到Stub和Mock来模拟这些外部依赖的对象,从而控制它们阅读目录实例设计测试用例什么是外部依赖Stub和Mock的相同处Stub和Mock的区别良好的产品代码才能单元测试Mock框架源代码下载实例Analyze类会检查filename的长度,如果小于8,我们就会使用一个实现IWebService的类来记录错误.我们需要给Analyze方法写单元测试。public class LogAnalyze 阅读全文
posted @ 2012-08-28 16:53 focusdada 阅读(228) 评论(0) 推荐(0)
摘要:XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的. 比如获取用户的Cookie,导航到恶意网站,携带木马等。 作为测试人员,需要了解XSS的原理,攻击场景,如何修复。 才能有效的防止XSS的发生。 阅读目录XSS 是如何发生的HTML EncodeXSS 攻击场景XSS漏洞的修复如何测试XSS漏洞HTML Encode 和URL Encode的区别浏览器中的XSS过滤器ASP.NET中的XSS安全机制XSS 是 阅读全文
posted @ 2012-08-28 16:52 focusdada 阅读(208) 评论(0) 推荐(0)
摘要:现在我们来看看Fiddler的高级用法. Fiddler Script。 Fiddler中的script 可以让我们自动修改Http request和Response 的内容。 而不用手动地去下"断点"来修改http Request或Response中的值。阅读目录Fiddler的作者如何向Fiddler的作者请教关于Fiddler Script 和Jscript.NETFiddler Script 是用JScript.NET语言写的安装Fiddler Script Editor给Fiddler添加菜单修改Session在Fiddler的显示样式如何在Fiddler Scr 阅读全文
posted @ 2012-08-28 16:50 focusdada 阅读(197) 评论(0) 推荐(0)
摘要:GUI自动化测试和做外挂的原理很相似,都是模拟用户的鼠标和键盘操作, 给自己的程序写自动化就是做测试,给别人的程序写自动化就是外挂了。本文使用的技术也同样适用制作“对对碰”,"找茬" 之类游戏的外挂。阅读目录QQ连连看外挂实现原理GUI自动化测试的原理什么是句柄P/Invoke机制获取游戏窗体的句柄分析游戏窗口对游戏窗口进行截图根据游戏规则来写算法模拟鼠标点击源代码下载QQ连连看外挂实现原理1. 先调用Win32 API获取"连连看"游戏窗口的句柄,2. 根据游戏窗口的句柄,然后获取游戏方块中的像素。3. 用一个二维数组来保存每个方块的像素4. 用算法判 阅读全文
posted @ 2012-08-28 16:46 focusdada 阅读(344) 评论(0) 推荐(0)
摘要:Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。阅读目录Fiddler的基本介绍Fiddler的工作原理同类的其它工具Fiddler如何捕获Firefox的会话Firefox 中使用Fiddler插件Fiddler如何捕获HTTPS会话Fiddler的基本界面Fiddler的统计视图QuickExec命令行的使用Fiddler中设置断点修改RequestFiddler中设置断点修改ResponseFiddler中创建AutoRespon 阅读全文
posted @ 2012-08-28 16:36 focusdada 阅读(140) 评论(0) 推荐(0)
摘要:【概述】 在这一章,我们会聚焦在前端性能:外部的Css 和 JavascriptCss 和 Javascript 的 迷你化 与 合并图片的最佳化Css 图片拼合器【外部的CSS和Javascript】 几乎所有的CSS和Javascript 都应该放在外部文件减少页面的尺寸允许重用允许使其过期 可读性更高 把css 和 js 文件放到外部文件的确可以让页面看的更加清爽,同时减小了页面本身的尺寸。 在外部的文件可重用性更高,例如你可以在一个css文件中定义整体布局。并且让每个页面的元素都遵从它。 在上一节中,我们提到了浏览器过期的重要性,所以在外部引用css和js文件也是非常重要的。 最后是. 阅读全文
posted @ 2012-08-20 09:27 focusdada 阅读(161) 评论(0) 推荐(0)
摘要:上一章我讲了很多关于Fiddler的东西。其实有很多检测工具可以使用,如 Fiddler 、chrome、firebug、Network Monitor、IIS 和一些第三方的service。首先我们还是先继续回顾一下fiddler的功能【fiddler】追踪工具,尤其针对Http展示完成的request和response可以保存session存档在提高我网站性能之前,我先把网站相关信息保存起来。等我优化之后,我可以拿出来做对比。哦,原来我的站点性能提高了这么多!网页加载耗时时间轴统计。还是以微软的网站为例:我们可以很清楚的看到加载了哪些类型的文件,已经文件的大小。【Chrome 浏览器】 C 阅读全文
posted @ 2012-08-20 09:26 focusdada 阅读(196) 评论(0) 推荐(0)
摘要:【概述】在这一章节,我们的主题聚焦在基础设施建设上。Http Compression(压缩)Content Expirations (内容过期)Content Distribution Networks - CDN(内容分发网络)Etags (E标签)去掉没必要的Http header【Compression】 我们前边提到过,性能规则中的一条就是在服务器和浏览器之间传输的数据越少越好。介于此规则,我们可以使用一个比较成熟的技术:Http Compression。 Server 端会评估客户端发来的http request中header里的"Accept-Encoding”。来确定客 阅读全文
posted @ 2012-08-20 09:26 focusdada 阅读(126) 评论(0) 推荐(0)
摘要:【概观】什么使我们的网站变慢?Http 协议通过更好的性能省钱和赚钱性能规则【什么使网站变慢】对于大多数现代的网站,仅仅有10%-20%的响应时间是用于生成和加载html document的。 那么,其他的时间用于加载什么呢?确切的说,如下:cssjavascript(jquery,plugin 等等)images 让我们使用一个工具去看看-Fiddler (http://www.fiddler2.com/fiddler2/) 首先打开fiddler,然后使用浏览器访问 www.microsoft.com 这时候我们可以看到fiddler监控到客户端与微软网站服务器之间的交互情况如下图:注意f 阅读全文
posted @ 2012-08-20 09:24 focusdada 阅读(133) 评论(0) 推荐(0)
摘要:ASP.NET是微软公司提供的编写动态网站的技术框架,其特点是基于.NET框架基础,所有的ASP.NET程序都可以使用针对.NET的语言编写。在微软的VS开发平台中,实现了拖放控件等便捷的功能,使得ASP.NET应用程序的开发效率得到了较大的提高,今年来ASP.NET逐渐成为网站开发的主流技术之一。 但是ASP.NET的本质到底是什么?为了回答这个问题,下面先介绍2个概念。1.NET 宿主 作为一个致力于运行在Windows操作系统之上的技术框架,.NET的实现充分体现了这一点。.NET小组实质上把CLR实现为一个标准的COM服务器组件,CLR具有标准的COM接口和接口GUID,在安装.N.. 阅读全文
posted @ 2012-08-13 09:37 focusdada 阅读(335) 评论(0) 推荐(0)
摘要:这篇文章收录了十一月份发布在梦想天空的优秀文章,特别推荐给Web开发人员和设计师阅读。梦天空博客关注前端开发技术,展示最新HTML5和CSS3技术应用,分享实用的jQuery插件,推荐优秀的网页设计案例,共享精美的设计素材和优秀的Web开发工具。希望这些文章能帮助到您。HTML5 & CSS3 应用推荐十款非常优秀的 HTML5 在线设计工具35个让人惊讶的 CSS3 动画效果演示获取 HTML5 网页设计灵感的10个网站推荐非常漂亮的 HTML5 商业网站设计案例分享最新20个漂亮的支持HTML5的网站15个使用 CSS3 制作的漂亮作品展示网站jQuery 插件和教程让人期待的20 阅读全文
posted @ 2012-08-09 14:00 focusdada 阅读(132) 评论(0) 推荐(0)
摘要:本文继续向Web开发人员和设计师推荐优秀文章。梦想天空博客关注前端开发技术,展示最新HTML5和CSS3技术应用,分享实用的jQuery插件,推荐优秀的网页设计案例,共享精美的设计素材和强大的Web开发工具。本文特别推荐给Web设计师和开发人员阅读,希望这些资源能帮助到您。HTML5 应用演示推荐8个很酷很有用的 HTML5 应用程序10个奇特的 HTML5 Canvas 应用试验19个基于 HTML5 和 CSS3 优秀应用程序10个让你忘记 Flash 的 HTML5 应用演示推荐10款基于 HTML5 开发的优秀应用HTML5 网站和教程分享8个精美的 HTML5 网站设计案例15个清爽 阅读全文
posted @ 2012-08-09 13:59 focusdada 阅读(107) 评论(0) 推荐(0)
摘要:这篇文章继续向大家分享Web开发和设计精华文章,文章主要来自今年七月份发布在梦想天空博客的博文。梦想天空博客专注于分享Web开发技术、资源和教程,展示最新 HTML5 和 CSS3 技术应用,分享实用的 jQuery 插件,推荐优秀的网页设计案例,共享精美的设计素材和强大的Web开发工具。分享快乐,快乐分享,希望这些资源能帮助到您。jQuery 插件和教程13个超级有用的 jQuery 内容滚动插件和教程推荐5个应用 jQuery 特效的精美网站33个优秀的 jQuery 图片展示插件分享15款优秀的 jQuery 导航菜单插件19个非常有用的 jQuery 图片滑动插件和教程分享33个优秀的 阅读全文
posted @ 2012-08-09 13:58 focusdada 阅读(108) 评论(0) 推荐(0)
摘要:这篇文章继续向大家推荐Web开发和设计精华文章,文章主要来自今年八月份发布于梦想天空博客的博文。梦想天空博客专注于分享Web开发技术、资源和教程,展示最新 HTML5 和 CSS3 技术应用,分享实用的 jQuery 插件,推荐优秀的网页设计案例,共享精美的设计素材和强大的Web开发工具。分享快乐,快乐分享,希望这些资源能帮助到您。HTML58个惊艳的 HTML5 和 JavaScript 特效分享31个非常有用的 HTML5 教程分享21个非常棒的HTML5视频教程12个精美的 HTML5 个人网站欣赏10个基于 HTML5 的字体应用演示网站jQuery & CSS330个精美的j 阅读全文
posted @ 2012-08-09 13:58 focusdada 阅读(96) 评论(0) 推荐(0)
摘要:这篇文章主要收录了最近两个个月发布在梦想天空的优秀文章,特别推荐给 Web 开发人员和设计师阅读。梦天空博客关注 前端开发 技术,展示最新 HTML5 和 CSS3 技术应用,分享实用的 jQuery 插件,推荐优秀的 网页设计 案例,共享精美的 设计素材 和优秀的 Web开发工具。希望这些文章能帮助到您。HTML5 & CSS3 应用35款优秀的基于 HTML5 开发的网页游戏精美绝伦的 HTML5 个人作品集网站20个惊艳的 HTML5 Canvas 应用试验HTML5 网站大观:精美的HTML5创意网站作品分享29款基于 HTML 5 Canvas 的网页游戏实现精美网页字体的C 阅读全文
posted @ 2012-08-09 13:57 focusdada 阅读(92) 评论(0) 推荐(0)
摘要:有些 SMTP 服务器要求在代表客户端发送电子邮件前验证客户端的身份。当此 SmtpClient 对象应该使用当前登录用户的默认凭据进行身份验证(如果服务器要求)时,请将此属性设置为 true。对于客户端应用程序,这是在大多数情况下都需要的行为。也可以使用应用程序和计算机配置文件指定凭据信息。有关更多信息,请参见 <mailSettings> 元素(网络设置)。 如果 UseDefaultCredentials 属性设置为 false,则连接到服务器时会将 Credentials 属性中设置的值用作凭据。如果 UseDefaultCredentials 属性设置为 false 并且 阅读全文
posted @ 2012-08-09 09:22 focusdada 阅读(128) 评论(0) 推荐(0)
摘要:jQuery的易扩展性吸引了来自全球的开发者来共同编写jQuery插件。jQuery插件不仅能够增强网站的可用性,有效地改善用户体验,还可以大大减少开发时间。现在的jQuery插件很多,可以根据您的项目需要来选择。这里为您介绍20款非常不错的插件。Creative Radical Web TypographyLettering.js是一个轻量经的、易于使用的jQuery插件,可创造出极具个性的网页排版,是2010年最佳jQuery插件之一。演示 | 下载New FancyMoves Jquery Product SliderJquery Product Slider是一款效果很不错的产品幻灯片 阅读全文
posted @ 2012-08-09 09:20 focusdada 阅读(113) 评论(0) 推荐(0)
摘要:工具提示(Tooltip)在网站中的一个小功能,但却有很重要的作用,常用于显示一些温馨的提示信息。如果网站中的工具提示功能做得非常有创意的话能够加深用户对网站印象。因此,今天这篇文章向大家推荐的20款优秀的 jQueryTooltip 插件就是用于帮助你制作漂亮的工具提示效果。1. Dynamic tooltip2. jGrowl3. jQuery Horizontal Tooltips Menu Tutorials4. Coda Popup Bubble5. The Tooltip6. TipTip7. (mb)Tooltip8. vTip9. Awesomeness10. jQuery A 阅读全文
posted @ 2012-08-09 09:18 focusdada 阅读(144) 评论(0) 推荐(0)
摘要:到现在为止你还未触碰LINQ,那进来吧 —— LINQ入门(完结篇)前 言 各种懒惰,各种拖沓,终究是要动笔写终结篇了,在这个系列的前几篇文章里我们主要学习linq的基础语法以及他对内存数据的操作等,那么本篇文章我们将讨论学习最为大家所熟悉的,也是最受争议的 Linq To SQL,再次强调,如果你到目前为止认为LinqToSql就是linq的话,有以下几种方式可共君选择:1.把这个系列的前面几篇文章给读了。2.到菜市场卖块豆腐给撞了。3.(MM可以忽略跳过哈)把屁股洗干净,让大家把你菊花给爆了。用 意 Linq To Sql 相对现在来说,不可否认它已经过时了,伴随着vs2010和Ent.. 阅读全文
posted @ 2012-08-08 10:30 focusdada
摘要:1、跟踪页面执行设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。asp.net中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:<%@ Page Language="C#" Trace="true" %> 跟踪信息可以分为两类:a.页面执行详细情况其中主要包括页面生命周期中各事件列表、控件树列表(可以查看每个控件的HTML字节数以及ViewState字节数)、Session状态、Application状态、Cookie集合、QueryStr 阅读全文
posted @ 2012-08-02 08:55 focusdada 阅读(130) 评论(0) 推荐(0)
摘要:1. 如何创建嵌套的过滤器//允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分。在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“selected”(.selected)的子节点。.filter(":not(:has(.selected))")2. 如何重用元素搜索var allItems = $("div.item"); var keepList = $("div#container1 div.item"); //现在你可以继续使用这些jQuery对象来工作了。例如.. 阅读全文
posted @ 2012-08-01 09:05 focusdada 阅读(205) 评论(0) 推荐(0)