9月21
        尽早缓存;经常缓存 您应该在应用程序的每一层都实现缓存。向数据层、业务逻辑层、UI 或输出层添加缓存支持。内存现在非常便宜 — 因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高。 缓存可以掩盖许多过失  缓存是一种无需大量时间和分析就可以获得“足够良好的”性能的方法。这里再次强调,内存现在非常便宜,因此,如果您能通过将输出缓存 30 秒,而不是花上一整天甚至一周的时间尝试优化代码或数据库就可以获得所需的性能,您肯定会选择缓存解决方案(假设可以接受 30 秒的旧数据)。缓存正是那些利用 20% 付出获得 80% 回报的特性之一,因此,要提高性能,应该首先想到缓存。不过,如果设计很糟糕,最终却有可能带来不良的后果,因此,您当然也应该尽量正确地设计应用程序。但如果您只是需要立即获得足够高的性能,缓存就是您的最佳选择,您可以在以后有时间的时候再尽快重新设计应用程序。 页面级输出缓存 作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的 HTML 的副本。其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高(取决于需要多少开销来创建原始页面输出 - 发送缓存的输出总是很快,并且比较稳定)。 实现 要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可。

<%@ OutputCache Duration="60" VaryByParam="*" %>

如同其他页面指令一样,该指令应该出现在 ASPX 页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。  Duration 必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。  Location 指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server 或 ServerAndClient。  VaryByParam 必需属性。Request 中变量的名称,这些变量名应该产生单独的缓存条目。"none" 表示没有变动。"*" 可用于为每个不同的变量数组创建新的缓存条目。变量之间用 ";" 进行分隔。 VaryByHeader 基于指定的标头中的变动改变缓存条目。
9月21

css中指定table的tr边框

15:56前端开发  From: 本站原创
你可能发现在css中指定的tr边框不起作用,而如果指定td的边框又会有间断的现象出现。这种情况下可以参照下面的代码:

对于某些浏览器,在设定了border-collapse为collapse之后也可以直接指定tr的边框。
Tags: , ,
9月21

Grasshopper 2.5

15:52资源共享  From: 本站原创
Mainsoft Grasshopper 2.5是一个可以把.NET代码动态翻译成Java代码的Visual Studio 2008 plugin。这个版本提供了对ASP.NET以及AJAX的全面支持。它也支持C# 3.0和Visual Basic 9的一些新语言特性,比如局部类型推理,匿名类型,对象和集合初始化器之类81

Grasshopper可以从dev.mainsoft.com免费下载。Mainsoft也提供VS插件的商业版本。
9月21
使用客户端数字证书和基本身份验证(Basic),域服务器的摘要式身份验证、集成 Windows 身份认证或自定义的 Form 认证等方式相比,虽然部署和管理方面稍微复杂一些,但安全性也更好一些,应用上也较为灵活。

在 ASP 和 ASP.NET 中处理和识别客户端数字证书是非常容易的,代码如下:

ASP (VBScript)语法:


ASP.NET(C#) 语法:
9月21
      有时候,我们不希望用户直接编辑TextBox,而是希望通过客户端脚本的方式来设置内容,一般的做法是设置TextBox的属性ReadOnly 为true。但在ASP.NET 2.0里有了变化,设置了ReadOnly为true的TextBox,在服务器端不能通过Text属性获取在客户端设置的新内容,在Reflector 里比较一下LoadPostData的实现

.NET 1.1中:

Tags: , ,
9月21
下面来谈下如何应用设计模式编写易于单元测试的代码
引言

设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述,通过在系统设计中引入合适的设计模式可以为系统实现提供更大的灵活性,从而有效地控制变化,更好地应对需求变更或者按需变更系统运行路径等问题。

单元测试是软件开发的一个重要组成部分,是与编码实现同步进行的开发活动,这一点已成为软件开发者的共识。适度的单元测试不但不会影响开发进度,反而可以为开发过程提供很好的控制,为软件质量、系统重构等提供有力的保障,并且,当后续系统需求发生变更、Bug Fix 或功能扩展时,能很好地保证已有实现不会遭到破坏,从而使得程序更易于维护和修改。 Martin Fowler、Kent Beck、Robert Martin 等软件设计领域泰斗更是极力倡导测试先行的测试驱动开发(Test Driven Development,TDD)的开发方式。

单元测试主要用于测试细粒度的程序单元,如类的某个复杂方法的正确性,也可以根据需要综合测试某个操作所涉及的多个相互联系的类的正确性。在很多情况下,相互联系的多个类中有些类比较简单,为这些简单类单独编写单元测试用例往往不如将它们与使用它们的类一起进行测试有意义。

模拟对象(Mock Objects)是为模拟被测试单元所使用的外围对象、设备(后文统一简称为外部对象)而设计的一种特殊对象,它们具有与外部对象相同的接口,但实现往往比较简单,可以根据测试的场景进行定制。由于单元测试不是系统测试,方便、快速地被执行是单元测试的一个基本要求,直接使用外部对象往往需要经过复杂的系统配置,并且容易出现与欲测试功能无关的问题;对于一些异常的场景,直接使用外部对象可能难以构造,而通过设计合适的 Mock Objects,则可以方便地模拟需要的场景,从而为单元测试的顺利执行提供有效的支持。

本文根据笔者经验,介绍了几种典型的设计模式在系统设计中的应用,及由此为编写单元测试带来的方便。
9月21

详解C#中的委托和事件

15:19编程杂谈  From: 本站原创
引言

委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。

将方法作为方法的参数

我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候的话语:


暂且不管这两个方法有没有什么实际意义。GreetPeople用于向某人问好,当我们传递代表某人姓名的name参数,比如说“heck”,进去的时候,在这个方法中,将调用EnglishGreeting方法,再次传递name参数,EnglishGreeting则用于向屏幕输出 “Morning, heck”。

现在假设这个程序需要进行全球化,哎呀,不好了,我是中国人,我不明白“Morning”是什么意思,怎么办呢?好吧,我们再加个中文版的问候方法:
Tags: ,
9月21

在Linux上安装mod_security

14:58电脑技术  From: 本站原创
       在使用apache的httpd服务器时,安全是你不得不考虑的一个问题。mod_security是为apache httpd服务器(1.x和2.x)设计的一个安全模块,mod_security可以阻止多种形式的攻击,比如SQL注入,跨站点脚本等等。这篇文章说明了如何在各种Linux上安装mod_security:

RHEL / CentOS

在CentOS / RHEL上安装mod_security,最简单的办法就是使用yum进行自动更新。首先需要新建一个更新的yum repository:

vi /etc/yum.repos.d/utterramblings.repo

在这个文件中加入以下内容:

9月21
        下面来介绍下这几本关于设模式的书。81
       《设计模式:可复用面向对象软件的基础》:这不是本简单的工具书,甚至可以说是有点学术著作的感觉。语言凝练,抽象深刻,很耐读(想一次读懂,可能吗?17  高手可能,我们凡人就...)。对于设计模式不是有一定程度经验的,就不要从这本书开始入门了~_~。

        《设计模式解析》:对设计模式做了一定的推理演示,有一定深度的。这本书,浏览过几次,总觉得不是一个适合入门的书,不知道网上有些书评为什么将其推荐为“最实用的设计模式入门书”。作者想谈的还不只是设计模式这么简单,两个作者甚至还在倡导一种基于模式的分析和设计的方法论。一句话,对学习设计模式新人可以看看本书,但是想理解作者说的很多东西,可能要等一段时间~_~  中文版就不要读了,翻译的有点怪怪的~_~  书中谈到的模式是最经常使用的模式。

        《Java与模式》:没有完整看过,倒是经常翻翻,总体是本工具书,适合入门,也适合有一定经验的。虽然书的头几章谈了一些有关OO原则的东西,但是还是把它归类为工具书。 为什么推荐入门看,一是书中的话不是很抽象(前几章除外),适合入门理解,再者书中的例子和UML图,相信也更适合与入门的人,而且也比较实用。说明:绝对不是把本书归类为入门级别的书,毕竟是中国哥们搞出来的,顶一下~_~

         《Head First Design Patterns》:真正适合入门的书,也非常实用。没有完整看过,闲着的时候翻翻电子版的,真的感觉很好,而且不没有觉得是本单纯的工具书。书中谈到的模式是最经常使用的模式。


9月21

yum和apt常用命令列表

14:41电脑技术  From: 本站原创
APT 常用指令如下:

apt-get update
更新软件包列表

apt-get dist-upgrade
升级 rpm

apt-cache search
搜索软件包,ex: apt-cache search httpd

apt-get install
安裝软件包,这里的软件包安裝,会考虑到依赖性的问题 ex: apt-get install httpd

apt-get remove
移除软件包,这里的软件包移除,也会考虑到依赖性的问题 ex: apt-get remove httpd

apt-get clean
清除安裝時下载的暂存软件包原始档案,位於 /var/cache/apt/archives

Tags: , , , , ,
分页: 5/16 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]