Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Expert visual C++/CLI
Heege M., Apress, Berkeley, CA, 2007. 352 pp. Type: Book (9781590597569)
Date Reviewed: Apr 7 2008

With over 20 years of experience developing software for Microsoft platforms, Heege is well versed in the subject of this book: using the Common Language Infrastructure (CLI) of the .NET framework, along with Visual C++ programming. The book develops nicely over 12 properly sequenced chapters, starting with the motivation for using C++/CLI and ending with application startup issues: assembly startup and runtime initialization.

The book starts with salient features of C++/CLI. The road is laid toward mingling native C++ with .NET. This chapter addresses mostly managed and unmanaged code. It starts with a simple “Hello World” application, and then discusses concepts such as object file, entry points, and compilation models.

Chapter 2 introduces the Common Type System (CTS) and System::Object--the basis of all .NET types. The discussion takes the reader through the important concepts of managed memory and managed array. System::String, objects, instances, and their indirect accessing are also covered.

The development of a simple .NET application is taken up next, but at the introductory level. Features like compile-time and run-time libraries, assemblies, and .NET metadata are neatly presented. Other topics covered include: command-line arguments, stream-based input/output (I/O), managed exception handling, and debugging; most of these belong to the Framework Class Library (FCL). There is an ongoing discussion of how metadata is defined and consumed, how assemblies are loaded, and how service attributes are defined and used. The source code provided in this chapter is very apt for its topics.

Mapping of source files to assemblies is discussed in the next chapter. Heege thoroughly discusses managed types and their definitions, type visibility, methods, fields, inheritance, overriding interface members, components, and custom events, with lots of code segments. Relationship with the help of CTS features is also covered. Next, the book covers member functions and resource management. C++/CLI allows the developer to implement constructors and destructors. Heege did a very good job in this chapter. Classes, virtual functions, and vtables are very lucidly described. Automatic variables and access to destructed objects are included, and in the right place. Also, special member functions and managed types are implemented.

Chapters 7 and 8 are devoted to project building using native C++, C++/CLI, and managed code. The starting point is the Windows Presentation Foundation (WPF) of .NET Framework 3.0. Different compilation models are explained. Managed and unmanaged boundaries are discussed. The control of services by CLR 2.0 at runtime is also discussed in detail. Heege presents up-front considerations for project development and step-by-step instructions. Issues regarding interoperability during migration are also included.

The author discusses managed-unmanaged transitions. The focus of chapter 9 is on interoperability. Managed code calling native functions, and native code calling managed functions are nicely presented. The calling conventions are tabulated. Calls across boundaries are schematically explained in an easy-to-read manner. Wrapping of C++ classes is discussed with appropriate code examples. Patterns of .NET are recalled; implementation of FCL is reviewed.

Resource management, being crucial to any project, is presented very well and in an easy-to-understand manner. Some of the resource issues presented are: timing, garbage cleaning, prioritizing, and exception handling. The book ends with the discussion of assembly startup and runtime initialization’s important issues for application startup. The entry points in terms of dynamic link libraries (DLLs) and executable (EXE) files are explained. Useful points on customization of startup and load-time deadlocks are provided.

I recommend this book as a great addition to any student or developer’s library. The provided code segments are a real asset. The book is easy to read, and the concepts are clearly presented.

Reviewer:  S. Balaraman Review #: CR135458 (0902-0114)
Bookmark and Share
  Reviewer Selected
 
 
Visual C++ (D.2.2 ... )
 
 
Design Languages (D.3.2 ... )
 
 
Language Classifications (D.3.2 )
 
 
Language Constructs and Features (D.3.3 )
 
 
Visual Programming (D.1.7 )
 
Would you recommend this review?
yes
no
Other reviews under "Visual C++": Date
Microsoft Visual C++
Gurganus K., Alexander D., Academic Press Prof., Inc., San Diego, CA, 1994. Type: Book (9780123086501)
May 1 1995
Professional software development with Visual C++ 6.0 & MFC
Chien C., Charles River Media, Inc., Rockland, MA, 2002.  479, Type: Book (9781584500971)
Aug 2 2002
Numerical simulations and case studies using Visual C++.NET
Salleh S., Zomaya A., Olariu S., Wiley-Interscience, New York, NY, 2005.  359, Type: Book (9780471694618)
Jul 3 2006
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy