How To Create An Async Ajax Google Search with ASP.NET And Gaia Ajax

by Stian Solberg 26. May 2009 06:30

Recently we decided to add a searching feature for the different sites we run on main site, blogs, forum, tracker, docs and API reference. We wanted to be able to search each site separately and still have all the results presented in a intuitive way. And of course, it should be built using Gaia Ajax, so it could be quickly developed (our customers say they increase the productivity by 30-50% on the ASP.NET platform when using Gaia Ajax) and give a responsive and ajaxified user experience.

Async Search with ASP.NET Ajax

We have purchased a Google Site Search subscription so we don't have to reinvent the wheel again and make our own site spider. The Google Site Search gives us the search results in XML, and we can parse and present them in any way we would like.

The challenge: multiple search sources with ASP.NET

Since we wanted to present the results from each sub site in separate sections, we needed to overcome some limitations of what Google Site Search gives us. E.g. you can return max 20 results per search. Since we wanted to separate the results in each sub domain (e.g. we needed to use the useful "site:" parameter in a Google query. That meant that we needed to fire off 5-6 Google searches for each search we executed on our own page. Our immediate concern was how long time it would take to perform so many Google searches, return them, parse them and present them on our ASP.NET page.


Vote for Gaia Ajax: asp.netPRO Readers' Choice 2009

by Stian Solberg 23. April 2009 08:48

We're proud to announce Gaia Ajax as one of the nominated in this years asp.netPRO Readers' Choice awards. The competition is hard and many well established software vendors are represented with their products.

The voting expires the 25th of April, so you still have a couple of days to let your voice be heard and give an up-and-coming .NET vendor a helping hand!

Vote for Gaia Ajax for Best Component Set now! 

Where's the Right Way to Ajax?

by Stian Solberg 20. April 2009 10:59

Dino Esposito has written an article on DotNetSlackers with an oveview of different Ajax Web Architectures. The article covers how Gaia Ajax fits into a "Active Server Pages" pattern, and why Gaia is a solid architecture for your next web application.

Gaia Ajax is an Ajax toolbox for ASP.NET and Mono. The library is dual licensed, where you can use the GPL license for building open source projects, and for your proprietary projects you can obtain a commercial license.

Read the complete article on DotNetSlackers

Public Source Code Access & Nightly Builds

by Jan Blomquist 24. March 2009 10:58

Can you close your eyes and reel off the 12 points to better code. Do you have the Joel's test fresh in mind? The Joel Test: 12 Steps to Better Code is extremly important for all software developers. In this blog we will cover the three first rules and how we have solved this in Gaiaware.

  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?

Do you use source control?

We couldn't imagine a life without source control. In fact several studies show that firms without a good source control system cannot survive (ref; ). For all software development at Gaiaware we are currently using Subversion.

Because we also truly believe in open development of our library we have decided to publish the SVN repositories for public access. That means you can just add Gaia Ajax source directly to your solution (via externals ) and benefit from the rapid development of Gaia Ajax

Here's the urls for the repositories of Gaia Ajax

Tagged versions of Gaia Ajax (Released and archived)
Note! Use anonymous as username when asked for credentials

Can you make a build in one step?

Yes we can. We've built a customized build system that suits Gaia Ajax just perfectly. It's written in Ruby and uses Rake and COM interop to work with Visual Studio.NET. With Ruby's duck typing it's easy to read project properties, project items and different configuration settings. The build itself is also done with VS.NET using Ruby.

Do you make daily builds?

We've been making daily/nightly builds of Gaia Ajax for quite some time now and now we've finally decided to make them public.

The opening of the source and publishing of nightly builds allow you to post a bug/issue and have it fixed that very same day. Then you will have access to the bits within the next working day (even sooner if required). It should also be easy to pickup new bits that fit the requirements of your development. We will still post release dates for official relases which you can align with your project.

Nightly builds of the commerical package is available for commercialusers. If you have an active subscription just click on the nightlybuilds link to access the nightly builds.

Update 2009-06-29: You can test our nightly build samples here


Don't cheat when it comes to Joel's 12 steps to better code. Stability and base quality is key. What good does a piece of code do if it simply doesn't work. Source control and automated builds are just some the absolute requirements to achieve higher code quality. The importance of this was also pointed out in this blog post ->  ( Principles of UI architecture for libraries )

Enjoy the builds!  

What's next with Gaia Ajax: You decide!

by Stian Solberg 8. March 2009 14:00

Our goal with Gaia Ajax is to revolutionize the way you build web applications. To accomplish this goal, Gaia needs to be both simple to use and solve complex demands.

The point: you as a developer is our most important voice to tell us about our missing puzzle part.

Now we are conducting a survey to evaluate your impression and to set the road map for the future for Gaia. This is your chance to tell us what you like/dislike and what's important/unimportant. And not least: what features you would see in upcoming versions.

It takes a few minutes, and all participating will have a chance to win a one year subscription of Gaia Ajax (value: $595).

Click here take our survey 

Best regards
The Gaiaware Team

Gaia Ajax 3.5 Released!

by Stian Solberg 4. March 2009 13:53
"Imagination is the beginning of creation. You imagine what you desire, you will what you imagine and at last you create what you will."
-George Bernard Shaw

Highlights of Gaia Ajax 3.5

Doubled Speed
Massive performance gains - up to 50% - in Ajax callbacks.

Zero ViewState
We've improved our internal ViewState logic.
For you: even less data sent, even faster applications!

20+ New Features And Enhancements
Built-in Default Skin, Multi File Upload, Better AspectKey, Improved Hybrid Control Collection ++ See list of new features and enhancements

60+ Bug Fixes
Thanks to feedback from our community and customers, over 60 bugs are fixed. Gaia is now even more stable! Complete change log 


Even More Stuff!

Improved Pricing

Take a look at our order page to see the new prices.

Take a quick survey - win a subscription license!

To constantly improve the quality of our deliverance we are conducting a quick survey. It takes two minutes, and all participating will have a chance to win a one year subscription of Gaia Ajax (value: $595) 
Take the survey here

Case Study: Logica

Logica is a leading IT and business services company, employing 40,000 people.
Read how they succeeded with Gaia 

Yes,one last thing: everyone can download the trial version. Go to

As always, we love feedback. Use the comments or our the forum.

Best regards,

The Gaiaware Team.

Gaia Ajax 3.5 Changelog

by Jan Blomquist 4. March 2009 13:03
Full changelog of final release Gaia Ajax 3.5 "Themis"

Gaia and Ajax on Mobile Devices

by Jan Blomquist 25. February 2009 10:28

More and more Ajax Web applications are targeting the mobile browser. The age of dull and slow web experiences are long gone and the demand for high response and high interactivity on the mobile phone is here. At the end we present the 10 key tenets for building these next generation mobile web applications. 

Gaia Ajax on Mobile Devices in the Real World

Recently we delivered an Ajax Web Application with a Dual UI using templating techniques spiced with inspiration from Model View Presenter. The result was a single codebase with simple multi-device targeting. All built with open source technologies like Gaia Ajax, Castle ActiveRecord, Nhibernate, ZedGraph, NUnit and MySQL. And of course the solution worked nicely on Mono too :-)

We've tested Gaia Ajax on the following devices

All of them worked nicely with Gaia Ajax, except a few customizations for Opera Mobile. Let's have a look at how you can enable Gaia Ajax for this wonderful browser too, which by coincidence happens to be developed here in Norway too.

Fix for Opera Mobile

We use Prototype.js under the hood on the client side and unfortunately there's a small bug in Prototype that makes the Ajax engine break down on Opera Mobile. There are two ways to work around this problem.

  1. Embed the code snippet below somewhere on your ASP.NET page to override the Ajax.Request prototype implementation.
  2. Overwrite prototype.js in the Gaia.WebWidgets project and rebuild.


   1:  <script type="text/javascript">
   2:      Element.observe(window, 'load', function() {
   3:          Ajax.Request.prototype.initialize = function(url, options) {
   4:              this.options = {
   5:                  method:       'post',
   6:                  asynchronous: true,
   7:                  contentType:  'application/x-www-form-urlencoded',
   8:                  encoding:     'UTF-8',
   9:                  parameters:   '',
  10:                  evalJSON:     true,
  11:                  evalJS:       true
  12:              };
  13:              Object.extend(this.options, options || { });
  15:              this.options.method = this.options.method.toLowerCase();
  16:              if (Object.isString(this.options.parameters))
  17:                  this.options.parameters = this.options.parameters.toQueryParams();
  18:              else if (Object.isHash(this.options.parameters))
  19:                  this.options.parameters = this.options.parameters.toObject();
  21:              this.transport = Ajax.getTransport();
  22:              this.request(url);
  23:          }
  24:      });
  25:  </script>

It's worth mentioning that this patch is only valid for Gaia Ajax since we know what we use.

Note! This is not a patch that should be applied to Prototype.js overall.  

Another 10 Key Reasons to use Gaia Ajax for Mobile Web Development

  1. Unified codebase
  2. Multi device targeting for broad reach
  3. No need to expose biz logic to client
  4. Single point of deployment
  5. Based on open standards
  6. Write applications in managed code (C#, VB.NET, Ruby.NET, IronPython, etc)
  7. No sync issues
  8. Minimal maintenance costs
  9. Rich user experience without the need for javascript
  10. No security hazards/breaches
Don't surrender to binary code distributions, but embrace open standards.

AJAX is DEAD. Long Live AJAX & and the 7 reasons WHY

by Jan Blomquist 28. June 2007 15:06

Many of the biggest players in the industry proclaim that AJAX is dead. Obviously they claim this for their own reasons.Silverlight is the future, Flex is the future, and so on. Everyone wants to own the internet with proprietary binary code. Probably will this showdown between these industry giants not result in a clear winner. Rich Internet Applications are glued together by open standards and open technologies. The thing here is that we also believe that AJAX is dead, but not in the same sense or for the same reasoning. We believe AJAX is another paradigm shift in the history of computing.

Here are 7 reasons why. 


Tags: , ,

Ajax | Gaia | Mono