Wednesday, December 06, 2006

Web Standards

Hmmm... do we need standards at all??

Ok..Ok... I was just kiddin' alright?

There is a wonderful article on using web standards (read XHTML!) when developing web sites. With ASP.NET 2.0, XHTML validation has been easy as... well you get the point, right?

Well, here is the article on MSDN, I was talking about:


Migrating to VS.NET 2005 - Lessons learned

I have been searching all over the place and talking to people regarding any issues faced during migrating the existing VS.NEt 2003 projects to VS.NET 2005. I have heard about horrifying stories, but I had not made a list still. So I venture out to Joel On Software forum and posted a question. And here are the responses from it:

1. BACKUP! Keep a backup copy.

2. If you have third party libraries, components, DLLs, whatever for your ASP stuff, check with the vendor to see if they're supported in VS2005.

3.Use Web Application Project model (as opposed to Web Site model): Consider using the Web Application Project model which is closer to the VS2003 model:

4. Run the conversion wizard: You should probably also download the update to the Web Project Conversion Wizard: or VS2005 SP1 Beta which presumably includes this as well as other hotfixes.

5. Start Early: Branch the code and start working on the conversion early since, depending on the size and complexity of your configuration, it may take a while.

6. Be XHTML compliant. Be prepared to spend some time making the pages xhtml compliant. To merge master pages with the content pages, an xslt happens, and can be problematic if they aren't xhtml compliant.For example, you can't make a
, you have to make it

7. No code on the aspx page. Because the merged page will be in a different context from the content page, code on the aspx page will give surprising results.

I will be updating this section as and when I get more information.

Disclaimer: Please do not consider as a must-do or only-to-do list. These are points I collected from different forums and friends. Please consider speaking to your Architects and Powers-to-be before making any decisions.

Monday, November 13, 2006

Design Patterns - The Why!

They say the term "Design Pattern expert" is a wrong usage. This is because if your developers do not have expertise on Design Patterns, then they do not appreciate whatever patterns you pick to use as a guideline.

During my early years of .NET, I was told to follow certain Design Patterns. But no one attempted to make me understand the concept and philosopgy behind those patterns. I started reading the GoF patterns (the Bible of design patterns!), but I couldn't understand a bit! Take that as my confession, but hey, I was not alone at all! Then later one day, I took the courage to admit that myself and James Avery. James helped me reach the Head First book on the same subject. Let me say, I was hooked onto it!

This month's UG meeting discusses the same topic - Why, What and How of Design patterns. The "Why" part, that is where I am more interested in. "Why should a developer be concerned about a Design pattern?"

My colleague, Vijay Cheleenhalli, a design pattern expert (oops!) is going to present the topic.

For registering for the event, please visit

Monday, September 25, 2006

September Talk moved to October

I was called unexpectedly and had to fly to India for a short span of 10 days. My father was diagnosed advanced Liver Cirrhosis and had to see him.

Judy Calla was very much helpful in switching my presentation with Mehul Mody's talk on Ajax.NET.

So fans (:-)), get geared for October!

Wednesday, August 30, 2006

September Talk

I am going to talk on Membership features in ASP.NET 2.0. If time permits, I would be touching briefly on Role Providers too. If you would like to listen to these topics, you are most welcome to the September session of the Central Penn .NET User Group (

Tuesday, August 01, 2006

ADA and Intellisense

All the pages I develop demands Section 508 complaince. And to achieve
this, MS (Microsoft, duh!) recommends installing a June 2003 hotfix for
1.1 (yes, I am still using the "old" version :-)). This, they tell,
would support AssociatedControlID property in the control.

I did install the hotfix and it doesn't seem to work as expected. The VS.NET IDE
still shows that annoying red squigley line under the
AssociatedControlID, but does not give any compilation errors.

I did google and it seems many of ASP.NET developers face this issue.
As a result of my recent adventure in creating Custom Server Controls
and ADA complaince, I think that the hot fix does not UPDATE the
asp.xsd (which drives the Intellisense in VS.NET IDE) file.

Did any one (1.1 users) face this kind of issue lately?

Saturday, July 22, 2006

Loop, Loop....

I had got a relatively small but cumbersome C# code to maintain and extend. Well, I was first charged with the enthusiasm of working in C#, but being a pampered VB (.NET) developer, I decided to convert (manually) the whole code to VB.NET. There were two reasons that made me decide this:

1. I could learn the whole code and what the code intended to do.
2. I was leery on making C# code changes to a working piece of software! Yes, I was too leery!

After 2 days of juggling, I got everything to VB.NET! Wow!

But when I started testing, one part of the code started breaking! :-) This was not expected (It's never expected to fail, right? :-)). I had converted a for loop in the C# code to a for loop in VB.NET.

In the C# code, an arraylist was the one which was getting "looped" and when a condition matched, on object gets removed from the arraylist. The world seemed perfect.
But, to my luck, the VB.NET code did not behave as expected.

Later, I learned that the VB.NET equivalent of the FOR loop in C# is the WHILE loop.

Good learning of the month!

Sunday, July 16, 2006

Unrecoverable, indeed!

I have been working in VS.NET 2003 since its inception. I have deployed both ASP.NET as well as Windows Forms apps to various servers innumerable times.Today I encountered a problem, which was indeed a dead end for me. When I was trying to build a Web Deployment Setup project, VS.NET threw me a Unrecoverable Build Error. Wow!

When I googled, I found many facing this issue. All of them pointed me to the Microsoft's support site article :

All I needed to do was to register the Mergemod.dll.

Wednesday, April 26, 2006

On Vacation

I am going on a vacation to India for one month. I hail from the capital city of Kerala state, Trivandrum. I am planning to meet the T-MUG team in Trivanrum. T-MUG is a Microsoft User's Group in Trivandrum, a group of .NET enthusiasts. I look forward for the fun and excitement.

If you happen to be in Trivandrum, please drop me a line at rajeevg.nair[at] and we can meet.

Tuesday, April 25, 2006

Technology and People

When does technology become a success?
When does the IF-ELSE-ENDIF statements that we key in every minute make a difference?

When the technology we build make a difference in people's lives. There is a very good story on Channel9 of how two developers made a difference....Read on.

Friday, April 21, 2006

VS 2005 Express Versions Free from NOW!

Yes, you heard right!

Visual Studio 2005 Express versions are now FREE! Believe it!

Effective April 19, Microsoft has announced that the express versions (Visual Basic 2005 Express, Visual Web Developer 2005 Express etc. etc...) are going to be FREE FOR EVER!!!

Read the entry on the ASP.NET Guru Scott Guthrie's blog:

Have Fun!

Wednesday, March 22, 2006

A Great Evening with Themes

It was a great evening yesterday as everyone loved it, it seems... :-)

This was my third speaking event for our user group.

My last talk was about Delegates and I know most of them did not get anything from what I talked. And I was really disappointed. May be the examples I gave was not enough or it did not make the point that I wanted to convey.

But this time, it was different. Although I stumbled for few minutes, I made that up after some time, thanks to the audience.

Wednesday, March 08, 2006

Themes and Skins - Part 2

This is a follow up on my previous post on the similarity between Skins/Themes in ASP.NET 2.0 and Styles/CSS in pre-.NET era.

A CSS file looks typically like this:

The first notation (H1) is called a Default Style. This is because all the elements with in <h1> tag would be rendered as BOLD.

The second notation (.BoldHeader) is called a Named Style. "Named", as the set of styles have a name. The phrase (word, actually) after the "." is the name given to the style. And any controls (oops! elements, I mean :-)) referring to this name would be rendered as BOLD.

I would not go in-depth, explaining the how-to about implementing themes and skins using CSS, as there are a plethora of articles in the internet.

There is a very interesting article, by Claus Augusti, about implementing Themes using CSS and Javascript. Read on!

Now, lets dive into ASP.NET 2.0. What's different in here? Here we have a .skin file (a file with .skin extension (duh!)), which defines the appearances of the controls that are used in a web page. A .skin file would "look" like an ASPX page. Like this, I mean: file-

As you see, there is no ID property in the label control. Yes, that is the only difference!

NOTE: There is no intellisense support for .skin files. So, if you need to get it done fast, you need to type it in on an ASPX page and then copy/paste into the .skin file.

Then, when you create an ASPX page, mention this theme (ControlsTheme, as you see in the above snapshot).

-An ASPX page-

So, all the labels in the page would appear as specified in the file.

You got the gist, right?

As I posted earlier, I am speaking about the Themes and Skins in ASP.NET 2.0 in our local .NET User Group (Central Penn .NET User Group) meeting on March 21.

Tuesday, March 07, 2006

Mug Shot - Temp

Themes and Skins (a.k.a style and CSS :-))

What is a Skin anyways?

Skinning were around pre-.NET, but it was not known as Skins.

When you color a text in your page, you are actually skinning the text. The web gurus abstracted this away into what later came to be known as Styles. Then came CSS (Cascading Stytle Sheets), where you could collect all the styles that you applied to your pages, into one single file. Then there came standards for CSS. This collecting of the styles to one file(.CSS file) was a revolution indeed.

You can relate a style applied to a control in your web page as a Skin and the .CSS file as the Theme of your site.

Themes and Skins - Part 2

R I P Alen Joseph

Yesterday, March 6th 2006, was the 10th death anniversary of my dear classmate, Alen Joseph.

Friday, February 24, 2006

March is Mine!

I am going to speak about Themes and Skins in ASP.NET 2.0 in our local .NET user's group ( on the third Tuesday of March (21st of March, that is). I have been looking forward to this for a long time. With my busy schedule recently, I have not had enough time to dig deeply into VS2005 and ASP.NET 2.0. And this would give me an excuse to do so.


Oh Yeah!

It was Miguel Castro at our local user group meeting (, speaking about building
Web Controls.

It was indeed an interesting session, with Miguel. He was really prepared and was really active. Most of the members in our group are either beginners or are getting into .NET.

As Miguel told (or complained) that building web controls are an area which most developers (or the powers-to-be, for that matter) do not like to swim in. I get complains from fellow developers around of how the DataGrid or LisBox do not give them what they need. Well, if they could see them as just templates rather than a fully blown product for them to use, they could really take the advantage of extending the functionality. My favourite quote - "No one can make the whole world happy. Not even Microsoft." But it does make our life easier. With passion and courage, Miguel showed us that extending the functionality of the existing controls or building a new one from the scratch is not that hard and cumbersome as we think it is.

The most important (and confusing) area is State Management. I got lost in that area and got my doubts cleared with Miguel after the session.

We are really proud for having Miguel with us.

Three Cheers to Miguel.
Three Cheers to Judy.