Running the Same Query Against Multiple Databases
One of my clients has a data-driven Software as a Service (SaaS) web application that is used by a dozen different customers. In particular, this client of mine has a web application that's used by various clinics and hospitals to track, schedule, and bill health care-related activities. As discuss......
The Eight Commandments of Source Code Control
Feel free to print out a copy of these commandments and tape them to your coworker's monitor.
You shall check in early and check in often. You anger your coworkers when you check out a file and insist on keeping it checked out until some future point in time that is measured using variables that......
Tracking User Activity
Many websites that support user accounts, such as the ASP.NET Forums, include information as to how what users are currently online and what they are doing. For example, the Who Is Online page on the ASP.NET Forums shows the users currently online, what forum they're viewing, and how many minutes i......
Novermber's Toolbox Column Now Online
My Toolbox column in the November 2008 issue of MSDN Magazine is avaiable online. The November issue examines:
DayPilot - DayPilot is an AJAX-enabled calendar and scheduling ASP.NET Web control that offers functionality not unlike what you find in Outlook and other desktop-based calendar applica......
Visual Studio's Property Window Not Refreshing in the Designer
Rick Strahl recently posted about some his frustrations with the Visual Studio 2008 Designer - HTML Mangling with Literal Controls in the <head>. While I've not had Visual Studio mangle my pages' markup when switching between the Design and Source views like Rich has, I have had one especiall......
October's Toolbox Column Online
My Toolbox column in the October 2008 issue of MSDN Magazine is avaiable online. The October issue examines:
SQL Data Generator - Quickly generate unbounded amounts of real-world test data for your database with a few points and clicks of the mouse.
Blogs of Note - Dare Obasanjo - Dare is a Pro......
OUTPUTing Data from the Just-Inserted, Updated, or Deleted Row(s)
Between work and diaper changes I've been reading Michael Coles's book Pro T-SQL 2008 Programmer's Guide, and found this little gem (pg. 527-528):
The OUTPUT ClauseYou can use the OUTPUT clause with the the INSERT, UPDATE, DELETE and MERGE DML statements. ... The OUTPUT clause returns informatio......
Transferring Large Files
Every couple of weeks or so I seem to have a need to transfer (or receive) a relatively large file to another colleague or client. It might be a database zipped up into a 50 MB file, artwork totalling hundreds of megabytes, or various DLLs and source code. Over the course of my career I have used t......
Search Your Site Using Google's Custom Search Engine
Remember when people used to debate what search engine was the best among the bunnch? Do you remember back in the day when Yahoo! differentiated itself from other search engines by having actual human beings catalog, summarize, and rate large swaths of the World Wide Web? Today, search is a commodi......
September's Toolbox Column Online
My Toolbox column in the September 2008 issue of MSDN Magazine is avaiable online. The September issue examines:
LINQPad - A free stand-alone LINQ editor/tester created by Joseph Albahari, author of C# 3.0 in a Nutshell. LINQPad is like SQL Query Analyzer, but for LINQ.
Blogs of Note - Rob Wali......
The Cast is Off! I've Got Two Functional Hands Again!
On July 15th I broke my right hand playing basketball, which resulted in a cast that severely limited the mobility and dexterity of my right hand and fingers. Today the cast came off! I am back to having all ten fingers available for typing, writing, eating, dressing, and piano playing! Granted, th......
Problems Installing SQL Server 2008 After Installing Visual Studio 2008 SP1? Make Sure You've Updated or Uninstalled Visual Web Developer!
Certain features of Microsoft SQL Server 2008 require Visual Studio 2008 SP1. If VS 2008 SP1 is not installed the SQL Server installation will abort with the following error message: "A previous release of Microsoft Visual Studio 2008 is installed on this computer. Upgrade Microsoft Visual Studio 2......
Final Two Master Page Tutorials Published
The final two tutorials (#9 and #10) of my Master Pages Tutorial series are now available on www.asp.net. These tutorials explore two advanced master page scenarios:
Specifying the Master Page Programmatically [VB | C#] - in most cases a content page's master page is specified statically throug......
August's Toolbox Column Online
My Toolbox column in the August 2008 issue of MSDN Magazine is avaiable online. The July issue examines:
FileHelpers - .NET includes XML serialization capabilities, which makes it easy to load an XML file into a collection of objects and to save object state back out to an XML file. If you need ......
Email Verification for New Accounts via ASP.NET's Membership Framework
In my last blog entry, The CreateUserWizard and Validation ErrorMessages, reader Andrei Rinea commented:
I wish the whole Membership set of controls would be replaced with better ones. Very often I need to have an authentication/authorization mechanism that doesn't need a username but an e-mail.......
The CreateUserWizard and Validation ErrorMessages
The CreateUserWizard control introduced in ASP.NET 2.0 makes it easy to create a new user account on a website that uses the Membership framework. (See my Creating User Accounts tutorial for more information on using this control.) Out of the box, the CreateUserWizard control offers a fully functio......
Three New Master Page Tutorials Published
Tutorials #6, #7, and #8 in my Master Pages Tutorial series on www.asp.net have been published. These tutorials examine the interaction between the master page and its content pages:
Interacting with the Master Page from the Content Page [VB | C#] - there may be times when the content page needs......
Speeding Up FireFox When Using the ASP.NET Development Server from Localhost
I have long used FireFox as my default browser for surfing the web, but I typically test my ASP.NET pages on Internet Explorer for a couple of reasons:
Some of the larger software projects I work on are developing intranet applications, where all users' browsers are fixed (IE 6 for one client, I......
July's Toolbox Column Online
My Toolbox column in the July 2008 issue of MSDN Magazine is avaiable online. The July issue examines:
ScrewTurn Wiki - a wiki is a web application whose content is maintained by its users. Adding a wiki to your site is remarkably easy with ScrewTurn Wiki, a free, open-source ASP.NET wiki applic......
Random Grammar/Style Question
When writing my Security Tutorials for www.asp.net, I often wrote sentences like the following: “To log in to the site, ...” Although sometimes I'd write it, “To log into the site, ...” and other times I'd use, “To login to the site...”
I can't say with certainty whether any one of these three are......
The Economics Behind Writing Subsequent Editions (for Computer Trade Books)
The economics behind the college text book must be interesting. I've not written any textbooks, so my comments here are based more on assumption than knowledge, but what I but what always intrigued me - whilst a college student, at least - was how authors would release different versions of books a......
Not NotNorthwind
Scott Hanselman, one of my favorite bloggers, has expressed his deep disdain for Northwind.
I'm just sick of Northwind. Sick to death of the Northwind Database. You know, this is the Products, Categories, Suppliers, yada yada yada sample database that you've been seeing in Microsoft demos since ......
Two New Master Page Tutorials Published
As I noted in an earlier blog post, in May the first of my Master Pages tutorials were published on www.asp.net. Two new master page tutorials were put online today:
URLs in Master Pages [VB | C#] - one challenge with master pages is that the master page and linked resources - image files, hyper......
June's Toolbox Column Online
My Toolbox column in the June 2008 issue of MSDN Magazine is avaiable online. The June issue examines:
Browser Compatibility Testing Tools - testing the myriad of browser versions, operating systems, color depth/screen resolution combinations, and existence of plugins like Flash make thorough br......
A New Tutorial Series on Master Pages
Over the past two years I've been working on a number of step-by-step tutorials for Microsoft's www.asp.net website. The two complete tutorial series are:
Working with Data in ASP.NET
Website Security: User Accounts, Membership, Roles, and Form Authentication
I'm happy to announce a new tutori......
Warning the User When Caps Lock is On
After my first batch of Security Tutorials were published on www.asp.net, a reader emailed me asking if it was possible to display some sort of warning if the user has Caps Lock on whilst entering their password into the Login control. While JavaScript cannot indicate if Caps Lock is on or not, you......
May's Toolbox Column Online
My Toolbox column in the May 2008 issue of MSDN Magazine is avaiable online. The May issue examines:
OmniAudit: a tool for creating SQL Server audit trails. OmniAudit offers a very slick and intuitive user interface for defining what tables and columns to audit and then generates the triggers an......
Final Three Security Tutorials Published
As noted in previous blog entries, I've been working on some tutorials for the www.asp.net site on the topics of forms authentication, authorization, membership, and roles. The first set of tutorials covered security basics and examined forms authentication in detail; the second set looked at the M......
Boggle, Anyone?
My immediate and extended family enjoys playing games, and one of the favorites is Boggle. Boggle is a word game trademarked by Parker Brothers and Hasbro that involves several players trying to find as many words as they can in a 4x4 grid of letters. At the end of the game, players compare the wor......
Three New Security Tutorials Now Available
I've been working on some tutorials for the www.asp.net site on the topics of forms authentication, authorization, membership, and roles. The first set of tutorials covered security basics and examined forms authentication in detail; the second set looked at the Membership system and the SqlMembers......
March's Toolbox Column Online
After a three month hiatus, I am back to authoring the Toolbox column for MSDN Magainze. (Thanks to James Avery for authoring the column the last three months.) There has also been some changes to the content you'll find in Toolbox. When the column debuted in January 2006, it was designed to examin......
Five New Security Tutorials Now Available
As I blogged about earlier, I've been working on some tutorials for the www.asp.net site on the topics of forms authentication, authorization, membership, and roles. The first set of tutorials covered security basics and examined forms authentication in detail. The second set of tutorials are now a......
Upcoming Speaking Engagements and Training
I have a few speaking engagements and training events coming up in the next few days and months here in beautiful San Diego.
Local User Group Talk: Storing Binary Data in an ASP.NET Web Application - Tuesday, February 19th, 2008I'll be speaking at the ASP.NET SIG here in San Diego. The meeting, he......
Exploring the Code for the New .NET 3.5 Classes
I often use the free and awesome decompiler Reflector to peer into the source code of Microsoft's .NET Framework. It's an indispensable tool. However, I had a little difficulty viewing the underlying source code for some of the new .NET 3.5 classes. In particular, for a recent article I was interes......
User Group Talk: Storing Binary Data in an ASP.NET Web Application
Next Tuesday, February 19th, I'll be speaking at the ASP.NET SIG here in San Diego. The meeting, held at Microsoft's office in UTC on La Jolla Village Drive starts at 6:30 PM with announcements and free pizza and soft drinks!!! My talk begins at 7:00 PM.
My talk looks at storing binary data in an ......
Years of Experience Does Matter
Jeff Atwood's most recent blog post is titled The Years of Experience Myth, and argues that too many companies place too much emphasis on how many years of experience a developer has in a certain technology. Jeff writes:
It's been shown time and time again that there is no correlation between ye......
My First Three Website Security Tutorials Now Live
Over the past few months I've been writing a series of ASP.NET security tutorials for the www.asp.net site, much like my Working with Data tutorial series. This tutorial series focuses specifically on forms authentication, authorization, Membership, and Roles (using the SQL Server providers).
Toda......
Adding Up and Down Arrow Images to a Sortable GridView
Prior to ASP.NET 2.0, I wrote an article on 4Guys showing how to add up and down arrow images to a sortable DataGrid's column headers to visually depict the column and direction the grid was sorted by (read the article; see a live demo). In particular, my approach required the page developer to add......
My Working with Data Tutorials in Video Format
One of the most frequent requests I receive regarding my Working with Data in ASP.NET tutorial series is to have a video-based version. Some people learn best by reading, others by watching. Unfortunately, I much prefer writing to narrating and producing videos. I created a 'test video' using Camta......
Another Potential Gotcha When Creating a Website that Allows Users to Share Uploaded Files
Many web applications I've worked on have had a requirement along the following lines:
A user should be able to upload a file from their computer, and other users of the site should be able to download and view these documents.
The specifics differ from project to project. For some projects, on......
Disabling the Submit Button Until a CheckBox is Checked
A little over a year ago I created two ASP.NET validation controls that are missing from the ASP.NET Toolbox: CheckBoxValidator and CheckBoxListValidator. As their names imply, these validation controls validate a single CheckBox (ensuring its either checked or unchecked, depending on a property se......
ASP.NET Version 3.5's Web.config File
If you have had a chance to try out Visual Studio 2008, you likely have seen the rather bulky Web.config file Visual Studio generates when creating a new ASP.NET website or when converting an ASP.NET 2.0 website to 3.5. In one of Scott Guthrie's blog entries a commenter named Mike asked Scott for a......
Visual Studio 2008 and ASP.NET 3.5 Released
In case you haven't heard, Microsoft released Visual Studio 2008 and ASP.NET 3.5 today. The Standard, Professional, and Team Systems versions of Visual Studio 2008 are available for download to MSDN Subscribers. For those without an MSDN Subscription, you can download the free Visual Web Developer ......
4GuysFromRolla.com Abstractly Represented via Stick Figure Drawings on Explodingdog.com!
I have long been a fan of Sam Brown's stick figure art, which is on display at his website, explodingdog.com (RSS). So much so that I have purchased an explodingdog t-shirt in the past as well as two of his books. Sam has an interesting way of taking a title and expressing it visually in a way that......
November's Toolbox Column Online
My Toolbox column in the November 2007 issue of MSDN Magazine is avaiable online. The November issue examines three products:
Spread for Windows Forms - an Excel spreadsheet-like grid for Windows Forms applications.
Peter's Date Package - a collection of ASP.NET controls designed specifically t......
Returning the Just-Inserted ID Value Using Typed DataSets
Probably the most frequent question I field from readers of my Working with Data in ASP.NET 2.0 tutorial series is, How do get the just-inserted ID value from the DAL? This is an important area, and one that I should have authored a tutorial on. There are many situations in which the just-inserted ......
Four New "Working with Data in ASP.NET 2.0" Tutorials Available - Caching
My Working with Data in ASP.NET 2.0 tutorial series has been updated with four new tutorials on caching data. Caching is a technique that has long been used by computer scientists to improve an application's performance. ASP.NET 1.x introduced a powerful caching API that ASP.NET 2.0 has built upon.......
June's Toolbox Column Now Online
My Toolbox column in the June 2007 issue of MSDN Magazine is now avaiable online. The June issue examines three products:
GhostDoc - a free Visual Studio Add-On that helps automate the repetitive task of adding XML comments.
Authorize.NET - one of many payment gateways that you can use to star......
Musings About How Not Write a Technical Book
Jeff Atwood recently published a blog entry titled How Now to Write a Technical Book, in which he compared Charles Petzold's latest book to Adam Nathan's. In short, Charles's book - Applications = Code + Markup - lacks the color, diagrams, screen shots, and structural elements (like bullet points, ......
My Upcoming Hiatus
Over the next several months there will likely be a severe shortage of blog posts here at ScottOnWriting.NET. My wife and I are taking a bit of a sabbatical this summer and doing a lot of traveling and hiking. During this stretch - from about now until late September - my ASP.NET work will be curta......