Register your product to gain access to bonus material or receive a coupon.
Foreword by Andrew Scoppa, UCI Software Technical Training
The complete Windows 2000 programming tutorial for every C++ and C# programmer!
Using Windows 2000, developers can build breakthrough distributed and Web systems more rapidly and productively than ever before. Now, there's a guide to Windows 2000 development that lets you choose the right tools for each job: Visual C++, or C# and the new Microsoft .NET framework!
Dr. Reeves begins with a detailed architectural overview of Windows 2000 and its key components; then introduces the fundamentals of Windows 2000 programming for both C++ and C# programmers, including processes, threads, jobs, error handling, and Windows 2000's Win32 APIs. Next, he introduces the .NET Framework, showing how its base classes almost entirely encapsulate the Win32 APIs, how to leverage .NET and C# to build more scalable and robust applications, and how to integrate legacy and "managed" code in the same components.
The book includes detailed coverage of both the Visual C++ 7.0 and C# compilers, showing how to use each to take full advantage of the .NET Framework for building powerful distributed applications. If you're ready to leverage Windows 2000 and .NET to the fullest, you're ready for C++/C# Programmer's Guide for Windows 2000.
About the CD-ROMThe accompanying CD-ROM contains code examples covering the material discussed in the book.
Foreword
Preface.
1. Introduction.
Windows 2000 Operating System Architecture.
Object Categories. Terminating a Process. Jobs.
Introduction. .NET Framework Base Classes. Common Language Runtime. Metadata and Self-Describing Components.
Introduction. Visual C++ Editions. Programming with Managed Extensions for C++.
Introduction. Comparison Between C++ and C#. General Structure of a C# Program. C# Version of Hello World. Developing a Simple Windows Forms Control.
Windows 2000 is a large and important system, and it is the core of a more embracing architecture Microsoft calls Windows DNA 2000. In this context DNA stands for Distributed interNet Applications, and represents Microsoft's vision for building distributed systems. This type of architecture is focused on developing the new "digital nervous system" for enterprises. In this context, the "digital nervous system" is the corporate, digital equivalent of the human nervous system: an information system that can provide a well-integrated flow of information at the right time, to the right place in an organization. Such systems can be programmed at many levels, from the lowest level of device drivers giving access to privileged instructions, to very high levels using powerful software application development tools. This book is aimed at Windows 2000 application programming, using C++/C# and the Visual Studio.NET development environment. The C++/C# and Visual Studio.NET discussions and examples are based upon the BETA 1Win32 programming required for Windows 2000. The book should prove suitable for programmers migrating to Windows 2000 from other environments, such as UNIX and mainframes, as well as for programmers moving up from earlier versions of Windows. A large part of the book addresses issues of what components actually make up the .NET Framework and the Windows 2000 Operating System. One must realize, there are numerous constraints among all the components, and one needs to try to understand, from the beginning, how they fit into the whole .NET Framework and the Windows 2000 Operating System.
Learning such complex technology can be quite a challenge. The documentation is vast, equivalent to tens of thousands of printed pages, and it is changing all the time. You can subscribe to various Internet discussion groups, and you will receive hundreds of emails every day. There are many, many books on different parts of this technology. But, how do you grasp the whole picture? This book aims to be holistic, to provide a practical guide for the C++/C# programmer. It is not a substitute for documentation or more specialized books, including "bibles" of various sorts that help you learn different APIs. Rather, the book provides a tutorial, giving you all the basic information you need to create working Windows 2000 application systems. The book and companion CD has many example programs in both C++ and C# to aid you in gaining an understanding of how the whole environment fits together.
Chapter 1 is an introduction showing an architectural overview of Windows 2000. It shows an overall block diagram of Windows 2000 and then discusses in general some of the key components of Windows 2000. The chapter also contains a general description of the different versions of Windows 2000.
Chapter 2 covers the most essential fundamentals of Windows 2000 programming for C++/C# programmers. We start off with an architectural overview of Windows 2000. There is enough detail to enable an experienced C++ programmer new to Windows 2000 to get an understanding of Windows 2000. This chapter also covers the concepts of processes, threads, jobs, and the handling of errors and exceptional conditions. The software priority structure is also covered in this chapter. The chapter explains the use of Win32 APIs for programming without the use of the .NET Framework base classes. We will see however, that the .NET Framework base classes almost completely encapsulate these Win32 APIs for application development. As a C++ programmer you can still, in native mode, work with the Win32 APIs if you should choose to do so. You can also mix native mode and managed code mode in your application components. C# works, as we will see, in managed code mode only. There are keywords, however, to let the C# code have sections of native mode code. Visual Studio.NET, as we will see in Chapter 4, has one standard approach to handling errors and exceptions. These topics bear directly on the issues of being able to create scalable and robust applications discussed above. The recently published book, Win32 System Services--The Heart of Windows 98 and Windows 2000, by Ron Reeves and Marshall Brain, covers in detail the use of Win32 APIs for application development.
Chapter 3 covers the most essential features of the new .NET Framework primarily from an architectural point of view. This material is the raison d'etre for the book. It is expected that the .NET Framework will become absolutely central to modern Windows application architecture and programming development. Hence, it is important for you to understand the basics. This chapter will give you the background for the discussions in Chapters 4 and 5 on Visual C++ and C#. COM+ will continue to play an important role in the development of multiple-tier application systems. For COM+ details, there are many other books on the subject, including Robert Oberg's book, Understanding and Programming COM+--A Practical Guide to Windows 2000 DNA.
Chapter 4 covers the Visual C++ 7.0 compiler and what is involved in using the compiler to create applications. The discussion is primarily based upon the use of C++ in a managed code mode, because that is the only mode that uses the Common Language Runtime (CLR) component. This mode picks up all the advantages of the new management features of the CLR. It discusses in detail the Managed Extensions for C++ that enables the programmer to take advantage of the .NET Framework architecture. The chapter covers the considerations of using the compiler in applications, as opposed to just a language syntax discussion.
Chapter 5 covers the C# compiler and what is involved in using the compiler to create applications. Windows 2000 and .NET Framework is expected to rely heavily on C# for enterprise level system development. Also, this new approach to distributed processing using C# does not require the System Register for any of its activity--just a language syntax discussion.
The appendices cover in detail the supporting material for the chapters. In some cases, a given appendix will be as big as a chapter. All the Win32 APIs and the .NET Framework base classes are listed in the appendices, along with software priority charts, and so on.