Import Export or the Metadata API?

With CRM4, you have two ways of getting customizations into your system: Import/Export of customizations and the Metadata API. Which one should you use? A: Depends.

If your intention is to create exact replicas of the information, Import/Export is the way to go. If you use the metadata API to create entities, even if you assign the same schema names, the resulting objects will be two different objects. Now, the metadata APIs has the advantage of letting you automate the creation of certain objects (e.g. attributes); you can potentially do things like having a plain text file with all the attributes that you want to create and have a simple loop that uses the CreateAttributeRequest of the metadata API to do the actual creation.

If you are building an installer (to deploy a complex Application built on top of CRM), you can potentially use both of them; for example, use a “skeleton” entity that you create using import export (that way you ensure that the entity is a replica and not a brand new object) and then fill-in the attributes using the Metadata API, this approach ensures that whenever you need to import/export back and forth (from source to target system or vice versa) the entities that you are dealing with are actually the same.