All Projects → Power-Maverick → DataverseDevTools-VSCode

Power-Maverick / DataverseDevTools-VSCode

Licence: MIT license
The all-in-one tool to develop code for Dataverse/Dynamics 365. Helps you connect to a Dataverse environment, generate TypeScript definitions for entities, create a different type of Dataverse-specific projects, and much more.

Programming Languages

typescript
32286 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to DataverseDevTools-VSCode

Vscode Elastic
Elasticsearch for VSCode
Stars: ✭ 130 (+622.22%)
Mutual labels:  visual-studio-code, vscode-extension
powerapps-specflow-bindings
A SpecFlow bindings library for model-driven Power Apps.
Stars: ✭ 19 (+5.56%)
Mutual labels:  dynamics-365, power-platform
Vscode Auto Close Tag
Auto Close Tag for Visual Studio Code
Stars: ✭ 132 (+633.33%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Language Pascal
Pascal language extension for Visual Studio Code
Stars: ✭ 117 (+550%)
Mutual labels:  visual-studio-code, vscode-extension
Netlify
A VS Code extension that displays your Netlify build statuses and more!
Stars: ✭ 23 (+27.78%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Scss
🔌 IntelliSense for Variables, Mixins and Functions in all Sass (SCSS syntax only) files.
Stars: ✭ 128 (+611.11%)
Mutual labels:  visual-studio-code, vscode-extension
Processing Vscode
A Visual Studio Code extension for the programming language Processing
Stars: ✭ 141 (+683.33%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Git Semantic Commit
💬 A Visual Studio Code extension which enables to commit simply by the semantic message conventions
Stars: ✭ 65 (+261.11%)
Mutual labels:  visual-studio-code, vscode-extension
PCF-Builder-VSCode
Build your Power Apps Component Framework custom controls faster. No need to remember the PCF CLI commands. All commands provided in one selection list for you to execute. https://marketplace.visualstudio.com/items?itemName=danish-naglekar.pcf-builder
Stars: ✭ 15 (-16.67%)
Mutual labels:  visual-studio-code, dynamics-365
cds-for-code
VSCode extension for working with Microsoft Common Data Service (CDS)
Stars: ✭ 22 (+22.22%)
Mutual labels:  visual-studio-code, dynamics-365
Vscode Code Runner
Code Runner for Visual Studio Code
Stars: ✭ 1,332 (+7300%)
Mutual labels:  visual-studio-code, vscode-extension
vscode-commit-message-editor
Edit commit messages in a convenient way.
Stars: ✭ 40 (+122.22%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Numbered Bookmarks
Numbered Bookmarks Extension for Visual Studio Code
Stars: ✭ 90 (+400%)
Mutual labels:  visual-studio-code, vscode-extension
FetchXmlTester
Test FetchXml Online without providing credentials using WebAPI GET Call
Stars: ✭ 26 (+44.44%)
Mutual labels:  dynamics-365, power-platform
Laravel Blade Snippets Vscode
Laravel blade snippets and syntax highlight support for Visual Studio Code
Stars: ✭ 80 (+344.44%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Mjml
This repo is archived. MJML preview, lint, compile for Visual Studio Code.
Stars: ✭ 138 (+666.67%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Smoothtype
VS Code extension to add cursor transitions while typing, similar to MS Office and the Windows 10 Mail app.
Stars: ✭ 54 (+200%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Csscomb
🔌 VS Code plugin for CSScomb — CSS coding style formatter.
Stars: ✭ 63 (+250%)
Mutual labels:  visual-studio-code, vscode-extension
Vscode Auto Rename Tag
Automatically rename paired HTML/XML tag
Stars: ✭ 161 (+794.44%)
Mutual labels:  visual-studio-code, vscode-extension
Wikitext-VSCode-Extension
A Visual Studio Code Extension that provides language support for Wikitext.
Stars: ✭ 50 (+177.78%)
Mutual labels:  visual-studio-code, vscode-extension

Dataverse DevTools

The all-in-one tool to develop code for Dataverse/Dynamics 365!

This repo is an open-source project that provides a code for a Dataverse DevTools VS Code Extension that helps you connect to a Dataverse environment, generate TypeScript definitions for entities, create different type of Dataverse-specific projects, upload web-resources right from VS Code and much more.

Feature request · Report a bug · Support

Do check-out the planned features list. We need your help to complete these planned features.

Table of contents

Features

Connect to your Dataverse environment

There are 3 ways you can connect to your Dataverse Environment.

Connection Type Description
Username & Password This works with environments without MFA-enabled and needs no extra configuration.
Microsoft Login Prompt Uses DVDT's Public App registered in Azure AD. This will need approval from Azure Admin before you can use it for authentication. This connection other than approving the public Azure AD app (which is a one-time activity) needs no extra configuration. This connection will work with MFA-enabled authentication as well.
Client Id & Secret This works with MFA-enabled authentication but needs extra configuration of Azure AD App Registration. To know more on app registration process read here.

Below is one of the way you can create the connection.

Create & Connect

Remembers the connected environment per workspace

Once you connect to your preferred Dataverse Environment; the tool will rememeber the connection for that workspace/folder.

Silent Connection Reload

See connection and entity details (with copy feature)

This provides an ability for you to quikly check the details of the connection and also copy certain important information.

See Details

Initialize TypeScript project & add TS File

You can instantiate a TypeScript project for Dataverse that automatically installs all the prerequisites needed:

Below procecss shows how you can create a TypeScript project for Dataverse with one of the available options and also how you can add a TypeScript file that loads the code-snippet.

TypeScript Project

TypeScript File

Generate Typings

Typings help you write early-bound code. And with the help of @types/xrm you can provide types to all of your variables/methods.

Typings are also integrated with @types/xrm

Typings

Intellisense for type generated

When you generate typings for entities you are provided with an intellisense; provided you have casted the FormContext into proper Entity type.

IntellisenseTypeScript

Upload Web Resources

Once you build your project you can upload your script directly from the VS Code with the help of Dataverse DevTools.

WebResourceUpload

Filter by solution

Entities

FilterEntities

Web Resources

FilterWRs

Smart Match Web Resources

SmartMatch

🔥 Using Typings

  1. Go to Dataverse DevTools from the Activity Side Bar.
  2. From the list of entities, right-click the entity for which you want to create a typing and choose Generate Typings option. You can also filter the list of entities by clicking the filter button on the Entities panel as shown here.
  3. Create a onLoad function in your TypeScript file with parameter as executionContext: Xrm.Events.EventContext.
  4. Initialize your FormContext global variable casting it with Xrm.<entity name>.

For example: If you wanted to use Accounts entity typings in your TypeScript file then after the typings are generated the code in your TypeScript file will look as shown below:

export function onLoad(executionContext: Xrm.Events.EventContext) {
    const formContext: Xrm.Account = executionContext.getFormContext();
    formContext.getAttribute("accountnumber").getValue();
}

In the above code snippet, Xrm.Account is a typing generated by Dataverse DevTools to provide intellisense specific to the Account entity.

Keyboard Shortcuts

Command Keyboard Shortcut
Create TypeScript project Ctrl + D, Ctrl + T

🎁 Early-Access Preview

This list showcases the features that are build and ready but not fully tested to be released. You can enable these features by navigating to File > Preferences > Settings and search for Dataverse DevTools and make sure Enable Early Access Preview is checked.

Preview Feature Details
Compare local vs server Web Resource You can compare your local JavaScript web-resource with a server JavaScript file. All you have to do is; right-click the JavaScript file and select Compare Web Resource.

🧪 Alpha-Testing

There are different ways in which you can contribute to this open-source project. One of the way is to be part of alpha-testing. In order to perform alpha-testing follow the below steps:

  • Fork this project and clone it on your local machine
  • Identify the changes in alpha-test mode (list is mentioned below)
  • Open the project in VS Code
  • Navigate to Run and Debug from Activity Bar
  • Make sure Run Extension is selected; click on ▶️ icon.
  • This will open another VS Code instance, this instance will have Extention Development Host on it's title
  • You are ready to perform your tests

Features available for alpha-test

  1. Ability for users to select their default TS template: From the settings option you can now select your default TS Project Template. Selecting the default template will skip the question when you initiate a TS Project.
  2. Improvement to Smart Match: Smart Match has got a new look-and-feel. It is more robust, shows all the available local files with a status of linked, recommended link or not linked. Recommended link will have a confidence score that will help you link the local files with server files.

Report any issues or feedback on GitHub.

💭 Planned Features

  • Integrate with Dataverse-ify.
  • Initiate plugin project.
  • Ability to create JavaScript project and snippets smiliar to TypeScript version.

Contributing

We encourage you to pitch in, join the team and showcase your name on this repo. If you are unsure how you can contribute, please reach out to Power Maverick.

Different ways to contribute:

  • Improve the code or fix a bug by creating a Pull Request.
  • Get involved in Alpha & Beta tests.
  • Provide suggestions, feedback or feature request on GitHub.
  • Report issues & bugs on GitHub.
  • Answer any open questions on the Discussion Board.
  • Join Power Platform LevelUP community on Discord to answer any of the questions that may rise w.r.t. this tool.

Before creating the pull request for contributing, please read the Contributing Guidelines.

Thanks goes to these wonderful people (emoji key):


Danish Naglekar

💬 💻 🖋 🎨 📖 🚇 🛡️ ⚠️ 🔧

mohsinonxrm

💬 🐛 💻 💡 🤔 🔌 🔬 📓

Josh Smith

🐛 🚧 📓

P-focT

🐛 🚧 📓

Benedikt Bergmann

💡 🤔

Phil Cole

🐛 🤔

Jeff Dodds

🧑‍🏫

MattB

🧑‍🏫

Thomas Sandsør

🐛 🤔 ⚠️ 📓

glemis

🐛 💻 ⚠️ 📓

Eric Regnier

🐛

Guido Preite

🐛 💻 🚇 ⚠️ 🚧 📓

SatkunamSuganthar

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

🔉 Discussions

If you want to have any discussions on any feature, please use the Discussion Board.

📃 License

This software is released under MIT License

Credits

Icons sourced from - https://icon-sets.iconify.design

JSON to TypeScript conversions - https://quicktype.io/typescript

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].