| Pros |
| 1. The investment in legacy code is preserved. |
| 2. Relatively small risk associated with the migration process. |
| 3. Relatively low cost of migration. |
| 4. Personnel are in place, trained, and the application delivers a service today. |
| 5. New functionality can be added separately, minimally affecting existing code. |
| 6. New functionality added in .NET, gains .NET benefits. |
| Cons |
| 1. Legacy code and .NET code have to coexist. This adds additional cost in maintaining two different environments. Both environments have to be deployed and supported. |
| 2. Application and session states of ASP and ASP.NET live in different processes and have to be synchronized. This involves additional cost in development, testing, and support. |
| 3. Legacy code does not gain productivity, maintainability, extensibility, performance, and other .NET benefits. |
| 4. Performance of interoperability between legacy code and .NET can possibly be an issue. |
| 5. Application architecture as a whole is not consistent. Legacy and .NET application parts have different architectures. |
| 6. The common functionality for legacy and new .NET code has to be maintained. Possible solutions are discussed below. |
| 7. Some legacy code changes are necessary to communicate with the .NET part of the application. |
| 8. The problem of adding new functionality that affects legacy code can achieve significant magnitude, possibly resulting in migration or rewrite anyway. |
| 9. The timeout problem should be resolved. ASP and ASP.NET application parts have separate timeout settings. |