An interview with Shawn Wildermuth
by Douglas Reilly
Shawn Wildermuth is the “go-to guy” for information on ADO.NET. He is the author of Pragmatic ADO.NET: Data Access for the Internet World and numerous articles, is a Microsoft MVP, and works as an independent consultant in Atlanta.
Shawn’s web site, The ADO Guy, is a good resource for developers looking for answers to questions about ADO and ADO.NET. The site also lists interesting blogs, books and sites that are among Shawn’s favorites.
The following questions were answered by Shawn via email.
Doug: One of the biggest issues among SQL Server developers these days is whether or not to use stored procedures. Where do you stand on the issue?
Shawn: Stored procedures, stored procedures, stored procedures! They are important for myriad reasons: improved performance, isolation of the database code to allow tuning without affecting application code, and higher security.
Doug: You provide code samples in your ADO.NET book in both VB.NET and C#. Do you have a favored language for managed code?
Shawn: I prefer C#. I think I have to say that since I am a Microsoft C# MVP. But C# is more my style because I come from a C++ world. I work in both languages and they are more similar than different. My only pet peeve with VB.NET is that Option Explicit and Option Strict are not on by default.
Doug: I began working on server-based development in general and database-related projects in particular because I was not good at developing user interfaces. How did you start working on databases? Was it a natural fit?
Shawn: I do database work because that’s how I think. Most applications are database applications in one sense or another.
I started in programming at my first job when I was 16. I worked with a little-remembered FMS-80 database on a multi-user CP/M-style machine-S-100 for the codgers out there-so my first taste of professional development came in databases. It was a natural fit as I continued my career.
Doug: How did you learn about databases?
Shawn: I learned by doing. That is my style. I’ve been at database development for 20 years. I have worked with SQL Server since 4.2 and am an XBase programmer from the days of old. I learn about databases by doing a lot of projects. I read most books I can get my hands on about the internals of specific engines. One of my favorites and a must have for SQL Server developers is Kalen Delaney’s Inside SQL Server 2000.
Doug: Where in the development world do you think XML best fits? What have you used it for, in addition to web services?
Shawn: I differ from others in the industry in that I think XML is great structured storage with good support for interoperability and toolsets, but still just structured storage.
One of the most important XML-related technologies is XML schema documents. I use these almost daily to describe data structures. XML has given us a language to describe structure and a way to create structured storage so that we do not have to learn a new technology for every project. That’s the power of XML.
Doug: You mentioned in your weblog your frustration with an ASP.NET 2.0 project and not finding a convenient place in Visual Studio to configure compile options. Other than the project model for ASP.NET applications, is there anything else that will make a “Visual Studio 2005 annoyances” sort of book?
Shawn: Because VS 2005 is not a finished product, it’s hard to say. The specific annoyance you mention will be fixed in the coming CTPs and the released product, so it would be premature to complain in a book about what I don’t like. VS 2005 is in beta, so now is the time to complain about bugs and make suggestions so the product can be fixed before it is released.
Doug: Have you read any good database-related or software development books lately?
Shawn: I haven’t read many database books recently, but I try to get everyone I know to read Joe Celko’s SQL for Smarties: Advanced SQL Programming. Anyone who wants to understand more than SELECT * FROM Foo will get a lot out of the book. In .NET land, I really like Fritz Onion’s Essential ASP.NET and Chris Sells’ Windows Forms Programming in C#/VB.NET.
Doug: Have you ever “invented” anything, only to discover that something better already exists?
Shawn: I didn’t invent it, but I worked with DevelopMentor and Chris Sells on their Gen<X> product. Gen<X> was a code-generation tool for Visual C++. We built a code-generation engine based on the ASP-style markup (<% %>). We did some cool stuff like a C++ object model to enable you to insert into existing C++ code, full round-trip engineering, and a way to read a current project and determine what wizard was used to generate the code.
We did some very interesting work, but at the end of the day we were too early. The .NET PDC hit in the middle of our project so the focus in the community was less on C++ than on .NET. I see products like CodeSmith and wonder what might have been.
Doug: What do you think about using VB.NET or C# for stored procedures, user-defined functions and triggers? What guidance can you give to people looking to leverage the ability to use procedural code in SQL Server 2005?
Shawn: Procedural code in SQL Server 2005 is a cool new feature, but I expect it to be way overused in the next year. The sweet spot for managed stored procedures, functions and triggers is when you are doing work that is not a good fit for T-SQL. T-SQL does not handle string manipulation or math functions well, for example, so it’s a good fit for managed code.
If your stored procedures are simply retrieving data, managed code is going to be less efficient. One place in which managed code is useful is in creating custom aggregators. I think this is one of the sweetest spots for managed code.
Doug: SQL Server 2005 represents a huge change from SQL Server 2000. What is its coolest new feature?
Shawn: The best feature no one has heard of is the service broker. It enables you to do asynchronous work inside SQL Server, whereas in the past you would have had to setup and use MSMQ and a more complicated infrastructure to do the same work. Everyone should learn to use the service broker. Period.
Doug: With the dramatic change in SQL Server 2005, users may have a difficult time finding the tools they need. Which tool will SQL Server 2000 developers be looking for in the new release?
Shawn: The first thing users will be confused by is the lack of SQL Query Analyzer and SQL Enterprise Manager. Microsoft has merged these two tools into one called SQL Server Management Studio. It isn’t apparent at first that SSMS is both tools. I think after working with SSMS for a while, users will prefer it to the old tools. I do.
Doug: There has been talk about using CLR languages for developing stored procedures and new tools, but for many developers and DBAs, the biggest changes will be in T-SQL. What new T-SQL features are you most looking forward to using?
Shawn: Hands down it is exception handling. Error handing in T-SQL is a pain and try/catch blocks will make it much easier.
Doug: What music do you listen to these days?
Shawn: I am a musician, having played and recorded music for more than 20 years. I have to make sure I have 40 gigs of music with me wherever I go, which is why a five-gig IPod never made sense to me.
My musical taste is a bit fickle. I’m currently listening to Maroon 5, an old David Gilmore album from the ’80s, Bright Eyes, Dar Williams, and for my funny bone, Steven Lynch. He has a couple of albums I love.
Do you know someone who deserves to be a Database Geek of the Week? Or perhaps that someone is you? Send me an email at email@example.com and include “Database Geek of the Week suggestion” in the subject line.