This chapter introduces .NET's platform invocation service, a powerful technology that enables the integration of native, unmanaged, and even hardware accelerated code into .NET applications.
PInvoke may play a key role in the acceptance of .NET as a new development platform in many companies because it allows the reuse of software components, even those that were not developed for the .NET Frame work. Today, when the "better, faster, cheaper" principle is imposed on nearly every project, it is a necessity to build new versions of an application by using components of the older version. Furthermore, you can't avoid sharing components across multiple applications to cut down development time and maintenance costs. For example, Adobe uses a dialog manager component that offers common user interfaces that can be found in many of Adobe's products, including Photoshop, Illustrator, and Framemaker.
Nevertheless, there are some pitfalls to watch out for before you reuse or design reusable software components:
Introducing Software Engineering
A .NET Prototype
The Photo Editor Application
GDI+ Graphics Extensions
Advanced GDI+ Operations
Dynamic Loading of Components
Accessing System Resources
Performance Optimization, Multithreading, and Profiling
Building the Web Application with ASP.NET
Security and Database Access