最近使用公司构建了一个简单的公共网站。在这个过程中,我们使用了数量很多的免费工具,如果把构建ASP.NET网站的必备工具总结一下,将会是一件十分有趣的事情。这些工具既支持ASP.NET Web Forms又支持ASP.NET MVC。
“首先应该对前端性能进行优化,终端用户的响应时间有80%或更多花费在这方面了。”你可以使用下面这些工具来减少ASP.NET应用程序使用的图像的尺寸,以及JavaScript文件,CSS文件的体积。
在A List Apart的一篇文章中(这篇文章的题目是:CSS sprites: Image Slicings Kiss of Death,具体可以参考:),首次提到了CSS sprites。当你使用sprites的时候,你需要把一个网站使用的多个图像合并成为一个单一的图像。然后,在一个Web页面中,使用CSS trickery来显示特定的“子图像”。
sprites的主要优势是,显示一个Web页面的时候,它可以有效地减少请求的次数。请求一个大图像比请求多个小图像快得多。一般来说,通过网线传输的资源(图像,JavaScript文件,CSS文件)越多,你的网站就越慢。
Sprite and Image Optimization Framework是 Morgan McClean 编写的。在微软,他的办公室和我的办公室紧挨着。Morgan是一个十分聪明的人,他是的实习生。当他构建这个框架的时候,我们一起讨论了那个框架。(据我所知,他还在继续开发这个框架。)
真正的图像(在这个例子中,是一个显示在站主页上的图片)被存储在这个CSS文件中。如果你浏览一下网站,你会发现几乎没有几个的图像可以被下载。在下面这张截图中,所有带红框的图像都是使用CSS sprites的:
不幸的是,使用 Sprite and Image Optimization Framework 的时候,有一些“陷阱”需要注意一下。为了绕开这些“陷阱”,还有一些周边的工作需要做。在我以后的文章中,我会详细讲述这些“陷阱”都是什么,以及如何绕开这些“陷阱”。
请不要把最小化和压缩搞混了。这两个工作你都需要做。根据Souders的观点,在你压缩了一个JavaScript文件以后,你还可以通过最小化来减少20%(平均)的体积。
当你最小化一个JavaScript文件,或者一个CSS文件的时候,你可以使用各种技巧在压缩那个文件以前尽可能地减少那个文件的尺寸。例如,你可以通过用短的JavaScript变量名替换长的JavaScript变量名的方式,和移除非必需的空白和注释的方式来最小化一个JavaScript。你可以通过同样的方式来最小化CSS文件,例如,用短的color名(#fff)替换长的color名(#fffff)。
Microsoft Ajax Minifier是微软的员工 Ron Logan 开发的。在内部,几个大型的微软网站都使用了这个工具。在队中,我们也使用这个工具。我认为Ron可以把这个工具发布到CodePlex上,让世界上的所有人都可以使用这个优秀的工具。你可以从ASP.NET Ajax站点下载这个工具:
ySlow这个工具是Yahoo提供的,它是一个免费的Firefox扩展。它可以让你测试你的网站的前端。
当一个网站发布以后,你肯定希望你的网站不会遇到任何问题,一直处在正常运行状态之中。现在,我使用下面这些工具来“Superexpert.com”网站,确保它一直处在正常运行状态之中。
ELMAH 是的缩写。ELMAH可以让你记录下你的网站发生的任何一个错误,在将来,你可以重新检查这些错误。你可以从ELMAH项目的网站免费下载ELMAH:。
ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET MVC。你可以对ELMAH进行配置来存储各种不同的错误(XML文件,事件日志,Access数据库,SQL数据库,Oracle数据库,或者计算机RAM。)你还可以让ELMAH在错误发生的时候,把错误信息email给你。
在默认情况下,在一个已经安装ELMAH的网站中,你可以通过请求的elmah.axd页面的方式来访问ELMAH。这是“Superexpert.com”网站的elmah页面的外观(这个页面是密码的,因为在一个错误信息中,可能会泄露出一些应该保密的信息。)
如果你点击某个错误信息,你可以看到原始的黄屏错误信息(虽然这个错误信息永远不会显示给真正的用户)。
我使用Pingdom来验证站是否总是处在正常运行状态之中。你可以通过浏览“”的方式来注册Pingdom。你可以使用Pingdom来免费一个网站。
在Pingdom网站上,你可以配置ping你的网站的频率。我每5分钟验证一次Superexpert.com 网站是否总是处在正常运行状态之中。我使用Pingdom服务来验证它是否可以从那个网站的主页上检索到字符串“Contact Us”。
如果你的网站宕机了,你需要一些方式来判断这是本地网络的问题,还是对每个人来说,你的网站都宕机了。我使用一个叫做“的网站来检查一个网站宕机的程度。
我这里提到的“调试”的意义十分广泛。当构建一个网站的时候,我使用下面这些工具来验证我并没有犯错误。
为什么Visual Studio没有内置一个拼写检查器?不知道我觉得这有点不可思议。但是,幸运的是,队的前编写了一个免费的拼写检查器,你可以在ASP.NET页面上使用这个拼写检查器。
我发现一个拼写检查器是必不可少的。认为你自己的拼写能力绝对是完美的,只是而已。当我真正地运行拼写检查工具,发现我的所有拼写错误的时候,我恨不得找个地缝钻进去。
如果人们无法通过Google找到你的网站,那么还不如不构建这个网站。微软提供了一个优秀的IIS扩展,叫做“IIS Search Engine Optimization Toolkit ”(关于IIS Search Engine Optimization Toolkit 具体可以参考:),你可以使用它来检测出可能会影响页面排名的问题。你也可以使用它快速地为你的网站创建一个sitemap,你可以把这个sitemap提交给Google或Bing。你甚至可以为一个MVC网站生成一个sitemap。
注意:“网站存在很多的问题。例如,有65个页面的超链接已经失效了。你可以进一步查看这些问题的详细信息,找出这些问题发生的地点和具体的页面。
如果你的站需要访问一个数据库,那么你应该使用LINQ to Entities这个实体框架。使用LINQ,会把一些用C#编写的神奇的查询转换成SQL查询。如果你在编写LINQ查询的时候不小心谨慎一些的话,你很可能会在无意之间构建出一个性能十分糟糕的网站。
你可以使用LinqPad来执行一个LINQ to Entities查询,然后看看结果。你也可以使用它来查看对那个数据库执行的SQL语句:
我每天都使用.NET Reflector。.NET Reflector这个工具可以让你把一个程序集反汇编成C#或VB.NET代码。当你没有真正的源代码的时候,你可以使用.NET Reflector来查看一个程序集的“源代码”。你可以从Redgate的网站下载.NET Reflector的免费版本:。
在这篇博客中,我们讨论了我构建“网站的时候使用的几个工具。我使用这些工具来提高“”网站的性能,改善“Superexpert.com”网站的SEO(Search Engine Optimization),确保“Superexpert.com”网站的正常运行时间,或者对“Superexpert.com”网站进行调试。在这篇博客中讨论的所有工具都是免费的。此外,所有这些工具都是既支持Web Forms 又支持 ASP.NET MVC的。
推荐:
网友评论 ()条 查看