All AJAX lets you do is to push the View layer of your MVC app onto the browser --- previously, only the Controller layer was on the browser, and the View layer ran on the server. The reason why it's seen as such a huge step forward is that by putting your View logic on the browser you end up with a much more immediate, interactive application; it allows you to get away from the form-based transactional model of old web apps (which in turn is a reinvention of old mainframe apps).

Of course, it also means that you're now exposing your Model to the outside world. When the View and the Model both ran on your own internal servers, you could harden the View-Controller interface to prevent the user from telling the View to do things they weren't allowed to, and then trust the View to issue the right commands to the Model. Now, you have to harden the Model-View interface. This is both easier (because most Model implementations allow constraints to be enforced more easily) and harder (because you have to protect against some malicious user sending the equivalent of 5000 BEGIN TRANSACTION commands and then hanging up the connection)...

Reply via email to