Everything is a class, and you'll find lots of class libraries and sample code to tap into to save rewriting code for common data structures and patterns. The language contains built-in financial and temporal data, consistent with Visual Studio's focus on developing distributed business applications for the Web. If you've programmed in Java, some of this might sound familiar. Another powerful new feature in VS7 is the ability to use attributes to save coding effort in your projects. This feature allows for concise, maintainable code.
Attributes consist of simple declarations that encapsulate domain-specific concepts.
One way to think of attributes is as a delayed App Wizard or Object Wizard. Currently, if you use the ATL Object Wizard to generate different types of objects, it injects all the necessary code for the type of object you're creating when you finish the wizard, based on which type of object you select in the wizard. That code then becomes part of your project's code base, and you can override and change portions of it if desired, or use it as it comes from the wizard. The header contains some of the code, the implementation file contains some, and the IDL file contains some. Depending on the generated code's complexity and how many modifications you make, this can cause project maintenance problems.