None of SQL Server's upcoming programming-productivity enhancements will have more impact on DBAs than the .NET Common Language Runtime (CLR). By integrating the .NET CLR with the new release of SQL Server, code-named Yukon, Microsoft will finally boost SQL Server's programmability to a level that Oracle and IBM DB2 have enjoyed for a few years through their built-in integration with Java. This new capability, however, begs the question, "Which .NET language should DBAs learn?"

Unlike IBM and Oracle database offerings—which let you program in any language, as long as it's Java—the multilingual .NET CLR really does give you a choice. All DBAs will be relieved to know that T-SQL isn't going away; Microsoft will continue to support it in Yukon and future releases of SQL Server. In addition, the current .NET CLR supports more than 20 dialects, including managed C++, the new C#, and Visual Basic .NET.

If all your applications are homegrown and you have complete control over the code base, you might be able to ignore SQL Server's new language capabilities. But that probably won't be an option for companies running third-party software. To provide additional capabilities and increased compatibility between their applications and different databases, third-party application vendors will quickly incorporate these new programming capabilities into their products. So for most SQL Server DBAs, the question isn't if they'll need to learn a new CLR language but rather which language to learn.

In reality, the choice boils down to C# or Visual Basic .NET. C# is Microsoft's de facto standard .NET language, while Visual Basic .NET is the successor to Visual Basic (VB) 6.0, by far the most popular language for corporate application development. In practical capabilities, C# and Visual Basic .NET are essentially equal. Some argue that C# is more powerful, but C#'s extra capabilities are in areas that have little or no practical value to application programmers. Arguments for adopting C# also include the fact that Microsoft used C# to develop the CLR and other recent products, including SQL Server 2000 Notification Services. However, Microsoft server products—including SQL Server and Exchange Server—and core applications such as Office are built on unmanaged C++. And Microsoft won't be using C# for any of these products in the foreseeable future.

On the other hand, Visual Basic .NET is ostensibly related to VB—implying that it shares VB's simplicity. And a few features do make Visual Basic .NET simpler to use than C#. However, the differences between VB and Visual Basic .NET are significant, making Visual Basic .NET essentially a new language with familiar syntax.

Which .NET language is best for you has less to do with the languages' capabilities and more to do with your current code base. If your applications are based on C++, then learning C# is a logical step. However, with the notable exception of Internet Server API (ISAPI) applications, most business applications are written in VB or its close cousin, Active Server Pages (ASP). For these businesses, Visual Basic .NET's VB-like syntax make it the better choice. Fortunately, C# and Visual Basic .NET are very similar, so learning either language will help you readily understand the other.