Earlier this month, I wrote a post about challenging myself to incorporate a host of new ASP.NET 2.0 features into the new version of the website for the Vermont.NET User Group.
The website is finally live and has been a labor of ....education! (And love, of course!)
Password Security Blues Yesterday was the first scramble of getting existing members to create logins on the new site (a feature we did not have previously) which forced me this morning into a rapid re-thinking of my overzealous security enforcement. I can't help but approach every project with all of the security paranoia that has been drilled into me. After sending the “go for it!“ email to the member list of over 250, I quickly got complaints about the effects of my opting for the password hashing feature. The effect of this is that when you request a password reminder, ASP.NET creates a new cryptic password for you that is just too hard to remember. Frankly, I hate the idea of sending any clear text passwords through email, but again, it's just a user group website, so I'll live. I relaxed the security on the site, using encryption instead - it was very easy to do after reading this helpful forum thread). One thing I didn't buckle on was forcing at least one non-alphanumeric character in the password. It was very funny how many people emailed me to say: “It doesn't work. No matter how many digits I put in!“ So I finally updated the registration page to explain: “non-alphanumeric (eg ! @ # $ % ^ & etc.) “.
In fact, much of what I did on this site was a little overzealous but it made a great playground for exploring things like caching and performance (in case the user group ever grows to Amazon.com proportions!)
In addition to some of the ASP.NET 2.0 features, I have leveraged some of the newer tools coming from the ASP.NET team, such as Web Application Projects (which will eventually be built in to VS2005), the RSS Toolkit and more. I even used the telerik r.a.d.panelbar, my first time using any of these tools that have become very popular in the ASP.NET community.
This is my best way to learn things. Jump in the deep end! I have been exposed to many of these feature for years, but not until I sat down and tried to do a complete site did I really learn anything. The exposure gave me knowledge of what was out there and ideas of what I wanted to use. But it did not teach me about all of the silly things I might neglect or do incorrectly and what it would take to get things really working. I have dug around inside of the database tables for memberhp and manually modified data to see what would happen. I have tried to learn how to use some of the drag & drop features I generally turn my nose up at. A real app gives you real challenges and a real education!
I also tried to make the site a bit of a learning tool for viewers. There is a page on the site that lists all of the features that I made a point to use including links to learning more about each of those features. (Which is why I haven't re-created all of those links in this post.) The home page and masterpage has icons that, when hovered over with a mouse, cause a popup to display explaining the ASP.NET 2.0 feature highlighted by the icon. (That scripting does not seem to work in FireFox and I still have to dig into that problem.)
Speaking of Firefox, I also used this site as a tool to help wean me off of table based design and learn more about CSS. I even installed FireFox to test out it's compatibility. (I was so proud of myself. Especially after my fun with the Linux crowd last week.)
There is a lot more I want to do on the site (like adding Atlas!), but it's time to get back to work and find some time to write about all that I have learned!