Skip to content

phuocle/Dynamics-Crm-DevKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DynamicsCrm.DevKit

A comprehensive development toolkit for Microsoft Dynamics 365 / Power Platform / Dataverse. This repository contains Visual Studio extensions (VSIX), CLI tools, and Roslyn analyzers to accelerate Dynamics 365 development.

πŸ“¦ Installation Visual Studio Extension

The main Visual Studio extension provides project and item templates for Dynamics 365 development.

Download from Visual Studio Marketplace

Visual Studio Marketplace Version Visual Studio Marketplace Downloads Visual Studio Marketplace Rating

Features:

  • 12 Visual Studio project templates
  • 13 Visual Studio item templates
  • Wizards for project/item creation

πŸ“¦ Installation DynamicsCrm.DevKit.Cli

Command-line interface for deployment automation: plugins, workflows, custom actions, custom apis, data providers, web resources, reports and code generation.

Download from NuGet.org

NuGet Version NuGet Downloads

Installation:

Install-Package DynamicsCrm.DevKit.Cli

Features:

  • Deploy plugins (standard plugin, package plugin, managed identity plugin), workflows, custom actions, custom apis, data providers
  • Deploy and download web resources
  • Solution packaging (Extract/Pack)
  • Code generation (JavaScript form, JavaScript webapi, C# late-bound classes)
  • Report management (Upload/Download)
  • Early-bound class generation (ProxyTypes)

πŸ“– Full CLI Documentation

πŸ“¦ Installation DynamicsCrm.DevKit.Analyzers

Roslyn-based code analyzers for Dynamics 365 best practices.

Download from NuGet.org

NuGet Version NuGet Downloads

Installation:

<PackageReference Include="DynamicsCrm.DevKit.Analyzers" Version="*" PrivateAssets="all" />

Features:

  • 20 diagnostic rules
  • Enforces Microsoft best practices for plugins and workflows
  • Real-time code analysis in Visual Studio
  • Compile-time error detection

πŸ“– Full Analyzers Documentation


🎯 What's Included

Project Templates (12 Types)

The Visual Studio extension includes 12 project templates for different development scenarios:

  1. Shared Project - Shared code across projects
  2. Console Project - Console applications for utilities
  3. Console Core Project - .NET Core console applications
  4. Server Project - Plugins, Workflows, Custom Actions, Custom APIs
  5. Package Project - Package Deployer projects
  6. WebResource Project - JavaScript, HTML, CSS, images
  7. Shared Test Project - Shared test code
  8. ProxyTypes Project - Early-bound entity classes
  9. Test Project - Unit tests
  10. Ui Test Project - UI automation tests
  11. Solution Packager Project - Solution packaging
  12. Report Project - SSRS Reports

Item Templates (13 Types)

The Visual Studio extension includes 13 item templates:

  1. C# Late Bound Class - Late-bound entity helpers
  2. C# Plugin Class - Plugin implementations
  3. C# Workflow Class - Custom workflow activities
  4. C# Custom Action Class - Custom action handlers
  5. C# Custom Api Class - Custom API implementations
  6. C# Data Provider Class - Virtual entity data providers
  7. C# Test Class - Unit test classes
  8. C# Test Ui Class - UI test classes
  9. JavaScript Form - Form scripts with IntelliSense
  10. JavaScript WebApi - Type-safe WebAPI calls
  11. JavaScript Test - JavaScript unit tests
  12. JavaScript devkit.js - DevKit JavaScript utilities
  13. Resource String - Resource strings

πŸš€ Key Features

Deploy Server Projects with 1 click (all in one with: plugins, workflows, custom actions, custom apis, data providers)

These videos were recorded from version 2.12.31, but we have since released version 4.00.00.00 with improved output."

Deploy Server

Form IntelliSense

Form IntelliSense

Deploy WebResources from Visual Studio

WebResource Deployment

Deploy Reports from Visual Studio

Report Deployment


πŸ“š Documentation

Complete documentation is available in the Wiki:


πŸ”§ CLI Usage Examples

Deploy Plugins

DynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:servers /profile:default

Deploy Web Resources

DynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:webresources /profile:default

Generate Early-Bound Classes

DynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:proxytypes /profile:default

Extract Solution

DynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:solutionpackagers /profile:default

πŸ“– See more CLI examples


πŸ›‘οΈ Code Quality with Analyzers

DynamicsCrm.DevKit.Analyzers provides 20 diagnostic rules to enforce best practices:

Rule Severity Description
DEVKIT1001 Error Create/Update should have filtering attributes
DEVKIT1002 Warning Don't use ColumnSet(true)
DEVKIT1003 Error Plugin image validation
DEVKIT1004 Info Use of deprecated SDK messages
DEVKIT1005 Warning EntityReference maybe null
DEVKIT1006 Warning Don't use batch requests in plugins
DEVKIT1007 Error IPlugin should be stateless
DEVKIT1008 Error Don't use parallel execution in plugins
DEVKIT1009 Warning Set KeepAlive to false for external HTTP calls
DEVKIT1010 Warning Set Timeout for external HTTP calls
DEVKIT1011 Warning Use InvalidPluginExecutionException for errors
DEVKIT1012 Info Consider using ITracingService in plugins
DEVKIT1013 Info Avoid registering plugins on Retrieve/RetrieveMultiple
DEVKIT1014 Error Avoid AppDomain event registration in plugins
DEVKIT1015 Info Avoid blocking async patterns in plugins
DEVKIT1016 Info Avoid retrieving unpublished metadata
DEVKIT1017 Info Avoid Console output in plugins
DEVKIT1018 Error Avoid File/IO operations in plugins
DEVKIT1019 Warning Consider checking context.Depth to prevent infinite loops
DEVKIT1020 Error DataProvider must have DataSource

πŸ“– See full documentation for all rules


πŸŽ“ Getting Started

  1. Install the Visual Studio Extension

    • Download from Visual Studio Marketplace
    • Or install directly from Visual Studio: Extensions β†’ Manage Extensions β†’ Search for "DynamicsCrm.DevKit"
  2. Add NuGet Packages to Your Projects

    # CLI Tool
    Install-Package DynamicsCrm.DevKit.Cli
    
    # Code Analyzers
    Install-Package DynamicsCrm.DevKit.Analyzers
    
    # Additional Tools
    Install-Package DynamicsCrm.DevKit.Tool
  3. Follow the Tutorials


πŸ“‹ Requirements

  • Visual Studio 2022 (version 17.0 or later)
  • .NET Framework 4.6.2 or later
  • .NET Framework 4.8 (recommended)
  • Dynamics 365 / Power Platform / Dataverse environment

🀝 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.


πŸ“„ License

This project is licensed under the terms specified in the LICENSE file.


πŸ”— Links


⭐ Show Your Support

If you find this toolkit helpful, please consider:

  • ⭐ Starring this repository
  • πŸ“’ Sharing with your colleagues
  • πŸ’¬ Providing feedback or reporting issues
  • πŸ“ Contributing to the documentation

Built with ❀️ for the Dynamics 365 / Power Platform community

About

A collection of projects/items template for develop Dynamics 365 CRM/CDS/Dataverse

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages