Google Anlatics

Sunday, December 25, 2022

How to Become a CRM Developer for Microsoft Dynamics 365 Online

Microsoft Dynamics 365 Online is a cloud-based CRM system that helps businesses manage customer relationships and interactions across various channels. As a CRM developer for Dynamics 365 Online, you will be responsible for building custom solutions and integrations using the Dynamics 365 platform. If you are interested in pursuing a career as a Dynamics 365 developer, here are some steps you can follow:

1. Gain a solid understanding of computer programming concepts: Dynamics 365 developers need to have a strong foundation in computer programming concepts such as data structures, algorithms, and software design principles. Consider taking online courses or earning a degree in computer science or a related field to gain these skills. Some resources to help you learn these concepts include:

Coursera (https://www.coursera.org/)

Khan Academy (https://www.khanacademy.org/)

Code Academy (https://www.codecademy.com/)

2. Learn a programming language: Dynamics 365 developers typically use a programming language such as C# and .NET to build custom solutions for the platform. Choose a language that you are interested in learning and start practicing with online tutorials and exercises. Some resources to help you learn C# and .NET include:

Microsoft Visual Studio (https://visualstudio.microsoft.com/)

C# Fundamentals on Pluralsight (https://www.pluralsight.com/courses/csharp-fundamentals)

C# Programming Yellow Book (http://www.csharpcourse.com/)

3. Familiarize yourself with Dynamics 365 concepts: It's important to have a solid understanding of Dynamics 365 concepts and how they are used in business. Some topics to consider learning include customer segmentation, sales processes, and marketing automation. You can find more information on Dynamics 365 concepts and features on the Microsoft Dynamics 365 website (https://dynamics.microsoft.com/en-us/).

4. Get experience working with Dynamics 365: Look for opportunities to work with Dynamics 365, whether through internships, part-time jobs, or freelance projects. This will give you practical experience working with the platform and help you build your skills and portfolio.

5. Consider earning a certification: Earning a certification, such as a Microsoft Dynamics 365 Developer Associate certification, can demonstrate your skills and knowledge to potential employers and help you stand out in the job market. You can find more information on Dynamics 365 certifications on the Microsoft Learning website (https://docs.microsoft.com/en-us/learn/certifications/dynamics-365/).

6. Stay up-to-date on industry trends: As with any field, the CRM industry is constantly evolving. Make sure to stay up-to-date on the latest trends and best practices for Dynamics 365 by reading industry blogs, attending conferences, and participating in online communities. Some resources to help you stay informed include:

The Microsoft Dynamics 365 blog (https://cloudblogs.microsoft.com/dynamics365/)

The Dynamics 365 User Group (https://dynamiccommunities.com/dynamics-365-crm)

Stack Overflow (https://stackoverflow.com/)

7. Create a trial version of Dynamics 365 Online: If you want to try out Dynamics 365 Online and get a feel for the platform, you can create a trial version using the following steps:

1. Go to the Microsoft Dynamics 365 website (https://dynamics.microsoft.com/) and click on the "Try it now" button.

2. On the next page, select the "Try Dynamics 365 for free" option.

3. Sign in with your Microsoft account, or create a new one if you don't have one.

4. Fill in the required information, including your name, company name, and email address.

5. Accept the terms and conditions, and then click on the "Sign up" button.

6. You will receive an email with a link to activate your trial. Click on the link and follow the instructions to complete the activation process.

7. Once your trial is activated, you can log in to Dynamics 365 Online and start exploring the platform. You will have access to all of the features and functionality of the full version of Dynamics 365, but your trial will expire after 30 days.




Security Features in Microsoft Dynamics 365 (CRM) Online

Microsoft Dynamics 365 (CRM) Online is a cloud-based customer relationship management platform that helps businesses manage their sales, marketing, and customer service activities. To ensure the security of the platform and the data stored on it, Dynamics 365 (CRM) Online offers a variety of security features.


1. Encryption: Dynamics 365 (CRM) Online uses SQL Transparent Data Encryption (TDE) to encrypt and decrypt data and log files in real time, helping to protect customer databases at rest. As of December 2017, Microsoft recommends securing the encryption keys used for TDE on the Azure Secure Vault (HSM). This allows you to generate and manage your own encryption keys, and upload them to an Azure Key Vault controlled by Microsoft.

2. Multi-Factor Authentication (MFA) or Two-Factor Authentication (2FA): MFA or 2FA is a security measure that requires an additional method of verifying your identity, such as a one-time code sent to your phone or a security app, in addition to your password. Dynamics 365 (CRM) Online includes basic MFA, but you may need to purchase Azure AD Premium licenses for additional MFA options.

3. Pen testing: Microsoft conducts server-level penetration testing to ensure the security of Dynamics 365 (CRM) Online. These tests are designed to identify and exploit vulnerabilities in the system, and the results are used to improve the security of the platform.

4. Data center security: Dynamics 365 (CRM) Online is hosted on Microsoft Azure, which has a number of security measures in place to protect the data centers that host the platform. These measures include physical security, network security, and data protection. Azure also undergoes regular security audits and assessments to ensure that it meets industry standards and regulations.

5. Compliance: Dynamics 365 (CRM) Online meets a number of industry and government standards and regulations, including GDPR, HIPAA, and ISO 27001. This helps to ensure that the platform is secure and compliant with relevant laws and regulations.

6. Data backup and recovery: Dynamics 365 (CRM) Online includes data backup and recovery capabilities to help protect against data loss. In the event of a data loss or disaster, you can restore your data from a backup to minimize the impact on your business.

7. Access control: Dynamics 365 (CRM) Online includes access control features to help you manage who has access to your data and what they can do with it. This includes role-based security, which allows you to assign different levels of access to different users or groups, and data visibility controls, which allow you to specify which data is visible to which users.

8. Activity logging: Dynamics 365 (CRM) Online includes activity logging to help you track changes to your data and identify any potential security issues. You can view the logs to see who made changes to your data and when, and use this information to help detect and prevent security breaches.

9. Security updates: It is important to keep your Dynamics 365 (CRM) Online instance and any associated apps up to date with the latest security updates to protect against vulnerabilities and threats. Microsoft regularly releases security updates for Dynamics 365 (CRM) Online to help protect against new threats and vulnerabilities.

For more information on the security of Microsoft Dynamics 365 (CRM) Online, visit the following links:

Migrate Dynamics CRM 365 Online to Dynamics CRM 365 On-Premise — Summary

Migrating from Dynamics CRM 365 Online to Dynamics CRM 365 On-Premise can be a complex process, but it is often necessary for organizations that need to access data offline or comply with certain regulations. The migration process involves transferring data, configurations, and customizations from the cloud-based version to the on-premise version, which is installed and run on a local server.

The first step in the migration process is to prepare the on-premise environment by installing and configuring the Dynamics CRM server, setting up Active Directory, and preparing the SQL Server database. Next, data must be exported from the online version of Dynamics CRM using the Dynamics CRM Data Migration Manager. This tool allows users to select the data they want to export and specify a location for the exported files.

Once the data has been exported, it can be imported into the on-premise version of Dynamics CRM using the Import Data Wizard. This tool guides users through the process of mapping the data from the exported files to the appropriate fields in the on-premise version.

After the migration is complete, it is important to test the migrated data to ensure that it has been transferred correctly and that the on-premise version of Dynamics CRM is functioning properly. By following the steps outlined in this blog post and carefully planning and executing the migration process, organizations can successfully migrate from Dynamics CRM 365 Online to Dynamics CRM 365 On-Premise.

chamara iresh's Blog: Migrate Dynamics CRM 365 Online to Dynamics CRM 365 On-Premise

Migrate Dynamics Dynamics CRM 365 On-Premise to CRM 365 Online - Summary

 There are several key differences between Dynamics 365 on-premises and Dynamics 365 online that organizations should consider when deciding which option is best for their needs. Some of the main differences include:


1. Deployment: Dynamics 365 on-premises is installed on an organization's own servers, while Dynamics 365 online is hosted in the cloud.


2. Maintenance and upgrades: With Dynamics 365 on-premises, organizations are responsible for managing and maintaining the system, including installing updates and patches. With Dynamics 365 online, Microsoft handles these tasks.


3. Scalability and performance: Dynamics 365 online is built on Azure, a cloud platform with a global network of data centers, which allows for better scalability and performance compared to on-premises systems.


4. Customization: With Dynamics 365 on-premises, organizations have more flexibility to customize the system to meet their specific needs. However, this customization can also increase the complexity and maintenance required for the system. Dynamics 365 online is more limited in terms of customization, but this can also make it easier to maintain and use.


5. Integration: Dynamics 365 online offers integration with other Microsoft cloud services such as Office 365 and Azure, which can be beneficial for organizations already using these services. Dynamics 365 on-premises can also be integrated with other systems, but this requires additional effort and resources.


6. Cost: The cost of Dynamics 365 on-premises depends on the number of users and the amount of customization required. In general, Dynamics 365 online is likely to be more cost-effective, especially for organizations with a large number of users.


When deciding whether to migrate to Dynamics 365 online, organizations should carefully consider their specific needs and requirements, including the level of customization required, the complexity of the system, and the resources available for maintenance and support. It may be helpful to consult with a Dynamics 365 partner or consultant to determine the best solution for your organization.


Refer below link for details information: 

chamara iresh's Blog: Migrate Dynamics Dynamics CRM 365 On-Premise to CRM 365 Online

Friday, December 2, 2022

Unit Testing with FakeXrmEasy

 Go to below links for more information

https://dynamicsvalue.com/home

BASICS

Basics :: FakeXrmEasy Docs (dynamicsvalue.github.io)

Below content are copied from above link. 

There is a fundamental principle in FakeXrmEasy: which is that is designed as a data-driven test driven development framework.

FakeXrmEasy abstracts the implementation of the IOrganizationService, IOrganizationServiceAsync and IOrganizationServiceAsync2 interfaces.

This saves you from not having to mock requests that implement those interfaces.

FakeXrmEasy simulates a Dataverse backend by keeping an In-Memory database that stores the data in Entities (or Tables) as well as the metadata of these Entities (or Tables).

FakeXrmEasy also comes with a query translation engine that will execute your FetchXml, QueryExpress, QueryByAttribute or CRM LINQ provider queries against such In-memory database. Meaning you could even also test these queries!

Traditional approach with TDD frameworks was to mock interfaces to return dummy responses for purposes of testing functionality.

With FakeXrmEasy, instead, you would setup some minimum data in-memory (if needed) for your logic to be executed, and then, query the state of the In-Memory database after the execution.

From the point of view of the test runner, it’s also an unopinionated mocking framework: you can choose your test runner of choice (xUnit, MSTest, NUnit, etc). The samples below will use xUnit though.

Here’s an example of a unit test that verifies a contact is updated in Dataverse (in this example, _context and _service variables have already been defined in the base test class using a middleware builder: FakeXrmEasyTestsBase (please do check the Middleware documentation for more details))

public class ContactTests : FakeXrmEasyTestsBase
{
    private readonly Contact _contact;

    public ContactTests() 
    {
        _contact = new Contact() { Id = Guid.NewGuid(), FirstName = "Pepe" };
    }

    [Fact]
    public void Should_update_an_existing_contact()
    {
        //The In-Memory database is initialised with just one contact with name "Pepe"
        _context.Initialize(_contact);

        //Execute the system under test
        var cmd = new UpdateContactCommand(_service);
        cmd.ContactId = _contact.Id;
        cmd.FirstName = "Jose";
        cmd.Execute();

        //Retrieve state of the In-Memory database after execution
        var contactUpdated = _context.CreateQuery<Contact>().FirstOrDefault();

        //We, then, verify that the contact was updated with the new name
        Assert.Equal("Jose", contactUpdated.FirstName);
    }

}

And here’s the code that implements the logic that the unit test above verifies. Note, in order to properly test your code, the code should only reference IOrganizationService, IOrganizationServiceAsync or IOrganizationServiceAsync2 interfaces.

public class UpdateContactCommand
{
    public Guid ContactId { get; set; }
    public string FirstName { get; set; }
    
    private readonly IOrganizationService _service;

    public UpdateContactCommand(IOrganizationService service)
    {   
        _service = service;
    }

    public void Execute() 
    {
        _service.Update(new Contact() {
            Id = ContactId,
            FirstName = FirstName
        });
    }
}

As you can see, no mocks were needed, FakeXrmEasy implements those internally and it gives you an IOrganizationService interface that is ready to use.



Application lifecycle management (ALM) with Microsoft Power Platform

Application lifecycle management (ALM) with Microsoft Power Platform - Power Platform | Microsoft Learn

Learn how to implement application lifecycle management (ALM) using Microsoft Power Platform (Power Apps, Power Automate, Dataverse, Power Virtual Agents).

Thursday, December 1, 2022

Solution for Power Apps Connection issue

Recently I have been working on connection changes in several applications and faced issues after connection changes. The change was not published to the staging and live environment.





Issue: After connection update still changes are not reflecting 

Navigate to App



Staging environment Power Apps not allowing to edit the app and publish the changes due to security privilege in my application.


Fix :

Navigate to Solutions --> Your Power App


Open Your Power App




Then Save and Published. Your new changes should reflect now. 



Play the apps to test the changes. 















Tuesday, November 29, 2022

CRM Data Export service extension till next 18-04-2023 by Microsoft

Microsoft has extend Dynamics 365 Data Export Service till 18-April-2022. Previously mentioned it was planed on end of November.

https://powerapps.microsoft.com/en-us/blog/do-more-with-data-from-data-export-service-to-azure-synapse-link-for-dataverse/

Steps to Extend DES.

Navigate to Settings > Data Export

Click below One-Time Extension button for extension 



Click the Submit button



Then your environment will extend till 18-April-2022.











Monday, January 24, 2022

Migrate Dynamics Dynamics CRM 365 On-Premise to CRM 365 Online

Pros of Migrating to Dynamics 365 Customer Engagement (CE) Online:

Cost reduction: Moving to Dynamics 365 CE Online can help reduce costs associated with maintaining on-premises infrastructure and resources.
No manual upgrades: Microsoft handles all upgrades and maintenance for Dynamics 365 CE Online, so you don't have to worry about performing manual updates.
Fewer resources needed: Migrating to Dynamics 365 CE Online allows you to manage the system with fewer resources, including infrastructure and database expertise.
High availability and disaster recovery: Dynamics 365 CE Online offers a high availability and disaster recovery environment, with a guaranteed 99.9% uptime by Microsoft.
Greater support: Microsoft provides more support for product issues with Dynamics 365 CE Online compared to the on-premises version.
Access from anywhere: Dynamics 365 CE Online can be accessed from any location with an internet connection.
Office 365 integration: You can use your Office 365 ID for login and multi-factor authentication (MFA) with Dynamics 365 CE Online.
Multiple device access: Dynamics 365 CE Online can be accessed using a variety of devices, including mobile phones and tablets.
Email tracking with Outlook: You can use the Outlook App to track emails with Dynamics 365 CE Online.
Access to online features: Dynamics 365 CE Online provides access to Microsoft CRM online features and technologies, such as Power Apps, Flows, and Power BI.

Limitations of Dynamics 365 Online:
Cannot use third-party DLLs for plugin and workflow development, which may limit the functionality that can be added to the system.
Reports can only be developed using fetch xml, which may not be suitable for all reporting needs and may require additional time and effort to convert existing SQL reports.
Additional data storage and attachment storage may be required at an additional cost, depending on the size and usage of the system.
Extra testing and releases may be necessary for regular CRM rollup upgrades to ensure that the system continues to function as expected and to address any potential issues that may arise.
There is limited control over the infrastructure and hardware, which is managed by Microsoft. This means that the organization may not have the ability to make certain customizations or configurations to the system.

Using Dynamics 365 On-Premise:
The organization has full control over the environment and can make unsupported customizations to the system.
The organization has full control over the database and can develop SQL reports and write SQL queries for data extraction.

Limitations of Dynamics 365 On-Premise:
Requires more cost, infrastructure, and staff to manage the system.
May require specialized application experts to manage the infrastructure, such as ADFS, SSRS, and SQL DBA (Cluster, Always On with DR).
Regular maintenance is required, including OS and security patches, which may require downtime and regression testing.
Vulnerability scans and penetration testing may be necessary, with necessary fixes required to address any identified issues.
Support from Microsoft may be more difficult to obtain and may take longer to resolve issues compared to the online version of Dynamics 365.

Dynamics 365 V8 (on-Prem) vs Dynamics 365 CE (online)

Technical differences

Dynamics 365 CE Online is entirely cloud-based and managed by Microsoft (including product, database, data center, and infrastructure)
CRM rollup upgrades are managed by Microsoft twice a year.
Database, data center, and disaster recovery (DR) managed by Microsoft (DB backup and restoration is very fast and simple)
Reports – Only supports Fetch XML reports, not SQL query reports, it might be required to convert SQL based reports before online migration.
Interfaces with other systems - Requires opening of firewall connections to connect to other systems.
Does not support Outlook client, requires switch to CRM Outlook online app
Incompatible JavaScripts may need to be modified for new XRM APIs.
ADFS server not required, can use Office 365 login ID for authentication
Plugins and workflows using third-party DLLs must be modified (Ex: IL merge)

Requirements
User training on new system and change management process during testing (UAT)
Personalized experience apps based on CRM security roles for improved access management and ease of use (e.g. back office app, admin app, shop ops app)
UI changes with Dynamics 365 CE Online 9.1 using unified client interface (UCI)

Operations

Rollup version upgrades: It is important for users of Dynamics 365 CE Online to be aware of and plan for rollup version upgrades, which are managed by Microsoft and occur twice a year. Users should be informed of the changes and asked to try them out in the testing environment (UAT). All versions of the system (development, staging, testing, and production) must be upgraded to the same rollup.
Maintenance and downtime: There is no need for a system maintenance window or downtime with Dynamics 365 CE Online, as the system is managed and maintained by Microsoft.
Accessibility: Dynamics 365 CE Online can be accessed from anywhere in the world, which allows users and the development team to work remotely and provide better support.
User experience: The user experience may be different in Dynamics 365 CE Online due to changes in the unified client interface (UCI).
Microsoft support: Microsoft support is generally more available for Dynamics 365 CE Online compared to Dynamics 365 V8 On-Premise.
New features: Users of Dynamics 365 CE Online receive new features twice a year as part of the rollup updates.

Migration Plan

Assumptions

Eligibility for FastTrack migration: The company has the necessary eligibility requirements for FastTrack migration.
Migration method: The migration will be done using the FastTrack method.
Account type: Hybrid AD accounts will not be used, and Office 365 accounts will be used to access the system.
Email address and profile: The email address will be an Office 365 account and the email profile will be configured using Microsoft Exchange Online.
Deployment server and organization: A new deployment server with Windows Server 2016 and SQL 2016 will be set up to create a separate organization for customizations required for CRM Online migration. The current server and organizations should not be used to avoid impacting current operations.
Azure Tenant: The company has an Azure Tenant, and an Azure subscription and storage account (which the customer will need to pay for along with Dynamics 365 subscriptions) have been set up, along with provision for two sandbox environments in staging.
CRM licenses: All necessary CRM licenses have been purchased before the migration.
Microsoft Lifecycle Services: The migration project has been set up in Microsoft Lifecycle Services, which uses a wizard-based hosted tool for the migration. Microsoft Lifecycle Services
Managed CRM solution: A managed CRM solution will be used for deployment to the testing and production environments.

Here are some points to consider when planning a migration to Dynamics 365 Customer Engagement (CE) Online:

Dual licenses: It is possible to use a Dynamics 365 CRM On-Premise license for the online version of the software.

Licensing method: The most cost-effective licensing method can be chosen based on the client's budget and system access requirements. Options include Enterprise (more costly), Power app (less costly), and Team Member (less costly).

 Setup Development Environment 

Here is a list of steps to set up a development environment for a migration to Dynamics 365 Customer Engagement (CE) Online:

Set up a new on-premise server: A new server should be set up using the development environment before creating an online migration solution to avoid additional migration cycles. This server should have CRM V8, SQL 2016, and the operating system Windows Server 2016.

Create a new development organization: A new development organization can be created by restoring the existing development CRM database and importing the organization.

Make necessary changes in the development CRM: The following changes should be made in the development CRM:

Create a new CRM solution and include all customizations in that solution

Convert SQL-based reports to Fetch XML

Update plugins and workflows to run in sandbox mode

Check for and reconfigure any integration with third-party tools, and remove IL merge

Update JavaScript to the new client object model (compatible with the unified client interface (UCI))

Update CRM forms to provide a rich user experience with the UCI

Make the solution online compatible

Test that all application functionalities are working as expected

Upload the database backup to Azure Blob Container: Take a database backup, log in to the Lifecycle portal, and upload the database backup to the Azure Blob Container.

Upgrade CRM: Follow the steps to upgrade CRM 9.0, then CRM 9.1, using the provided tools and steps.

Validation of the migration: Run the validation report and fix any issues identified in the CRM V8 environment. Once the issues are fixed, upload the database backup again, follow the same steps, and ensure that the validation report is successful before uploading the CRM online via the Lifecycle portal.

Creation of the online development environment: Once the validation steps are completed, follow the steps in the Lifecycle portal to create the CRM Online development environment.

User mapping: Upload user mapping with the permissions required to complete the migration successfully.

Regression testing in the online environment: Perform testing in the online environment to ensure that all functionalities are working as expected. This may include functional, integration, and user acceptance testing.


Setup UAT Environment

Here are the steps to set up a testing (UAT) environment for a migration to Dynamics 365 Customer Engagement (CE) Online:


Create a new UAT organization: A new testing organization can be created by restoring the existing testing CRM database and importing the organization in the new environment.
Import the customized solution from the development CRM: Import the customized solution from the development CRM to the testing environment, including any fixes made during the development migration.
Upload the database backup to Azure Blob Container: Take a database backup, log in to the Lifecycle portal, and upload the database backup to the Azure Blob Container.
Upgrade CRM: Follow the steps to upgrade CRM 9.0, then CRM 9.1, using the provided tools and steps.
Validation of the migration: Once issues are fixed, upload the database backup again, follow the same steps, and ensure that the validation report is successful before uploading the CRM online via the Lifecycle portal.
Creation of the online testing environment: Once the validation steps are completed, follow the steps in the Lifecycle portal to create the CRM Online testing environment.
User mapping: Upload user mapping with the permissions required to complete the migration successfully.
Testing: Perform a full regression test to ensure that all functionalities are working as expected in the online testing environment. This may include functional, integration, and user acceptance testing.
Familiarization with the new unified client interface: Help users become familiar with the new unified client interface (UCI).

 

Setup Production Environment

Here are the steps to set up a production environment for a migration to Dynamics 365 Customer Engagement (CE) Online:

Pilot migration: Microsoft can provide support for a pilot migration before the production CRM migration in the new environment.
Inform users: Inform users that they will need to stop using the production system.
Create a new production organization: A new production organization can be created by restoring the existing production CRM database and importing the organization.
Upload the database backup to Azure Blob Container: Take a database backup, log in to the Lifecycle portal, and upload the database backup to the Azure Blob Container.
Validation of the migration: Once issues are fixed, upload the database backup again, follow the same steps, and ensure that the validation report is successful before uploading the CRM online via the Lifecycle portal.
Creation of the online production environment: Once the validation steps are completed, follow the steps in the Lifecycle portal to create the CRM Online production environment.
User mapping: Upload user mapping with the permissions required to complete the migration successfully.
Testing: Perform a full regression test to ensure that all functionalities are working as expected in the online production environment. This may include functional, integration, and user acceptance testing.

Eligibility

FastTrack assistance is available for customer tenants with 150 or more licenses from one of the eligible plans from the following Microsoft product families: Microsoft 365, Office 365, Microsoft Viva, Enterprise Mobility & Security, and Windows 10. However, it may still be possible to get Microsoft support by talking to them and convincing them of the future usage of the online CRM system and the increase in user licensing capacity.

More Information: https://docs.microsoft.com/en-IN/fasttrack/eligibility

Refences: 

Refer to the following video for more information: Dynamics CRM On-premise To Dynamics 365 Online Migration Tech Talk.


https://docs.microsoft.com/en-us/dynamics365/fasttrack/migration

https://nishantrana.me/2020/05/15/dynamics-crm-on-premise-to-online-migration-program-microsoft-fasttrack/

Sri Lanka .NET 
                Forum Member