Atlas is an ASP.NET control collection for creating AJAX enabled websites. It is also developed by the man who brought us ASP.NET some years ago, the one and only Scott Guthrie.

The idea behind Atlas is to make it easy to create powerful AJAX enabled websites, using the same code as you normally use and some new stuff as well. It then wraps all of the difficult plumbing of doing cross-browser DHTML and XMLHTTP requests into a collection of controls you can seamlessly implement on your ASP.NET web page.

Scott recently did a video presentation of just how easy it is to create an AJAX enabled web application. It takes him 18 minutes to create a to-do list with a SQL Server database and a functional UI using Atlas. He doesn’t even write any C#, he just uses the new controls mixed with the old ones. He uses the designer to drag ‘n drop controls onto the page and edits some properties in the property windows in Visual Studio. Could it be any easier?

I’ve been watching a lot of presentation of Visual Studio features during the last 4 years, both live and on the web. These presentations are always centred on using the Visual Studio designer then dragging controls onto it and letting the different built-in wizard create the boring stuff like data binding etc.

These demos are absolutely useless to me, because I never use the designer, and certainly not the code generating wizards. Who uses this stuff?? I don’t know a single professional developer that does. Furthermore, the Atlas controls generate a lot of code at runtime - both JavaScript and HTML. This means, that I’m not in control with the output of my page. I really don’t like that. I’ve learned to live with the generated JavaScript ASP.NET insert into my web pages to enable postbacks and client-side validation, but it’s still a thorn in my eyes.

Having said that, the power off Atlas seems immense. The stuff you are able to do in very short time is impressive. When you think of the combined forces of AJAX and Scott Guthrie, you at least owe it to yourself to try Atlas. I see the benefits of using Atlas for smaller web applications, but when you are developing huge solutions with tens of thousands code lines in various separate projects, the story is different. I would dread to maintain such a website with generated code you are not in control of.

Maybe I’m crazy. Maybe the “getting you’re hands dirty” is the old way of development. Maybe the Visual Studio designer is a huge benefit in productivity. Maybe Atlas is the next big leap forward in web development. Maybe uncontrollable code generation is the way to be more productive. I don’t know.

As I see it, the big difference is the type of web developer you are. If you just want to build apps that work, but don’t really care about what’s under the hood, Atlas is for you. If your approach to development is towards engineering and control, I would be a little bit reluctant using it.

I tried Atlas when it was still in beta, but I didn’t like it much. To be honest, I didn’t give it the time it disserved, so my experience with it is somewhat Spartan. I haven’t given up on it just yet, but I’ll probably wait for the next release before jumping onboard again. After all, the next version is in general always better than its predecessors.

Come on, who am I to judge the work of Scott Guthrie without at least come up with a couple of ideas of my own. Luckily I have and it’s about the implementation of the client callback feature.

The client callback feature provided natively by ASP.NET 2.0 is very powerful and easy to use and it lets you be in total control of the output. I use it for many different types of functionality and it works very well for me.

What could be really cool for the next version of ASP.NET is to build AJAX capabilities directly into the controls like the input button. Give it a boolean property called EnableClientCallback that automatically triggers a client callback when you click it. It would be a huge timesaver. The GridView control already has such a property but the usefulness is fairly limited in my opinion. The important part is that AJAX has to be built seamlessly into the different controls without writing a lot of JavaScript onto the page. It should be kept in separate .js files. That would make the use of it almost free with no real learning curve.

All in all, Atlas is a great initiative that really shows Microsoft’s commitment to the developer community. I hope they receive a lot of feedback from the community so they can implement the best parts into ASP.NET 3.0 to make it even better.

It can be a risky business to manually intervene with the Garbage Collector. You have to trust it to know how to manage the memory efficiently. Otherwise you could end up stressing the web server unnecessary or even crash your site as a worst case scenario.

 

It’s a rule of thumb not to intervene, but today I found it necessary to do so. I had a major memory leak from ASP.NET, and had to do something about it. It is a memory consuming application so it was expected that the IIS was going to use a lot of RAM, but every page view resulted in a 1-2 MB increase in memory consumption. This was not intended of course and something had to be done.

 

Here’s what I added to the master page.

protected void Page_UnLoad(object sender, EventArgs e)
{
  GC.Collect(0);
}
 

I know, it’s not pretty, but it worked. This is a temporary fix until I can pinpoint the exact location of the leak. Just looking at it, makes me queezy.