CodeConsults Ltd

Providing C#, ASP.NET and SQL Server Software Consultancy and Contracting Services...

Ajax comes to EmigratingToOz.com

clock February 9, 2008 10:05 by author Admin

The goal of the EmigratingToOz.com website is to be the oracle of information about Australia for us UK poms and to help them in the emigrating process.  To that end, one of the things we needed to do was also supply real-time information about Australia from the point of view of weather, money and time.

Initially, the website was set up to actively get this information from a variety of sources and simply display on the page via the master page.  However, the weather information in particular, comes from a slowish website that was killing the inital load time of the site.

The solution was simply to implement Ajax calls to get the information required in an asynchronous manner.  Using the generic library that we created to demostrate Ajax calls on our main website, we were able to implement the calls for all of the data in one quick afternoon.  The result is a quicker and more pleasing experience...

Currently rated 4.4 by 7 people

  • Currently 4.428571/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


New CodeConsults website - Emigrating To Oz

clock January 17, 2008 13:18 by author Admin

We've recently started a new project website called Emigrating To Oz

Its a site centering around providing a resource of information for people wishing to emigrate to Australia, but its still in its infancy and we are targetting a Q2 2008 release with all the bells and whistles, but in the meantime the site is live so that we can begin getting it indexed and tested.

There's plenty of work to do and content to add and we're hoping that in time it will become an excellent resource for us Poms who are looking at possible life Down Under 

Currently rated 4.4 by 7 people

  • Currently 4.428571/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


New Personal Website

clock December 11, 2007 02:24 by author Admin

Its been a long time coming, but I have finally had a few spare hours so what better way to spend it than updating your website!!!!

I've been meaning to change it now for the best part of 3 years, but more important stuff has always taken up my time.  In the end I plumped for Microsoft's Master Page Templates which gave me alot of the boiler plate code, which allowed me to concentrate on other stuff like sitemaps, google analytics, my photos etc....   Oh and the fact that I only had 1 afternoon in which to do it!!! 

Enjoy....

Currently rated 4.3 by 8 people

  • Currently 4.25/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Auto-generating a sitemap conforming to Sitemap Protocol 0.9

clock November 23, 2007 13:51 by author Admin
Having recently installed BlogEngine.NET, I was interested to see the auto-generated sitemap that Mads had created.  Basically, he implemented a custom HttpHandler that when requested would respone with XML that conformed to the Sitemap Protocol 0.9 which is dictated by sitemaps.org.  This is an XML schema that all of the major search engines have signed up to which include Google, Yahoo! and Microsoft.

What I wanted to do is to implement this for my own site, but the custom handlers of Mads was tailored to BlogEngine.NET, so it required a bit of tweaking.  Now, I have a Web.sitemap for my website, so in the scheme of wanting to do things from a generic point of view, I decided to implement the HttpHandler to utilise the Web.sitemap file to generate the sitemap response.  To do this, first we have to load up the sitemap file...

XmlSiteMapProvider xmlSiteMap = new XmlSiteMapProvider();
NameValueCollection myCollection = new NameValueCollection(1);
myCollection.Add("siteMapFile", "Web.sitemap");
xmlSiteMap.Initialize("provider", myCollection);
xmlSiteMap.BuildSiteMap();

Then we have to navigate through the tree structure identifying the nodes that we are interested in...

private static void ProcessNode(XmlWriter writer, SiteMapNode node, string attribute)
{
 foreach (SiteMapNode siteMapNode in node.ChildNodes)
 {
  string actualUrl;
  if (siteMapNode.HasChildNodes)
  {
   ProcessNode(writer, siteMapNode, attribute);
  }
  actualUrl = siteMapNode[attribute];
  if (string.IsNullOrEmpty(actualUrl))
  {
   actualUrl = siteMapNode.Url;
   if (string.IsNullOrEmpty(actualUrl))
   {
    continue;
   }
  }
  WriteUrl(actualUrl, writer);
 }
}


And lastly building up the XML response...

if(Uri.IsWellFormedUriString(actualUrl, UriKind.Relative))
{
 FileInfo fileInfo = new FileInfo(HostingEnvironment.MapPath(actualUrl));
 writer.WriteStartElement("url");
 writer.WriteElementString("loc", HttpContext.Current.Request.Url.AbsoluteUri.Replace(HttpContext.Current.Request.Url.AbsolutePath, "") + actualUrl);
 writer.WriteElementString("lastmod", fileInfo.LastWriteTime.ToString("yyyy-MM-dd"));
 writer.WriteElementString("changefreq", "monthly");
 writer.WriteEndElement();
}


I have implemented this HttpHandler in a seperate component, simply to allow me to reference this utility from other websites that I have written, but you may decide to simply plug in the HttpHandler to your main project....the decision is yours.

Now, hopefully you've also realised that you'll need to reference the HttpHandler in the website's web.config......like so...

     <httpHandlers>
      <add verb="*" path="sitemap.axd" type="CodeConsults.HttpHandlers.Generic.Sitemap" validate="false"/>
     </httpHandlers>

Now you can run your website, point your favoured browser to http://website/sitemap.axd and voila, your sitemap is available for all to see.  But the last stage should be to update your robots.txt file to tell the search engines that you have a nice sitemap for them to use. To do this simply open your robots.txt file and enter the following...

     sitemap: http://www.codeconsults.com/sitemap.axd

And that's it! Here's a link to the source code for the class...  I'll leave the rest to you

Currently rated 4.5 by 4 people

  • Currently 4.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Alternative to Server.MapPath...use HostingEnvironment.MapPath

clock November 23, 2007 13:50 by author Admin
A call to the following context sensitive MapPath function does exactly what the documentation says it does.

    System.Web.HttpContext.Current.Server.MapPath("\filename.txt");

 

It returns the physical file path that corresponds to the specified virtual path on the Web server.  But this isn't always what you want as it works on the current context which may be a web form running in a sub-directory of the main website.

In this case the solution is simple.  Use the following code to map the path to a physical path on the server

    System.Web.Hosting.HostingEnvironment.MapPath("\filename.txt");

Currently rated 4.7 by 6 people

  • Currently 4.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


LinkedIn

View Russ Quinn's profile on LinkedIn

Search

Tags

Categories


Calendar

<<  February 2012  >>
SuMoTuWeThFrSa
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Archive

Disclaimer

The opinions expressed herein are our own personal opinions and do not represent anybody's outside of CodeConsults Ltd.

© Copyright 2012

Sign in