} catch(err) {}

美国虚拟主机导购评论网-妙站网

美国虚拟主机导购评论网

启用IIS6的Gzip压缩功能

  网页Gzip压缩的优势是很明显的,第一减小了服务器的带宽,第二提高用户打开网页速度。iwms内置了Gzip压缩功能,但只对动态页有效。如果你生成了静态文件并服务器是IIS6(windows2003及以上),那么你可以通过下边介绍的内容简单的启用IIS自带的Gzip压缩功能,体验Gzip压缩带给你的种种好处。
  现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。  IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面。所以要打开这个选项,还要费些功夫。  首先,如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。  然后选中网站下面那个服务器扩展,新建一个服务器扩展。名字无所谓,下面的添加文件的路径是:  c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。  还没完呢,我们还需要修改一个配置文件,修改之前请先停止 IIS 服务,打开 C:\Windows\System32\inetsrv\MetaBase.xml,这个文件很大,找到下面一段信息:

Access导入SQL2005方法

  方法一:  在命令提示符窗口中运行 DTSWizard.exe  SQL Server 导入和导出向导提供了生成 Microsoft SQL Server 2005 Integration Services (SSIS) 包最简单的方法。SQL Server 导入和导出向导可以访问各种数据源。可以向下列源复制数据或从其中复制数据:  ·Microsoft SQL Server  ·文本文件  ·Microsoft Office Access  ·Microsoft Office Excel  ·其他 OLE DB 访问接口  此外,可以只使用 ADO.NET 访问接口和 ODBC 数据源作为源。  启动 SQL Server 导入和导出向导  在 Business Intelligence Development Studio 中,右键单击“SSIS 包”文件夹,再单击“SSIS 导入和导出向导”。  - 或 -  在 Business Intelligence Development Studio 中的“项目”菜单上,单击“SSIS 导入和导出向导”。  - 或 -  在 SQL Server Management Studio 中,连接到数据库引擎服务器类型,展开数据库,右键单击一个数据库,指向“任务”,再单击“导入数据”或“导出数据”。  - 或 -  在命令提示符窗口中运行 DTSWizard.exe(位于 C:\Program Files\Microsoft SQL Server\90\DTS\Binn)。  方法二:  执行 sql 查询:  EXEC sp_configure ’show advanced options’, 1;  GO  RECONFIGURE;  GO  EXEC sp_configure ‘Ad Hoc Distributed Queries’, 1;  GO  RECONFIGURE;  GO  INSERT INTO 表名(字段1,字段2,字段3)  SELECT 字段1,字段2,字段3  FROM opendatasource( ‘Microsoft.Jet.OLEDB.4.0′,’Data Source=”d:\Ilovedezai.mdb”;Jet  OLEDB:Database Password=密码’)…表名

26个ASP.NET常用性能优化方法

数据库访问性能优化  数据库的连接和关闭  访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。 ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能。因此,在建立数据库连接后只有在真正需要操作时才打开连接,使用完毕后马上关闭,从而尽量减少数据库连接打开的时间,避免出现超出连接限制的情况。  使用存储过程  存储过程是存储在服务器上的一组预编译的SQL语句,类似于DOS系统中的批处理文件。存储过程具有对数据库立即访问的功能,信息处理极为迅速。使用存储过程可以避免对命令的多次编译,在执行一次后其执行规划就驻留在高速缓存中,以后需要时只需直接调用缓存中的二进制代码即可。另外,存储过程在服务器端运行,独立于ASP.NET程序,便于修改,最重要的是它可以减少数据库操作语句在网络中的传输。  优化查询语句  ASP.NET中ADO连接消耗的资源相当大,SQL语句运行的时间越长,占用系统资源的时间也越长。因此,尽量使用优化过的SQL语句以减少执行时间。比如,不在查询语句中包含子查询语句,充分利用索引等。
字符串操作性能优化  使用值类型的ToString方法  在连接字符串时,经常使用” “号直接将数字添加到字符串中。这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中。但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中。使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能。  运用StringBuilder类  String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法 ToString对性能的提高并非很显著。在处理字符串时,最好使用StringBuilder类,其.NET 命名空间是System.Text。该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过 ToString方法返回操作结果。   其定义及操作语句如下所示:
int num;System.Text.StringBuilder str = new System.Text.StringBuilder()//创建字符串str.Append(num.ToString())//添加数值numResponse.Write(str.ToString)//显示操作结果
优化 Web 服务器计算机和特定应用程序的配置文件以符合您的特定需要  默认情况下,ASP.NET 配置被设置成启用最广泛的功能并尽量适应最常见的方案。因此,应用程序开发人员可以根据应用程序所使用的功能,优化和更改其中的某些配置,以提高应用程序的性能。下面的列表是您应该考虑的一些选项。  仅对需要的应用程序启用身份验证。  默认情况下,身份验证模式为 Windows,或集成 NTLM。大多数情况下,对于需要身份验证的应用程序,最好在 Machine.config 文件中禁用身份验证,并在 Web.config 文件中启用身份验证。根据适当的请求和响应编码设置来配置应用程序。ASP.NET 默认编码格式为 UTF-8。如果您的应用程序为严格的 ASCII,请配置应用程序使用 ASCII 以获得稍许的性能提高。  考虑对应用程序禁用 AutoEventWireup。  在 Machine.config 文件中将 AutoEventWireup 属性设置为 false,意味着页面不将方法名与事件进行匹配和将两者挂钩(例如 Page_Load)。如果页面开发人员要使用这些事件,需要在基类中重写这些方法(例如,需要为页面加载事件重写 Page.OnLoad,而不是使用 Page_Load 方法)。如果禁用 AutoEventWireup,页面将通过将事件连接留给页面作者而不是自动执行它,获得稍许的性能提升。  从请求处理管线中移除不用的模块。  默认情况下,服务器计算机的 Machine.config 文件中节点的所有功能均保留为激活。根据应用程序所使用的功能,您可以从请求管线中移除不用的模块以获得稍许的性能提升。检查每个模块及其功能,并按您的需要自定义它。例如,如果您在应用程序中不使用会话状态和输出缓存,则可以从列表中移除它们,以便请求在不执行其他有意义的处理时,不必执行每个模块的进入和离开代码。
一定要禁用调试模式  在部署生产应用程序或进行任何性能测量之前,始终记住禁用调试模式。如果启用了调试模式,应用程序的性能可能受到非常大的影响。
对于广泛依赖外部资源的应用程序,请考虑在多处理器计算机上启用网络园艺  ASP.NET 进程模型帮助启用多处理器计算机上的可缩放性,将工作分发给多个进程(每个CPU一个),并且每个进程都将处理器关系设置为其 CPU。此技术称为网络园艺。如果应用程序使用较慢的数据库服务器或调用具有外部依赖项的 COM 对象(这里只是提及两种可能性),则为您的应用程序启用网络园艺是有益的。但是,在决定启用网络园艺之前,您应该测试应用程序在网络园中的执行情况。
只要可能,就缓存数据和页输出  ASP.NET 提供了一些简单的机制,它们会在不需要为每个页请求动态计算页输出或数据时缓存这些页输出或数据。另外,通过设计要进行缓存的页和数据请求(特别是在站点中预期将有较大通讯量的区域),可以优化这些页的性能。与 .NET Framework 的任何 Web 窗体功能相比,适当地使用缓存可以更好的提高站点的性能,有时这种提高是超数量级的。使用 ASP.NET 缓存机制有两点需要注意。首先,不要缓存太多项。缓存每个项均有开销,特别是在内存使用方面。不要缓存容易重新计算和很少使用的项。其次,给缓存的项分配的有效期不要太短。很快到期的项会导致缓存中不必要的周转,并且经常导致更多的代码清除和垃圾回收工作。若关心此问题,请监视与 ASP.NET Applications 性能对象关联的 Cache Total Turnover Rate 性能计数器。高周转率可能说明存在问题,特别是当项在到期前被移除时。这也称作内存压力。
选择适合页面或应用程序的数据查看机制  根据您选择在 Web 窗体页显示数据的方式,在便利和性能之间常常存在着重要的权衡。例如,DataGrid Web 服务器控件可能是一种显示数据的方便快捷的方法,但就性能而言它的开销常常是最大的。在某些简单的情况下,您通过生成适当的 HTML 自己呈现数据可能很有效,但是自定义和浏览器定向会很快抵销所获得的额外功效。Repeater Web 服务器控件是便利和性能的折衷。它高效、可自定义且可编程。
将 SqlDataReader 类用于快速只进数据游标  SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法。如果当创建 ASP.NET 应用程序时出现允许您使用它的情况,则 SqlDataReader 类提供比 DataSet 类更高的性能。情况之所以这样,是因为 SqlDataReader 使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据。另外,SqlDataReader 类实现 IEnumerable 接口,该接口也允许您将数据绑定到服务器控件。有关更多信息,请参见 SqlDataReader 类。有关 ASP.NET 如何访问数据的信息,请参见通过 ASP.NET 访问数据。
将 SQL Server 存储过程用于数据访问  在 .NET Framework 提供的所有数据访问方法中,基于 SQL Server 的数据访问是生成高性能、可缩放 Web 应用程序的推荐选择。使用托管 SQL Server 提供程序时,可通过使用编译的存储过程而不是特殊查询获得额外的性能提高。
避免单线程单元 (STA) COM 组件  默认情况下,ASP.NET 不允许任何 STA COM 组件在页面内运行。若要运行它们,必须在 .aspx 文件内将 ASPCompat=true 属性包含在 @ Page 指令中。这样就将执行用的线程池切换到 STA 线程池,而且使 HttpContext 和其他内置对象可用于 COM 对象。前者也是一种性能优化,因为它避免了将多线程单元 (MTA) 封送到 STA 线程的任何调用。使用 STA COM 组件可能大大损害性能,应尽量避免。若必须使用 STA COM 组件,如在任何 interop 方案中,则应在执行期间进行大量调用并在每次调用期间发送尽可能多的信息。另外,小心不要在构造页面期间创建任何 STA COM 组件。例如下面的代码中,在页面构造时将实例化由某个线程创建的 MySTAComponent,而该线程并不是将运行页面的 STA 线程。这可能对性能有不利影响,因为要构造页面就必须完成 MTA 和 STA 线程之间的封送处理。

tinyMCE使用详解

初始化在初始化TinyMCE的时候,需要把以下代码加入到页面的HEAD标签中。按以下例子中的设置,所有的TEXTAREA文本域在页面加载时将被转换成编辑器。另外还有其他模块,我们将在后面详细讲述。

js剪贴板操作大全

  下边的剪贴板操作不适用于firefox,但提供了大多数用途下的剪贴板操作方法,很有参考价值。

解密CSS Sprites:技巧、工具和教程_什么是CSS Sprites

译者:oncodingCSS Sprites并没有一个确定的中文翻译,通常被意译为“CSS图像拼合”或“CSS贴图定位”。CSS Sprites并不是一门新技术,目前它已经在网页开发中发展得较为成熟。CSS Sprites并不是什么金科玉律,但在很多情况下,它有着一定的优势,最重要的是它可以减轻服务器的负载,提高网页加载速度。本文系统的介绍了CSS Sprites的概念、用途和用法,相信本文会解决你在使用CSS Sprites中遇到的大部分问题。什么是CSS Sprites?“Sprite”(精
灵)这个词在计算机图形学中有它独特的定义,由于游戏、视频等画质越来越高,必须有一种技术可以智能的处理材质和贴图,并且要
同时保持画面流畅。“Sprite”就是这样一种技术,它将许多图片组合到一个网格上,然后通过程序将每个网格的内容定位到画面上。Sprite被定位到一副静态图片上,并且通过简单的程序或硬件即可正确定位到画面上,一幅幅图片就像是被“变”出来的,他们并没有单独占用内存,所以被取名为“Sprite精灵”。;上图是口袋妖怪的组合图片,可以点这里欣赏更多。时间进行到2000年,Web设计向着精致、巧妙的方向发展。设计师们开始考虑使用非Javascript的方 式制作鼠标滑过、悬停菜单的效果,这时CSS Sprite应运而生,它基于同上文提到的游戏Sprite同样的原理,并且使用CSS更容易控制,很快的流行开来。2004年,Dave Shea 提出了一种使用CSS控制组合图片的方案 ,将许过小的图片组合在一起,使用css定义背景属性,来控制图片的显示位置和方式。当页面加载时,不是加载每个但以图片,而是一次加载整个组合图片。这是一个了不起的改进,它大大减少了HTTP请求的次数,减轻服务器压力,同时缩短了悬停加载图片所需要的时间延迟,使效果更流畅,不会停顿。

123456下一页var pager=new iwmsPager(1,6,true);

【内容导航】

第1页:什么是CSS Sprites

第2页:CSS Sprites用在哪里

第3页:关于CSS Sprites的文章

第4页:利用CSS Sprites制作图像映射

第5页:CSS Sprites技术

第6页:CSS Sprite 制作工具

在.NET环境中使用单元测试工具NUnit

  简介  编写单元测试是一种验证行为,更是一种设计行为。同样,它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环,尤其是功能验证方面的反馈循环。  虽然由程序开发人员自己写Unit Tests(单元测试)来测试自己写的程序代码已经行之有年,但是大部分的Unit Tests都是写在主要的程序代码已经设计好、写好之后。大部分的程序开发人员都有相同的的经验,在主要程序代码写好之后再来加入Unit Test是一项困难的工作,而且在时间的压力之下Unit Test通常是第一个被跳过的步骤.本篇文章介绍的是一个.NET平台的单元测试工具NUnit。  什么是Unit Tests(单元测试)?  在程序设计过程中会有许多种测试,单元只是其中的一种,单元测试并不能保证程序是完美无缺的,但是在所有的测试中,单元测试是第一个环节,也是最重要的一个环节。单元测试是一种由程序员自行测试的工作。简单点说,单元测试就是测试代码撰写者依据其所设想的方式执行是否产生了预期的结果。关于单元测试的重要性已经有许多文章做了很多深入的分析,这里就不再赘述。NUnit是一个为Net准备的自动化单元测试框架,它的作用就是帮助你方便的完成单元测试工作,同鼎鼎有名的JUnit一样,都是xUnit家族的成员。它的下载地址是:http://www.nunit.org/。  NUnit Framework(NUnit 单元测试框架)简介  本文所讨论的NUnit 2.1是一个与它的先祖们(其它的Framework)非常不一样的版本。其它的xUnit家族版本通常都有一个base class(基础类),你要写的test classes(测试用例)都得inherit(继承)自这个base class。除此之外,别无他法能够让你写Unit Tests。不幸的是,这对很多的程序语言来说就造成很大的限制。比如说,Java及C#就只能允许single inheritance(单一继承)。也就是说,如果你想要refactor(重构)你的Unit Tests程序代码的话,你会遇到一些的限制;除非你引进一些复杂的inheritance hierarchies(类别继承层级)。有了.NET之后一切又不同了,.NET引进了一个新的程序开发的概念 ─ Attributes(属性),解决了这个烦人的问题。Attributes让你可以在你的程序代码之上再加入metadata(元数据,描述程序代码的资料)。一般来说Attributes不会影响到主要程序代码的执行,其功能是在你所写程序代码之上添加了额外的信息。Attributes主要使用在 documenting your code(注释你的程序代码),但是Attributes也可以用来提供有关Assembly的额外信息,其它的程序就算没有见过这个Assembly,也可以使用这些信息。这基本上就是NUnit 2.1所作的事。在NUnit 2.1里面,有一个Test Runner Application(负责执行Unit Tests的程序),这个Test Runner会扫描你已经compile(编译)好的程序代码,并且从Attribute里面知道哪些classes是test classes,哪些methods是需要执行的test methods. 然后,Test Runner使用.NET的Reflection技术(在.NET Framework中提供了System.Reflection命名空间,这样就使得我们可以方便的获得.NET组件的信息。当你想获得正在使用的组件的详细信息,或者在运行期间查询一个组件信息的时候,这个功能将变的十分有用)来执行这些test methods。因为这个原因,你就不再需要让你的test classes继承自所谓的common base class。你唯一需要作的事,就是使用正确的Attribute来描述你的test classes及test methods。NUnit提供了许多不同的attributes,让你可以自由的写你想要的unit tests。这些attributes可以用来定义test fixtures(见下一段解释)、test methods,以及setup及teardown的methods(预备及善后工作的methods)。除此之外,还有其它的attributes可以来设定预期发生的exceptions,或者要求Test Runner跳过某些test method不执行。  TestFixture Attribute简介  TestFixture attribute主要是用在class上,其作用是标志该class含有需要执行的test methods。当你在一个class的定义里加上这个attribute,Test Runner就会检查该class,看看这个class是否含有test methods。底下这段程序代码示范了如何使用TestFixture Attribute。(本文中所有程序代码都是用C#写成,但是你应该知道,NUnit也是用于其它的.NET程序语言,包括VB.NET。请参见NUnit的相关文件。  namespace UnitTestingExamples  {  using System;  using NUnit.Framework;  [TestFixture]  public class SomeTests  {  }  }  使用TextFixture Attribute的class需要符合另一项唯一附加的限制,就是需要有一个public的default constructor(或者是没有定义任何的constructor,这其实是相同的意思)。  TestFixtureSetUp 和TestFixtureTearDown简介  这两个主要用在TestFixture里面,其作用是提供一组函数执行任何测试运行之前(TestFixtureSetUP)和最后一个测试执行后(TestFixtureTearDown)。每一个TestFixture只能有一个TestFixtureSetUp方法和 TestFixtureTearDown方法。如果一个以上的TestFixtureSetUp和TestFixtureTearDown方法,可以通过编译但是不会执行。注意一个TestFixture可以拥有一个TestFixtureSetUp和一个SetUp,也可以拥有一个 TestFixtureTearDown和一个TearDown方法。  TestFixtureSetUp 和 TestFixtureTearDown 被用在不方便使用SetUp和TearDown方法。  一般情况使用 SetUp 和TearDown attributes。  底下这段程序代码示范了如何使用TestFixtureSetUp/TestFixtureTearDown  namespace UnitTestingExamples  {  using System;  using NUnit.Framework;  [TestFixture]  public class SomeTests  {  [TestFixtureSetUp]  public void RunBeforeAllTests()  {   Console.WriteLine( “TestFixtureSetUp” );  }  [TestFixtureTearDown]  public void RunAfterAllTests()  {   Console.WriteLine( “TestFixtureTearDown” );  }  [SetUp]  public void RunBeforeEachTest()  {   Console.WriteLine( “SetUp” );  }  [TearDown]  public void RunAfterEachTest()  {   Console.WriteLine( “TearDown” );  }  [Test]  public void Test1()  {   Console.WriteLine( “Test1” );  }  }  }  程序的输出将是下面的结果::  TestFixtureSetUp  SetUp  Test1  TearDown  SetUp  Test2  TearDown  TestFixtureTearDown  如果Test2单独执行输出的结果将是:  TestFixtureSetUp  SetUp  Test2  TearDown  TestFixtureTearDown  Test Attribute简介  Test attribute主要用来标示在text fixture中的method,表示这个method需要被Test Runner application所执行。有Test attribute的method必须是public的,并且必须return void,也没有任何传入的参数。如果没有符合这些规定,在Test Runner GUI之中是不会列出这个method的,而且在执行Unit Test的时候也不会执行这个method。上面的程序代码示范了使用这个attribute的方法。  SetUp 和 Teardown Attributes简介  在写Unit Tests的时候,有时你会需要在执行每一个test method之前(或之后)先作一些预备或善后工作。当然,你可以写一个private的method,然后在每一个test method的一开头或最末端呼叫这个特别的method。或者,你可以使用我们要介绍的SetUp及Teardown Attributes来达到相同的目的。如同这两个Attributes的名字的意思,有Setup Attribute的method会在该TextFixture中的每一个test method被执行之前先被Test Runner所执行,而有Teardown Attribute的method则会在每一个test method被执行之后被Test Runner所执行。一般来说,Setup Attribute及Teardown Attribute被用来预备一些必须的objects(对象),例如database connection、等等。上面的程序代码示范了使用这个attribute的方法。  ExpectedException Attributes简介  有的时候,你希望你的程序在某些特殊的条件下会产生一些特定的exception。要用Unit Test来测试程序是否如预期的产生exception,你可以用一个try..catch的程序区段来catch(捕捉)这个exception,然后再设一个boolean的值来证明exception的确发生了。这个方法固然可行,但是太花费功夫。事实上,你应该使用这个 ExpectedException attribute来标示某个method应该产生哪一个exception,如同下面的范例所示:  namespace UnitTestingExamples  {  using System;  using NUnit.Framework;  [TestFixture]  public class SomeTests  {  [Test]  [ExpectedException(typeof(InvalidOperationException))]  public void Test1()  {  // Do something that throws an InvalidOperationException  }  }  }  如果上面的程序被执行的时候,如果一旦exception发生,而且这个exception的type(类型信息)是 InvalidOperationException 的话,这个test就会顺利通过验证。如果你预期你的程序代码会产生多个exception的话,你也可以一次使用多个 ExpectedException attribute。但是,一个test method应该只测试一件事情,一次测试多个功能是不好的做法,你应该尽量避免之。另外,这个attributes并不会检查inheirtance的关系,也就是说,如果你的程序代码产生的exception是继承自InvalidOperationException 的subclass(子类化)的话,这个test执行的时候将不会通过验证。简而言之,当你使用这个attribute的时候,你要明确的指明所预期的 exception是哪个type(类型信息)的。  Ignore Attributes简介  这个attribute你大概不会经常用的,但是一旦需要的时候,这个attribute是很方便使用的。你可以使用这个attribute来标示某个test method,叫Test Runner在执行的时候,略过这个method不要执行。使用这个Ignore attribute的方法如下:  namespace UnitTestingExamples  {  using System;  using NUnit.Framework;  [TestFixture]  public class SomeTests  {  [Test]  [Ignore("We're skipping this one for now.")]  public void TestOne()  {  // Do something…  }  }  }  如果你想要暂时性的comment out一个test method的话,你应该考虑使用这个attribute。这个attribute让你保留你的test method,在Test Runner的执行结果里面,也会提醒你这个被略过的test method的存在。  NUnit Assert Class简介  除了以上所提到的这些用来标示测试程序所在的attributes之外,NUnit还有一个重要的class你应该要知道如何使用。这个class就是Assert class。Assert class提供了一系列的static methods,让你可以用来验证主要程序的结果与你所预期的是否一样。Assert class代替了旧的Assertion class,下面是这个类的方法:  Assert.IsTrue( bool );  Assert.IsFalse( bool );  Assert.IsNull( bool );  Assert.IsNotNull( bool );  Assert.AreSame( object, object )  Assert.AreEqual( object, object );  Assert.AreEqual( int, int );  Assert.AreEqual( float, float, float );  Assert.AreEqual( double, double, double );  Assert.Fail();  使用这个类的示例如下:  namespace UnitTestingExamples  {  using System;  using NUnit.Framework;  [TestFixture]  public class SomeTests  {  [Test]  public void TestEventLengthString()  {  // Should return true  bool bResult1 = Class1.CheckPalindrome(”ABCCBA”);  Assert.IsTrue(bResult1);  // Should return false  bool bResult2 = Class1.CheckPalindrome(”ABCDBA”);  Assert.IsFalse(bResult2);  }  [Test]  public void TestOddLengthString()  {  //should return true;  Assert.IsTrue(Class1.CheckPalindrome(”ABCDCBA”));  // Should return false  Assert.IsFalse(Class1.CheckPalindrome(”ABCDEBA”));  }  }  }  执行你的Tests  好,现在我们已经讨论过写Unit Tests的基本步骤及方法,现在让我们来看看如何执行你所写的Unit Tests。事实上非常简单。NUnit里面有两个已经写好的Test Runner applications:一个是窗口GUI程序,一个是console XML(命令列)程序。你可以自由选择你所喜欢的方式,基本上是没有什么差别的。  如果你要使用窗口GUI的Test Runner app,你只需要执行该程序,然后告诉它你要执行的test method所在的assembly位置。这个包含有你所写test methods的assembly是那一个class library(或是executable,*.dll或*.exe) assembly,其中含有前面谈到的Test Fixtures。当你告诉Test Runner你的assembly所在的位置,Test Runner会自动load这个asembly,然后把所有的class及test methods都列在窗口的左栏。当你按下’Run’按键时,你就会自动执行所有列出来的test methods。你也可以double click其中的一个test class,或是一个test method之上,这样会自动只执行该class或是该method。  底下是窗口GUI Test Runner执行时的样子:  在一些的情况下,特别是你想要在你自己写的build script中加入Unit Testing的情况下,你大概不会使用GUI Test Runner。在这个自动执行build script的情况下,你一般会把你build的结果贴在网页,或写入log file里面存作纪录,以供程序开发人员、经理或是客户可以藉由检查这个纪录知道详细情况。在这个情况,你可以用NUnit 2.1的console Test Runner application。这个Test Runner可以传入assembly的位置当参数,其测试执行结果是一个XML字符串。你可以用XSLT或是CSS把这个XML结果转换成HTML,或是其它你想要的格式。如果你需要用到这个功能的话,请查看NUnit文件中有关console Test Runner application的资料。

请问如何把一个站的数据导入IWMS5.0站里?


怎么样修改首页幻灯右下角数字的位置


添加新闻非常慢且导致服务器死机是为什么