You're correct, JavaScriptMVC 3.3 is very different from 3.0.5. It could
be considered a spiritual 4.0, except that it doesn't really change or
add features, just changes what powers it underneath the covers.
It is difficult to estimate the effort of migrating a project from
2.0 to 3.3. If its only using publicly documented APIs and hasn't
overridden any default functionality, it might not be a huge effort. I
upgraded one app from 3.0 to 3.3, and it ended up being a ton of
effort -- the codebase was heavily bound to the 3.0 API and had
overridden the default functionality in a bunch of obscure places.
I would recommend the following:
- First try upgrading jQuery and use the migrate plugin. There is a chance that it either works or would only require minor changes to get working.
- Have you tried using $.noConflict()? That should allow you to run multiple versions of jQuery on the same page.
- I would make upgrading the codebase to JMVC 3.3 a last resort. Depending on the complexity of the codebase, it might be faster to implement the app from scratch with CanJS (which would also result in a much smaller and more maintainable codebase) than spending the time migrating. On a typical JMVC app, CanJS might reduce the codebase by as much as 80% -- primarily because you get live binding which removes the necessity of manually updating the DOM/HTML. Migrating is definitely feasible though.