构建ASP.NET网站十大必备工具(1)

最近使用ASP.NET为公司构建了一个简单的公共网站(该网站的地址:http://superexpert.com/)。在这个过程中,我们使用了数量很多的免费工具,如果把构建ASP.NET网站的必备工具总结一下,将会是一件十分有趣的事情。这些工具既支持ASP.NET Web Forms又支持ASP.NET MVC。

性能工具

读了两本关于网站的前端性能的书(这两本优秀的图书分别是:《High Performance Web Sites》 和 《Even Faster Web Sites》,作者是Steve Souders)以后,我对网站的前端性能十分敏感。根据Steve Souders的性能黄金法则:

“首先应该对前端性能进行优化,终端用户的响应时间有80%或更多花费在这方面了。”你可以使用下面这些工具来减少ASP.NET应用程序使用的图像的尺寸,以及JavaScript文件,CSS文件的体积。

1,Sprite and Image Optimization Framework

在A List Apart的一篇文章中(这篇文章的题目是:CSS sprites: Image Slicing’s Kiss of Death,具体可以参考:http://www.alistapart.com/articles/sprites),首次提到了CSS sprites。当你使用sprites的时候,你需要把一个网站使用的多个图像合并成为一个单一的图像。然后,在一个Web页面中,使用CSS trickery来显示特定的“子图像”。

sprites的主要优势是,显示一个Web页面的时候,它可以有效地减少请求的次数。请求一个大图像比请求多个小图像快得多。一般来说,通过网线传输的资源(图像,JavaScript文件,CSS文件)越多,你的网站就越慢。

但是,大多数人都不愿意使用sprites,因为使用sprites需要做很多的工作。你必须要合并所有的图像,然后编写合适的CSS规则来显示子 图像。微软的 Sprite and Image Optimization Framework 可以让我们省去这些繁琐的工作。这个框架可以自动地为你合并图像。此外,这个框架还包含一个ASP.NET Web Forms control 和一个ASP.NET MVC helper,它们可以让显示子图像变得更加容易。你可以从CodePlex下载 Sprite and Image Optimization Framework。

下载地址:http://aspnet.codeplex.com/releases/view/50869

Sprite and Image Optimization Framework是 Morgan McClean 编写的。在微软,他的办公室和我的办公室紧挨着。Morgan是一个十分聪明的人,他是加拿大的实习生。当他构建这个框架的时候,我们一起讨论了那个框 架。(据我所知,他还在继续开发这个框架。)

Morgan给这个框架添加了一些高级的功能。例如,Sprite and Image Optimization Framework支持“image inlining”。当你使用“image inlining”的时候,真正的图像被存储在CSS文件中。这是一个“image inlining”的例子:

  1. .Home_StephenWalther_small-jpg
  2. {
  3. width:75px;
  4. height:100px;
  5. background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB1lpeAAAAB
  6. GdBTUEAALGOfPtRkwAAACBjSFJNAACHDwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKL
  7. s+zNfREAAAAASUVORK5CYII=) no-repeat 0% 0%;
  8. }

真正的图像(在这个例子中,是一个显示在Superexpert.com网站主页上的图片)被存储在这个CSS文件中。如果你浏览一下 Superexpert.com网站,你会发现几乎没有几个独立的图像可以被下载。在下面这张截图中,所有带红框的图像都是使用CSS sprites的:

不幸的是,使用 Sprite and Image Optimization Framework 的时候,有一些“陷阱”需要注意一下。为了绕开这些“陷阱”,还有一些周边的工作需要做。在我以后的文章中,我会详细讲述这些“陷阱”都是什么,以及如何 绕开这些“陷阱”。

2,Microsoft Ajax Minifier

无论何时,你都应该通过“far future header”来合并,最小化(minify),压缩和缓存所有的JavaScript文件和CSS文件。Microsoft Ajax Minifier可以让最小化JavaScript文件和CSS文件变得更加容易。

请不要把最小化和压缩搞混了。这两个工作你都需要做。根据Souders的观点,在你压缩了一个JavaScript文件以后,你还可以通过最小化来减少20%(平均)的体积。

当你最小化一个JavaScript文件,或者一个CSS文件的时候,你可以使用各种技巧在压缩那个文件以前尽可能地减少那个文件的尺寸。例如,你 可以通过用短的JavaScript变量名替换长的JavaScript变量名的方式,和移除非必需的空白和注释的方式来最小化一个 JavaScript。你可以通过同样的方式来最小化CSS文件,例如,用短的color名(#fff)替换长的color名(#fffff)。

Microsoft Ajax Minifier是微软的员工 Ron Logan 开发的。在内部,几个大型的微软网站都使用了这个工具。在ASP.NET团队中,我们也使用这个工具。我认为Ron可以把这个工具发布到CodePlex 上,让世界上的所有人都可以使用这个优秀的工具。你可以从ASP.NET Ajax站点下载这个工具:

下载地址:http://www.asp.net/ajaxlibrary/Download.ashx

这个工具的文档可以参考:http://www.asp.net/ajaxlibrary/AjaxMinDocumentation.ashx

我为Microsoft Ajax Minifier创建了一个安装程序。当创建那个安装程序的时候,我还创建了一个Visual Studio生成任务,当你在Visual Studio中自动地进行生成的时候,它可以让最小化JavaScript文件和CSS文件变得更加容易。你可以通过《Ajax Minifier Quick Start》来学习如何配制这个生成任务。 (关于《Ajax Minifier Quick Start》,具体可以参考:http://www.asp.net/ajaxlibrary/AjaxMinQuickStart.ashx)

3,ySlow

ySlow这个工具是Yahoo提供的,它是一个免费的Firefox扩展。它可以让你测试你的网站的前端。

ySlow的下载地址:http://developer.yahoo.com/yslow/

这是“Superexpert.com”网站当前的测试结果:

“Superexpert.com”网站的总体得分是“B”(不是很完美,但是也不错了)。ySlow这个工具并不是尽善尽美的。例如,虽然 Superexpert.com网站使用了支JavaScript库(例如:jQuery)的Microsoft Ajax Content Delivery Network(关于Microsoft Ajax Content Delivery Network,具体可以参考:http://www.asp.net/ajaxlibrary/cdn.ashx),但是还是因为没有使用Content Delivery Network而得到了“F”。

时间: 2024-11-10 20:05:30

构建ASP.NET网站十大必备工具(1)的相关文章

构建ASP.NET网站十大必备工具(- 推荐)

最近使用ASP.NET为公司构建了一个简单的公共网站(该网站的地址:http://superexpert.com/).在这个过程中,我们使用了数量很多的免费工具,如果把构建ASP.NET网站的必备工具总结一下,将会是一件十分有趣的事情.这些工具既支持ASP.NET Web Forms又支持ASP.NET MVC. 性能工具 读了两本关于网站的前端性能的书(这两本优秀的图书分别是:<High Performance Web Sites> 和 <Even Faster Web Sites&g

构建ASP.NET网站十大必备工具(2)

正常运行时间 当一个网站发布以后,你肯定希望你的网站不会遇到任何问题,一直处在正常运行状态之中.现在,我使用下面这些工具来监控“Superexpert.com”网站,确保它一直处在正常运行状态之中. 4,ELMAH ELMAH 是 Error Logging Modules and Handlers for ASP.NET 的缩写.ELMAH可以让你记录下你的网站发生的任何一个错误,在将来,你可以重新检查这些错误.你可以从ELMAH项目的官方网站免费下载ELMAH:http://code.goo

SQL Server DBA十大必备工具使生活轻松

[IT168 技术]曾经和一些DBA和数据库开发人员交流时,问他们都用过一些什么样的DB方面的工具,大部分人除了SSMS和Profile之外,基本就没有使用过 其他工具了;诚然,SSMS和Profile足够强大,工作的大部分内容都能通过它们搞定,但是MS.第三方公司甚至是个人开发者为SQLServer提 供了很多其他的工具,如果你能充分的掌握这些工具,无疑会给我们数据库的管理.优化.测试和排错节省大量的时间和精力,下面就来介绍除SSMS和 Profile之外的其他有用的工具. NO1: PD(P

MySQL管理员珍藏:十大必备工具盘点

作者:dongdongzzcs 第1页: [IT168 专稿]本文的作者Daniel Nichter是MySQL工具的开发者,他为MySQL管理员推荐了十款必备工具.以下是全文内容: MySQL是一套需要大量辅助工具加以修复.诊断及优化的复杂系统.幸运的是,对于管理员来说,MySQL的高普及度吸引了大量软件开发商为其打造高品质的各类开源工具,内容涵盖MySQL系统的复杂性均衡.性能表现维持及稳定运行保障,而且其中大部分是免费工具. 下列十款开源工具对于使用MySQL的用户来说是极为宝贵的财富,其

SQLServerDBA十大必备工具---让生活轻松点

国外整理拓展帖:http://weblogs.sqlteam.com/mladenp/archive/2007/11/20/Free-SQL-Server-tools-that-might-make-your-life-a.aspx 曾经和一些DBA和数据库开发人员交流时,问他们都用过一些什么样的DB方面的工具,大部分人除了SSMS和Profile之外,基本就没有使用过其他工具了: 诚然,SSMS和Profile足够强大,工作的大部分内容都能通过它们搞定,但是MS.第三方公司甚至是个人开发者为S

Linux开发环境必备十大开发工具

原文链接Linux是一个优秀的开发环境,但是如果没有好的开发工具作为武器,这个环境给你带来的好处就会大打折扣.幸运的是,有很多好用的Linux和开源开发工具供你选择,如果你是一个新手,你可能不知道有哪些工具可用.本文将介绍其中十个杰出的开源开发工具,它们将帮助你提升自己的开发效率. 1.Bluefish Bluefish是进行Web开发时最受欢迎的IDE之一.它能够处理编程和标记语言,但是该工具的重点用途在于创建动态和交互式网站.和许多 Linux应用程序一样,Bluefish是一个轻量级工具,

黑客十大常用工具

黑客技术一度被认为是一个神秘的特有领域,随着技术的进步和领域环境的进步,它已经成为一种非常普遍的现象.黑客技术可以用于有害目的,也可以用于发现系统中的漏洞,并通知系统属主,帮助他们更好地保护系统. 借助于一些工具及其基本知识,黑客可以更高效地执行安全测试,这对他们的任务有很大帮助.以下介绍黑客十大常用工具. 1. Nmap Nmap(Network Mapper)是一款非常著名的.用来扫描端口和绘制网络的.开源免费的黑客工具,它是一个基于控制台的工具,另外方便使用,还有一个带有GUI的版本Zen

Android开发者不容错过的十大实用工具

谷歌公司发布的Android操作系统无疑极大解放了移动技术的可观潜能.作为一款基于Linux内核的系统,Android属于由谷歌公司负责开发及维护的开源项目.自2007年诞生以来,Android已经陆续推出过多个更新且愈发完善的版本,其中包括"姜饼"乃至"冰淇淋三明治"等等.而就在今年,最新的Android M也将正式与我们见面. Android M当中融入了多项令人瞩目的新功能,能够支持智能手机.平板设备.可穿戴设备.电视甚至是汽车等.Android已经由以往单纯

跟上节奏 大数据时代十大必备IT技能(转)

新的想法诞生新的技术,从而造出许多新词,云计算.大数据.BYOD.社交媒体……在互联网时代,各种新词层出不穷,让人应接不暇.这些新的技术,这些新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能. 新的想法诞生新的技术,从而造出许多新词,云计算.大数据.BYOD.社交媒体.3D打印机.物联网……在互联网时代,各种新词层出不穷,让人应接不暇.这些新的技术,这些新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能.另一方面,云计算和大数据乃至其他助推各个行业发展的