Dynamics 365 Plugin Dev Tools - dynamics-crm

What tools are you using for CRM plugin development?
I used both "Dynamics 365 Developer Toolkit" and "Dynamics 365 Developer Extensions" previously. Unfortunately, The "Dynamics 365 Developer Toolkit" no longer works reliably for me in VS 2019 (yes, I followed the steps to update the vsix file). I looks like Jason Lattimer's has stopped making the "Dynamics 365 Developer Extensions".
Thanks!

Personally I use none, but rely on an Azure DevOps pipeline to deploy everything.
For client side development I heavily use Fiddler 4 with auto responder rules with a local webpack devserver. I am not sure how to improve this process much more.
For serverside Plugins I prefer using ILMerge Build Tasks (check nuget) and separate the IPlugin interface implementation from my code so I can easily write unit tests for that. I do not use testing libraries like EasyRepro or XrmFakeEasy. I don't think they add a big benefit and more or less negate one of the best effects of unit testing. Creating good testable code.
For plugin deployment I currently use spkl by Scott Durrow and it is working fine so far.
For generating early bound classes I use a custom .bat file that actually just calls the CrmSvcUtil.exe with a couple of extra .dll files that helps creating enums instead of optionsets.
I am not a huge fan of toolkits or templates that dictate how you have to write your stuff, because most of them embrace bad programming patterns. For example the XrmToolkit forces you to use a certain folder structure for your clientside scripts to not mess up your crm system and so on.

XrmToolkit is a commercial Dynamics 365/CDS development add-on that is actively maintained and supports Visual Studio 2019.
I have been relying on it for years to assist with generating proxy classes, registering and publishing plugins, publishing web resources on save, etc.
I have no affiliation with XrmToolkit.

You can use Microsoft.net framework with visual studio or visual studio code for implement dynamics 365 plugins and register that in plugin registration tools.
• Write a plugin
• Register a plugin

Related

Visual Studio third party plugin creation

So as I sit here pondering this idea that I have, I am curious on where to even start if this is possible. I work for Salesforce (specifically supporting the Marketing Cloud application - a web app). We have several publicly available API's (SOAP and REST) for third party integrations to take place and impact data within the Marketing Cloud environment. So, to keep this on a simple level and not go into detail around the Marketing Cloud, is it possible to somehow write a sort of plug-in for Visual Studio that will, upon certain actions in Visual Studio, make API calls to a third party (in this case, I'm talking about Salesforce Marketing Cloud). My end goal is for Visual Studio to be able to initiate a custom action (API call to a third party) whenever a certain action happens from within Visual Studio. I hope this makes sense! Where would I start with this if this is possible?
Not sure if this is for VS or VS Code, will assume VS Code as it is compatible with both Windows and Mac.
What you're asking for should theoretically be possible because of the structure of the Electron app which VS Code is built on. Also it useses NodeJS.
I'm a Mac user, but when I used VS Code, I found this tutorial helpful for getting started:
https://www.youtube.com/watch?v=qV0e7LSQOIE
Also the docs are pretty helpful too:
https://code.visualstudio.com/docs/extensions/overview
And there is this little boilerplate I found online too:
https://github.com/mrmlnc/vscode-plugin-boilerplate

visual studio solution organization

I'm trying to get my head around how to best organize my companies code set in visual studio 2013 TFS-git. We have multiple database projects and multiple web application projects. I like the idea of being able to develop a web app and the db at the same time in a particular solution but its not a one to one scenario. Multiple web apps talk to the same databases.
I know you can break things up into solutions and projects but not seeing too much out there in best practices in this area.
Any guidance? Thanks for your help.
I think this will help you what you are trying to do
Git init VS full Git support into all their ALM products. Here they have published for Visual Studio that adds Git source control integration. Git Extension includes add-ins for Older Visual Studio versions and Windows Explorer integration. It's regularly updated. And alternatively you can look for Git Source Control Provider
And you may also a read about TFS-GIT here

evaluating Visual studio's software setup packaging tool (setup project/ Web setup project)

i was in the process of evaluating different tools available for creating the setup package for a newly developed software. i came to know about the visual studio's setup project facility, but couldnt get much help on its capabilities.
Can someone tell me if this tool helps me achieve the below given features
copy/paste files and folders.
create a text file, and input certain values to it.
make/update entries to the registery
check for certain services running on the local/remote system
reading certain environment variables from the system.
running a third party application.
what script language does it support
Other than Visual Studio, I had evaluated InstallShield which does provide support for all the above mentioned actions. But Visual Studio is already available, I was curious to find if it matches InstallShield in capability?
Here is the Visual Studio support:
Supported
Not supported
Supported
Not supported
Not supported
Somewhat supported ( supports prerequisites )
No scripting support
What is not supported can be implemented through custom actions (custom code).
The custom code is in form of custom actions, which can be DLLs, batch files, executables or VBScripts, with DLLs being the method recommended by microsoft, written in C/C++.
Here is some more information on what custom actions are and how such custom actions are integrated with the installer:
Custom Actions
If you want an alternative, you can try Advanced Installer. It supports everything you need and it's cheaper than InstallShield.

Version Control for Visual Studio projects and MS Dynamics CRM (javascript)

I'm looking for Version Control that warns a use when opening a file if that file is being modified by another user. Is this possible?
We also use Microsoft Dynamics CRM 2011 and are looking to use some kind of version control for the javascript files. Does someone has experience with using Dynamics CRM and version control?
Thank you for any information!
You could implement this in Team Foundation Server (TFS) or other version control applications that support single checkout. You will need to either manually deploy the JScript or create an auto deployment process through the SDK. TFS will need to be setup for single checkout which will only allow a single user to checkout the files at a given time. This should disallow multiple people from making edits at once. It is a good idea to appoint a single person as the build master who will be in charge of merging changes into CRM.
EDIT: JScript is syntactically very close to JavaScript. Microsoft CRM uses and has always used JScript for its form scripting. JScript is basically Microsofts version of JavaScript. Differences are discussed # What's the difference between JavaScript and JScript? and http://en.wikipedia.org/wiki/JScript
Excerpt from Microsoft Dynamics CRM 2011 SDK:
Microsoft JScript libraries are Script (JScript) Web Resources that contain functions you can use to:
Handle form and field events.
Perform actions for controls configured in the Ribbon.
Support other functions.

Is it possible to have mixed source control providers in a VS2010 solution?

Currently most of the development in the company I work for is controlled via VSS. I've installed Team Foundation Server for the development at our site.
There is a future project that will involve new developement, but referencing older code bases hosted in VSS. My preference would be to use TFS for the new development, but I'm unsure if a VS2010 solution can have projects using different source control providers.
You'll need to change the source control provider manually (unbind - change SCC provider - bind) each time.
No Visual Studio does not allow for mixing source control providers within a solution at the same time.

Resources