Click image to enlarge
Introduction
This article allows you to see the latest addition to the Code Project directly in your "Online Resources" on the Start Page of VS.NET
Background
See MSDN article Customizing the Visual Studio Start Page
Using the code
First step : Create a Virtual Directory in IIS (named CodeProjectDownload) . Then paste the content of the CodeProjectDownload.zip into this folder.
Test : Point your browser to the http://localhost/CodeProjectDownload/WebForm1.aspx : what you will see is a XML document
If not, please check your Internet connection and/or Code Security for Asp.Net
Second step : Locate your Visual Studio .NET installation folder and locate the \Common7\IDE\HTML\1033 folder ( usually : E:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\HTML\1033 - for other languages than English, please replace 1033 with your language code)
If not created, please create a folder named Custom - and put the contents of CodeProject.zip in this folder.
Now, run Microsoft Visual Studio .NET 2003 - go to Start Page , click on Online Resources. You will see a "Last Code Project added resources" item. Click on this item. And you will see the latest code addition for Code Project. ( see the image).
The important code is the one that downloads the XML and the one that interprets the XML
Uri u=new Uri(@"http://www.codeproject.com/webservices/articlerss.aspx");
HttpWebRequest hwr=(HttpWebRequest)HttpWebRequest.CreateDefault(u);
HttpWebResponse hwre=(HttpWebResponse)hwr.GetResponse();
Stream s= hwre.GetResponseStream();
Byte[] read = new Byte[512];
int bytes = s.Read(read, 0, 512);
StringBuilder sb=new StringBuilder();
while(bytes>0){
Encoding encode =Encoding.GetEncoding("utf-8");
sb.Append(encode.GetString(read,0,bytes));
bytes = s.Read(read, 0, 512);
}
XmlDataDocument xd=new XmlDataDocument();
xd.LoadXml(sb.ToString());
XmlNodeList xnl=xd.DocumentElement.GetElementsByTagName("item");
ItemCodeProjectCollection icpcol=new ItemCodeProjectCollection();
foreach(XmlNode xn in xnl){
ItemCodeProject icp=new ItemCodeProject();
icp.Title= xn.SelectSingleNode("title").InnerText;
icp.Description=xn.SelectSingleNode("description").InnerText;
icp.Url=xn.SelectSingleNode("link").InnerText;
icpcol.Add(icp.Url,icp);
}
The rest is in the method LinksStartPage that constructs the XML needed by the Start Page.
Points of Interest
The project can be the start to interpret others RSS feeds, like the ones on DevX
Also, the project can be simpler if the Code Project owners ( with a XSL) transform theirs XML to the specific XML that is recognized by Start Page.
History