- Version Control - Git
- Application Lifecycle Management - Azure DevOps
- Integrated Development Environment (IDE)
- CDS Related Tools
- Custom PowerShell Scripts
- Other CI/CD Tooling
This page will describe what tooling you can use for different tasks. You should know the basics of all of these at least.
Version Control - Git
We use git for committing new changes to the Business Apps projects. Get familiar with the terminology. If you have Visual Studio installed, you probably don't have to use git from command line. But it may come in hand to understand git. You can find some basic info here.
The most important things are:
- This is basically the root of the place we're committing in
- You can have multiple repositories beneath one project
- Usually you have 'master' branch where the sacred and always working code is and you use different branches for development purposes
- You can have multiple branches per one repository
- Pull Request
- Pull requests are for merging branches into other branches - usually master
- If you are confident about your changes, you create a pull request and tag reviewer(s) so that another person can go through your commits and product quality is not compromised
- Completing the pull request will merge the code into master
- Commit is package of changes that you want to apply to the code
- You have the ability to stage some changes and send only them in the commit
Don't forget to always sync with the remote server, because all the changes and commits are performed on your local machine and you need to sync it afterwards.
Get used to committing at least once per day, but don't forget that we are always committing only build-able and deploy-able code. The functionality doesn't have to be necessary completed, but it also can't broke the existing one.
Nobody is committing to the master. Everybody should have their own branch, but you can commit into someone's branch if you want to (or need to) of course.
Application Lifecycle Management - Azure DevOps
Azure DevOps is ALM tool of our choice. Everything related to Business Apps projects can be found there.
Wiki contains all the project information - not just for engineers, but also for other NETWORG roles.
We are tracking time spent on the project against user stories in backlog. It is one place, where you can see what's been done, what's currently in development and what's going to be developed.
Repositories are there for engineers. You can find all code there.
We use pipelines for automated build and deploy - complete CI/CD process.
Testing should also be performed from Azure DevOps in the near future.
Integrated Development Environment (IDE)
If you want to complete your task and bring new things into TALXIS, you need to have development environment. These are the environments most of us use.
Visual Studio Code
Visual Studio Code is cross-platform lightweight Text-editor / IDE. Although I prefer working in full Visual Studio for this project, I strongly advise you to install Visual Studio Code. If you want to make small change or just view some file, it's quicker, easier and more pleasant to do so in VS Code.
There's one other case in which I would rather use VS Code. If you want to develop custom control (PowerApps Component Framework) use VS Code.
msbuild and .NET (Framework)
In case you don't want to use full Visual Studio at all, you need to make sure, that your device has msbuild and .NET Framework (v4.6.2) installed. It's not a bad idea to also install .NET Core SDK.
If you have full Visual Studio 2019 installed, you have msbuild already in place and you should install all .NET Core and .NET Framework SDKs.
Visual Studio 2019
Visual Studio 2019 is a full IDE from Microsoft. If you are engineer in the NETWORG, install it. You will need it.
CDS Related Tools
There's also tooling specific for CDS. All the Microsoft tools from this NuGet package are automatically downloaded to the project's '/tools/' directory.
Tool for migrating static configuration data between instances.
This tool generates early-bound .NET Framework classes that represent the CDS entity data model (environment specific).
Tool used for unpacking and packing solutions.
You'll use this command most often:
"C:\Users\<Username>\source\repos\TALXIS\tools\CoreTools\SolutionPackager.exe" /action:extract /packagetype:both /zipfile:<UnmanagedSolutionName.zip> /folder:tmp
You can find out what the arguments do in the documentation linked above.
You can create package from multiple solutions and use this tool for deployment.
Tool used for registering assemblies. This is only necessary due to assembly initialization, you probably won't have to use this tool, since we are doing this process directly in XML.
NuGet package for building PowerApps Component Framework controls. Just restore nuget packages and run build as in other .NET projects, everything is taken care of.
Azure DevOps tasks for CI/CD pipelines from Microsoft. It includes tasks for checking quality of your solutions and many others. These are the tasks we are using in our pipelines.
Last but not least is the community tool, that can help you with almost everything.
If you need to download managed assembly from environment, build query (FetchXML, REST, ...), perform bulk operation and many more, XRMToolBox's gallery of plugins will probably solve your issue. Be sure to look there first.
Custom PowerShell Scripts
In case where Microsoft tools are not enough, you can use custom scripts written specifically for your needs.