Wednesday, June 11, 2008

InfoPath & SharePoint (Part 1)

A departure from sports and politics. This one is about technology.

InfoPath sucks and SharePoint is the most expensive piece of crap ever. InfoPath, as a development environment, has absolutely no redeeming value. It's worthless and if your boss ever thinks of using it, you have three options:

  • convince him not to (not easy once he's been brainwashed by the Microsoft marketing presentations)
  • use one of Al Gore's lockboxes to store away your sanity 'cos you'll lose it. Also, pad your estimates very generously. You'll need every bit of time you can get.
  • quit immediately while you still have your sanity
First, InfoPath:

To me InfoPath is like programming in assembly language. Sure it makes it easy (too easy in fact) to bind data to controls. But it doesn't provide you with easy access to your controls. Why is this important? Say you want to disable a button:

in most technology: buttonA.enabled = false (or something similar).

In InfoPath, you simply can't do this. You have to use something called "conditional formatting" to bind the button's enabled state to the a data field. While this is not so bad in theory it quickly breaks down in practice where you have multiple buttons. And where you sometimes have to set a button's enabled state to another button's state. In InfoPath, you'll have to "point & click" to set up conditional formatting for each and every button.

InfoPath doesn't have a label control. If you are developer, you'll know why this is glaring oversight. In fact, InfoPath has a very limited set of controls. Thinking about adding custom controls, good luck! You'll need to write ActiveX and convince your users to download your controls to their browser. Say goodbye to non-IE users.

InfoPath forms are saved in a proprietary binary format (really it's just a cab file). Why is this an important deal breaker for any sane developer? Because having ALL your source code in a binary format makes source control virtually impossible.

Now, InfoPath is not totally useless. You just have to use for what it is designed for (i.e. simple forms). And even then, trying to push the envelope will cause you untold amount of headache.

I'll write about SharePoint in my next post. Of course, it goes without saying that this is my personal opinion.