-
Discovery service Vs Organization service
-
Global Option set Vs Option set field
-
Organization owned Vs User Owned entities
-
Fin Vs Advanced Find
-
Managed Solution Vs Unmanaged Solution
-
Append Vs AppendTo
-
Share Vs Assign
-
Form level security Vs Field level security
-
Plug-ins Vs UI Workflow
-
Synchronous Vs Asynchronous Plug-ins
-
UI Workflows Vs Dialogue
-
Advanced Find Vs Reports
-
QueryByAttribute and QueryExpression
-
QueryExpression and FetchExpression
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.
Click here to get more info on Global Option set
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) |
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 |
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’ 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.
Ex:
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 | 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 |
Click Here
to know the difference between Form level security Vs Field level securityn
Click here
to know the difference between Plug-ins Vs UI Workflow
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. |
Click here
to know the difference between Workflows Vs Dialogue
Click Here
to know the difference between Advanced Find and Reports
Click Here
to know the difference between QueryByAttribute and QueryExpression
Click Here
to know the difference between QueryExpression and FetchExpression