细数十大“.NET研究”免费构建ASP.NET网站必备工具

news/2024/5/15 20:38:18/文章来源:https://blog.csdn.net/weixin_33845477/article/details/86268806

  最近使用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”的例子:

.Home_StephenWalther_small-jpg
{
width:75px;
height:100px;
background: url(data:image
/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB1lpeAAAAB
GdBTUEAALGOfPtRkwAAACBjSFJNAACHDwAAjA8AAP1SAA
CBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKL
s
+zNfREAAAAASUVORK5CYII=) no-repeat 0% 0%;
}

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

1

  不幸的是,使用 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”网站当前的测试结果:

Microsoft Ajax Minifier

  “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页面的外观(这个页面是密码保护的,因为在一个错误信息中,可能会泄露出一些应该保密的信息。)

1

  如果你点击某个错误信息,你可以看到原始的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”。

上海网站建设g src="http://image20.it168.com/201011_0x0/363/547d85d20a95f5ae.jpg" border="1" alt="Pingdom" />

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

Pingdom  

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

Host Tracker  

  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”网站的分析报告的概述:

IIS SEO Toolkit

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

  9,LinqPad上海徐汇企业网站设计与制作ttp://www.93tj.com'>上海徐汇企业网站制作ong>

  如果你的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语句:

IIS SEO Toolkit上海企业网站设计与制作> 

        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类的一部分反汇编代码:

IIS SEO Toolkit

  总结

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

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

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

相关文章

[转]从LiveJournal后台发展看大规模网站性能优化方法

从LiveJournal后台发展看大规模网站性能优化方法 作者:于敦德 2006-3-16来源:http://www.example.net.cn/archives/2006/03/olivejournaloio.html 一、LiveJournal发展历程 LiveJournal是99年始于校园中的项目,几个人出于爱好做了这样一个…

Node.js入门教程:Node.js如何安装配置并部署一个网站

前言:作为一个资深的前端开发人员,不懂的Node.js 那你绝对是不能跟别人说你是资深的前端程序猿滴! 今天洋哥就来和大家一起学习被大牛称之为前端必学的技能之一Node! 那么Node到底是什么呢? 官方的介绍是介样子滴&…

seo优化如何把握好关键词的取舍问题

在现实生活中我们发现,很多东西都是不可能同时兼得,比如我们有令人羡慕的爱情,或许就没有非常理想的工作;我们可以非常勤奋工作,或许就失去了对另一半的关心,虽然有时候很想把一切都做好,但一个人的力量是有…

[转]开发大型高负载类网站应用的几个要点

开发大型高负载类网站应用的几个要点 作者:nightsailer 来源:http://www.phpchina.com/bbs/thread-15484-1-1.html看了一些人的所谓大型项目的方法,我感觉都是没有说到点子上,有点难受。我也说说自己的看法.我个人认为,很难衡量所谓项目是否大…

[转]使用Varnish代替Squid做网站缓存加速器的详细解决方案

使用Varnish代替Squid做网站缓存加速器的详细解决方案 [文章作者:张宴 本文版本:v1.2 最后修改:2008.01.02 转载请注明出处:http://blog.s135.com]  我曾经写过一篇文章──《初步试用Squid的替代产品──Varnish Cache网站加速…

[转]Yupoo! 的网站技术架构

Yupoo! 的网站技术架构 作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/arch/yupoo_arch.html 又有机会爆料国内 Web 2.0 网站的架构了。这次是 Yupoo! 。非正式的采访了一下 Yupoo!(又拍网) 的创建人之一…

[转] 网站架构文章和MySQL在国际知名网站中的使用量

MySQL数据库服务器国际知名网站中的使用数量2008年4月18日,在Alexa安排的一次“Scaling MySQL -- Up or Out?” 的小组辩论中,MySQL、Sun、Flickr、Fotolog、Wkipedia、Facebook、YouTube等国际知名网站的DBA们,对其 网站MySQL数据库服务器、…

[转] 大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

网站提速-数据库优化(6)

据库优化 对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:① 数据库设计② sql语句优化③ 数据库参数配置④ 恰当的硬…

共享收集的图像处理方面的一些资源和网站。

首先,共享在软件编写过程访问和收集到的一些与图像或优化有关的网站和博客。 http://blog.csdn.net/housisong/category/325273.aspx 图像处理的相关技术博客 http://www.cnblogs.com/xiaotie/category/145078.html 图像处理的相关技术…

[转]蚂蚁变大象:浅谈常规网站是如何从小变大的

作者:老王 (http://blog.sina.com.cn/zgwangbo001) 来源:http://stblog.baidu-tech.com/?p1643 2005年,我开始和朋友们开始拉活儿做网站,当时第一个网站是在linux上用jsp搭建的,到后来逐步的…

26个导航设计非常独特的网站案例欣赏

作为网站的重要组成部分,导航设计的非常重要,新颖的导航可以给访客留下深刻的印象,吸引他们浏览更多的内容。今天,本文与大家分享26个导航设计非常独特的网站案例,希望能带给你灵感。 iamyuna tedxportland heartshape…

张清:seo出书那点事

最近忙着学习去了,生活有点紧凑,但是还是很充实,很久没有和大家分享我的经验了,新做的论坛站长干货在几个徒弟的操作下,我给予技术指导的情况下已经慢慢建好了。前几天收到了出版社的编辑邮件。早起我就说过seoer的道路…

如何下载各种视频网站的近乎所有视频

也是最近制作《看见》的视频时发现的,因为每次用网络电视看视频,完了还要录制下来,不说渲染的时长,单是录制过程都是一波三折的,真的很是费劲。于是在网上各种搜索,最后还是找到了。在这里写下,…

[转]Mysql在大型网站的应用架构演变

原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/ 本文链接地址: Mysql在大型网站的应用架构演变 写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变 可扩展性 架构的可扩展性往往和并发是息息相关&#xff0…

使用Orachard与Bootstrap建站心得

最近使用Orchard和Bootstrap为哥的 ALinq 做了个小网站,总得来说,很不错。比自己一行一行地写代码,有效率多了,而且页面也干净利落,当然,比起专业的网站的,还是有不少距离。选择Orchard&#xf…

上海美食娱乐网站总于有点结果了

经过近两周的时间,上海美食娱乐网总于大致露出来面容了。想不到长时间不写代码,真的会忘记。 基本功能已经实现,相对来说,这个网站还是比较简单的。 网站暂时分为两个部分,以后会添加更多功能 1)前台 界面如…

新网站

2019独角兽企业重金招聘Python工程师标准>>> http://note.sdo.com/ 盛大记事本 tokbox.com 视频API http://www.cngadget.cn/ 玩意,创意商店 http://www.linuxcast.net/ linux学习网站 http://gurudigger.com 有很多创意的点子 http://www.newme.me 写日…

宝塔上面nginx网站https配置

1.准备好证书,包括fullchain.crt和private.pem 2.配置nginx配置文件,假设域名是test.china.com server {listen 80;listen 443 ssl http2;server_name test.china.com;index index.php index.html index.htm default.php default.htm default.html;roo…

知名站点SEO注意事项

知名站点,是指已经有较高用户知名度的网站。站点越是知名,就越应从长远考虑,以用户体验为重,积极、合理的进行网站优化,远离作弊和恶意SEO行为。 我们经常可以看到一些知名站点使用了不够合理的内容建设方式. 知名站点…