1. Discovery service Vs Organization service

Discovery Service :
The IDiscoveryService Web service is used to determine the organizations that a user is a member of, and the endpoint address URL to access the IOrganizationService Web service for each of those organizations. This discovery service is necessary because Microsoft Dynamics CRM is a multi-tenant environment—a single Microsoft Dynamics CRM server can host multiple business organizations. By using the discovery Web service, your application can determine the endpoint address URL to access the target organization’s business data.

Organization Service
It is a primary web service that accesses data and metadata of an organization. This web service contains the methods that you use to write code that uses all the data and metadata in Microsoft Dynamics CRM.

  • Global Option set Vs Option set field

Click here to get more info on Global Option set

  • Organization owned Vs User Owned entities

When we create a new entity in CRM, we have two option for “Ownership” as “User or Team” and “Organization”. Below are the main differences between these two types of entities.

Owned Entity User/Team owned Entity
Entity doesn’t has Owner ID field. Hence, these entity records can’t be owned by any user/team. Entity has owner ID field. Hence, it can be owned by user/team.
Entity records can be viewed by whole organization users Entity records can be viewed by user based on their security roles
Records cannot be shared or assigned Records can be share and assigned
Entity has only two security access levels as “None” and “Organization” Entity has all access levels (None, user, BU, Parent: Child BUs, Org)

  • Fin Vs Advanced Find

Find Advanced Find
Search is performed on defined attributes in Quick Find view Search can be performed on any attributes, users can customize the attributes
Find searches only Active records in an entity Advance Find searches in all records including inactive records
Fine filters on only one condition User can declare multiple conditions dynamically in Advanced Find. User can define complex queries with GROUP AND & GROUP OR
Find gives better performance than Advanced Find Less performance

  • Managed Solution Vs Unmanaged Solution

Unmanaged Solution
All solutions start out as Unmanaged. When it is in the unmanaged state, you can add, remove, update, and test any of the components of the solution. You can delete components of your unmanaged solutions, while leaving it available for use in the rest of the system. Some on the MS CRM dev team have likened this to your ‘source’ code of your system. The great thing about an Unmanaged Solution is that during development, you can create restrictions (like ‘not customizable’) on the components as they evolve.

Managed Solution
When your unmanaged solution is ready for the show, you simply export it to ‘Managed’. You could think of this as ‘compiling’ you code. You set the restrictions (i.e. prevent customizations on certain components) and the end user lives by those rules. But remember, they can still customize the components of the solution that are unrestricted. You cannot add or remove components of a solution, even if the component is unmanaged.
Once you have packaged the Managed Solution, it can be installed into another organization. They can also be deployed across multiple deployment types (Online, Partner Hosted, On-Premise) and all CRM Clients (web, Outlook, Mobile Express, and Offline via Outlook Client).

  • Append Vs AppendTo

‘Append’ and ‘Append To’ privileges works together in CRM. ‘Append To’ allows other entities to get attached with it. ‘Append’ privilege will allow the entity to attach the records of an entity which has ‘Append To’ privilege.

Generally, we attach notes to an entity (Account). To do this Note should have “Append” privilege and Accounts should have “Append To” privileges.

Let say Entity1 and Entity2 has 1:N relation. Entity1 should have Append To and Entity2 should have Append permission to relate both the entities records with lookup.

  • Share Vs Assign

Share Assign
User who has share privileges on entity record can share to another user User who has Assign privileges on entity record can share to another user
On sharing the record, selected permission given to new user on that record. Here, ownership of the record remain same. On Assigning record, Ownership will be transferred to new user
We can use GrantAccess, ModifyAccess and RevokeAccess Messages to share the records with SDK We can use AssignRequest to assigned records with SDK

  • Form level security Vs Field level security

Click Here
to know the difference between Form level security Vs Field level securityn

  • Plug-ins Vs UI Workflow

Click here
to know the difference between Plug-ins Vs UI Workflow

  • Synchronous Vs Asynchronous Plug-ins

Synchronous Plug-ins Asynchronous Plug-ins
These Plug-ins are executed by the CRM Core System These plug-ins are executed by Asynchronous service
Synchronous means the triggering point will wait until the Plug-in finish its execution. Triggering event don’t wait to finish the Asynchronous plug-in to complete.
Generally, we use Synchronous plug-ins to do validations before any actions happened, Any action that should be performed immediately. It give lesser performance compare to Asynchronous plug-ins. Generally, we use this plug-ins to improve the server performance. If the Plug-in logic takes more time and that need to not to be happen immediately then we can go with these plug-ins.

  • UI Workflows Vs Dialogue

Click here
to know the difference between Workflows Vs Dialogue

  • Advanced Find Vs Reports

Click Here
to know the difference between Advanced Find and Reports

  • QueryByAttribute and QueryExpression

Click Here
to know the difference between QueryByAttribute and QueryExpression

  • QueryExpression and FetchExpression

Click Here
to know the difference between QueryExpression and FetchExpression