ASP.NET AJAX and ComponentArt Web.UI Product Direction

Posted Wed Nov 15, 2006 @ 9:39 AM

We recently shipped Web.UI 2006.2. The second major release of Web.UI this year includes a brand-new platform build: Web.UI for ASP.NET AJAX. However, no new controls were added to the suite this time around. I would like to take this opportunity to provide additional background information, as well as explain why we think that our direction will bring maximum value to our customers.

A Brief Walk Down Memory Lane

Nearly five years ago Microsoft reshaped web development with the release of ASP.NET. This was a powerful new server-centric development framework, drastically different from its predecessor - ASP.

One of the most interesting new concepts introduced with ASP.NET were server controls: reusable pieces of web logic and UI that developers could easily include in their pages and program against - in a very natural, object oriented, and event driven way. Even though a fair number of good server controls shipped in the box with v1.0 of ASP.NET, this new technology sparked an explosion of 3rd party component development. There is a number of companies that successfully add value to the platform by building ASP.NET server controls today.

The Introduction of ASP.NET AJAX

We think that web development is about to be reshaped again. Driven by consumer demand for richer and more responsive web experiences, Microsoft has created a comprehensive client-side framework: ASP.NET AJAX. The core portion of ASP.NET AJAX includes: a JavaScript type system, a networking and JSON serialization stack, AJAX server controls for partial page rendering, application services features (profile & authentication), a client-side application model, and - of particular interest to us - a model for creating client-side components and controls.

So, what does all of this mean to an ASP.NET developer today?

The upcoming release of ASP.NET AJAX will be a significant event for all ASP.NET developers because it introduces a real framework for client-side development. This framework will come with powerful baseline features and it will be fully supported (ASP.NET AJAX comes with Microsoft's standard 10 year, 24-7 support license).

Having a standard client-side framework opens up a world of possibilities. Things like calling a web service from your JavaScript code, serializing a server-side object for manipulation on the client, or doing partial page rendering through AJAX callbacks will all become mainstream web development techniques. This will change the responsiveness and the feel of ASP.NET applications in a profound way.

In contrast to the big paradigm shift from ASP to ASP.NET, buying into the latest web technology won't require rewriting your applications from scratch this time around. On the contrary, ASP.NET AJAX was designed to work on top of ASP.NET 2.0. It is extremely easy to incrementally add richness to your existing apps by simply including a reference to the ASP.NET AJAX assembly and applying the new features on selected pages. The ASP.NET AJAX UpdatePanel control is particularly handy for converting existing postback-based pages to the more efficient AJAX-style model.

Finally, one of the most exciting aspects of ASP.NET AJAX is the new model for creating client-side components and controls. A unified way of defining classes, namespaces, object properties, methods, and events, combined with the included base classes (Sys.Component and Sys.UI.Control) brings structure and form to JavaScript code reuse. Much like server controls introduced with ASP.NET, ASP.NET AJAX client-side components have the potential to significantly boost developer productivity and bring a whole new set of features to the mainstream.

ComponentArt Web.UI for ASP.NET AJAX

Recognizing this new opportunity, ComponentArt has invested considerable resources over the past year to develop new web user interface technology that can truly take advantage of the advanced features that ASP.NET AJAX offers. As a result of this work, ComponentArt Web.UI 2006.2 introduced industry's first suite of UI controls built on top of the ASP.NET AJAX client-side component model.

These controls expose extensive client-side APIs, and feature a unique ability to be programmatically modified on the client. This means that adding / removing / modifying menu items, treeview nodes, grid rows, etc., is now possible on the client - with immediate refreshing of the screen. Of course, client-side controls always live in the context of a server-side web application, so all client-side changes have to be automatically persisted to the server-side object state when a postback or a callback occurs.

We consider this to be a significant step forward in extending the richness of web applications. A whole new class of operations no longer require roundtrips to the server, which dramatically improves application responsiveness and user experience.

Our goal was to deliver the richest set of controls that are truly built for ASP.NET AJAX from the ground up. The initial industry feedback we have received has been overwhelmingly positive, which leads us to believe that we are on the right track.

Adding New Controls to the Web.UI Suite

The magnitude of the work needed to develop the new user interface technology described above has slowed down the pace of adding new controls to the suite. However, we are now quite happy with where we stand in terms of core technology, and we are focusing on building new Web.UI controls.

The initial set of controls to be added to the suite is outlined on our Web.UI product roadmap page. That's just the beginning; we will continue to rapidly add new controls (as well as extend the baseline feature set of the existing controls) throughout next year.

It should be noted that applying our existing technology to develop new controls is now fairly routine work, involving significantly less risk than the work we have done to develop the technology itself.

Immediate and Long-term Value for Customers Staying With ASP.NET 1.x

The new client-side API described above is also available with Web.UI 2006.2 for ASP.NET 1.0. The API is accompanied with our new state-of-the-art client-side API reference, which is also available for all platform builds.

Finally, as stated on our product roadmap, new controls will be added to all three platform builds simultaneously. Therefore our customers who don't immediately embrace ASP.NET AJAX will not be left behind.

Conclusion

If you haven't had a chance to try out ASP.NET AJAX yet, we encourage you to do so, especially if you are already using ASP.NET 2.0. The framework is now feature complete, has a stable API, and its full release is expected by the end of the year. It's a great time to get a head start on the next big wave of Microsoft's web development technology.

We believe that with the imminent release of ASP.NET AJAX and ComponentArt Web.UI for ASP.NET AJAX, our customers will have the most powerful set of tools for building rich web applications available anywhere.

As always, your feedback is welcome and appreciated.

Posted to I Build, Therefore I Am by miljan

Posted on Wed Nov 15, 2006 @ 9:39 AM

Filed under: , , ,

Comments

Luke Adams
Posted on Wed Nov 15, 2006 @ 9:39 AM

Mijan

I really like these new blogs.  It’s good to hear how you guys think and feel about what you are developing.  Also, I for one am very pleased with the direction ComponentArt has taken.  I feel that having a suite of components that embrace and full utilize AJAX will allow us to jump right into the new wave of web development.  

I have seen that "Oraca" (I believe that is the name for the new Visual Studio) is now available on MSDN as CTP.  Do you think or know if the next generation of Visual Studio will include more features for writing client side code such as JavaScript?  I feel VS 2005 is not a good IDE for client coding.

Keep up the good work!

Cheers,

Luke

Posted on Wed Nov 15, 2006 @ 9:39 AM

Hi Luke,

We had an opportunity to review VS.NET "Orcas" in Redmond back in August. Some of the most impressive and exciting new features of the next version of Visual Studio are actually related to productivity enhancements of client-side JavaScript coding.

I cannot reveal the full details because these features were demoed to us under NDA terms, but I can say that client-side coding experience will be on par with C# or VB.NET.

thardy
Posted on Wed Nov 15, 2006 @ 9:39 AM

I'd like to know what you guys, and Microsoft plan to offer in the way of generic javascript frameworks beyond AJAX, such as those developed by the Ruby-on-Rails community.  Currently, my company uses Prototype (prototype.conio.net) and Scriptaculous (script.aculo.us) for a lot of client-side power in a very compact and easy-to-use package.  I'd like to move our company over to Microsoft's AJAX because it's hard to integrate our .NET code with some of these things in the area of AJAX.  It's going to be hard to convince the dev's to give up the nifty features of Scriptaculous, however, such as the drag and drop and animation engine.

It would be a waste to have to include two full javascript frameworks, since many core functions and JSON stuff would be duplicated, but I am not aware of any functionality being exposed in this strategy beyond AJAX.  Please enlighten me if you or MS has any plans to offer the same breadth of features as the Ruby-on-Rails community already has available in a common, efficient library.  I hope you're very familiar with prototype and script.aculo.us, since they are arguably the best libraries on the net.

Posted on Wed Nov 15, 2006 @ 9:39 AM

Hi Thardy,

I agree - including multiple client frameworks in your projects does seem like a waste, since quite a few features would be duplicated. Some frameworks could collide with others in nasty ways.

> generic javascript frameworks beyond AJAX

Our recommendation to all of our customers is to take a more detailed look at ASP.NET AJAX. If you examine all of the different parts of the stack offered with ASP.NET AJAX, you will see that ASP.NET AJAX **is** that generic JS framework you are looking for, accompanied with a number of carefully selected client-side features.

While there are several great frameworks that cover various subsets of ASP.NET AJAX quite well, I have yet to see a framework that matches the feature set of (Core) ASP.NET AJAX.

Ryan
Posted on Wed Nov 15, 2006 @ 9:39 AM
Hi Miljan, You say "ASP.NET AJAX **is** that generic JS framework" Then, can it be used in a Ruby on Rails or CakePHP project?
Anonymous comments are not allowed. Click here to log in or create an account.