Developer .NET UPDATE--Let's Speak a Common Tongue--March 17, 2006

This Issue Sponsored By
This email newsletter comes to you free and is supported by the following advertisers, who offer products and services that might interest you. Please take a moment to visit these advertisers' Web sites and show your support for Scripting Central.

SPI Dynamics

If you use Active Directory - this survey's for you!

1. Developer .NET Perspectives

  • We All Need to Speak a Common Tongue
  • 2. Events and Resources

  • SQL Server Magazine Connections, April 2-5, 2006
  • HA Solutions for Windows, SQL, and Exchange Servers
  • Take the SQL Server 2005 Pop Quiz
  • Learn How to Secure Your Email Server
  • 3. Featured White Paper

  • Automatic Exchange Deployment
  • 4. Announcements

  • SQL Server Magazine Article Library--Access Available
  • Exclusive March Offer

  • Sponsor: SPI Dynamics

    ALERT: How A Hacker Launches A Web Application Attack
    Learn how to defend against Web Application Attacks with real-world examples of recent hacking methods such as: SQL Injection, Cross Site Scripting and Parameter Manipulation. Step-by-step vulnerability testing for your own Web Applications and guidelines for establishing best administration and coding practices.

    1. Developer .NET Perspectives

    by Bill Sheldon, [email protected]

    We All Need to Speak a Common Tongue
    This week I'm going to focus a bit more on opinion than instruction. (Translation: I'm going to complain about something, but I hope to be constructive in the process.) I recently accepted an offer to become a Visual Basic (VB) instructor for a local university extension. When I got the course curriculum used by my predecessor, I immediately noticed a couple of problems. The first problem was that the topics were outdated for Visual Studio 2005. The second, more important problem was how much time was spent comparing the differences between Visual Basic .NET and VB 6.0 instead of addressing how to migrate from VB 6.0 to Visual Basic .NET. This constant comparison has, in my opinion, slowed Visual Basic .NET adoption and in some cases caused VB developers to transition to Visual C# for .NET development.

    The VB community as a whole has tended to focus too much on where VB has been instead of on where it's going. For example, about a year ago, many VB 6.0 developers staged an uprising regarding .NET adoption and the phasing out of VB 6.0 support. Some of the people who participated in this uprising were the same people who had influenced decisions on the way Visual Basic .NET was developed. In some cases, particularly with regard to object keywords, this influence has been detrimental to the VB language.

    One basic concept of .NET is that it's an object-oriented (OO) environment. VB, Visual C#, Visual C++, and Visual J# follow an OO paradigm. Most Visual C#, Visual C++, and Visual J# developers are familiar with object-oriented programming (OOP) terms such as "abstract," "constructors," "overriding," "overloading," and "static." However, .NET developers who learn just VB use only two of those key terms: "overriding" and "overloading." The result is that VB developers are left without knowing some key terms that other developers use everyday in community discussions, job interviews, generic programming classes, and other venues.

    Having disparate terms isn't just a minor inconvenience. It can cause problems with unfortunate consequences. For example, at InterKnowlogy, I conduct job interviews and have seen how some VB developers need prompting when asked about something like the purpose of an abstract class. It doesn't bother me, but the hardcore Visual C# developers who are conducting the interview with me always seem concerned about the interviewee's technical abilities--an unfair judgment, but one that occurs.

    So, as part of my back-to-basics coverage in this newsletter, I want to talk about object keywords. Let's start with the term "abstract." This keyword is common across most OO languages. You can find an excellent definition, which I'm going to quote one sentence from, in the Visual C# documentation at

    The first line in the definition says it all: "The abstract keyword enables you to create classes and class members solely for the purpose of inheritance." As those with OO experience know, this means that you can't create an instance of an abstract class. You must create your own class definition and inherit from the abstract class to get the class's limited implementation.

    So what did the Microsoft VB team choose to use instead of the common "abstract" keyword? They chose "MustInherit." On the surface, "MustInherit" seems like a very clear keyword until you look at the VB documentation at In the first line of the documentation's Remarks section, you'll find the sentence, "The purpose of a base class (also known as an abstract class) is to define functionality that is common to all the classes derived from it." (Before you write me, I know that technically this sentence is in error because it makes it sound like all base classes are abstract/MustInherit classes.)

    The first problem is that VB's definition for MustInherit doesn't match Visual C#'s definition for "abstract." This problem is made worse by the fact that Visual C# uses the "abstract" keyword at both the class and method levels, whereas VB uses a second new keyword--"MustOverride"--at the method level. The second problem is that VB documentation associates the "MustInherit" keyword with the traditional "abstract" keyword to attempt to explain its use. So why did the keyword have to change?

    Ideally, all .NET developers should be able to speak a common tongue. In reality, however, .NET developers need to learn both sets of object keywords--the VB keywords and the keywords used by most other OOP languages-- regardless of which language they specialize in. There was a great deal of concern about moving VB developers to OO development, but in this case, hindsight seems to suggest that the Microsoft VB team should have stayed with the commonly used OO terms--it would have benefited VB developers.

    So, what can be done to get all .NET developers to speak a common tongue? I think that the VB team should align many of the OO keywords in a future VB release, even if only optionally for VB development. That way, VB developers could start to use and migrate to the commonly used terms. Unfortunately, aligning the keywords won't work in every case. For example, the "constructor" keyword in Visual C# is equivalent to the "New" keyword in VB, but the "new" keyword in Visual C# is "Shadows" in VB. However, the new/Shadows keyword is one of the least-used object keyword in OO development. If everything else were aligned, it would be much less of a distraction when discussing OO concepts across .NET.

    Sponsor: iAnywhere

    If you use Active Directory - this survey's for you! Just 5 quick questions will enter you to win one of 8- $25 Best Buy Gift Certificates. Fill it out today!

    2. Events and Resources

    (brought to you by SQL Server Magazine)

    SQL Server Magazine Connections, April 2-5, 2006
    Now in its sixth year, SQL Server Magazine Connections returns to the Hyatt Grand Cypress Resort. We've scheduled more than 150 sessions with Microsoft and industry experts. Don't miss your chance to win a Harley Davidson motorcycle! 800-438-6720 or 203-268-3204.

    HA Solutions for Windows, SQL, and Exchange Servers
    When disaster strikes your servers, whether they are dedicated to Windows, SQL, or Exchange, you need answers. Make sure that if an emergency occurs, you're prepared. Get the full eBook and get started on your recovery plan today!

    Take the SQL Server 2005 Pop Quiz
    Test your SQL Server 2005 knowledge and win an iPod! Take the SQL Server 2005 Pop Quiz now.

    Learn How to Secure Your Email Server
    Make sure your email server is secure. Learn everything from basic techniques to defense-in-depth strategies, including network-level access control lists, Web authentication, firewall protocol inspection, and perimeter filtering. Live Web seminar Thursday, March 23

    3. Featured White Paper

    Automatic Exchange Deployment
    Use scripted deployments to ensure that all your Exchange servers are configured and deployed with exactly the same options and to maintain a record of your installation configurations. Learn how today!

    2006 Watch

    Learn VS and SQL 2005 -- Buy 1 Get 1 FREE Training!
    Become a more efficient, effective developer with award-winning training from AppDev. For a limited time, buy any Visual Studio 2005 or SQL Server 2005 course or suite, get a second course or suite FREE! Click the link below for Buy 1, Get 1 FREE training!

    4. Announcements

    (brought to you by SQL Server Magazine)

    SQL Server Magazine Article Library--Access Available
    Sign up for a Monthly Online Pass and get INSTANT access to all articles, tools, and helpful resources published on, including exclusive subscriber-only content. You'll get 24/7 access to the full SQL Server article library (which includes more than 2,300 focused articles) and the latest digital issue of SQL Server Magazine delivered right to your inbox. Sign up now:

    Exclusive March Offer
    SAVE 50% off the SQL Server Magazine Master CD! Subscribe today and get portable, high-speed access to the entire SQL Server article database on CD--a searchable library that includes every SQL Server Magazine article written since March 1999. The newest issue also includes BONUS SQL Server 2005 tips. This is a special, one-time-only offer that will not be repeated. Order now:

    Hot Spot

    Microsoft Day at SQL Server Magazine Connections
    Orlando, FL, April 2-5, 2006. Dive inside SQL Server 2005 with the Microsoft SQL Server Product Team. Learn directly from the source about Integration Services, SQLCMD, CacheSync, attend the three-part Project REAL series, and more. Register online or call 203-268-3204 or 800-899-5325 for more info.

    Contact Us

  • About Developer .NET Perspectives -- [email protected]
  • About technical questions --
  • About product news -- [email protected]
  • About your subscription -- [email protected]
  • About sponsoring an UPDATE -- contact Richard Resnick, [email protected], or Lisa Kling, [email protected]
  • Developer .NET UPDATE is brought to you by SQL Server Magazine, the only magazine devoted to helping developers and DBAs master new and emerging SQL Server technologies and issues. Subscribe today.

    View the SQL Server Magazine Privacy Policy

    SQL Server Magazine is a division of Penton Media, Inc. 221 East 29th Street, Loveland, CO 80538, Attention: Customer Service Department

    Copyright 2006, Penton Media, Inc. All Rights Reserved.

    Hide comments


    • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

    Plain text

    • No HTML tags allowed.
    • Web page addresses and e-mail addresses turn into links automatically.
    • Lines and paragraphs break automatically.