About this site
I started this site as somewhere to store bits and pieces that I see asked frequently in the forums at www.asp.net. Rather than type the same answer to a question over and over, I reckoned that it would be easier to provide a fuller answer here, then link to it.
Disclaimer
You are welcome to link to/copy/borrow/steal/bookmark or otherwise make use of any of the code you find here
if it is useful to you, entirely at your own risk. I will not be held responsible
for example, for any delays in your project caused by you trying to fit bits of my code
into your application without understanding what you are doing. Bear in mind
that snippets in particular are not necessarily complete code modules, and may need
to be placed in a class or method to get them to work. If you have problems
getting anything you find here to work in your environment, please do not contact
me. I do not provide support
[unless contracted to at my regular daily rate :)]. The best place to ask questions about errors in your ASP.NET code is at
forums.asp.net. If you would like to contact
me on any other matter, please feel free to do so using the form on the
Contact page.
Unless otherwise stated, none of the snippets or examples here necessarily conform
to "Best Practice", whatever that is. They may not include structured exception
handling, for example, or be in any way optimised, or employ a level of code or
layer separation to please some people. If you are sufficiently offended by
the sight of an SqlDataSource control on a page, or other such heinous sin, please
don't waste your time contacting me with your rant or diatribe. I would otherwise
welcome messages about technical inaccuracies you may spot, or typos.
A bit about me
I'm no guru. Despite that (or perhaps because of it) I was awarded Microsoft MVP for ASP/ASP.NET in 2008.