Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,972 | Comments: 44,508

filter by tags archive

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

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

wolfprime

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

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

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

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

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

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

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.

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

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

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

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

Hit
Hit

@J.P.

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

(actually, maybe he would...)

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.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

  1. Paying the rent online - 13 hours from now
  2. Reducing parsing costs in RavenDB - about one day from now

There are posts all the way to Aug 04, 2015

RECENT SERIES

  1. Production postmortem (5):
    29 Jul 2015 - The evil licensing code
  2. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
  3. API Design (7):
    20 Jul 2015 - We’ll let the users sort it out
  4. What is new in RavenDB 3.5 (3):
    15 Jul 2015 - Exploring data in the dark
  5. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats