This post originated from an RSS feed registered with .NET Buzz
by Doug Thews.
Original Post: LocalDesktop Complete & Ready For Download
Feed Title: IlluminatiLand
Feed URL: http://apps5.oingo.com/apps/domainpark/domainpark.cgi?client=netw8744&s=JETBRAINS.COM
Feed Description: A technology blog for people enlightened enough to think for themselves
I'm finished with my LocalDesktop project. As a refresher, I wanted to build an ActiveDesktop that had some cool graphics (like the ones you see in the .NET Desktop Contest) and with some active content based on RSS feeds that I'm interested in. I've published the entire VS.NET project (source code & graphics) to my downloads area. Keep in mind the graphics were designed for a 1280x1024 desktop screen. Since I merged some of the best from free logos and themes out there, please remember that the graphics are for local consumption and not for redistribution as a software package (this goes for the source code as well).
Now, on to some items of note from this project:
I implemented an XML configuration file where you can specify the RSS feed, friendly name, cache location, and number of entries to display for each RSS feed you want to display in the Nav frame.
Becuase of the problem I reported earlier with ReadXml, I had to dump the use of this method entirely, and create my own primitive RSS consumer. This consumer looks for variants that I'm aware of. Things like being for MovableType users. I also use a stripped down element for use as the
I implemented a cache page that's inside a hidden iFrame on the main page. The job of this page is to cache off the remote XML documents to a local area, so it doesn't take so long to parse through them with the XmlTextReader. The hidden iFrame (meaning the CacheFeeds.aspx file) auto-refreshes every 15 minutes to keep the cache current, but since it's in a zero width/height iFrame, you don't notice anything on the ActiveDesktop. TIP: If this were a real multi-user scenario, I would have written the cacher as a Windows service - but there's no reason to since the purpose of this project was just to be a local ActiveDesktop. If you step through this ASPX file with the debugger, you could get concurrent breakpoints from the original ActiveDesktop refreshing the cache routine at the 15 minute expiration.
The Nav frame reads from the cache, but if the cache isn't available it will go to the main source. This will take longer, but this solves the need to run the cache before the application gives you results. The Nav frame also has a hadcoded section for favorite links. I guess I could have put these into the XML configuration file - maybe in the next version.
I included a blank "transfer" HTML page as the target for the Nav frame's iFrame that immediately redirects to the Nav frame ASPX page (the one that actually does some work). This prevents an elongated white background caused by the processing of an ASPX page either the first time or when there's no cache to read from. Without this temporary initial page, the iFrame would be white (the IE default) while the page loads. This way, the iFrame immediately has a target (which is just the blank HTML document with the exact background), and then a 1ms redirection to the real ASPX Nav page.
Based on feedback, I might add some changes to include e-mails, tasks, and calendar entries as part of the Nav frame in a future version. If you like what you see, have comments or questions, please contact me (remember to remove the NOSPAM from the e-mail address first).