The Benefits of Microsoft ..NET

The Microsoft .NET Framework is an integral Microsoft Windows® component for building and running the next generation of applications and XML Web services. It provides a highly productive, standards-based, enterprise-ready, multilanguage environment that simplifies application development, enables developers to make use of their existing skill set, facilitates integration with existing software, and eases the challenges of deploying and operating Internet-scale applications. The .NET Framework consists of two main parts: the common language runtime (CLR) and a unified, hierarchical class library that includes a revolutionary advance in Web-based development by means of ASP .NET, an environment for building smart client applications (Windows Forms), and a loosely coupled data access subsystem (ADO.NET).

Programmers may write applications to the ..NET Framework using a number of languages. Each of these languages is compiled to the Microsoft Intermediate Language (MSIL), which is then converted to native code and executed on the CLR. Since each language interacts with code written for the CLR, any application written in any language can interact with any other application written in any other language. With the introduction of the CLR, programmers now have a rich palette of languages from which to choose, helping them select the right language for their skills and for the task at hand.

A Rich Palette of Languages

Just as artists are unique and employ the medium and tools to suit their experience and personality, software developers employ programming languages based on their skills and the task at hand. No one language satisfies the needs of all developers. Programmers are an innately different breed: part artist, part scientist, always opinionated, and never satisfied. Always seeking perfection, programmers nonetheless accept the imperfection of modern programming languages. Some of them cross-train and switch languages on a whim. Others seek greater expertise in a single language. After all, Michelangelo was a gifted sculptor and a brilliant painter, while Monet excelled with oil and canvas alone. Yet we appreciate them for the genius each possessed.

"We're always going to have a half a million or 50 million religious VB programmers. But guess what? We have VB in ..NET. And now we have Java language in .NET. We've even got COBOL!" – Tim Huckaby, President and CEO, Interknowlogy

Programming languages are an inherently personal choice, one based on a number of factors. Rather than force programmers to adopt one language over another, Microsoft provides a platform on which a number of languages—C++, Objective-C, Fortran, COBOL, Visual Basic®, Perl—can each flourish and enjoy full access to the power and flexibility of the ..NET Framework.

For its part, Microsoft offers four programming languages and associated development environments, each designed to appeal to a particular school of programmer:

This document highlights the rich palette of Microsoft-developed languages available to developers. With Microsoft ..NET, programmers and businesses can make use of the skills they've accumulated, while incorporating new platform, tool, and language features that will help them build compelling solutions faster.

Visual Basic .NET

http://msdn.microsoft.com/vbasic

Visual Basic 1.0 revolutionized Windows development by lowering the barrier to entry and making a broad audience of developers more productive than ever. Building on this rich history, Visual Basic .NET offers task-oriented programmers a human readable syntax, an intuitive user interface, and tools and upgrade wizards that speed the development of Microsoft .NET-connected applications. Visual Basic ..NET takes advantage of the ease of development espoused by its exceedingly popular predecessors, while adding new capabilities that enable all manner of programmers, from the beginner to the experienced corporate developer, to build applications for Windows, the Web, and mobile devices.

Task-Oriented Development

Deadlines are nothing new to the software industry. For a large group of programmers, deadlines are a daily fact of life. These programmers are often charged with building opportunistic applications that address a specific business need and require a modicum of planning and a fast track to deployment. Sometimes such solutions will be tested rigorously, while other times the application will be built and immediately deployed, freeing the programmer for the next assignment. These task-oriented developers are focused on delivering solutions quickly. Task-oriented development tools, therefore, must place such a premium on productivity that it is acceptable to abstract programmers from the nuances of the underlying platform and empower them to conceive of an application, build it from scratch, and quickly disseminate it across a business group.

Programmer Constituency

Visual Basic .NET is ideal for the following types of programmers who are looking to use the .NET Framework to construct the next generation of applications and services:

Unique Language Features

Visual Basic .NET contains several unique language features that lend it an aspect of productivity not found in the other Microsoft-supplied .NET languages, including:

Dim x as new MyClass

x.SharedMethod() ' works just as well as...

MyClass.SharedMethod()

Unique Environment Features

Visual Basic .NET also includes a number of key environment enhancements that enable programmers to more productively design and write compelling applications and services. These enhancements are above and beyond the Visual Studio® .NET features shared among all .NET languages:

Performance

A final area of great importance is performance. The Visual Basic .NET compiler generates Intermediate Language (IL) code that is equal in performance to the code generated by the C# compiler.

Visual C++ .NET

http://msdn.microsoft.com/visualc

Often, power-oriented programmers will need to exploit the full capabilities and performance of the underlying platform. Despite the numerous benefits of the CLR and the .NET Framework, some programmers still build applications that depend on the full depth and breadth of the Windows operating system. These programmers have traditionally chosen Visual C++ to attain more exacting control of their applications through highly optimized code and efficient access to system-provided services, including memory, disk access, and more. Visual C++ .NET continues to offer direct access to the Windows platform by way of native code generation and the Win32® API. Visual C++ also gives developers access to the full range of capabilities of the managed CLR and the .NET Framework.

Power-Oriented Development

In many situations, programmers need complete access to all of the features found in the underlying operating system. Historically, Microsoft has offered a spectrum of programming tools, some of which abstract the full breadth of the Windows platform while others deliver unfettered access to all Windows features. Today, while the .NET Framework delivers a range of APIs suitable for building robust enterprise software, it still does not provide access to all of the functionality found in Microsoft Windows. Power-oriented development tools acknowledge this requirement and offer programmers language constructs, class libraries, and environment features to comfortably build the full range of solutions that their business needs demand.

Programmer Constituency

Visual C++ .NET is ideal for a number of programmers and situations, including:

Unique Language Features

Visual C++ .NET contains several unique language features in high demand among advanced programmers. These language features contribute to making C++ the most powerful of all the Microsoft-provided Visual Studio languages:

Unique Environment Features

Visual C++ .NET 2003 also contains a variety of environment features that assist programmers in creating flexible and powerful applications, including:

In the future, Visual C++ .NET will include several advanced features to help programmers gain more exacting control over their components and applications:

Visual C# .NET

http://msdn.microsoft.com/vcsharp

Traditionally, Visual Basic and Visual C++ have occupied opposite ends of the developer spectrum. Visual Basic, with its emphasis on productivity, has customarily focused on offering programmers the easiest, most intuitive development experience, sacrificing full coverage of underlying system resources in the process. On the other hand, Visual C++ has always erred on the side of offering complete access to the Windows platform, even if it meant a conscious choice away from greater productivity.

To bridge the gap between these two offerings, Microsoft provides code-focused developers the modern and innovative C# programming language. C# offers programmers a clean and elegant programming language, familiar to C++ developers, with many of the productivity benefits enjoyed by Visual Basic programmers.

Code-Focused Development

All programmers write code at some point in their projects. However, many programmers also spend a considerable amount of time using wizards, controls, and designers to gain a measure of productivity in their application design and development. For code-focused programmers, the unfortunate side effect of such productivity is less understanding and control over the code used within their programs. Given the choice between greater productivity and greater understanding of their code, code-focused programmers often prefer to "trust" the code they write themselves rather than code that is emitted by the development environment. Indeed, such programmers may at times resort to using a designer or wizard, but will invariably elect to modify the generated code, at a minimum for formatting consistency and often for functional perfection.

Moreover, code-focused programmers tend to write code that is intended for reuse by others, perhaps even those less knowledgeable or sophisticated about their development practices. The business frameworks and class libraries these programmers create often require only a code editor and rarely involve a design surface of any kind.

Programmer Constituency

The C# programming language is ideal for the following types of programmers who are looking to use the .NET Framework to build the next generation of applications and services:

C++-Like Language Features

The C# programming language also contains a number of features that bring traditional C++-style development to programmers building applications with the .NET Framework. Often, these features resemble functionality found in Visual C++, albeit with greater productivity:

In addition, C# is a rapidly evolving technology that stretches the boundaries of language design. The C# language designers plan to add a number of additional features to the language, increasing the array of options at the programmers' disposal, and allowing them to create applications using a modern, innovative programming language. These features include:

Visual J# .NET

http://msdn.microsoft.com/vjsharp

Microsoft rounds out its programming language offering by introducing the Java language on .NET, with Visual J# ..NET. Visual J# .NET helps programmers, students, and professors preserve their skills and curricula by enabling them to use the Java language to construct solutions using the full functionality of the .NET Framework. Further, Visual J# ..NET helps ease the transition to Microsoft .NET for Visual J++ 6.0 customers, giving them an avenue with which to migrate their skills and solutions to the next generation Windows-based platform.

Java-Language Development

The Java language has solved many problems traditionally facing C++ developers through a simpler syntax and familiar object-oriented functionality. For developers using the Java language, Visual J# ..NET offers the most familiar and productive way to start building applications with the .NET Framework. Java developers can continue to use the Java language and immediately incorporate any of the rich functionality found in the ..NET Framework.

Programmer Constituency

Visual J# .NET is ideal for programmers in a number of situations, including:

Unique Language Features

J# contains a number of language features designed to make it the most comfortable and familiar experience for the Java-language developer looking to develop applications using the .NET Framework:

Unique Environment Features

Visual J# .NET plugs directly into the Visual Studio .NET development environment, giving J# developers full access to features like the designers, debugger, and advanced editors. There are also a few tools designed to help existing Java-language developers transition to Microsoft .NET:

Summary

Programming languages may be used to build a variety of solutions. Each language contains unique features and benefits that make it best-suited for certain kinds of applications. Microsoft offers a rich palette of four programming languages which together provide developers with the functionality necessary to build robust .NET-connected software.