ASP.NET网页编程之ASP.NET做SEO:制造架构明晰和更新实时...
你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)</p>网站舆图的感化是让搜刮引擎尽快的,更多的收录网站的各个网页。这里我们起首要分明一个基础的道理,搜刮引擎的匍匐体例。全部互联网就像一张犬牙交错的“网”:网的各个节点就是各个网页,而各个网页之间经由过程url互相毗连。蜘蛛能够从一个网页动身,经由过程该网页上的url,爬到另外一个网页;再经由过程另外一个网页上的url,再爬到更多的网页……,以此类推。但假如是一个新公布的网站,大概就没有其他url指向它,那末它就永久不会被“爬到”(收录)。为懂得决这个成绩,新站能够本人自动向搜刮引擎提交url,请求蜘蛛前来抓取(Google请求网址:),但请求时一样平常只会提交一个主页的url。
为了让一切的url(特别是静态天生的)都能被蜘蛛快速便当的检索到,我们就必要供应一个周全完全、架构明晰和更新实时的网站舆图。
和处置反复内容的robots.txt文件,我们经由过程.ashx文件来天生一个基于sitemaps.org的xml格局的网站舆图。网站舆图天生以后,我们就能够向Google等搜刮引擎提交。大批的文章证明,提交网站舆图将极年夜的进步网站的收录速率和深度。其他几近一切的SEO办法,都有大概效果难以证明、生效乃至带来反作用,但提交网站舆图除外!
LinqtoXML为我们带来了近乎完善的操纵体验。
<%@WebHandlerLanguage="C#"Class="website"%>
usingSystem;
usingSystem.Web;
usingSystem.Xml;
usingSystem.Xml.Linq;
usingSystem.Linq;
publicclasswebsite:IHttpHandler{
publicvoidProcessRequest(HttpContextcontext){
context.Response.ContentType="text/xml";
//文件的声明信息,第第三个参数standalone的值yes暗示这个XML文档是自包括的(self-contained)而不依附于内部所界说的一个DTD.
XDeclarationdeclaration=newXDeclaration("1.0","UTF-8","yes");
context.Response.Write(declaration);
//XML文件的定名空间
XNamespacens="http://www.google.com/schemas/sitemap/0.84";
XElementsiteMap=newXElement(ns+"urlset");
stringfixedUrl="http://www.freeflying.com/article";
stringwholeUrl=string.Empty;
//轮回掏出数据,转换成XML节点
foreach(variteminArticles.GetArticles())
{
XElementurl=newXElement("url");
wholeUrl=string.Format("{0}?id={1}&catelog={2}",fixedUrl,item.ID,item.Catelog);
XElementloc=newXElement("loc",wholeUrl);
XElementlastmod=newXElement("lastmod",item.LastMod.AddDays(-23).ToShortDateString());
XElementchangefreq=newXElement("changefreq",item.Frequency);
XElementpriority=newXElement("priority",item.Weight);
url.Add(loc,lastmod,changefreq,priority);
siteMap.Add(url);
}
//最初输入全部xml文件
context.Response.Write(siteMap);
}
publicboolIsReusable{
get{
returnfalse;
}
}
}
一样还将利用到xml手艺的另有RSS
<%@WebHandlerLanguage="C#"Class="rss"%>
usingSystem;
usingSystem.Web;
usingSystem.Xml;
usingSystem.Xml.Linq;
publicclassrss:IHttpHandler{
publicvoidProcessRequest(HttpContextcontext){
context.Response.ContentType="text/xml";
context.Response.Write("<?xmlversion="1.0"encoding="UTF-8"?>");
XElementrssFeed=newXElement("rss",newXAttribute("version","2.0"));
stringfixedUrl="http://www.freeflying.com/article";
stringwholeUrl=string.Empty;
XElementchannel=newXElement("channel",
newXElement("title","freeflying"),
newXElement("link",fixedUrl),
newXElement("description","thewebsitefordreamflyingfreely"),
newXElement("pubDate",DateTime.Now.ToString())
);
foreach(vararticleinArticles.GetArticles())
{
XElementitem=newXElement("item");
XElementtitle=newXElement("title",article.Title);
wholeUrl=string.Format("{0}?id={1}&catelog={2}",fixedUrl,article.ID,article.Catelog);
XElementlink=newXElement("link",wholeUrl);
XElementdescription=newXElement("description",article.Description);
XElementpubDate=newXElement("pubDate",article.LastMod.ToString());
item.Add(title,link,description,pubDate);
channel.Add(item);
}
rssFeed.Add(channel);
context.Response.Write(rssFeed);
}
publicboolIsReusable{
get{
returnfalse;
}
}
}
摹拟数据
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.HtmlControls;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Xml.Linq;
usingSystem.Web.UI.MobileControls;
usingSystem.Collections.Generic;
///<summary>
///SummarydescriptionforArticles
///</summary>
publicclassArticles
{
publicArticles()
{
//
//TODO:Addconstructorlogichere
//
}
publicstaticList<Article>GetArticles()
{
returnnewList<Article>(){
newArticle(234,"blog",DateTime.Now.AddDays(-23),Freq.none,0.8,"asp.net搜索引擎优化","articlesaboutSEOinasp.net"),
newArticle(267,"blog",DateTime.Now.AddDays(-245),Freq.daily,0.6,"ado.netpro","aboutthedatasetusage"),
newArticle(653,"news",DateTime.Now.AddDays(-45),Freq.daily,1,"CLRviaC#","notebookaboutthisbook")
};
}
}
publicclassArticle
{
publicintID;
publicstringCatelog;
publicDateTimeLastMod;
publicdoubleWeight;
publicFreqFrequency;
publicstringTitle;
publicstringDescription;
publicArticle(intid,stringcatelog,DateTimelastMod,Freqfrequency,doubleweight,stringtitle,stringdescription)
{
ID=id;
Catelog=catelog;
LastMod=lastMod;
Weight=weight;
Frequency=frequency;
Title=title;
Description=description;
}
}
publicenumFreq
{
none=1,
daily=2,
weekly=3,
}
自在飞原文链接
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
页:
[1]