Your application logic may break. Really, it depends a lot on what you're doing. Overall, some pointers:
- True SNAPSHOT has a lot less 'surprises' than RCSI. As the 'snapshot' rows version is clearly defined in the true SNAPSHOT as the moment the transaction started, it does not suffer from RCSI issues of seeing different row versions inside the same transaction (which leads to very subtle and difficult to understand issues)
- You will get update conflicts instead of deadlocks, but one exactly 'instead-of'. There are some differences, and definetely the app may not expect the new error code 3960.
I would recommend going over Implementing Snapshot or Read Committed Snapshot Isolation in SQL Server: A Guide.