The Significance of .NET and C

 
Introduction
bySimon Robinsonet al.
Wrox Press 2002
  

The Significance of .NET and C#

In order to understand the significance of .NET it is useful to remind ourselves of the nature of many of the Windows technologies that have appeared in the last ten years or so. Although they may look quite different on the surface, all of the Windows operating systems from Windows 3.1 (introduced in 1992) through to Windows XP have the same familiar Windows API at their core . As we've progressed through new versions of Windows, huge numbers of new functions have been added to the API, but this has been a process of evolving and extending the API rather than replacing it.

The same can be said for many of the technologies and frameworks that we've used to develop software for Windows too. For example, COM ( Component Object Model ) originated as OLE ( Object Linking and Embedding ). At the time it was, to a large extent, simply a means by which different types of office documents could be linked together, so that for example you could place a small Excel spreadsheet in your Word document. From that it evolved into COM, DCOM ( Distributed COM ), and eventually COM+ - a sophisticated technology that formed the basis of the way almost all components communicated, as well as implementing transactions, messaging services, and object pooling.

Microsoft chose this evolutionary approach to software for the obvious reason that it is concerned about backward compatibility. Over the years a huge base of third-party software has been written for Windows, and Windows wouldn't have enjoyed the success it has had if every time Microsoft introduced a new technology it broke the existing code base!

While this backward compatibility issue has been a crucial feature of Windows technologies and one of the strengths of Windows, it does have a big disadvantage . Every time some technology evolves and adds new features, it ends up a bit more complicated than it was before.

It is clear that something had to change. Microsoft couldn't go on forever extending the same development tools and languages, always making them more and more complex in order to satisfy the conflicting demands of keeping up with the newest hardware, and maintaining backward compatibility with what was around when Windows first became popular in the early 1990s. There comes a point where you have to start with a clean slate if you want a simple yet sophisticated set of languages, environments, and developer tools, which make it easy for developers to write state-of-the-art software.

This fresh start is what C# and .NET are all about. Roughly speaking, .NET is a new framework - a new API - for programming on Windows. And C# is a new language that has been designed from scratch to work with .NET, as well as to take advantage of all the progress in developer environments and in our understanding of object-oriented programming principles that has taken place over the last 20 years.

Before we continue, we should make it clear that backward compatibility has not been lost in the process. Existing programs will continue to work, and .NET was designed with the ability to work with existing software. Communication between software components on Windows now almost entirely takes place using COM. Taking account of this, .NET does have the ability to provide wrappers around existing COM components so that .NET components can talk to them.

It is true that you don't need to learn C# in order to write code for .NET. Microsoft has extended C++, and made substantial changes to VB to turn it into the more powerful language VB.NET, in order to allow code written in either of these languages to target the .NET environment. Both of these languages, however, are hampered by the legacy of having evolved over the years rather than being written from the start with today's technology in mind.

Visual J++, which has been beset by legal difficulties, and never really took off in the first place, is now regarded as a legacy language. Microsoft will be offering instead J#, which is basically J++, but compiled to target .NET instead of compiling to Java byte code. There will also be a tool to convert existing J++ code to C# code for J++ developers who prefer to migrate to C#.

Important 

If you learn the C# language, and familiarize yourself with the .NET Framework, you will find that in many cases coding in C# is a far more pleasant and efficient business than it ever was using the older languages of C++ and VB.

This book will equip you to program in C#, while at the same time providing the necessary background in how the .NET architecture works. We will not only cover the fundamentals of the C# language, but also go on to give examples of applications that use a variety of related technologies, including database access, dynamic web pages, advanced graphics, and directory access. The only requirement is that you are familiar with at least one other high-level language used on Windows - either C++, VB, or J++.

  


Professional C#. 2nd Edition
Performance Consulting: A Practical Guide for HR and Learning Professionals
ISBN: 1576754359
EAN: 2147483647
Year: 2002
Pages: 244

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net