Simplicity is my message to you fellow developers, and I am not only preaching, I am actually doing!
AJAX has been breaking new grounds almost every day, with over 200 AJAX frameworks, there are plenty of options to choose from and one might say too many. Most of the AJAX frameworks provide you with browser extension libraries that will help you utilize the browser and interact with the server in a more productive way. What they are trying to do in most cases is to provide larger building blocks to achieve your goals by abstracting the calls to the browser API and to the server. The last is a significant improvement over the plain vanilla browser coding but you are still writing your application in a very poor environment with very poor developer tools and your end result is a JavaScript application vulnerable in terms of security, manageability and your IP protection.
My mission is to simplify a very complex programming environment.
And this is how I do it:
When you are writing enterprise applications which are actually business apps, the security, productivity, manageability and IP issues of AJAX development are becoming a real turn off. Applying SSL to your application can only bring you so far, as you are still exposing server services for the client to consume through plain old JavaScript and running business logic which can easily be hijacked using a simple script debugger. Also the different AJAX frameworks still in most cases force you to write your application mainly in client side JavaScript code which has its limits and productivity issues. The most obvious issue regarding JavaScript UI programming is lack of design time capabilities but that is only the tip of the iceberg.
Server based AJAX is a recent addition to the AJAX frameworks arena and it basically changes the way we think about AJAX applications. It introduces a concept of server based computing for web applications where your code runs entirely on the server and reflecting changes to the client. This concept is used widely in remote desktop or application streaming software, but has not been until now available for web developers. The server based AJAX concept provides great benefits for developers in terms of productivity, manageability and usability.
Currently one of the frameworks that is implementing full server based AJAX is Visual WebGui (http://www.visualwebgui.com ) which I wrote. It is open source and I would to love to share my experience with you guys.
VWG provides full WinForms like API and design time capabilities for developing web applications. While it sounds very much like Google's GWT or other frameworks that you know, it is not, as it does not serialize the application code to JavaScript but rather uses it in runtime on the server and reflecting the UI to the client. This means that you have what can be called an "empty client" that is managed entirely by the server. Client events are sent to the server that in turn; return its update commands to the client reflecting changes made to the UI on the server.
This process can be optimized in various scenarios explicitly to reduce the amount of server callbacks and bandwidth consumption, making the end result as responsive as standard AJAX applications.
There are some classic perceived down sides to the server based AJAX concept, mainly in terms of network intensiveness and scalability. I believe I solved them and that is the why I wanted to blog here.
I solved the scalability issue by serialization. I solved the responsiveness issue by a unique protocol that causes the server to use fewer resources in terms of CPU and IO as it does not have to receive/return large blobs and most important does not need to construct and deconstruct the application classes on every request.
Also as I said before there are many optimizations that can be applied to reduce server callbacks and bandwidth consumption.
The server based AJAX concepts may just be the solution for enterprise AJAX applications as it provides these applications with the best of both worlds. Having a responsive, rich AJAX UI that behaves pretty much like desktop UI, but still maintaining the productivity, IP protection, and security of running the application on server side provides a compelling offering for enterprises, and most important: brings back the simplicity of programming windows forms much like VB did in the good old times. You fellow developers program WinForms with its beautiful drag and drop designer, and get a running and kicking web apps.
I will be blogging more on my concept, showing and demonstrating its power and real world experience. You are all invited to express your opinions and experience, its open source and free
Find out more: here