07 2013 档案

摘要:1 工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到一个子类。理解:每个实现对应一个具体的工厂类。每一个工厂依赖一个具体的实现,工厂的存在依赖其具体的实现 客户端需要知道具体的工厂类。内容:抽象工厂类及具体工厂,操作抽象类及具体操作类,工厂类创建操作类,每个工厂类依赖具体的操作类。作用:将简单工厂模式的修改从工厂类转移到客户端,符合开放封闭原则。缺点是开发量较大,客户端需要修改。 1.在编码时不能预见需要创建哪种类的实例。 2.系统不应依赖于产品类实例如何被创建、组合和表达的细节其他:解决客户端需要修改的策略:利用反射机制和XML配置,完成 阅读全文
posted @ 2013-07-31 11:34 youhumian 阅读(165) 评论(0) 推荐(0) 编辑
摘要:转自其他在OO设计领域,我们知道前人总结了不少的经验,许多的经验在现代软件工程过程中已经被认为是原则来遵守。下面笔者摘抄几项下文涉及到的OO原则的定义。OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。我的理解是,对于一个已有的软件,如果需要扩展,应当在不需修改已有代码的基础上进行。DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。我的理解是,对于不同层次的编程,高层次暴露给低层次的应当只是接口,而不是它的具体类。LoD(迪米特法则,Law of Demeter):只与 阅读全文
posted @ 2013-07-31 10:34 youhumian 阅读(120) 评论(0) 推荐(0) 编辑
摘要:1 简单工厂模式定义:是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。理解:对象的创建交给工厂处理内容:工厂抽象类,具体实现类作用:对象创建的作用交给工厂其他:由于工厂类集中了所有实例的创建逻辑,违反高内聚责任分配原则,因此一般只在很简单的情况下应用。不属于23种GOF设计模式之一UML图:2 demo比如有个国家的运动员协会,他们是负责登记与注册职业运动员的(就好像我们国家的体育总局,呵呵,无论足球篮球还是乒乓球的运动员都必须在这里注册才能拿到我们国家职业运动员牌照)。一家体育俱乐部(比如篮球的广东宏远,足球 阅读全文
posted @ 2013-07-31 10:31 youhumian 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1 桥接模式:将抽象部分和它的实现部分分离,使不同的实现部分可以独立的变化。抽象部分可以理解为功能的整体描述,实现部分为不同类型的实现方式。理解:实现系统可能有多角度分类,每一种分类有可能变化,把这种多角度分离出来,让他们独立的变化,减少他们之间的耦合。作用:当实现系统可能有多角度分类的时候,每种分类都有可能有变化。如手机,手机分类可以按品牌,也可以按软件。内容:每一种实现都是一种抽象类,主实现用设置函数与其他实现联系原则:合成、聚合复用原则,尽量使用合成/聚合,尽量不要使用类继承。其他:用继承关系的时候,一定是 IS-a 的关系时考虑使用,而不是任何时候都用。2 demo 实现一个网上国内手 阅读全文
posted @ 2013-07-31 09:51 youhumian 阅读(194) 评论(0) 推荐(0) 编辑
摘要:1 模式demo2 模式定义,描述解决的现实世界的问题3 模式UML图描述4 模式主要内容及其作用 阅读全文
posted @ 2013-07-30 22:49 youhumian 阅读(127) 评论(0) 推荐(0) 编辑
摘要:1 软件安装方法:源代码编译安装:tar.gz等压缩格式,需要经过手动编译,./configure,make ,make install ,然后进行配置操作二进制安装:tar.gz等压缩格式,解压后,做一下配置操作即可rmp安装方式:在Ubuntu中,只需要 运行 apt-get install 安装文件名,可以采用网上或本地安装rpm等安装文件格式2 不同系统的差异Ubuntu :apt-get install 安装文件名redHat:rpm -i 安装文件名软件安装包:两种格式 rmp 和 deb格式rmp是RedHat开发的;deb是Debin开发的3 不同方式的安装方法一、rpm包安装 阅读全文
posted @ 2013-07-27 19:43 youhumian 阅读(320) 评论(0) 推荐(0) 编辑
摘要:mount /dev/cdrom /mnt/cdrom 加载umount /mnt/cdrom 卸载保证虚拟机的connection状态为 connected状态 阅读全文
posted @ 2013-07-27 14:48 youhumian 阅读(175) 评论(0) 推荐(0) 编辑
摘要:一、如果你的系统是RedHat系列:yum list|grep ncursesyum -y install ncurses-develyum install ncurses-devel二、如果你的系统是Ubuntu或Debian:apt-cache search ncursesapt-get install libncurses5-dev软件rpm -qa| grep 查询rmp -e 软件名 --nodeps 卸载压缩tar -zxvf x.tar.gzyum可以用于运作rpm包,例如在Fedora系统上对某个软件的管理:安装:yum install 卸载:yum remove 更新:yum 阅读全文
posted @ 2013-07-27 13:12 youhumian 阅读(187) 评论(0) 推荐(0) 编辑
摘要:1:假如下载的文件名为:mysql-5.0.45.tar.gz 2:假如copy到 /usr/local下 3:groupadd mysql #添加mysql组 4:useradd -g mysql mysql #添加一个mysql用户 5:cd /usr/local#进入到该目录 -----------------------编译过程----------------------- 6:tar zxvf mysql-5.0.45.tar.gz #解压后,在该目录下会出现一个同名的文件夹 7:cd /usr/local/mysql-5.0.45 8:./configure --prefix=/u 阅读全文
posted @ 2013-07-27 10:29 youhumian 阅读(152) 评论(0) 推荐(0) 编辑
摘要:linux下安装mysql-5.1.51.tar.gz(2010-10-27 10:59:26)转载▼标签:mysql数据库tar.gz安装杂谈分类: Mysql数据库MySQLhttp://www.mysql.com/[user@localhost 桌面]$ ls mysql-5.1.51.tar.gzmysql-5.1.51.tar.gz[user@localhost 桌面]$ su密码:[root@localhost 桌面]# cp mysql-5.1.51.tar.gz /usr/local/src/[root@localhost 桌面]# cd /usr/local/src/[roo 阅读全文
posted @ 2013-07-27 10:26 youhumian 阅读(204) 评论(0) 推荐(0) 编辑
摘要:Linux 安装mysql.tar.gz包(2012-09-28 19:25:06)标签:it分类: linux学习编我用的mysql的版本的是:mysql-5.1.49-linux-i686-icc-glibc23.tar.gz在官网上就可以下载到。先期工作:建立mysql用户组,mysql用户,并且把mysql用户加入到mysql用户组中。建立mysql用户组:groupadd mysql建立mysql用户并加入mysql用户组:useradd mysql -g mysql -p mysql123456 -s /sbin/nologin -M说明:-g 是加入到mysql用户组,-p是设置 阅读全文
posted @ 2013-07-27 10:19 youhumian 阅读(277) 评论(0) 推荐(0) 编辑
摘要:查询所有进程ps auxps aux|grep tty1 找到终端是1的进程 ,注意找bash的即可杀死进程kill -9 进程号 阅读全文
posted @ 2013-07-26 16:46 youhumian 阅读(186) 评论(0) 推荐(0) 编辑
摘要:1 组管理组名:口令:组标识号:组内用户列表1)“组名”是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。2)“口令”字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。3)“组标识号”与用户标识号类似,也是一个整数,被系统内部用来标识组。4)“组内用户列表”是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。/etc/group文件的一个例子如下:#cat/etc/group root::0:root bin::2:root,bin sys::3: 阅读全文
posted @ 2013-07-26 16:35 youhumian 阅读(229) 评论(0) 推荐(0) 编辑
摘要:文件及目录touch 文件名 创建文件vi 文件名 无创建,有打开mkdir 创建目录mv 源文件或文件集合(*)表示 目的地目录 如果有重复的替换 移动cp 源文件或目录 目的文件或目录 复制rm -r 文件或目录 删除rmdir -rf 删除空目录 r递归 f强制 阅读全文
posted @ 2013-07-26 15:47 youhumian 阅读(154) 评论(0) 推荐(0) 编辑
摘要:1、文件名颜色的含义1)默认色代表普通文件。例:install.log2)绿色代表可执行文件。例:rc.news3)红色代表tar包 文件。 例:vim-7.1.tar.bz24)蓝色代表目录文件。 例:aa5)水红代表图象文件。 例:Sunset.jpg6)青色代表链接文件。 例:rc4.d (此类文件相当于快捷方式)7)黄色代表设备文件。 例:fd0本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2013-03/80510.htm1 ls 显示当前目录下的文件列表(文件夹也是文件) ls -al. 阅读全文
posted @ 2013-07-26 11:04 youhumian 阅读(219) 评论(0) 推荐(0) 编辑
摘要:优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;Class::age = 2;for( i = 0; i 0; i-- ) ...从左到右2!~++---+*&(type)sizeof逻辑取反操作符按位取反(按位取补)前置自增操作符前置自减操作符一元取负操作符一元取正操作符解引用操作符取地址操作符类型转换操作符返回对象占用的字 阅读全文
posted @ 2013-07-25 22:58 youhumian 阅读(152) 评论(0) 推荐(0) 编辑
摘要:C‘计算参数时,从右向左压栈的int a[]={1,3,4};int * ptr=a;pirntf("%d,%d\n",*ptr,*(++ptr));输出都是3; 阅读全文
posted @ 2013-07-25 22:38 youhumian 阅读(159) 评论(0) 推荐(0) 编辑
摘要:暂时忽略特例情况1 单链表逆置// 利用两个指针变量存储当前节点和下一个节点的值link h=null;//第一个节点指针域置nullwhile(p) //p是头指针{ link tmp=p;//指向一个节点 p=p->next;//把p指向第二个节点 //给第一个节点指针域附值 p->next=h; h=tmp;//存储下一个将要存储的地址} p=h;//赋给头指针2 判断链表循环链接//利用一快一慢,如果是环,则会相遇while (fast && fast->next) { fast = fast->next->next; slow = slo 阅读全文
posted @ 2013-07-25 19:15 youhumian 阅读(304) 评论(0) 推荐(0) 编辑
摘要:protected void Page_Load(object sender, EventArgs e) { // CountSum(); Count_matrix_mul(); } //floor向下取整 //ceiling 向上取整 //开平方就用Math.Sqrt, 开n次方:Math.Pow(double, 1/n) //一维数组存储二维矩阵N*N,得到行和列 // 行:i / n ;列:i % n private void Count_matrix_mul() { int[] numA = { 1, 2, 4, 3, 1, 4, 5, 3, 2 }; int[] numB = { 3 阅读全文
posted @ 2013-07-25 15:50 youhumian 阅读(1456) 评论(0) 推荐(0) 编辑
摘要:异或操作的妙用 2011-08-23 13:19:59分类:前几天下班途中跟同事聊到了一道面试题,大意是,给你1-1000个连续自然数,然后从中随机去掉两个,再打乱顺序,要求只遍历一次,求出被去掉的两个数。这题其实挺为面试者的,因为要求1分钟内说出解法,且不能使用计算机、纸和笔。如果之前没有遇到过类似的题目,加上面试时的紧张心情,很难能在那么短的时间里想到解决方案,至少我做不到。好在我有时间,上网看了一下,比较常见的有两种方法求方程组的解遍历被打乱的数组时,计算value的累加值和value平方的累加值。结合未打乱之前的数组,这样就能得出x+y = m与x*x+y*y = n两个方程,解这组方 阅读全文
posted @ 2013-07-25 10:41 youhumian 阅读(628) 评论(0) 推荐(0) 编辑
摘要:1. 转置单向链表 (也就是反序,注意链表的边界条件并考虑空链表)。#include struct listtype{ int data; struct listtype * next;};typedef struct listtype * list;/* Reverse the singly linked list *psll. */void reverse_singly_linked_list(list * psll){ list h = NULL; list p = *psll; if (!psll || !*psll) { return; } while (p) { list tmp 阅读全文
posted @ 2013-07-24 22:52 youhumian 阅读(569) 评论(0) 推荐(0) 编辑
摘要:题目1:两个二进制数的异或结果两个二进制数异或结果 是 这两个二进制数差的绝对值,即表达为如下: a^b = |a-b| (按位相减)解答过程: 二进制数a与b异或,即a和b两个数按位进行,如果对应位相同,即为0(这个时候相当于对应位算术相减),如果不相同,即为1(这个时候相当于对应位算术相减的绝对值)。由于二进制每个位只有两种状态,要么是0,要么是1,则按位异或操作可以表达为按位相减后取绝对值。题目2:递归函数最终会结束,那么这个函数一定(不定项选择):1. 使用了局部变量 2. 有一个分支不调用自身3. 使用了全局变量或者使用了一个或多个参数这是一道简单的选择题,但包含的内容并不算简单,而 阅读全文
posted @ 2013-07-24 22:47 youhumian 阅读(219) 评论(0) 推荐(0) 编辑
摘要:http 之session和cookiehttp://www.cnblogs.com/ForEverKissing/archive/2008/05/23/1205503.htmlSession简介摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。目录:一、术语session二、HTTP协议与状态保持三、理解cookie机制四、理解session机制五、理解javax.se 阅读全文
posted @ 2013-07-24 00:00 youhumian 阅读(205) 评论(0) 推荐(0) 编辑
摘要:Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。 服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方.. 阅读全文
posted @ 2013-07-23 23:50 youhumian 阅读(351) 评论(0) 推荐(0) 编辑
摘要:1、 HTTP协议Internet的基本协议是TCP/IP协议(传输控制协议和网际协议),目前广泛使用的 FTP、HTTP(超文本传输协议)、Archie Gopher都是建立在TCP/IP上面的应用层协议,不同的协议对应不同的应用。而HTTP协议是Web应用所使用的主要协议。HTTP协议是基于请求响应模式的。客户端向服务器发送一个请求,请求头包含请求的方法、 URI、协议版本、以及包含请求修饰符、客户端信息和内容的类似MIME的消息结果。服务器则以一个状态行作为响应,相应的内容包括消息协议的版本、成功 或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。HTTP是无状态协议,依赖于 阅读全文
posted @ 2013-07-23 23:40 youhumian 阅读(1410) 评论(0) 推荐(0) 编辑
摘要:HTTP请求客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括:一个请求行、若干消息头、以及实体内容请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号消息头用于描述客户端请求哪台主机,以及客户端的一些环境信息等常用的请求方式有: GET、 POST不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如: GET /mail/1.html?nam 阅读全文
posted @ 2013-07-23 23:30 youhumian 阅读(321) 评论(0) 推荐(0) 编辑
摘要:一、HTTP响应码响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。响应码分五种类型,由它们的第一位数字表示:1xx:信息,请求收到,继续处理2xx:成功,行为被成功地接受、理解和采纳3xx:重定向,为了完成请求,必须进一步执行的动作4xx:客户端错误,请求包含语法错误或者请求无法实现5xx:服务器错误,服务器不能实现一种明显无效的请求下表显示每个响应码及其含义:100继续101分组交换协200OK201被创建202被采纳203非授权信息204无内容205重置内容206部分内容300多选项301永久地传送302找到303参见其他304未改动305使用代理307暂时重定向 阅读全文
posted @ 2013-07-23 23:29 youhumian 阅读(1360) 评论(0) 推荐(0) 编辑
摘要:HTTP有两部分组成:请求与响应,下面分别整理。一.HTTP请求1.HTTP请求格式:[]在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。2.GET与POST区别HTTP定义了与服务器交互的不同方法,最基本的方法是GET和POST(Ajax开发,关心的只有GET请求和POST请求)。GET与POST方法有以下区别:(1)在客户端,Get方式在通过URL提交数据,数据在UR 阅读全文
posted @ 2013-07-23 23:28 youhumian 阅读(442) 评论(0) 推荐(0) 编辑
摘要:在浏览器访问:http://www.sina.com:8080/mail/1.html浏览器与web服务器之间的交互:1. 浏览器查询本地的hosts文件看是否有与所输入主机名相匹配的ip地址,如果有则根据ip连接上web服务器;如果没有则访问DNS服务器获得与主机名对应的ip然后跟据ip连接上web服务器2. 向服务器发送HTTP请求3. Web服务器从请求中检索出浏览器想访问的主机名www.sina.com4. Web服务器从请求中检索出浏览器想访问的web应用 mail5. Web服务器从请求中检索出浏览器想访问的web资源 1.html6. Web服务器读取web资源的数据7. Web 阅读全文
posted @ 2013-07-23 23:22 youhumian 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-07-22 22:00 youhumian 阅读(190) 评论(0) 推荐(0) 编辑
摘要://BitMap 位图,常用的方法,Save:主要方式有:(1)保存在图像文件里,可以指定格式[gif,bmp];(2) 保存在流中,以指定格式[gif,bmp]//graphic图像操作对象画图片的边框线graphic.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);画文本 Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));LinearGradientBrush brush 阅读全文
posted @ 2013-07-22 21:48 youhumian 阅读(388) 评论(0) 推荐(0) 编辑
摘要:1、C#创建验证码1.1 创建获取验证码页面(ValidateCode.aspx)[html] view plaincopyprint?获取验证码获取验证码 获取验证码 获取验证码 1.2 编写获取验证码代码(ValidateCode.aspx.cs)[csharp] view plaincopyprint?/// ///验证码类型(0-字母数字混合,1-数字,2-字母) /// privatestringvalidateCodeType="0";/// ///验证码字符个数 /// privateintvalidateCodeCount=4;/// ///验... 阅读全文
posted @ 2013-07-22 21:41 youhumian 阅读(430) 评论(0) 推荐(0) 编辑
摘要://流操作 // ------------------------------------------------------------------------------------------ //FileStream 针对字节操作;只能进行读或取操作,不能同时进行读取操作, //readByte 如果没有返回-1,自动将位置定位到下一个字节 //flush 写操做是在关闭流之后完成的,如果想及时的写入,用flush FileStream fs = new FileStream(@"D:\a.txt", FileMode.Open); fs.WriteByte(90) 阅读全文
posted @ 2013-07-12 16:33 youhumian 阅读(252) 评论(0) 推荐(0) 编辑
摘要:输入输出流的继承结构输入输出常用方法:void Close()关闭流void Flush()清理流中的内容int ReadByte()返回一个整数表示输入的字节数,如果没有数据返回 -1int Read(byte[ ] buf,int offset, int numBytes)将numBytes个字节读入到byte[ ]的以offset为,起始位置,返回读入成功的字节数Long Seek(long offset,SeekOrigin origin)将当前位置定位到以origin为初始位置以后的offset处void WriteByte(byte b)将单个字节写入到一个输出流void Writ 阅读全文
posted @ 2013-07-11 20:43 youhumian 阅读(237) 评论(0) 推荐(0) 编辑
摘要:[原创]C#中StreamWriter与BinaryWriter的区别兼谈编码。参考:1. 《C#高级编程》第六版2. 文件流和数据流-C#程序设计教程2010-7-11补充: 发现了一篇讲编码的深入而全面的好文章http://www.cnblogs.com/KevinYang/archive/2010/06/18/1760597.html向文件写入非字符类型数据当向文件中写入非字符类型的数据时,StreamWriter和BinaryWriter存在巨大差异。StreamWriter是把各种类型的数据都转化成字符,然后把字符按照一定的格式编码出来的数据写入文件中。BinaryWriter是直. 阅读全文
posted @ 2013-07-11 20:36 youhumian 阅读(206) 评论(0) 推荐(0) 编辑
摘要:1 代码的健壮性2 代码的扩张性3 代码的安全性4 代码的效率(并发,速度) 阅读全文
posted @ 2013-07-08 21:46 youhumian 阅读(149) 评论(0) 推荐(0) 编辑
摘要:// 由于File.Create方法默认向所有用户授予对新文件的完全读/写访问权限, //所以文件是用读/写访问权限打开的,必须关闭后才能由其他应用程序打开。 //为此,所以需要使用FileStream类的Close方法将所创建的文件关闭。 //File只能被一个流读写,用完需要关闭。 //FileStream和Stream的区别 //FileStream对象表示在磁盘或网络路径上指向文件的流。 //这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。 //这是因为FileStream类操作的是字节和字节数组,而Stream类操作的.. 阅读全文
posted @ 2013-07-07 18:18 youhumian 阅读(303) 评论(0) 推荐(0) 编辑
摘要://字符串 string strTest = "123stre汉字"; //insert 在索引位置前面插入 Console.WriteLine(strTest.Insert(1, "5")); //remove 删除从指定索引开始的指定个数的字符串 Console.WriteLine(strTest.Remove(3, 3)); //replace 当没有匹配时,返回本身字符串 Console.WriteLine(strTest.Replace("1234", "456")); //length 长度:一个汉字按 阅读全文
posted @ 2013-07-06 13:06 youhumian 阅读(204) 评论(0) 推荐(0) 编辑
摘要:"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9] 阅读全文
posted @ 2013-07-06 00:04 youhumian 阅读(134) 评论(0) 推荐(0) 编辑
摘要:.NET开发人员值得关注的七个开源项目2010年07月02日09:33it168网站原创 作者:黄永兵 编译 编辑:胡铭娅我要评论(0) 【IT168技术分析】微软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的依赖正日益增强,本文就为所有.NET开发人员介绍7个应该关注的开源项目,也许其中正有你需要的。 Ajax控件工具包 在Ajax术语诞生的短短五年内,这个混合了JavaScript、XML和异步通信的技术增强了用户的在线体验,带动了Web技术的积极发展,现在随便浏览一个网... 阅读全文
posted @ 2013-07-05 23:51 youhumian 阅读(272) 评论(0) 推荐(0) 编辑
摘要:淘宝技术:1内容发布网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件。而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户, 阅读全文
posted @ 2013-07-05 19:22 youhumian 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-07-05 17:24 youhumian 阅读(130) 评论(0) 推荐(0) 编辑