These features combine with the .NET Framework to provide an easier envi- ronment to work with, a better performing application, and flexibility in incor- porating Web-based applications. The resulting version of Visual Basic is more stable, scalable, and easier to use. However, as previously noted, the downside to these much-anticipated new features is a lack of direct backward compatibility. Moderately complex applica- tions  cannot  be  ported  easily  from  earlier  versions  to  Visual  Basic  .NET. Although conversion tools exist, the number of required changes is significant. In many cases the migration tools simply flag an area that needs to be addressed, giving no indication of what the problem is or what needs to be done about it. Visual C++ Among the programming languages Microsoft has altered to conform to the .NET Framework, Visual C++ has the fewest changes and requires the shortest learning curve. In addition, applications written in C++ can be ported easily to the new environment. The most significant change to C++ revolves around the concept of managed code, or the ability to compile code to MSIL for execution by the common lan- guage runtime. Within Visual Studio .NET, the developer can identify blocks of code  as  managed.  The  default  option  for  Visual  C++  development  is  still unmanaged code, which is compiled directly to machine language code, lacks the type safety required for language interoperability, and forgoes the memory management  features  of  the  .NET  Framework.  In  other  words,  Visual  C++ developers can pretty much conduct business as usual. The language expands with a few additional items, which are detailed in the following list: nn Exception-handling tables nn Metadata describing the modules into which the code is compiled nn Location of object references (no need for CoCreateInstance; just use New to declare an object) Visual C++ then uses managed code and lets the common language runtime handle the following items: nn Exception handling nn Security nn Lifetime management nn Debugging nn Profiling nn Memory management 14 Chapter 1 04235946 Ch01.F  12/11/02  11:43 AM  Page 14