Over the course of my events in Cleveland and Columbus last week, I gathered a few questions.  I have researched the answers and I share them know to benefit all developers who manage to find my blog ;-)

Q. During the event, you stressed the importance of the new PreInit event - where can I learn more about the new events and other things going on behind-the scenes in ASP.NET 2.0?
A. Check out the following article on ASP.NET 2.0 Internals.

Q. I was the one who asked about creating themes globally (i.e. at the machine level).  How do I actually set them up for use in my applications?
A. A Theme can reside at the application-level or machine-level (globally available to all applications). Application-level Themes are placed in the App_Themes directory under the application root directory, as described above. Global Themes are placed in a "Themes" directory under an ASP.NETClientFiles folder under the ASP.NET installation directory, for example %WINDIR%\Microsoft.NET\Framework\<version>\ASP.NETClientFiles\Themes. The location of global themes is Inetpub\wwwroot\aspnet_client\system_web\<version>\Themes for IIS web sites.
[Excerpted from http://beta.asp.net/QUICKSTART/aspnet/doc/themes/themes.aspx#config]

Q. In your last segment, you showed us the technique for implementing a basic client call-back.  You then spoke of the Atlas toolkit and that it would make the same techniques even easier by providing a library of common script for us to use.  Where can I learn more and download Atlas?
A. Follow this link to get your hands on Atlas.

Q. You stumbled upon a "policy" file during the event - what are policy files and what do they mean to me?
A. Here is an article that will give you insight into Understanding policy files in Visual Studio 2005.  I must caution you that this topic is fairly deep and not suited for the light-hearted.

Q. The SQLCacheDependency is great for Microsoft SQL Server, but what about other databases?
A. ASP.NET 2.0 has opened the System.Web.Caching.CacheDependency class for derivation, enabling anyone to write their own implementation of a cache dependency. By developing your own cache dependency, you can take advantage of the cache invalidation mechanism to keep the cached content current with the data that was used to construct it. This is a more efficient and reliable way to ensure data validity, and enable cache synchronization across web farms then using frequent expiration.
[Excerpted from http://beta.asp.net/QUICKSTART/aspnet/doc/caching/data.aspx]

Q. Does the Menu control work on browsers that either do not support javascript or have it disabled?
A. To accomplish the pop-out behavior the Menu control relies on javascript, on downlevel browsers the Menu renders using secondary navigation to enable accessing child menu items.
[Excerpted from http://beta.asp.net/QUICKSTART/aspnet/doc/ctrlref/navigation/menu.aspx]

Q. When you set up the client call-back with the javascript, you did a strange thing, parameterizing and then formatting your javascript - why?
A. This actually answers a question I received earlier in the week, around accomodating dynamic detection of control IDs in Content controls, when working with master pages.  I went back and reran the demo in debug mode, within the scope of a master page/content page model.  I confirmed that the reason for parameterizing the script on the fly is to ensure that the correct control ID is utilized - since the runtime appends a value to the control ID of any control located within a Content control, we have ensured that our javascript will properly discover and utilize our controls on the client.