Extracting Files from Appsense Environment Manager Database

Appsense Environment Manager

We recently experienced some data loss issues with our Appsense Environment Manager installation. Long story short, a change we made to our application groups ended up deleting the user data associated with a particular application group.

What is Appsense Environment Manager, you ask? It’s a desktop personalization platform, which consists of an agent running on the client and a database to go with it. The agent captures user specific data from registry and file system and stores it in an SQL database. The captured data can then be roamed to other clients where the agent is running. It’s your roaming profile, on steroids.

Back to the story…

After working through the initial morning-after panic, my colleague reached out to Appsense for some assistance. They advised us to get a hold of the database backup from before the change was made and do a full restore. However, by this time, users had been logging on to their machines and generating data in the production database. A full restore was not an option. We needed to selectively restore files, however, restoring files one by one, for each user, from Environment Manager Console  was going to be a big hassle.

Our DBAs were kind enough to mount the backup database under a different name so that both the backup and production databases were available for us simultaneously. With that in place and nothing else to lose, we started investigating the database. Continue reading “Extracting Files from Appsense Environment Manager Database”

External Filters for Kendo Grid

Kendo UISo What is Keno UI Grid? Kendo UI Grid is a feature rich HTML5 Grid control provided as part of Telerik’s Kendo UI Web framework. Kendo Grid provides a lot of features out of the box, such as filtering, grouping, paging, sorting, and support for various data formats.


The default filtering interface for Kendo Grid is very powerful. However, it is generic to accommodate for all kind of data that you can throw at it.

To give you a quick example, here are different filter interfaces for different data type:

In my case, the built-in filtering interface was not desirable. There were couple of reasons for that.

  1. I didn’t want to retrain my users. A previous Web Forms based version of the application was already using dropdown boxes for filtering Telerik Rad Grid.
  2. The filtering interface, although very powerfull, can be confusing. My aim was to provide dropdown boxes, with distinct values for the users to filter on.

Continue reading “External Filters for Kendo Grid”

Using Images in app_offline.htm

It is often desirable to put a website in maintenance mode. The can help ensure that clients do not access the website while new code is being deployed or changes to other components are being done.

ASP.NET (starting with 2.0) provides a very convenient way to put an entire web application into “maintenance” mode. The knowledge of this nifty little feature was made public back in 2005 by Erik Porter and Scott Guthrie on their blogs.

Basically, if you place a file with this name in the root of a web application directory, ASP.NET 2.0 will shut-down the application, unload the application domain from the server, and stop processing any new incoming requests for that application.  ASP.NET will also then respond to all requests for dynamic pages in the application by sending back the content of the app_offline.htm file  — Scott Guthrie

This cool little trick comes with limitations. You cannot reference images in this file which are located under the same website you’ve just put into maintenance mode. Two of the easiest ways to work around it is to:

  1. Host your images on another website.
  2. Limit your “maintenance” message to HTML/CSS only.

But what’s fun in that.

Continue reading “Using Images in app_offline.htm”

New Beginings

After about two years of working in a contractor capacity at Societe Generale, I have been hired by the bank. It became official on April 14th, 2008. I am now working as a Desktop Engineer for the Desktop Technical Services group. So if RBW is ignored for a while, it's most likely due to the fact that I'm giving more of my time to work.

I still need to finish setting up the theme for the site as well as populate some general categories. Soon, very soon….

Stay tuned.

Brainworks Randomized!

Welcome to Random Brainworks.

Random Brainworks is the latest reincarnation of my personal blog which used to reside on http://nasir.us. However, this website is using Drupal 6.0 for its backend. The main goal of this website is…. well, there is no main goal. I will be posting random stuff (random brainworks, get it?) related to gaming, books, programming, web design, etc. Basically, anything I can think of.

Yep, it's yet another personal site with only select few readers, for now.

A lot more to come…