NetAdvantage for ASP.NET Aikido CTP Released

[Infragistics] Devin Rader / Monday, November 5, 2007

This past Tuesday morning we released the first public CTP of NetAdvantage for ASP.NET Aikido, a project that has consumed a significant portion of my life for the past 6 months.  The CTP represents the introduction of a new series of controls based on our new Aikido framework, which is the first significant re-architecture of the product since its inception over 7 years ago.  The new framework is designed from the ground up to provide a platform on which developers can build a new generation of Web 2.0 enabled applications.

Since the beginning of the project we have laid out a clear set of goals for Aikido that, based on our years of control development experience and talking to customers, we felt strongly would be the keys to making it work. 

Client-side functionality and deep AJAX integration

The Web 2.0 world demands developers build applications that provide the end user with a rich client experience.  This means that the days of the post-back are diminishing, and in its place, rich client-side application libraries and AJAX functionality are demanded.  To provide this, we decided to make significant use of Microsoft's ASP.NET AJAX Extensions, which not only provide a great AJAX implementation which we can integrate deeply into our controls, but also gives us a unified client script platform on which to base our client-side object model.

Standards Compliance

At our initial release of NetAdvantage for ASP.NET (way back when), the Internet was still very much in something of a wild west state.  Browser vendors took it upon themselves to implement the existing standards of the time as they saw fit, and when the standards couldn't keep pace with the demands of web developers, the browser vendors just added their own tags (IE and Netscape are both quite guilty of this).  CSS was just coming into its own, and accessibility was a virtually non-existent requirement except in government work.  Flash forward to today and the world is vastly different.  Developers and browser vendors have for the most part realized the importance of standards, and the fledgling standards of the late 90's have congealed to become a fairly solid base on which developers can rely.

Aikido is designed from the ground up to accommodate all of these changes in technology and developer expectations.  The controls render at least XHTML 1.0 Transitional, though most of the time they can render XHTML 1.1 markup.  They are being tested to ensure compliance with the latest Accessibility standards (Sec. 508 and WCAG), and they make use of CSS extensively to both lighten the amount of markup needed to render the controls, and to give you more control over the layout of the controls.

Performance

We are focused very heavily on performance with the Aikido controls, consciously making sure that we test their performance throughout the entire development process.  Performance gains and losses can be caused by a wide variety of things in a web application, and we are doing everything we can to minimize the impact our controls have on an application.  As mentioned in the prior section, things like ensuring XHTML compliance, and relying more heavily on CSS for layout and styling has helped reduce the overall markup weight of the controls.  We are shipping the controls with compressed client-script libraries and have worked very hard to ensure that the controls keep their ViewState as small as possible.

Style-ability

In NetAdvantage for ASP.NET 2007 Volume 1 we introduced the concept of Application Styling to the product.  Application styling simplifies the process of creating great looking, consistent web user interfaces by introducing the concepts of StyleSets and Roles into the styling of Infragistics controls.  This means that, for example, every Infragistics control that has a Header portion can be styled using a single common set of styles contained in a single StyleSet.  The underlying format of a StyleSet is simply CSS and in Aikido, not only have we embedded Application Styling, but we are now defaulting to CSS for all of the control styling.

Extensibility

We recognize that our controls cannot provide all of the custom functionality that each individual project may require, and in fact we often hear from customers that it is a normal practice for them to not use our own controls directly, but instead create derived versions of our controls to use.  We wanted to make sure that with Aikido we specifically addressed these use cases and made it as easy as possible for developers to leverage our work and extend the controls to fit their specific needs.  With the Aikido framework, you can extend the existing controls with new client-side objects, behaviors, and even your own custom renderers.  Additionally, the framework can even automatically manage between the client and server, any new properties you add to a derived control.

Scenario Driven

Finally, as we create new controls and evaluate our older controls, we focus on the specific scenarios that customers tell us they have.  We do this so that as we create new controls, we can ensure that each control fills a very specific purpose, rather than creating giant, monolithic, uber-controls that try to be all things to all customers.  By putting our focus on the scenarios the control will be used, we can create controls that are easier to understand and quicker to integrate into your applications.

 

We believe that the initial release of controls based on the Aikido framework show the work we have done to meet theses goals, and now we place it in your hands to use and tell us if we hit the mark.  I encourage you to download the tools, give them a try and provide us feedback in our new forums.