November 2003 - Posts

Showing the www.ASP.NET RSS Feed on the 4Guys Homepage
28 November 03 06:11 PM | Scott Mitchell

In case you haven't heard yet, the official ASP.NET Web site - www.ASP.NET - now has an RSS feed for its latest articles section. I've added this to the 4Guys ASP.NET homepage using the RssFeed custom control I developed. Displaying the www.ASP.NET latest article feed requires only adding the following content to a Web page:

<skm:RssFeed id=clrFeed DateFormatString="(MMMM dd)" Width="100%" 
        HeaderStyle-HorizontalAlign="Center" MaxItems="5" 
        HeaderText="Latest ASP.NET Articles from www.ASP.NET" 
        CellPadding="4" BorderWidth="0px" BorderStyle="None" 
        Font-Size="12pt" BackColor="#eeeeee" Font-Names="Arial" 
        ShowHeader="True" runat="server" HorizontalAlign="center">

<SCRIPT language=C# runat="server"> private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { clrFeed.DataSource = ""; clrFeed.DataBind(); } } </SCRIPT>

Pretty neat, eh? You can learn more about RssFeed at this article, or you can check out the complete source code (and add functionality to it, if you'd like!) at the RssFeed GDN Workspace.

Filed under: ,
Latest News...
20 November 03 11:45 PM | Scott Mitchell

My most recent article is up on MSDN: An Extensive Examination of Data Structures: Part 1. This is the first in a proposed six-part series on data structures in the .NET Framework. From the article's summary:

This article kicks off a six-part series that focuses on important data structures and their use in application development. We'll examine both built-in data structures present in the .NET Framework, as well as essential data structures we'll have to build ourselves. This first installment focuses on defining what data structures are, how the efficiency of data structures is analyzed, and why this analysis is important. In this article, we'll also examine the Array and ArrayList, two of the most commonly used data structures present in the .NET Framework.

In case you're interested, Part 1 provides an introduction to the article series, discusses analyzing data structures, and examines the Array and ArrayList data structures. It's not too meaty a topic, seeing as it is the first in a six-part series. Part 2, which has been written but has yet to be published, is more interesting examining the Queue, Stack, and Hashtable classes in detail.

In other news, I (finally) upgraded ScottOnWriting.NET (and the other blogs I run using .Text) to the latest version - Version 0.94. The transition was incredibly smooth and only took a few minutes - kudos to Scott Watermasysk. Now, if I can find the time I'd like to convert to a mutliple blog, and allow other NBA bloggers to host their NBA blogs there... spent a few minutes trying to convert it from an individual blog to a multiple blog, but had no luck.

I've been so busy lately, it's not even been funny. Meh. I wish I could take a one month vacation. Waa waa waa. Actually, I recently got back from a short vacation to Catalina. We stayed at a swank hotel, here's a view from the room. And, for those who have not met me but are dying to have a picture of me that they can print out and hang on their cubicle, here is a picture of me on hotel's balcony. (The astute observer will note that the red t-shirt I have on was handed out by Sams Publishing at the ASP Connections conference at New Orleans in April 2001. My fashion sense is so 2.5 years outdated.)

Filed under:
For those Interested in skmMenu
15 November 03 11:57 AM | Scott Mitchell

In a previous post, I moaned about the rigors of managing an open-source project, as well as the delimma of keeping skmMenu actively updated when there is an existing skmMenu article on MSDN, as well as an upcoming one.

Per Carson's McComas advice, I have created a new GND Workspace, skmMenuDev. (More precisely, Robert, a member of the skmMenu workspace, has stepped up and created this workspace.) Robert (zwombat) is now leading the skmMenuDev workspace, which is where all development work on skmMenu will take place until the two articles come and go on MSDN. Thanks for volunteering for this, Robert!

On an aside, skmMenu has exceeded its default allowed number of members on the GDN Workspace (20), due in part to the pimping of the skmMenu article on and the C# Dev Center.

Filed under:
Managing an Open Source Project - More Challenging than I Thought!
12 November 03 09:21 PM | Scott Mitchell

There are two open-source projects I manage on the GotDotNet Workspaces:

  • skmMenu, an ASP.NET menu server control, and
  • RssFeed, an ASP.NET server control for displaying RSS 2.0 feeds.

RssFeed has not attracted much attention in the Workspaces, but skmMenu has over 15 members thanks in large part to an article of mine about skmMenu on the ASP.NET Dev Center: Building an ASP.NET Menu Control. To date, five people have taken time out of their busy schedules to improve skmMenu in a variety of ways, and have been kind enough to email me their enhancements. Sadly, I have not had the time to investigate these potential improvements or to integrate them into the main code base. Which sucks for both those who took the time and for those who want a better skmMenu. I feel like I'm not keeping my end of the deal.

I think I was a bit naive when I started out making these open source projects. I didn't fairly estimate the time requirements I was signing myself up for... meh. (Although, in my defense, I didn't expect to get hit this torrent of work I've had in my face for the past couple of weeks.) Of course, even if I had infinite time I would be a bit hesitant to integrate these changes into skmMenu for one reason: there is a Part 2 coming soon for the skmMenu article on the ASP.NET Dev Center, and I don't want the underlying code to change too radically prior to this second part being published.

The idea behind open source is a neat one. Those who think open source can lead to buggy software underestimate the prowress of those developers who contribute to the project. It's not your newbies that add to the code base - it's seasoned developers who write solid code and make meaningful contributions. Honestly, I have been quite impressed with the quality of the contributed code. Open source is nice too because it pools the hard work of many - unless you have a bottleneck like myself.

So, to those who have contributed to skmMenu, I apologize for not having the bandwidth to make the most of your contributions. I promise as this year wears on and my schedule - hopefully - lightens, I'll be able to invest some time into improving skmMenu by recognizing your efforts. Thanks again, the effort is sincerely appreciated.

Building an ASP.NET Menu Server Control
07 November 03 09:38 AM | Scott Mitchell

My latest article in the MSDN ASP.NET Dev Center - Building an ASP.NET Menu Server Control - is up and ready to be read! This article looks at an open-source menu system I created - skmMenu - and discusses the challenges involved in creating such a menu server control. (This article is the first in a two-part series...)

Anyway, if you are looking for a free ASP.NET menu control, give skmMenu a whirl. The complete source code is available on the skmMenu GotDotNet Workspace, and you can even join the project to enhance the code base, if you like.

Filed under:
nGallery Review on
03 November 03 01:30 PM | Scott Mitchell

First-time reviewer Dana Coffey added a review of nGallery - an open-source photo album Web application written in C# - to If you're interested in adding a photo album to your site, check out nGallery. Dana gives nGallery high praise for its ease of installation, its skinnability, and its growing, helpful community, which is easily reachable via the nGallery forum and the nGallery ListServs. Learn more about nGallery at or by reading Dana's review.

(Know of a free and useful .NET or ASP.NET application or tool? If so, consider writing a review for DotNetToolbox! It only takes a few minutes and helps spread the word of your favorite free tools to other developers worldwide...)

Filed under:
Computers Talking to Computers
02 November 03 01:52 PM | Scott Mitchell

Ain't technology grand? A user today signed up for an account at - this registration process prompts the user for their desired username and a working email address. Upon supplying this information, a “verification URL” is sent via email. Upon visitng the verification URL, the user can choose their password, login, and start posting messages.

As I described earlier, last month I built my own challenge/response spam-blocking software. A challenge/response spam-blocking system works by maintaining a database of trusted emails and black listed emails. Upon receiving a new email from the trusted list, the email is forwarded on to my inbox. If an email from a black listed individual is received, the email is promptly deleted. If an email arrives from someone who's not on either my trusted or black list, the user is sent a “challenge,” which they must respond to in order to be moved to my trusted list. (The challenge is an email instructing them to visit a page and type in a specified series of numbers.) The whole idea behind this is that a spammer won't take the time to register with my system, so spam will stay filtered out of my inbox. (My daily allotment of spam has been reduced from well over 100 pieces of spam per day to well under 5 pieces per day.)

Anywho, today a user, who was using a challenge/response spam blocking system of his own, signed up on the ASPMessageboard. Upon signing up, he received an email from ASPMessageboard asking him to visit the verification URL. Of course, this email was from an untrusted source, so his C/R spam blocking system shot me an email saying, “Please visit such-and-such link if you want me to see your email.” Well, my C/R blocking system got this piece of email, noticed this user wasn't in my trusted list, and so then decided to send him a challenge email. So now both of our C/R spam blocking systems are sitting there, twidling their thumbs, waiting for the other to verify.

This deadlock was broken by this fellow, I think he checked his pending email list, having expected an email from the site. He then, kindly, took a moment to register with my C/R system. The point is, however, as the popularity of C/R systems continues to grow, situations like this are inevitable. Direct person-to-person communications can be righted by remembering to always make sure those you send email to are on the trusted list, but can break down if a computer intermediary is sending an email on someone else's behalf. Namely, the ASPMessageboard ASP page sending an email after the user had completed the first step of registration.

Filed under:
More Posts


My Books

  • Teach Yourself ASP.NET 4 in 24 Hours
  • Teach Yourself ASP.NET 3.5 in 24 Hours
  • Teach Yourself ASP.NET 2.0 in 24 Hours
  • ASP.NET Data Web Controls Kick Start
  • ASP.NET: Tips, Tutorials, and Code
  • Designing Active Server Pages
  • Teach Yourself Active Server Pages 3.0 in 21 Days

I am a Microsoft MVP for ASP.NET.

I am an ASPInsider.