Skip to content

Commit 45ac86c

Browse files
CopilotPower-MaverickCopilot
authored
Update README with comprehensive documentation for modern features (#77)
* Initial plan * Update README with comprehensive documentation covering all features Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Address PR review feedback: update settings, control types, troubleshooting, and debugging steps Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Updated read me * Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 82e42e8 commit 45ac86c

File tree

1 file changed

+214
-20
lines changed

1 file changed

+214
-20
lines changed

README.md

Lines changed: 214 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,230 @@
11
[![Build Status](https://dev.azure.com/danishnaglekar/GitHub-CI/_apis/build/status/Power-Maverick.PCF-CustomControlBuilder?branchName=master)](https://dev.azure.com/danishnaglekar/GitHub-CI/_build/latest?definitionId=1&branchName=master) [![Nuget](https://img.shields.io/nuget/v/Maverick.PCF.Builder)](https://www.nuget.org/packages/Maverick.PCF.Builder/) [![Gitter](https://img.shields.io/gitter/room/Power-Maverick/PCF-Builder-VSCode)](https://gitter.im/PCF-Builder/community)
22

3-
[![GitHub issues](https://img.shields.io/github/issues/Power-maveRICK/PCF-CustomControlBuilder)](https://github.com/Power-maveRICK/PCF-CustomControlBuilder/issues) [![GitHub forks](https://img.shields.io/github/forks/Power-maveRICK/PCF-CustomControlBuilder)](https://github.com/Power-maveRICK/PCF-CustomControlBuilder/network) [![GitHub stars](https://img.shields.io/github/stars/Power-maveRICK/PCF-CustomControlBuilder)](https://github.com/Power-maveRICK/PCF-CustomControlBuilder/stargazers) [![GitHub license](https://img.shields.io/github/license/Power-maveRICK/PCF-CustomControlBuilder)](https://github.com/Power-maveRICK/PCF-CustomControlBuilder/blob/master/LICENSE) [![Nuget](https://img.shields.io/nuget/dt/Maverick.PCF.Builder)](https://www.nuget.org/packages/Maverick.PCF.Builder/)
3+
[![GitHub issues](https://img.shields.io/github/issues/Power-Maverick/PCF-CustomControlBuilder)](https://github.com/Power-Maverick/PCF-CustomControlBuilder/issues) [![GitHub forks](https://img.shields.io/github/forks/Power-Maverick/PCF-CustomControlBuilder)](https://github.com/Power-Maverick/PCF-CustomControlBuilder/network) [![GitHub stars](https://img.shields.io/github/stars/Power-Maverick/PCF-CustomControlBuilder)](https://github.com/Power-Maverick/PCF-CustomControlBuilder/stargazers) [![GitHub license](https://img.shields.io/github/license/Power-Maverick/PCF-CustomControlBuilder)](https://github.com/Power-Maverick/PCF-CustomControlBuilder/blob/master/LICENSE) [![Nuget](https://img.shields.io/nuget/dt/Maverick.PCF.Builder)](https://www.nuget.org/packages/Maverick.PCF.Builder/)
44

55
[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/Power-Maverick)
66

77
[![Twitter Follow](https://img.shields.io/twitter/follow/DanzMaverick?style=social)](https://twitter.com/Danzmaverick)
88

99

10-
# PCF-CustomControlBuilder
11-
Xrm Toolbox Plugin for building and deploying custom control using PCF
10+
# PCF Custom Control Builder
11+
12+
An XrmToolBox plugin that simplifies Power Apps Component Framework (PCF) custom control development by providing a visual interface for building and deploying PCF controls without writing CLI commands.
1213

1314
## Overview
14-
This tool makes it easy to create and build PCF custom control by removing the need to write commands.
15-
It runs all the necessary commands in the order in which they need to be executed and using proper folder location to execute the commands.
16-
This tool also makes it easy to deploy the solution into D365 CE.
1715

18-
## Pre-Requisite
19-
1. Install _npm_ from [here](https://nodejs.org/en/) - any version of _npm_ will do
20-
2. Visual Studio
21-
3. PowerApps CLI. Download it from [here](https://aka.ms/PowerAppsCLI)
16+
PCF Custom Control Builder streamlines the entire lifecycle of PCF control development, from initialization to deployment. The tool automates command execution, manages project structure, and provides an intuitive UI for configuring control properties, resources, and deployment options.
17+
18+
### Key Features
19+
20+
- **Visual Control Creation**: Create new PCF controls with a user-friendly interface
21+
- **Template Support**: Choose between Field (single field) and Dataset (grid) templates
22+
- **Framework Integration**: Support for Fluent UI and other modern UI frameworks
23+
- **PCF Features API**: Built-in support for device capabilities:
24+
- Capture Audio, Video, and Images
25+
- Barcode scanning
26+
- Geolocation
27+
- File picking
28+
- Utility functions
29+
- Web API integration
30+
- **Resource Management**:
31+
- Preview image configuration
32+
- CSS file management
33+
- RESX localization support
34+
- **Solution Management**: Create and manage D365 CE solution packages
35+
- **Authentication Profiles**: Manage multiple environment connections
36+
- **Incremental Versioning**: Automatic component version management
37+
- **Build & Test**: Integrated build and test project capabilities
38+
- **Direct Deployment**: Deploy controls directly to D365 CE/Dataverse environments
39+
40+
## Prerequisites
41+
42+
1. **Node.js & npm**: Install from [nodejs.org](https://nodejs.org/en/) (LTS version recommended)
43+
2. **Visual Studio**: Any recent version with C# development tools
44+
3. **Power Apps CLI**: Download from [aka.ms/PowerAppsCLI](https://aka.ms/PowerAppsCLI)
45+
4. **XrmToolBox**: Download from [xrmtoolbox.com](https://www.xrmtoolbox.com/)
46+
47+
## Installation
48+
49+
1. Open XrmToolBox
50+
2. Click on "Tool Library" (or press F1)
51+
3. Search for "PCF Custom Control Builder" or "Maverick.PCF.Builder"
52+
4. Click Install
53+
5. Restart XrmToolBox if required
54+
55+
Alternatively, install via NuGet Package Manager in XrmToolBox.
56+
57+
## Getting Started
58+
59+
### First Time Setup
60+
61+
The tool will automatically detect:
62+
- **npm** (Node Package Manager) installation
63+
- **MSBuild** path from Visual Studio
64+
- **Power Apps CLI** installation
65+
- If Power Apps CLI is not detected, use the Help menu to download and install it
66+
67+
**Configure Settings**:
68+
- Open the tool and go to **Settings**
69+
- Review the path identified for MSBuild
70+
- Set your default namespace (optional)
71+
- Set your default publisher name and prefix (optional)
72+
- Enter custom PowerShell execution policy command e.g. Bypass -Scope Process (optional)
73+
74+
### Creating a New Control
75+
76+
1. Click **"New PCF Control"** button
77+
2. Fill in the control details:
78+
- **Namespace**: Your organization/project namespace
79+
- **Control Name**: Technical name for the control
80+
- **Display Name**: User-friendly name
81+
- **Description**: Brief description of control functionality
82+
- **Control Type**: Choose `standard` or `virtual`
83+
- **Template**: Select `Field` or `Dataset`
84+
- **Additional Packages**: Optionally add Fluent UI or other libraries
85+
- **Version**: Component version (read-only, automatically managed)
86+
3. Click **"Run 'pac' command"** to initialize the project
87+
4. Use **"Build project"** to compile your control
88+
5. Use **"Test project"** to launch the test harness
89+
6. Use **"Create Solution Package"** when ready to deploy
90+
- Configure Solution Details:
91+
- **Solution Name**: Unique solution name
92+
- **Publisher Information**: Prefix, name, and friendly name
93+
- **Solution Version**: Initial version number (read-only, automatically managed)
94+
7. Use **"Deploy to D365 CE"** to push to your environment
95+
96+
### Editing an Existing Control
97+
98+
1. Click **"Edit existing PCF control"** button
99+
2. Navigate to your control's root folder
100+
3. The tool will load existing manifest and project details
101+
4. Make changes to properties, resources, or features
102+
5. Build and test your changes
103+
6. Deploy updates to your environment
104+
105+
## Features in Detail
106+
107+
### Control Properties Management
108+
109+
Edit control properties including:
110+
- Property names and display names
111+
- Data types and type groups
112+
- Default values and descriptions
113+
- Usage flags (bound/input)
114+
- Required/optional settings
115+
116+
### Resource Management
117+
118+
- **Preview Images**: Add custom preview images for the solution
119+
- **CSS Files**: Include custom stylesheets
120+
- **RESX Files**: Add localization resources for multi-language support
121+
122+
### PCF Features API
123+
124+
Enable device and platform capabilities:
125+
- **CaptureAudio**: Record audio input
126+
- **CaptureVideo**: Record video input
127+
- **CaptureImage**: Capture images from camera
128+
- **GetBarcode**: Scan barcodes and QR codes
129+
- **GetCurrentPosition**: Access device location
130+
- **PickFile**: File picker integration
131+
- **Utility**: Utility functions
132+
- **WebApi**: Web API integration
133+
134+
### Authentication Profiles
135+
136+
Manage multiple environment connections for easy deployment across development, test, and production environments.
137+
138+
## Troubleshooting
139+
140+
### Common Issues
141+
142+
**Power Apps CLI Not Detected**:
143+
- Ensure Power Apps CLI is installed from [aka.ms/PowerAppsCLI](https://aka.ms/PowerAppsCLI)
144+
- Restart XrmToolBox after installation
145+
- Check that `pac` command is available in your system PATH
146+
147+
**Build Failures**:
148+
- Verify npm is installed and in system PATH
149+
- Check that Visual Studio Developer Command Prompt path is correct
150+
- Ensure you have internet connectivity for npm package downloads
151+
152+
**Project File Not Found**:
153+
- Verify the MSBuild path is correctly configured in Settings
154+
- Check that Visual Studio is installed with the required build tools
155+
- Ensure the MSBuild path points to the correct Visual Studio version
156+
157+
**Deployment Issues**:
158+
- Verify authentication profile is configured correctly or you have connected to an environment in XrmToolBox
159+
- Check that you have appropriate permissions in target environment
160+
- Ensure solution package was created successfully before deployment
161+
162+
**PowerShell Execution Policy**:
163+
- The tool supports custom PowerShell execution policy scripts
164+
- If you encounter script execution errors, check your PowerShell execution policy
165+
166+
## Resources
167+
168+
- **Microsoft PCF Documentation**: [docs.microsoft.com/powerapps/developer/component-framework](https://docs.microsoft.com/en-us/powerapps/developer/component-framework/overview)
169+
- **PCF Limitations**: [docs.microsoft.com/powerapps/developer/component-framework/limitations](https://docs.microsoft.com/en-us/powerapps/developer/component-framework/limitations)
170+
- **PCF Gallery**: [pcf.gallery](https://pcf.gallery/)
171+
- **Sample Controls**: [aka.ms/PCFSampleControls](https://aka.ms/PCFSampleControls)
172+
- **Wiki**: [github.com/Power-Maverick/PCF-CustomControlBuilder/wiki](https://github.com/Power-Maverick/PCF-CustomControlBuilder/wiki)
173+
174+
## Contributing
175+
176+
Contributions are welcome! Here's how you can help:
177+
178+
### For Users
179+
- Report bugs via [GitHub Issues](https://github.com/Power-Maverick/PCF-CustomControlBuilder/issues)
180+
- Request features through issues with clear use cases
181+
- Share feedback and suggestions
182+
- Star the repository if you find it useful
183+
184+
### For Developers
185+
- Fork the repository
186+
- Create a feature branch (`git checkout -b feature/AmazingFeature`)
187+
- Make your changes following the existing code style
188+
- Build and test your changes
189+
- Commit your changes (`git commit -m 'Add some AmazingFeature'`)
190+
- Push to the branch (`git push origin feature/AmazingFeature`)
191+
- Open a Pull Request with a clear description
192+
193+
### Development Setup
194+
1. Clone the repository
195+
2. Open `Maverick.PCF.Builder.sln` in Visual Studio
196+
3. Restore NuGet packages
197+
4. Build the solution
198+
5. The output will be in `Maverick.PCF.Builder/bin/Debug` or `Release`
199+
200+
### Debugging the Tool
201+
1. Ensure the solution is built in **Debug** mode
202+
2. Navigate to `Maverick.PCF.Builder/bin/Debug`
203+
3. Copy all the contents from the `Plugins` folder
204+
4. Locate the XrmToolBox storage folder (typically `%AppData%\MscrmTools\XrmToolBox\Plugins`)
205+
5. Paste the content copied in step 3
206+
6. Run XrmToolBox and open the PCF Builder tool
207+
208+
### Code Guidelines
209+
- Follow existing code structure and naming conventions
210+
- Add XML documentation comments for public methods
211+
- Test your changes thoroughly
212+
- Update documentation as needed
213+
214+
## License
215+
216+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
217+
218+
## Author
22219

23-
## Usage
24-
Before you begin with your custom control you need to specify the working folder for your custom control along with path to Visual Studio Developer Command Prompt (VsDevCmd.bat).
25-
Once you have defined the working folder and path to VS Command Prompt you can click on either you want to create a new custom control or edit an existing one.
26-
Based on that different windows will open and guide you through the process.
220+
**Danish Naglekar** - [@DanzMaverick](https://twitter.com/DanzMaverick)
27221

28-
For more details read [wiki](https://github.com/Power-maveRICK/PCF-CustomControlBuilder/wiki)
222+
## Support
29223

30-
## Screenshots
224+
- **Sponsor**: [github.com/sponsors/Power-Maverick](https://github.com/sponsors/Power-Maverick)
225+
- **Discussions**: [github.com/Power-Maverick/PCF-CustomControlBuilder/discussions](https://github.com/Power-Maverick/PCF-CustomControlBuilder/discussions)
226+
- **Issues**: [github.com/Power-Maverick/PCF-CustomControlBuilder/issues](https://github.com/Power-Maverick/PCF-CustomControlBuilder/issues)
31227

32-
##### Creating New Custom Control
33-
![Control Home](docs/Control-Home.png)
228+
---
34229

35-
##### Tool executing commands
36-
![Control Running C L I](docs/Control-RunningCLI.png)
230+
Made with ❤️ for the Power Platform Community

0 commit comments

Comments
 (0)