| Pros |
| 1. Better performance. State is updated only when needed, saving especially on expensive state serialization. |
| 2. No need for a custom synchronization object. The native Application and Session objects can be used instead of a custom one. |
| 3. No need to serialize and pass any part of the state if it is used only by legacy code or only by .NET code. |
| 4. No code change is needed to replace native Application and Session objects with custom ones. |
| Cons |
| 1. Custom code instead of a generic solution. |
| 2. Possibility of developer errors, because synchronization is added manually. |
| 3. More testing is needed for checking page redirects that have to be synchronized. |
| 4. Affinity restriction for load balancing is in place. |