There are few technical concepts that you need to be familiar with in order to successfull with SAP CRM development. Let's review some of the basic ideas and concepts
CRM is a primarily an object-based and sometimes object oriented ABAP type system. Object based means the application is not fully object oriented, but written in an manner that simulates object-orientation.
GUID as primary key
A globally or generally unique identifer called a GUID is used in CRM. They are either 16 bit, 22bit or 32bit raw character format. The purpose of the guid is prevent issues with number range conflicts and allow for easier read access to the CRM tables.
Single client per instance
In a simple CRM landscape that only has one SAP ERP backend connected to it, you will find there is not a need for multiple clients in development system. This due to the fact the CRM downloads customizing from the ERP system and uses this customizing as the starting point for the CRM customizing. Normally we only have one middleware connection between CRM & ERP as recommended practice. It is therefore recommened then to only have one development client then on the CRM side.
The data model is not the same as ERP
CRM has a unique segment based data model that is similar to HR infotypes in nature. This means not all the information is stored in very large tables for a business object. In addition you should never write select statements to read data in CRM unless you are doing a search for data. Instead you should use the provided API's contained in the system.
BDC is not supported
The use of BDC as a data input model is not supported by the solution. Instead CRM provides a rich API framework along with XIF adapter which can be used to import/extract data from the system.
You must understand the business process
CRM by nature is a business process driven solution. It is crucial that you must acquire basic understanding of the business processes, in order to develop a technically correct solution.