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.

Table 1: Pros and cons of a side-by-side approach.

Back to Article