Overview Version History Q & A Rating & Review
Project Overview
A comprehensive VSCode extension for Microsoft Dynamics 365 / Power Platform development and administration. Provides a unified toolkit with modern UI components for managing environments, browsing metadata, monitoring solutions, and performing common development tasks.
Features
Environment Management - Add, configure, and switch between multiple Dynamics 365 environments
Solution Explorer - Browse, export, and manage Dynamics 365 solutions
Import Job Viewer - Monitor solution import status and troubleshoot failures
Metadata Browser - Explore entity metadata and schema information
Query Data - Execute OData queries and analyze results
Connection References Manager - Manage connection references across environments
Environment Variables Manager - Configure environment-specific variables
Plugin Trace Viewer - Analyze plugin execution traces and performance
🎨 Modern UI
Clean, responsive interface following VS Code design principles
Advanced data tables with sorting, filtering, and context menus
Environment selector with connection status indicators
Consistent theming that adapts to VS Code themes
🏗️ Robust Architecture
Modular service-based architecture with dependency injection
Shared utilities for consistent UI components and functionality
State persistence across VS Code sessions
Comprehensive error handling and user feedback
Prerequisites
Node.js (includes npm)
VSCode
Installation & Usage
Option 1: Install from VSIX (Recommended for Testing)
Download the latest release or build from source (see Development Setup below)
Install the extension
code --install-extension dynamics-devtools-0.0.1.vsix
Restart VS Code or reload the window (Ctrl+Shift+P
→ "Developer: Reload Window")
Open Dynamics DevTools - Look for the wrench icon (🔧) in the VS Code activity bar
Getting Started
Add an Environment - Click the "+" button in the Environments section
Configure Authentication - Choose between Service Principal or Interactive auth
Test Connection - Verify your environment is accessible
Explore Tools - Use the tools section to open panels for various tasks
Solution Explorer - Right-click environments to browse solutions
Import Job Viewer - Monitor active and completed import jobs
Query Data - Execute custom OData queries against your environment
Metadata Browser - Explore entity definitions and relationships
Connection References - Manage connection references (coming soon)
Environment Variables - Configure environment-specific settings (coming soon)
Plugin Traces - View plugin execution logs and performance (coming soon)
Development Setup
Building from Source
Clone the repository
git clone https://github.com/JoshSmithXRM/Dynamics-DevTools.git
cd Dynamics-DevTools
Install dependencies
npm install
Build the extension
npm run compile
# Or use VS Code task: "Build Extension"
Package the extension (optional)
npm install -g @vscode/vsce
vsce package
Development Workflow
Open in VS Code
code .
Start watch mode for automatic compilation
npm run watch
# Or use VS Code task: "Watch"
Launch Extension Development Host
Press F5
in VS Code
Or use Command Palette: "Debug: Start Debugging"
Test your changes in the Extension Development Host window
Project Structure
/src/panels/
- Webview panels (Solution Explorer, Query Data, etc.)
/src/services/
- Business logic and API services
/src/commands/
- VS Code command handlers
/src/providers/
- Tree view data providers
/src/webview/components/
- Shared UI utilities and styling
Architecture
This extension follows a clean, modular architecture:
Service Layer - Business logic and API interactions with dependency injection
Panel System - Webview-based UI panels extending a common base class
Shared Utilities - Reusable components for tables, environment selectors, and styling
State Management - Persistent UI state across VS Code sessions
For detailed architecture information, see ARCHITECTURE_GUIDE.md .
Troubleshooting
Installation Issues
If npm
or npx
is not recognized, install Node.js and restart your terminal/VS Code
For TypeScript errors, ensure you have run npm install
to install dev dependencies
If the extension doesn't appear, restart VS Code after installation
Authentication Issues
Verify your environment URL is correct (should end with .crm.dynamics.com or similar)
For Service Principal auth, ensure the app registration has appropriate permissions
Test connection after adding an environment to verify authentication
Large datasets may take time to load - use built-in filtering to improve performance
If panels become unresponsive, try refreshing the environment connection
Check VS Code Developer Tools (Help → Toggle Developer Tools) for error messages
Contributing
We welcome contributions! Please follow these guidelines:
Review the architecture - See ARCHITECTURE_GUIDE.md for patterns and conventions
Follow established patterns - New panels should extend BasePanel and use shared utilities
Test thoroughly - Verify functionality across multiple environments and authentication methods
Update documentation - Keep README and architecture docs current with changes
Development Guidelines
Use the ServiceFactory for dependency injection
Follow the standard panel structure with environment selectors
Use shared utilities (TableUtils, PanelUtils) for consistent UI
Implement proper error handling and user feedback
Test with both Service Principal and Interactive authentication
License
MIT