Lazy Programmer
I'll explain it later
Jason Gaylord has a new article on ASP Alliance reviewing free components for ASP.NET
How many times have you looked for that one component that would complete your project? Of those times, how many times have you found a component that was extremely affordable (free)? Hopefully, you found those components. If not, maybe I'll have a component listed just for you.
Within this article, you'll find lots of components that can be used with ASP.NET to assist with better design and better code. I've tried to break down the components into categories and explain what each component contains.
13 pages of free goodies. Sweet! Check it out: Review: Free Components For ASP.NET 1.1
In the latest MSDN Magazine, George Shepard writes about determining whether or not a browser supports certain properties (”The ASP Column: Determining Browser Capabilities in ASP.NET”, Jan 2005). While I think the HttpBrowserCapabilities class is a great improvement over the classic ASP methods, I still think that determining support is not going far enough, and its archaic reliance on browscap.ini makes its use impractical in the long run.
Let me explain the first point, which I touched on in a previous blog post (“Don't sniff browsers--sniff objects“). If you need to determine whether or not a browser supports a certain property, it's obviously important to your needs. In the past, we've had to detect support for JavaScript, 128 bit encryption, and document.all vs. document.layers, all for very good reasons. Astute readers have just had a thought similar to “just because a browser supports JavaScript doesn't mean the user has it enabled”, and that's my point exactly. So what if a browser supports JavaScript? If the user has JS disabled, and you're relying on the idea that JS is supported, your scripts will not work. With ad blockers that strip out HTML code before it reaches the client browser, security centers that lock down any number of settings, and generally screwed up client machines, you can't really be sure what should be there actually is.
Secondly, the browscap.ini file. If you have the freshest version, it's not bad. But it doesn't take long before new browser versions render it out of date. If you're running IIS 5 on Win 2K, unless you've taken the time to track down a new version, your browscap.ini hasn't been updated since 2000. Your file is missing IE 6, FireFox, Mozilla and all the WAP enabled smart devices we were dreaming of almost 5 years ago. You can find updated versions (such as http://www.hpcfactor.com/developer/browscap/default.asp), but they suffer from the usual version conflicts when multiple independent sources are involved. You can update it yourself, but best of luck keeping on top of what you need to.
Remember for a time, after IE 6 was released? NS 4.7 and IE 5.5 were the major browsers. I ran into a great number of poorly written browser sniffers that read the USER_AGENT and MAJOR_VERSION, determined that my browser was neither NS 4.x nor IE 5, and alerted me to upgrade to a more modern browser. Nothing says “I'm clueless“ like telling someone with the latest browser they need to “upgrade“ to the older version.
The best way to determine support for what you need is to actually test for the creation and presence of objects and methods. This takes some client-side scripting, but it's not hard. And you'll have a definitive answer. I reference a good example in my previous blog post listed above. No guesswork, and it's actually much easier, and much more flexible. If you encounter a browser not listed in the browscap.ini, you will know if it supports what you need, and that client will be able to take advantage of the richer and more advanced features of your website.
For small needs, a small amount of client-side scripting will probably be sufficient. But, if you have needs for advanced detection, check out BrowserHawk ate http://www.browserhawk.com.
Every day or so, I make it a point to check out the new controls in the ASP.NET Control Gallery. Right there on top today is this one:
Previously known as ASP.NET Forums, Community Server is a knowledge management and collaboration platform that includes a powerful forums engine, a blog engine, and a photo gallery engine. Used by Microsoft, Autodesk, Intel, and many other companies as the platform of choice for building communities.
More information: http://www.asp.net/ControlGallery/ControlDetail.aspx?Control=2443&tabindex=2
After being in beta for a while, the Issue Tracker Starter Kit has now been released, with both VB.NET and C# (only C# was available in beta), and SDKs (for Web Matrix) or VS.NET projects.
You'll find it at the top of the page: http://www.asp.net/Default.aspx?tabindex=8&tabid=47
The Issue Tracker enables project teams to keep track of outstanding issues, assigned owners, history and related issues through a Web-based interface.
http://www.koders.com
From the site:
Koders is an open source search engine. It enables developers to easily search and browse source code in thousands of projects hosted at hundreds of open source repositories.
Koders.com: Find (open) source code fast
source: http://www.newsforge.com/article.pl?sid=04/11/01/1927212
How it works
Let's say you want to write a GPLed online card game, like bridge, in C. And wanted to see how others had handled shuffling the cards. On the Koders.com site, you could search for "shuffle cards" with the license option set to GPL and the language set to C. Then click on the Search button.
The results screen shows one hit: a program called server.c from the UNO - Card Game project on SourceForge. (SourceForge is another OSTG property, like NewsForge.) I find both the project and the specific program linked to from the results page. Clicking on server.c, I see plenty of meat for my own project. Very impressive.
After giving the site a spin, I sat down with Koders.com founder and chief architect Darren Rush.
This is one snazzy WinForms control, and you can't beat the price:
PureComponents NicePanel for .NET WinForms V1.0
http://www.purecomponents.com/products/nicepanel/
PureComponents NicePanel is container component of active look, which will enrich your applications. NicePanel has header and footer, which widen its usage. Using gradient fill and color schemes you can easily and quickly set nice look, which can be further enhanced with images from integrated Clip Art or from file.

I encountered this error while working with some dynamic SQL in a stored procedure:
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
The solution is simple, and was a 'Doh!' moment after I figured it out. Not much help in Google when I looked, so here's for the next poor soul.
sp_ExecuteSql accepts a list of parameters, the first two of which MUST be either ntext, nchar or nvarchar. The @statement parameter is declared as ntext, so an implicit conversion is performed if you use either nchar or nvarchar.
If you are building dynamic SQL, you should declare your parameter as one of the accepted types (e.g., declare @sql nvarchar(4000)). If you are using a direct statement as your query, you need to preface it with the letter N, as seen below.
incorrect:
execute sp_executesql 'select * from pubs.dbo.employee where job_lvl = @level',
'@level tinyint',
@level = 35
correct:
execute sp_executesql N'select * from pubs.dbo.employee where job_lvl = @level',
N'@level tinyint',
@level = 35
More information is in the SQL Server Books Online, or at the following link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_ea-ez_2h7w.asp
I was building dynamic SQL, and had declared the SQL parameter as varchar. Doh!
Hide your e-mail address from SpamBots with this free tool. It turns your e-mail address into a gif:
http://www.whois.sc/info/webmasters/email-protection.html
Anyone know if there's a .NET control that does this?
Developed specifically for the DevDays 2004 Smart Client track, IssueVision provides a sample help desk management application.
source: http://www.windowsforms.net/Applications/application.aspx?PageID=40&tabindex=9
Includes XP Themes, custom controls, hashing and encryption, and deployment.
Introducing the RoundedCorner Web Control
source: http://aspnet.4guysfromrolla.com/articles/072804-1.aspx
...I decided to create a custom ASP.NET server control that would utilize the dynamic image-creation capabilities of GDI+ to create the corner images for me. The result is an ASP.NET Web control, which I call RoundedCorners, that you can drop on an ASP.NET Web page, set a few properties, and be presented with a nifty box with rounded corners, as shown on the right. In this article we'll examine how to use the RoundedCorners Web control in a page, as well as take a peek under the covers at the control's source code.
For those of you working as independent contractors, what's been your experience with organizing your business? LLP? LLC? Sole Proprietor? Are there benefits to one over the other? For liability purposes, LLP or LLC look more attractive than SP.
Also, what about insurance? Does anyone carry special or extra liability insurance? Feedback greatly appreciated.

Click here to see this product at Amazon.com (Associate link)
Microsoft Certification Exam Voucher
• Valid for any Microsoft Certified Professional (MCP) exam (except beta exams). Visit the URL listed on the front of the voucher for a complete listing of available exams
• Good at over 1,300 Pearson VUE™ Authorized Centers throughout the US and Canada
• You must register for your exam online – via the URL listed on the voucher
• Voucher expires April 30, 2005 and cannot be extended or refunded
• Note: voucher ships in a CD-jewel case, but contains no CD
This post has been moved to http://aspadvice.com/blogs/rjdudley/archive/2005/03/17/2568.aspx. Please update your bookmarks. Thanks!
Stefano has some interesting stats in his Screen Resolution and design... post. A large part of the increase in higher resolution monitors is due to the rapid increase is LCD and plasma displays being sold (which I think are now outselling CRT displays--good news for us all with small desks). Part of the LCD/plsma market is laptops, and Stefano's stats miss something important--screen size. Laptops have a much smaller screen size, and in a number of cases are the primary or only computer. Although designers can design for higher resolutions, it doesn't necessarily mean they can make larger pages.
My wife has one of those awesome little Sony Vaio TR-1A laptops. Amazing monitor, and it has the dimension ratio of an HDTV. But it's the size of a paperback book--such a small screen size! Navigation can be a pain on sites that were built for 17” monitors at 1024x768.
I've become the keeper of an MSDN Enterprise subscription. It's in two binders that are starting to swell in a scary manner. Can I discard some of this stuff? The main culprits seem to be the monthly index and quarterly library. Any reason to keep anything other than the latest editions? I'm hesitant to get rid of anything else, since the SDKs, servers, tools, etc. have the potential to be pretty useful.
Please help me--how do you keep your MSDN subscription organized?
The idea of connectionstrings.com is to provide an easy reference for connection strings.
All connection string and enumeration info are collected from other internet sites, books, helpfiles, Microsoft msdn etc. A lot of info is sent in by developers from all arround the world (thank you!).
Hat tip: http://www.wwwcoder.com/main/parentid/111/site/3122/68/default.aspx
FxCop, Your .NET Cop
FxCop is a rule based engine which helps the development team to enforce best practices of the .NET platform and development standards. This article will help you understand how FxCop works and how you can make use of it in your ongoing .NET projects. You can download FxCop from http://www.gotdotnet.com/team/fxcop/. This tool is provided by the FxCop team from Microsoft for free. (The current version available at the time of writing is 1.30.)