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.
The main Visual Studio extension provides project and item templates for Dynamics 365 development.
Download from Visual Studio Marketplace
Features:
- 12 Visual Studio project templates
- 13 Visual Studio item templates
- Wizards for project/item creation
Command-line interface for deployment automation: plugins, workflows, custom actions, custom apis, data providers, web resources, reports and code generation.
Installation:
Install-Package DynamicsCrm.DevKit.CliFeatures:
- 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)
Roslyn-based code analyzers for Dynamics 365 best practices.
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
The Visual Studio extension includes 12 project templates for different development scenarios:
- Shared Project - Shared code across projects
- Console Project - Console applications for utilities
- Console Core Project - .NET Core console applications
- Server Project - Plugins, Workflows, Custom Actions, Custom APIs
- Package Project - Package Deployer projects
- WebResource Project - JavaScript, HTML, CSS, images
- Shared Test Project - Shared test code
- ProxyTypes Project - Early-bound entity classes
- Test Project - Unit tests
- Ui Test Project - UI automation tests
- Solution Packager Project - Solution packaging
- Report Project - SSRS Reports
The Visual Studio extension includes 13 item templates:
- C# Late Bound Class - Late-bound entity helpers
- C# Plugin Class - Plugin implementations
- C# Workflow Class - Custom workflow activities
- C# Custom Action Class - Custom action handlers
- C# Custom Api Class - Custom API implementations
- C# Data Provider Class - Virtual entity data providers
- C# Test Class - Unit test classes
- C# Test Ui Class - UI test classes
- JavaScript Form - Form scripts with IntelliSense
- JavaScript WebApi - Type-safe WebAPI calls
- JavaScript Test - JavaScript unit tests
- JavaScript devkit.js - DevKit JavaScript utilities
- Resource String - Resource strings
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 version4.00.00.00with improved output."
Complete documentation is available in the Wiki:
- Installation Guide - How to install and set up DynamicsCrm.DevKit
- Project Templates - Overview of all project templates
- Item Templates - Overview of all item templates
- Tutorials - Step-by-step guides
- CLI Documentation - Command-line interface reference
- Analyzers Documentation - Code analyzer rules
- Integrated with Visual Studio - VS integration features
DynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:servers /profile:defaultDynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:webresources /profile:defaultDynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:proxytypes /profile:defaultDynamicsCrm.DevKit.Cli /conn:"AuthType=OAuth;..." /json:"DynamicsCrm.DevKit.Cli.json" /type:solutionpackagers /profile:defaultDynamicsCrm.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
-
Install the Visual Studio Extension
- Download from Visual Studio Marketplace
- Or install directly from Visual Studio: Extensions β Manage Extensions β Search for "DynamicsCrm.DevKit"
-
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
-
Follow the Tutorials
- 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
Contributions are welcome! Please feel free to submit issues or pull requests.
This project is licensed under the terms specified in the LICENSE file.
- GitHub Repository: https://github.com/phuocle/Dynamics-Crm-DevKit
- Visual Studio Marketplace: DynamicsCrm.DevKit Extension
- NuGet - CLI: DynamicsCrm.DevKit.Cli
- NuGet - Analyzers: DynamicsCrm.DevKit.Analyzers
- NuGet - Tool: DynamicsCrm.DevKit.Tool
- Wiki: Documentation
- Issues: Report Issues
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



