Advertisement
To print: Select File and then Print from your browser's menu
-------------------------------------------------------------- This story was printed from ZDNet Australia. --------------------------------------------------------------
Clarifying .NET

By John Carroll, ZDNet US
September 25, 2002
URL: http://www.zdnet.com.au/news/communications/soa/Clarifying-NET/0,130061791,120268514,00.htm


COMMENTARY-- Microsoft needs to find a coherent way to communicate the benefits of .Net--one that creates a simplified core message that non-programmers can understand.

.NET is a difficult technology to explain to non-programmers because .NET is developer-oriented technology. Many of the features of .NET don't make sense unless you know a lot about software development. From a marketing standpoint, however, understanding the essentials of .NET shouldn't require expertise in software engineering any more than buying a car requires a degree in mechanical engineering. What is needed is a consideration of other markets where technically abstract concepts are communicated to a non-technical audience.

.NET is, in a nutshell, a set of technologies designed to enhance developer productivity, with special emphasis given to the needs of programs in a networked environment (i.e. the Internet). Developers build their programs using building blocks found in .NET. .NET also acts as a controlled environment within which programs can run. This controlled environment makes certain common programming errors that have security implications, such as buffer overruns, impossible, while greatly expanding the number of security options available. In short, a "development framework" like .NET leads to code that has fewer bugs, is more secure, has more features, and is easier to build.

That's the view of .NET from the moon. Getting deeper into it involves a keen understanding of software development. Automatic memory management, mandatory object orientation, streamlined APIs for everything from windowing to back end web development, a portable intermediate format in the form of MSIL, self-describing code, code metadata (essential to .NET code access security), XML usage in every aspect of the .NET library (configuration files, serialisation formats, remoting), simplified native code interoperability through P/Invoke, versioned assemblies, etc. are meaningless if you don't know anything about software development.

That isn't a problem, however, if one considers that people aren't experts in many domains in which they are called upon to make purchasing decisions. I know a bit about cars. I can change my own oil (well, my car's, not my own), and even replaced the spark plugs and wires on a '66 Ford Fairlane I used to own back in high school (a pox on any town that still uses salt on their roads). However, I am FAR from an expert in automobile engines, particularly the sort that fill up modern cars like some bio-engineered nightmare from the brain of H.R. Giger (of "Alien" fame, who has a museum in quaint little Gruyères, Switzerland).

However, I still manage to buy cars. To manage this astounding feat, I use statistics compiled by third parties which tell me the performance characteristics of the car. I can determine what miles to the gallon (or kilometers per liter) a car gets, how fast it goes from 0-60, how it performs in cold weather, its tendency (or lack thereof) to seize up on long journeys through the desert, etc. I have absolutely no idea how the engine manages any of these things. I just know that it can do it based on third-party data.

In that light, the best way to promote .NET to non-programmers (CIOs, Managers, technology journalists) is to emphasise that .NET is developer productivity technology, and support that statement with third-party statistics. Create comparison tables showing how much more productive .NET developers are. Show that fewer bugs are found in .NET code, or that .NET applications are more secure.

What Microsoft Has to Change
Microsoft's problem has been its failure to keep the .NET definition distinct from products that might be used in or by .NET applications. The core definition should be that ".NET is developer productivity technology." Every press release or marketing blurb needs to include that basic statement as an axiom. Furthermore, this definition should be tightly associated with the .NET "framework" or SDK (any .NET SDK, including Ximian's Mono and dotGNU), so that customers can understand clearly that .NET is technology used by developers to build applications.

To support this definition should be data that shows what .NET does for consumers. Microsoft should show companies the development productivity and quality gains which result from shifting to .NET. Give them concrete statistics which emphasise the higher security, lower bug incidence and lower cost (due to more productive developers) of .NET applications.

There is value in communicating a product's .NET association to potential customers. That doesn't mean that .NET has to be like some nonsense Gatorade flavor (what the heck does "Riptide Rush" taste like?), slapped on every paperweight that ships out of Microsoft's product division.

A separate brand would keep the .NET message of developer simplification pure while allowing ancillary products to be linked to it. Therefore, Microsoft should create a new branding label, which I'll call ".NET Technologies." .NET Technologies are products that support code written with .NET (Windows.NET Server and SQL Server.NET (Yukon) will fall into this category), or else enhance the .NET development process either through adding new functionality (MapPoint.NET) or facilitating the development process (Visual Studio.NET). ".NET Technologies" are enhancements to or facilitators of .NET development, not a requirement of it.

A distinct brand would have helped when the .NET My Services rollout was deferred. Since people didn't have a clear idea of what .NET was, the .NET in .NET My Services left people with the impression that this critically affected .NET. It didn't, because .NET My Services is no more a fundamental underpinning of .NET than BEA's WebLogic server is essential to Java.

.NET is powerful technology that offers a lot of things I have always wished were in Java. Even more important, it is Microsoft technology, which means it will be used all across the Microsoft product catalog.

Everything in that catalog, from operating systems and game consoles to databases and handhelds will be unified by .NET technology. This is an important productivity enhancement for developers, as it makes knowledge in one domain even more applicable in another. Microsoft just needs to find a coherent way to communicate those benefits, one that creates a simplified core message that non-programmers can understand while allowing ancillary technologies to promote their association with .NET without clouding the definition.

Copyright © 2009 CBS Interactive, a CBS Company. All Rights Reserved.
ZDNET is a registered service mark of CBS Interactive. ZDNET Logo is a service mark of CBS Interactive.