Ayende @ Rahien

Refunds available at head office

Don't use MS CRM! It is not worth the ulcer you will get!

Yesterday I reached the breaking point with regards to MS CRM.

We needed to push a build to staging, so the customer can start acceptance testing. The way we built it, we have a central CRM development server, and each developer is working mostly locally, but against the same server. I don't like it, but the CRM doesn't really give me much choice.

At any rate, we started the move by trying to move the customizations from the development server to the production server. Naturally, there is no way to diff things, so I have no idea what changed since we last went to production.

The import process failed, some SQL error. There is a reason that I use the term "some SQL error", that is the entire information that I have about this error. checking the event log, trace files, etc reveals no further information. That went beyond annoying. We ended up having to do import of entity by entity, and doesn't merge by hand for the entities that failed to import successfully.

As you can imagine, that took: (a) time, (b) aggravation.

Both development and production machines has the same version installed, and it is not as if I was trying to do something out of the ordinary, it is supposed to be a common operation.

I had enough with this in lapsus alumni platform. I officially declare it as a nightmare platform.

MS CRM - don't bother even trying, you will thank me for it.

Comments

MarioL
11/16/2007 05:56 PM by
MarioL

Oh, how I love those kind of errors: Something bad happened. Good bye.

wolfprime
11/16/2007 06:00 PM by
wolfprime

You could do a SQL trace on the SQL server while the install is running. That would probably get you more information.

Doron
11/16/2007 06:36 PM by
Doron

I would add ESRI's ArcGIS Server ADF (a GIS platform).

Weird errors, minimal documentation, zero flexbility for anything not done with a designer.

And also...

http://blogs.microsoft.co.il/blogs/dorony/archive/2007/02/09/No-Excuse.aspx

Tuna Toksoz
11/16/2007 06:54 PM by
Tuna Toksoz

those who have played with asp 3.0 will remember the funny "unspecified error" thing.

Ayende Rahien
11/16/2007 06:59 PM by
Ayende Rahien

I could...

Or I could never touch this piece of useless bits ever again.

If I have to pull out the big guns, then the application is not worth using at all.

MarioL
11/16/2007 08:32 PM by
MarioL

Maybe it's a kind of game a 'quest' for programmers. You know those kind of it where you need to take this, pull that, push here, then stand there, jump exactly 3 times etc

Mark Berry
11/17/2007 02:53 AM by
Mark Berry

There's no excuse for bad error messages. You found the SQL logs, right? (in Enterprise Manager, or MSSQL\LOG\ERRORLOG.*).

Haven't worked with MS CRM, but I'm surprised by the comment that "there is no way to diff things." Are you working directly in the test database? I started my last big DB project working that way. Things got much simpler when I started using ApexSQL Edit with version control. All changes are made to text files (one file per stored proc, trigger, etc.). Each file includes a DROP and CREATE statement. These files are run against whichever database needs to be changed. ApexSQL Edit includes a deployment module, but I just write little batch files with osql commands to patch about 15 databases at once. The text files are stored in SourceSafe so I can do dfff's, versions, rollbacks, etc. Changing schemas while maintaining live data gets a little tricky but can still be accomplished with custom TSQL scripts.

Ayende Rahien
11/17/2007 02:55 AM by
Ayende Rahien

Mark,

MS CRM doesn't let me work with the DB directly, I can work with that.

All the changes are made internally, and there is no way to get the stuff out in a diff format.

Alessandro C.
11/17/2007 10:54 PM by
Alessandro C.

I understand what you feel. I have worked with another piece of the Microsoft Business Platform (Navision or Dynamics Nav) and I felt exactly like you.

I don't know CRM but knowing Navision your post not surprise me.

Dwain
11/18/2007 01:17 AM by
Dwain

Why do you not diff the customizations XML from both environments to see what the problem is? This usually happens to us when a data type changes on a custom attribute. No, CRM doesn't do it natively but it should take about 2 minutes to do using your favorite diff tool.

Honestly, we've written hundreds of thousands of lines of code across three-four developers using CRM3 as our platform for the past 11 months, and while we occasionally have a hiccup we have managed to release a pretty stable, well-liked CRM application for our mobile sales force. 3rd party plugins from other companies are our biggest challenge, unfortunately.

Ayende Rahien
11/18/2007 02:48 AM by
Ayende Rahien

Dwain,

The problem wasn't how to diff things, the problem is that it should NOT happen, and such things are all too common in this flustermess that is called the CRM.

Sure, I can do workarounds, but when I find out that most of my time goes on the workarounds...

J.P. Hamilton
11/19/2007 03:21 PM by
J.P. Hamilton

You know it's only a matter of time before the MS CRM team tries to hire you.

Hit
11/19/2007 04:24 PM by
Hit

@J.P.

I have a feeling Ayende wouldn't accept that position for a $million a year. =)

(actually, maybe he would...)

Stuart Cam
11/21/2007 06:18 PM by
Stuart Cam

You think MS CRM is a nightmare platform?

We are currently migrating a Sharepoint 2007 development project from developer machines to a "build" machine.

Ulcer you say? I'd be happy to slip into a coma to avoid the problems we are facing.

Comments have been closed on this topic.