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

news/2024/5/15 11:25:35/文章来源:https://blog.csdn.net/weixin_30352191/article/details/99017067

【51CTO 11月30日外电头条】最近使用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.  
  4. width:75px;  
  5. height:100px;  
  6. background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB1lpeAAAAB  
  7. GdBTUEAALGOfPtRkwAAACBjSFJNAACHDwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKL  
  8. s+zNfREAAAAASUVORK5CYII=) no-repeat 0% 0%;  
  9.  

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

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”。

正常运行时间

当一个网站发布以后,你肯定希望你的网站不会遇到任何问题,一直处在正常运行状态之中。现在,我使用下面这些工具来监控“Superexpert.com”网站,确保它一直处在正常运行状态之中。

4,ELMAH

ELMAH 是 Error Logging Modules and Handlers for ASP.NET 的缩写。ELMAH可以让你记录下你的网站发生的任何一个错误,在将来,你可以重新检查这些错误。你可以从ELMAH项目的官方网站免费下载ELMAH:http://code.google.com/p/elmah/

ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET MVC。你可以对ELMAH进行配置来存储各种不同的错误(XML文件,事件日志,Access数据库,SQL数据库,Oracle数据库,或者计算机RAM。)你还可以让ELMAH在错误发生的时候,把错误信息email给你。

在默认情况下,在一个已经安装ELMAH的网站中,你可以通过请求的elmah.axd页面的方式来访问ELMAH。这是“Superexpert.com”网站的elmah页面的外观(这个页面是密码保护的,因为在一个错误信息中,可能会泄露出一些应该保密的信息。)

ELMA

如果你点击某个错误信息,你可以看到原始的ASP.NET的黄屏错误信息(虽然这个错误信息永远不会显示给真正的用户)。

我使用全新的ASP.NET软件包管理器 NuGet(过去叫做NuPack)来安装ELMAH。关于NuGet,你可以参考Scott Guthrie的博客:http://weblogs.asp.net/scottgu/archive/2010/10/06/announcing-nupack-asp-net-mvc-3-beta-and-webmatrix-beta-2.aspx。你可以从CodePlex下载 NuGet:http://nuget.codeplex.com/

5,Pingdom

我使用Pingdom来验证Superexpert.com网站是否总是处在正常运行状态之中。你可以通过浏览“Pingdom.com”的方式来注册Pingdom。你可以使用Pingdom来免费监控一个网站。

在Pingdom网站上,你可以配置ping你的网站的频率。我每5分钟验证一次Superexpert.com 网站是否总是处在正常运行状态之中。我使用Pingdom服务来验证它是否可以从那个网站的主页上检索到字符串“Contact Us”。

Contact Us

如果你的网站宕机了,你可以对Pingdom进行配置,让它通过email, Twitter, SMS, 或 iPhone来发送一个警报。我使用这个Pingdom的iPhone应用程序:

iPhone应用程序

6,Host Tracker

如果你的网站宕机了,你需要一些方式来判断这是本地网络的问题,还是对每个人来说,你的网站都宕机了。我使用一个叫做“Host-Tracker.com”的网站来检查一个网站宕机的程度。

这是“Superexpert.com”网站从世界各地都可以ping通的时候,Host-Tracker显示的结果:

Host-Tracker显示的结果

注意:Host-Tracker从68个地点(其中包括:Roubaix, France and Scranton, PA等)来ping “Superexpert.com”网站。

调试

我这里提到的“调试”的意义十分广泛。当构建一个网站的时候,我使用下面这些工具来验证我并没有犯错误。

7,HTML Spell Checker

为什么Visual Studio没有内置一个拼写检查器?不知道——我觉得这有点不可思议。但是,幸运的是,ASP.NET团队的前成员编写了一个免费的拼写检查器,你可以在ASP.NET页面上使用这个拼写检查器。

我发现一个拼写检查器是必不可少的。认为你自己的拼写能力绝对是完美的,只是自欺欺人而已。当我真正地运行拼写检查工具,发现我的所有拼写错误的时候,我恨不得找个地缝钻进去。

把HTML Spell Checker扩展添加到Visual Studio中的最快方法是在Visual Studio中选择“Tools”菜单项,然后点击“Extension Manager”。点击“Online Gallery”,然后索搜“HTML Spell Checker”:

Extension Manager

8,IIS SEO Toolkit

如果人们无法通过Google找到你的网站,那么还不如不构建这个网站。微软提供了一个优秀的IIS扩展,叫做“IIS Search Engine Optimization Toolkit ”(关于IIS Search Engine Optimization Toolkit 具体可以参考:http://www.iis.net/download/seotoolkit),你可以使用它来检测出可能会影响页面排名的问题。你也可以使用它快速地为你的网站创建一个sitemap,你可以把这个sitemap提交给Google或Bing。你甚至可以为一个ASP.NET MVC网站生成一个sitemap。

这是“Superexpert.com”网站的分析报告的概述:

Superexpert.com

注意:“Sueprexpert.com”网站存在很多的问题。例如,有65个页面的超链接已经失效了。你可以进一步查看这些问题的详细信息,找出这些问题发生的地点和具体的页面。

9,LinqPad

如果你的ASP.NET网站需要访问一个数据库,那么你应该使用LINQ to Entities这个实体框架。使用LINQ,会把一些用C#编写的神奇的查询转换成SQL查询。如果你在编写LINQ查询的时候不小心谨慎一些的话,你很可能会在无意之间构建出一个性能十分糟糕的网站。

LinqPad(LinqPad的官方站点:http://www.linqpad.net/)是一个免费的工具,它可以让你实验你的LINQ查询。它甚至支持Microsoft SQL CE 4 和 Azure。

你可以使用LinqPad来执行一个LINQ to Entities查询,然后看看结果。你也可以使用它来查看对那个数据库执行的SQL语句:

SQL语句

10,.NET Reflector

我每天都使用.NET Reflector。.NET Reflector这个工具可以让你把一个程序集反汇编成C#或VB.NET代码。当你没有真正的源代码的时候,你可以使用.NET Reflector来查看一个程序集的“源代码”。你可以从Redgate的网站下载.NET Reflector的免费版本:http://www.red-gate.com/products/reflector/

我主要使用.NET Reflector来帮助我搞清楚代码在内部是如何工作的。例如,为了更好的理解MVC Image helper是如何工作的,我使用.NET Reflector对the Sprite and Image Optimization Framework进行了反汇编。这是Image helper类的一部分反汇编代码:

.NET Reflector

总结

在这篇博客中,我们讨论了我构建“Superexpert.com”网站的时候使用的几个工具。我使用这些工具来提高“Superexpert.com”网站的性能,改善“Superexpert.com”网站的SEO(Search Engine Optimization),确保“Superexpert.com”网站的正常运行时间,或者对“Superexpert.com”网站进行调试。在这篇博客中讨论的所有工具都是免费的。此外,所有这些工具都是既支持 ASP.NET Web Forms 又支持 ASP.NET MVC的.

转载于:https://www.cnblogs.com/momochong0/archive/2010/12/03/1895058.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_763399.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纸壳CMS可视化建站系统创建多语言网站

纸壳CMS是可视化建站系统,现已经从架构上支持多语言。但是多语言功能默认是没有开启的。您可以从设置中开启多语言,或者随时关闭它,您可以随时进行切换。 开启多语言 如果您没有在系统设置中看到多语言设置菜单,首先先确认一下您的…

译|精选9个高质免费图片素材网站

2019独角兽企业重金招聘Python工程师标准>>> 1. Gratis Photography Gratis Photography每周定期发布一些高品质的免费照片,虽然数量仍然很小,但是使用(不管是个人使用还是商业利用)没有限制。 2. New Old Stock New O…

基础篇|PHP如何解决网站大流量和高并发

2019独角兽企业重金招聘Python工程师标准>>> 基础篇 高并发架构基础概念和优化思路 高并发架构相关概念 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行&…

【成果】学校网站个性化历史版本记录

https://wubenxwss.github.io/mystulip2.0/ 1.0 2.0

【Github使用】Hexo+Github自建Blog网站成功(自建博客)

博客网址:https://wubenxwss.github.io/ 很久之间搭建的,但是没有详细记录下操作,只是记录下参考文献,要参考借鉴可拉下去文末。现在是想更新文章到博客,那么怎么更新呢? 更新文章 要发布的文章丢这里面…

网站排名下降的原因,网站排名下降怎么办?

很多企业做seo,搜索引擎优化最终的目的就是获得流量并且靠流量获利,而真正想要让网站获得大量精准流量的前提就是,网站关键词的排名,可以这么说,seo就是围绕着当前网站关键词的排名所进行的优化,但是在搜索…

lr自带网站WebTours打不开

转载于:https://www.cnblogs.com/qmfsun/p/4127790.html

建网站选择网络诚信专属.xin域名,诚信赢天下!

什么是.xin域名:阿里巴巴推出的首个新顶级域!音同“信”,让用户信赖的域名!唯一基于阿里巴巴企业诚信体系和蚂蚁金服芝麻信用打造的网络诚信专属域名后缀!•通过优惠口令“赢在17”享32元/首年特惠(原价88元/年)• xin标嵌入网站底部,真实展示…

[SoapUI] UrlEncode编码/UrlDecode解码网站

http://tool.chinaz.com/Tools/URLEncode.aspx 解码: 编码: 转载于:https://www.cnblogs.com/MasterMonkInTemple/p/4597728.html

隐藏网站服务器响应头中 PHP 版本信息

阅读目录阐述网站服务器响应头中查看php版本信息隐藏服务器响应头中php版本信息的方法阐述 在调试网站时发现在服务器的响应头中有一个 “X-Powered-By” 响应字段,此字段中包含了当前网站所用 php 的版本信息,还不就爆漏了网站所使用的php版本了么&…

源代码托管网站BitBucket

BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。 最近在做一个私人的项目,想寻找个比较靠谱的私人版本控制工具。一开始是就想到了github,但是一想到github上的私人项目…

Nginx——使用 Nginx 提升网站访问速度【转载+整理】

原文地址 本文是写于 2008 年,文中提到 Nginx 不支持 Windows 操作系统,但是现在它已经支持了,此外还支持 FreeBSD,Solaris,MacOS X~ Nginx(“engine x”) 是一个高性能的 HTTP 和反向代理服务器…

UEditorPlus v2.1.0发布 演示网站重构,浮动工具和表格双击优化

阅读目录UEditor Plus 功能演示UEditor Plus 功能演示 UEditor是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协议,该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本…

css 网站页面内容占位加载动画效果的实现

阅读目录阐述index.htmlindex.jsindex.css阐述 内容占位动画效果,这个也是我们经常在一些网站上看到的效果,这种效果的设计,可以提升用户体验,降低用户等待焦虑的情绪。 下面我们一起来看看一下今天练习的最终效果: …

如何用 Python 爬取需要登录的网站

【原文地址:】http://python.jobbole.com/83588/ import requests from lxml import html# 创建 session 对象。这个对象会保存所有的登录会话请求。 session_requests requests.session()# 提取在登录时所使用的 csrf 标记 login_url "https://bitbucket.or…

反击黑客之对网站攻击者的IP追踪

ip追踪是一件比较难实现的,因为我只有一个ip,而且在没有任何技术支持下对该ip追踪,同时我在公司也没有服务器权限,仅有后台,一般的ip追踪技术分类,反应式ip追踪,主动式的追踪,分享的…

利用squid反向代理提高网站性能

利用squid反向代理提高网站性能 本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了…

一个很好的命令行分享网站

跟上一篇一样 发现有一个分享的工具 https://asciinema.org/a/24707 看视频处理 还能够 copy出里面的内容 直接看官网 感觉自己知道的太少了.. 还有那么好用的东西 一边教学 一边还能复制东西. mark一下. 以后多学习. 转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9337904…

【阿里云】云服务器 ECS部署网站

我是广告!!! https://promotion.aliyun.com/ntms/yunparter/invite.html?userCodehgk32vx5 领券更优惠,老板看着来~ 1.服务器购买 服务器:(推荐) https://promotion.aliyun.com/ntms/act/campus2018.html?utm_contentse_1000442225 ps:可以放多个网站一个人买觉得贵的话,可以…

移动网站性能优化:网页加载技术概览

性能一直是网站成功的关键。越来越多的研究已经证明,不管是小型电商,还是像沃尔玛那样的连锁店,即使是页面加载时间方面的细微改善,都可以带来更多的业务,更多的广告收入,更多的用户粘性和更多的客户满意度…