The other day I was trying to figure out why the ItemCommand associated with an ImageButton in a DataGrid had stopped firing and was surprised by why...

Here is the grid in action:

When I clicked on any of the ImageButtons in the grid, the page did post back, but the ItemCommand didn't fire. I experimented with binding the grid at different points in the page lifecycle, but that didn't help. I also tried switching from a DataGrid to a GridView, thinking such a drastic change might get rid of whatever oddity was going on. No such luck.

Finally, I noticed ...

Back at TechEd 2007 in Orlando, Florida, both teams celebrated the release of the Telerik radControls Training courseware authored by Falafel Software and the start of a great relationship.  Here at Falafel we have nothing but respect and admiration for Telerik's products and their quality.  At the same time, we all here enjoy the Bulgarian spirit, sense of humor and great team.

The picture below was taken at the Texas De Brazil steakhouse with both teams after 14 bottles of Wine, and a lot of other weird drinks, for some reason no one remembers this picture on both teams Beer

While having some fun with the Visual Studio SDK I ran across a great example of a Navigation window by Gaston Milano.  It's a great sample to start with if you would like to dive into Visual Studio Package development.  One item of note that I found while using the navigation window on a very large project is that Visual Studio 2005 kept crashing everytime the window would be brought up.  I noticed that before VS crashed it had a difficult time drawing things. I immediately thought of a GDI leak.  I opened up Task Manager and checked the GDI objects ...

So you have a cool asp.net application and everything is running great. You're running it under NET 2.0 and you're using a report server on the same machine. It may run great for months, and then out of nowhere your web application starts displaying the “Service unavailable” page. It does this until you do an iisreset. Where did this message come from? I recently had to find out for myself. My search lead me to the Event Viewer on the server and five warnings about various system failures that read something like this:

A process serving application pool 'ASP.NET V2.0' ...

I am working on a web application, and some of the client side logic uses JavaScript to get an integer value from a text box. A user logged a bug claiming that when he entered a value that had a leading 0, for instance 0556, the result was in his words "a random number".

I looked up the parseInt global function here, and lo and behold! parseInt interprets a leading 0 as denoting that an octal number follows! It also has special processing for 0x (hexadecimal). To prevent this interpretation, you can specify the radix yourself in an overload ...

While setting up a CruiseControl.NET server for a project here at Falafel I ran into this error:

svn: Working copy '.' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

After executing svn cleanup from the command line numerous times to no avail I finally realized the problem was a missing <workingDirectory> node for the project in the ccnet.config file. Well, I won't be making that mistake again.

There is a pattern to these errors.  Same asp.net source, same database, same IIS version, same Visual Studio version, same components version, but still some chunk of JavaScript is absent without leave. The actual error messages tend to be new each time, but at least the pattern is recognizable. The reason is that the missing JavaScript functions live in webresource.axd, webresource.axd is handled by an aspnet_isapi.dll, and chances are you are missing a mapping for "axd" in your IIS configuration for your web site. To fix:

  • In the IIS Microsoft Management Console snap-in, right-click the virtual directory and select Properties. ...

A while back I was trying to figure out how to make F1 bring up a custom help window in our web application ActiveFocus. It is easy enough to trap a keypress and open a window showing the help, but to my frustration, after popping up the new window, the built in Internet Explorer help window popped up too!

I tried various variations of cancelling the kepress event, but nothing seems to work. This is for instance how I cancel Ctrl+F (which normally pops up IEs built in Find dialog, but I wanted it to show a custom search dialog instead) ...

You may run into the 15023 error if you restore a MS SQL database from backup.  You expect a restored database to be in exactly the same state as the backup, but the login fails for a user that had permissions in the backed up database.  When you use the "User Mapping" SQL Management Studio functionality to allow the user permissions to the new database, you receive the 15023 error.  This is caused by Security identification numbers (SID) that are mismatched or 'orphaned' in the sysusers table. 

The SQL Server stored proc sp_change_users_login locates and fixes these records.  Run it ...

Like many developers, I have both VS2003 and VS2005 installed on my machine. I had also placed a shortcut to the Visual Studio  command prompt in my programs menu. A couple of days ago, I had the opportunity to write my first Windows service application. I got everything set the way I wanted, and it was time to install. So, I opened up the VS command prompt, and typed in the magic chant "installutil servicename.exe". And fairly promptly got the error "Exception occurred while initializing the installation: System.BadImageFormatException: the format of the file 'servicename.exe' is invalid...".

If you're encountering the same error, ...

While working with Visual Studio and wishing that feature X existed, I decided to delve into the Visual Studio Extensibility layer and see what it can do.  There are 3 main ways to extend the VSIDE which are Macros, Plugins, and Packages so I opted to play with managed packages (I like C# and wanted full integration into the IDE).

After downloading the Visual Studio 2005 SDK and completing development of my package I needed to deploy it.  I ran into a number of issues deploying my package, mostly related to issues with the Package Load Key.  Following are the steps that I came up ...

SQL Management Objects (SMO) is something of a Swiss army knife that lets you traverse meta data, automate backup and restore, and otherwise manage SQL Server 2005 through .NET code.  For instance, to perform the classic database hierarchy walk use the SmoApplication object and enumerate the servers.  First you need to reference the Smo assemblies:

Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.SmoEnum.dll

Then call the SmoApplication EnumAvailableSqlServers() method, passing 'true' to list only local servers:

1
DataTable tblServers  = SmoApplication.EnumAvailableSqlServers(true);

EnumAvailableSqlServers() may not work if you don't have a network connection, but you can use the RegisteredServers collection property instead. This will work without ...




It’s a big week for the staff at Falafel who has been cooking up a course certain to whet the appetite for project teams everywhere.  With the release of ActiveFocus, the Falafel team has once again demonstrated their ability to deliver as promised.

ActiveFocus reflects many years of down-to-earth project management experience at many levels.  Having involvement with numerous projects across diverse industries, we have benefited from experiencing first hand the differences between teams. 

Even so, given all the great tools, methodologies and experience, we at Falafel are no dummies. We know that at the root of any successful project ...



SAN JOSE, Calif. July 5, 2007 -- Falafel Software, an industry leader in consulting, training, and software development is pleased to announce the hiring of Steve Trefethen as Software Architect. Trefethen, former R&D Staff Engineer at CodeGear, Borland’s Developer Tools Group, has over 15 years of experience working along side some of the world’s leading software developers.

“Steve’s incredible coding skills are well known and respected throughout the industry” commented Lino Tadros, President and CEO of Falafel Software. “We are grateful for his presence and feel that his decision to join us at Falafel will further strengthen our incredible team.”...



Falafel Software is pleased to announce the arrival of the ActiveFocus public download. This download, available on the Falafel Software community server, enables anyone to utilize a fully functional version of ActiveFocus with no expirations, demos, or crippling. From installation to completing your first project, the ActiveFocus public download gives you a direct experience of the compete ActiveFocus.

“The ActiveFocus public download really gives you a wonderful look at the entirety of ActiveFocus,” remarks Adam Markowitz, Falafel Software Architect. “In contrast to our hosted demo, our public download allows you to install, configure, and experiment with all the great features ...



Last week I needed to add some personalization features to our ActiveFocus application, and it seemed like the built in logic around the Profile class in ASP.Net 2.0 Personalization would do the trick. It's actually pretty neat. First, you "declare" your profile data in web.config, something like this:

<profile enabled="true">
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ActiveFocus"       applicationName="/ActiveFocus"/>
  </providers>
  <properties>
    <group name="Grids">
      <add name="MainGridRows" type="System.Int16" />
      <add name...