text: An interview with Don Demsak (aka DonXML)
  Don Demsak is a developer and consultant who serves the developer community by his participation in user group activities and Code Camps throughout the area. Don also loves XML and is a tireless advocate for using it in the right way. He is one of a relatively small number of XML Microsoft MVPs worldwide, and uses "DonXML" as his nom de plume on the web, an indication of his general area of interest. In addition to using XML in interesting ways, Don is also familiar with SQL Server databases.
  The following questions were asked by me and answered by Don via email.
  Do you know someone who deserves to be a Database Geek of the Week? Or perhaps that someone is you? Send Doug an email and include "Database Geek of the Week suggestion" in the subject line.
  Doug: How did you become a software developer?
  Don: Growing up, I never thought about programming. I was into chemistry, physics and calculus, and my high school guidance counselors told me that "data processing," or programming, was for kids who were not going on to college. So I never had the opportunity to take a programming class.
  In college I had to take programming as part of the metallurgical engineering program, and I found that I liked it as much as the other subjects, although it was a whole lot easier. I dropped out of school and eventually went to The Chubb Institute, a local programming school, where I learned to program on IBM mainframes. It was the early 1990s, which was the end of the mainframe era, but I’m glad I was a part of it since a lot of what I learned applies directly to the stateless programming of the Internet.
  Doug: How did you learn about databases and XML?
  Don: The first database I worked on was VSAM, and then DB2, both IBM mainframe staples. When I switched from the mainframe to Microsoft-based operating systems, I picked up SQL Server and Oracle. I figured, SQL is SQL right? Well, not really, but it’s close enough. SQL really made my head hurt, but eventually I got the hang of it. It is so different from your typical procedural programming.
  That led to XML. I bumped into it through a coworker at a client’s site, and in late 1999 I went out and bought Elliotte Rusty Harold’s XML: Extensible Markup Language. It took a while to really understand XML, but once I got it, I understood the power behind its simplicity.
  I made the common mistake of trying to make objects XML and XML as objects, and then learned what I was really trying to do was declarative programming. (SQL is a type of functional programming, which is a type of declarative programming.) I then got into Scalable Vector Graphics, which is an XML-based language for describing vector graphics. That got me involved with the W3C and XML-based languages like XSLT and SMIL.
  Doug: XML and the associated technologies are deceptively simple. One of the benefits of XML is that anyone can look at the XML file and understand what’s in there. To use XML as a developer, however, you need to learn a little more. Can you think of a good way for a developer new to XML to become comfortable with it?
  Don: The most important thing to remember when working with XML is that it is not based on procedural programming techniques, which is part of the reason it is so simple and intuitive. So I tell people to forget most of the programming they learned and start with a fresh outlook. I say most of the programming because SQL is very similar to XML in that it is a declarative language. Another important thing to remember is that XML is just data, just like any other piece of data you will find in a database. XML is not a version of an object, and treating it as such will only cause you problems. Think of XML as a message and it will make things easier.
  Doug: When you program in .NET, do you favor VB.NET, C# or some other language?
  Don: C# is my favorite .NET language for development work, although I was a VB6 developer. What I tell people who want to learn .NET is to pick the language that is the opposite of what they are used to. The idea is that it is easier to drop your old, bad programming habits when you switch to a brand new syntax.
  Another reason I prefer C# is that it was designed with the CLR in mind, and it did not have to worry about being backward compatible with an older version of the syntax. That’s been one of my pet peeves with VB.NET—the crazy stuff they had to do to make the language backward compatible with the VB6 syntax. The lack of namespace support by default is a big one.
  Namespaces are very important in .NET, and you really have to go out of your way in VB.NET to control the namespace of a given class. I know it is mostly an issue with the IDE versus the actual language, but most developers code VB.NET within Visual Studio.
  Doug: Which users groups are you active in, and why did you get involved with them?
  Don: I participate in both the Northern New Jersey .Net User Group and the New Jersey Microsoft Developers Group . Back in the late 1990s New Jersey had a great SQL Server group, and we have been trying to get it back up and running. Unfortunately my schedule has been booked and I haven’t been able to dedicate a lot of time to that effort.
  We want to create a group dedicated to SQL Server developers, not the support folks, but the problem is trying to fit it around all the other user groups in the state. I think we will try to meet quarterly on a Saturday morning, for about three hours, so that we don’t conflict with other groups. We also want to pull from a commuting area larger than a 20-mile radius, which is what we would be limited to if we held it on a weekday because of the heavy commuter traffic.
  My philosophy on user groups is that they are a great way to create a thriving developer community, and if there is a thriving developer community, more companies in the area will be willing to adopt the framework the community uses. As a consultant, that means more potential and knowledgeable clients, which is good for business. Plus, I have a whole lot of fun hanging around with other people who enjoy this stuff. Where else are you going to bump into .NET developers, other than at work?
  Doug: You have spoken at a number of Code Camps. What would you like people to know about them and your experience speaking at them?
  Don: Code Camps are the greatest thing to happen to the .NET world since the development of .NET itself. They are free conferences that are by developers for developers, and they are only held on weekends so most everyone can attend. They are a little bit user group, a little bit conference, with a whole lot of Chris Sells’ XML DevCon thrown in.
  The idea behind Code Camps is to have a smaller-scale event at which the speakers, who are unpaid volunteers, are mainly local developers rather than professional speakers. What makes a Code Camp different from a typical conference is that everyone in the audience is encouraged to participate in the talks. I always ask people who attend my talks to speak up and ask questions. It makes for a more dynamic—and challenging—presentation, but the attendees are better off for it.
  The most important aspect of Code Camps is giving people who are involved in day-to-day development a chance to speak. It is very important for the .NET community to learn from these developers. I encourage people to speak about something cool or unique that they have been doing at their day jobs, and not to worry if their presentation skills are not at the Don Box or Scott Hansleman level. I’ve offered to mentor anyone who wants to speak at a Code Camp but isn’t sure how to go about it.
  Doug: Have you read any great database or XML-related books lately?
  Don: Hilary Cotter’s Guide To SQL Server 2000 Replication is an excellent book for anyone who needs to learn the gory details of replication. Michael Brundage’s XQuery: The XML Query Language is a great book if you’re interested in learning Xquery.
  Doug: Have you had a chance to work with the beta versions of Microsoft SQL Server 2005 and Visual Studio 2005? What do you think about using VB.NET or C# for stored procedures?
  Don: I’ve been working with SQL Server 2005 for a long time now, and I love the idea of using CLR within SQL Server. The problem is that this will be the most abused feature of SQL 2005. If you are using extended stored procedures in 2000, then definitely migrate them to CLR stored procedures. But if you don’t use extended stored procedures or don’t know what extended stored procedures are, then I would rethink using CLR stored procedures.
  Doug: What is the coolest new XML-related feature in the 2.0 version of the .NET Framework, or even in the Visual Studio 2005 IDE?
  Don: The XML Tools in VS2005 are probably the best new XML features of the IDE, since the average .Net developer won’t need to use XML Spy to edit XML documents. In the .Net 2.0 Framework, the new XSLT engine is my favorite new feature. The XSLT engine compiles XSLT down to IL, which enables you to debug your XSLT from within VS. It’s also a lot faster then the older .NET version.
  Doug: What is the coolest XML-related feature in SQL Server 2005?
  Don: The coolest XML feature is XQuery. It combines a more SQL-like language with XML querying (think XPath), and produces a more natural language for SQL developers to use to query XML.
  The thing I’m most excited about in SQL 2005 is the new OLAP engine. Hopefully they have fixed the lazy aggregation bugs from SQL 2000, so that I can actually see my wife more often than while we are getting ready for work. She is an OLAP development DBA, and the company she works for has taken SQL Server OLAP to the extreme, and they seem to always run into some rare lazy aggregation bugs, which often means working overnight to fix and reload large OLAP cubes.
  Doug: Can you think of a cool tip or trick that XML developers might not know?
  Don: The best-kept secret in the XML world is the XSmiles.org project. It is an XML browser that renders compound documents, or document that contain more then one namespace, and supports these markup languages: XHTML, CSS, XSLT, XSL-FO, SMIL, SVG and X3D. Although it is written in Java, it is a very cool open-source project. I had aspirations of getting the SharpVectorGraphics project to be a .NET version of XSmiles, but I haven’t had the time to nurture that open-source project.
  Doug: What music do you listen to these days?
  Don: Music and programmers seem to go together. I like to think that it is because music is a declarative language, in which the rendering engine is the human, which appeals to the programming side of our brains. I’m into most blues-based music, which means everything from Texas blues to speed metal. Since I was a teenager for most of the 1980s, all forms of metal from that era, as well as their derivatives, are my staples. But I’m always searching for new indie bands..