Lets GIT started - Manage X++ code using GIT for Dynamics 365 F&O implementations

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone or good evening good afternoon or good morning from wherever you are joining us today my name is Nadia and welcome to Microsoft reactor Liv stream before we kick off the session I'd like to draw your attention to the reactor code of conduct so in short we want to ensure this is enjoyable event for all so please ensure that your comments are constructive and welcoming to all attendees today I'm going be joined by RIT who is a principal technical architect and a Microsoft MVP for business applications richet is going to take us through how to manage x++ code using G for d365 throughout this session you can send us your questions in the chat box and we'll get um we'll answer them at the end and additional links will be added into the chat throughout as well with all the Learning Links as well as a link to find out how you can become a Microsoft MVP if you'd like to reference back to today's session you can do so on a reactor YouTube channel now it's time to hand the floor over to your amazing speaker welcome Richie thank you Nadia and thank you Microsoft reactor for organizing this event I'm looking forward to this session I hope you can hear and see my screen so what we are discussing today is how to use git as a Version Control to manage x++ code and uh I will start with the presentation now so a quick introduction about myself uh I am a Dynamics 365 business application and Power Platform enthusiast I'm currently working as a principal technical architect at wada based in Melbourne u i was I am awarded I have been awarded MVP in business application space this year it's my first MVP so pretty excited to be in that Lobby and I have been working in this space for since the Year 2005 uh apart from Dynamics 365 um I also am a certified Enterprise architect and and also a Microsoft certified trainer uh my contact details are on the screen so feel free to reach out to me at the email address and on my LinkedIn and X handles uh I also write blogs uh my blog is brewing thought.com so feel free to check it out and leave your comments I also engage in User Group community events so I'm actively participating in Dynamics 365 user group for India as well asz D3 65 inop team so these user groups are focused on creating a platform for Dynamics professionals to learn collaborate and grow with each other coming back to today's topic so what next 1 hour will be uh what we will be going through is the basic understanding of git and understanding what it is and what differentiates it from tfvc which we have been using as a primary resource control uh system for Dynamics 365 Erp applications in the past we will go through the setups required in Azure devops and how to set up the virtual machine which is used by developers to write x++ code and create amazing Solutions uh we'll go through the demo and then we'll summarize so before I jump into demo and I really want to spend a bit of a time around basics of git so that people understand what git is and how does it work internally so git is a distributed version control system now this this line is quite heavy because when we say distributed it means there is no Central repository and each developer can work in their own local repository so there is a repository which you can clone and then you can work on your local machine and then you can push it back so you can always work even if your uh Central version Central repositories offline and version control system is more around managing the changes in your code so as your code progresses as you progress in your project implementation stages how you manage code related to different new features hot fixes version updates so how to track what has been changed who changed it when it was changed how to create releases by grouping a particular chain sets or commits this is all coming under version control system so think of it as a place where you can actually uh view the whole history of how your code has evolved over period of time and it's not only for developers it can be used by uh other people as well so if you are preparing documentation and you want to maintain the version change and tracking on your documents you can use git there as well uh another amazing thing about git is it's open source it's distributed and it's free U we can thanks lenus Trel whose photo I have put on the slide because he is the one who created git and he he is also the creator of Linux so it's always important to understand how how these technologies have evolved and from where they originate and uh it basically helps you to effectively manage your releases and multiple environments so when we talk about G uh the differentiator is that it is not creating multiple copies of your code which happens in tfvc so when you use Git it basically takes a snapshot of your code and it creates a unique check sum for your that particular snapshot and that check sum is like a pointer to your code State now what G does is it basically uses sha algorithms to generate these snapshots and these are called commit IDs so this whole check sum or the commit ID is basically a 40 character long string it has uh hexadecimal characters you can have uh numbers between 0 to 9 and characters from a to F and it it all it uses this sha1 hashing algorithm to generate a unique commit ID so if you uh think From tfvc perspective when you commit a code change in tfvc we call it chain set but in case of git we call it a commit and that commit ID is basically this particular check sum snapshot digit and how it works is basically there are three main stages where your file can reside so first you create or modify a file then you stage it and then you commit it to the repository uh in git we have lot of branches but they are lightweight and each branch is like a movable pointer so you can switch between branches very easily and code is not copied between Branch it's just the pointer reference which keeps moving between these branches so that is the reason git is very fast as compared to other version control systems and in git there is also a term called as head where is the head head is basically where that particular pointer is pointing to where you are currently looking at so think for a moment if you take out your finance and operations hat and if you just think from a pure Alm perspective git is a version control system which can be used with multiple different Technologies so if we have to look at how the git workflow looks and what are the key terminologies in git I have summarized it here so we will look at the key git repositories uh sorry the key git ter terminologies so so the one first thing is the repository repository is the area where your code resides now this repository can be remote or it could be local remote means it's on your server where the Consolidated code is uh stored local means local repository means it's cloned in your local machine now then there is a staging area staging area is basically a type of area where you prepare your code to check in and to commit then we have working directory this is your local machine where you are actually writing the code hash as we just talked hash is the S1 uh uh algorithm generated check some digit which uniquely identifies your commit branch is basically which branch you have working on uh the default branch is called master and then you can create your own branches and head is very important concept head is that pointer where you are currently working there are in git we call as commands like there are lot of commands which you have to execute in order to perform an operation so for example here we have shown few basic git commands like git pull is where you pull the code from your remote repository to your local repository once you pulled the code then you can add more objects to it you add it and you bring it to staging area then if you have to commit your changes from staging area to your local repository we use a git commit command and if you have to push this change all the way to remote you can use a git push command you can also use git checkout and git merge to check out different branches from your local repositories and merge those branches uh this is a very high level View of uh the common day-to-day used git commands and a workflow it can get more uh there can be more variations to it depending on the scenario uh on how you're managing your projects but basically if you look like this it's it's basically a a a branch and then you Branch out and then you can commit codes so before jumping into the demo I just want to take another five minutes to explain this concept with an example because this is if you understand this concept rest of the things will be easy so let's say we have created a new git repository and we have a fresh new branch which we call it as a main branch and we have just done one commit into it so what I have shown here is we are on a main branch and we have done one commit and that commit has a unique commit ID which is sha1 value now the head as I mentioned earlier head is the pointer which is is currently sitting on your main branch so at this stage we are at the starting point pretty simple no complications we have just started the project we have done first check in and my head is sitting on my main branch now let's see we did another commit now we added one more chain set so what happens in git is your main branch is now pointing to the new commit and your head is pointing to your main branch so as you see the difference between the previous slide and this new slide is that as you do a new commit your main and your head have moved one step ahead so the main branch is pointing to the latest commit and the head is pointing to main then let's say we created a new Branch to develop a new feature and we have run the git command to create a new feature and we have a new feature Branch now at this stage the feature branch has been introduced into the git uh into the folder which git is keeping an eye on so the feature branch is also pointing to the latest commit the main branch is also pointing to the to the last commit and the head is pointing to the main branch so far it's it's easy it's simple now what happens let's say how do we bring the head back to to the new feature Branch we have to run the command to check out that Branch so when we run the command get checkout feature one branch what happens is your head starts pointing to the feature Branch so it moved from your main branch to the feature branch and now my active version is whatever is pointed by the feature Branch now let's say I created a new commit in the feature Branch so when I created this new commit because my head was pointed to the feature Branch my feature branch is now pointing to the latest commit and my head is pointing to the feature branch however my main branch is still pointing to the commit which was done before my last commit so now as you can see my main branch is a bit behind and my feature branch is ahead of my main branch so this is a typical day life scenario where you are tasked to write uh to develop a new feature you will first create a new Branch you will check it out you will write your code you will commit to that new Branch now how do we bring all this back to main what we have to do is we have to now check out the main branch when we check out the main branch the head moves to the main branch so as you can see the difference feature is still pointing to the last commit main is still pointing to the commit before the last commit but head has now moved to the main branch now what happens is we will perform a merge operation so when we merge feature Branch to the main branch the pointer of my main branch moves to my latest commit and my head is pointing to my main branch so after doing the merge my main branch also basically reflects and points to the latest commit now at this stage my feature Branch main branch and head they all are pointing to the latest commit and then what we do is we basically delete the feature Branch now this is a very simple happy flow scenario of how your branches and head and commits are pointing to each other under the hood again it's a high level but it will explain you how it actually works so if I just recap we started with the clean main branch with one commit head is pointing to the main branch then we did another commit now head moves to the latest commit then we added a new Branch my head Still Remains on the main branch because I have not checked it out then I check it my check out my feature Branch my my head moves and then I commit to the feature Branch then we check out the main branch then we merge it to the main branch and if you want you can delete your old branches so this is how um git is a git behaves and you end up with lot of branches but these branches are shortlived and you can keep them in the history if you want or you can also delete them um so that you don't end up managing lot of branches so some of the common git command which we use in day day-to-day scenarios are git init which is used to initialize a git repository so if you are the lucky one who is creating the new repository use git in it and it will help you to initialize your repository you can use git clone to repos to clone the repository from an existing git repository on your local machine git add command is used to add your changes to the git git commit is used to commit the changes from staging area to the main um local repository so git commit is only pushing to your local res repos repository uh but get push is the one which sends it from your local repository to your remote repository git status is like a command which can tell you the current status of your git git pull fetches all the changes from your uh remote repository to your local Repository myself git Branch shows you all the branches which currently exist in your git which your git is currently managing and git merge is used to merge one branch into another Branch so with that understanding I hope you have some clarity on how git uh works and what are some key terminologies in the git let's done dive into demo where we will talk about how to set up git uh just one more call out that some uh few considerations when we have to work with Git is we have to make sure that our repository structure caters for the model structure which we have in fno so we need to create a metadata folder under which we store our custom models then we also have to create a symbolic link so basically what happens is when we create a new model we move it to the repository where we have cloned so we have to create a symbolic link to point to that particular folder and to point to that particular model so that it gets recognized git ignore is a file which is used to tell git which files to ignore because what happens is again this is more of an x++ thing that and inside model folder there are some other folders which we do not want to Version Control which are like your build results which are your met compiled codes files which we don't want to track so we have to create a git ignore file and tell git ignore everything just Version Control my code and then there is a devops pipeline which we have to configure for which Microsoft FastTrack team has published a GitHub template which I'll show how it looks in the devops cool so let's jump into the de demo mode now uh what I have for this demo is that I have uh a your devops project with uh G Repository initialized which we will uh in which we will try to check in some code but before that I'll show you how we can create a new repository and how we can clone it on our local machine so inside your git repository uh if you have to create a new repository we click on this drop down and we click on and we say new repository and we give it a name so let's say reactor uh demo and we click on create so at this stage nothing fancy is happening in Azure devops we are creating a new repository uh an empty repository which we will be using to add a a new custom model now in order to clone this repository on your local machine what you have to do is um you can click on the Clone button here one thing worth mentioning is that a main branch is created by default whenever you initialize a new repository so we go to clone and when you go to clone there are multiple options One is using https and another is using SSH key so you can do whatever way uh works for your team to keep the demo simple I'll use the https U cloning way so I have just copied this H this G repository URL and now I'm going to my fno development machine so now in order to clone the repository there are ways we can either do it through uh command line or through Visual Studio so in order to do it through Visual Studio we go to get and we click on clone repository and here when we clone the repository we can give that particular URL and we will tell where should I clone so this is the place where it will create my local repository so this is my remote repository and my path is my local repository and then I click on clone now what is happening is uh a new folder structure is getting created on my local machine where I am cloning this particular repository from devops so let's just give it a second yep so if we go to our folder where I cloned this repository I will see that there is a folder reactor demo which we have just now created and the this is where git is Now tracking any changes I do to this location so you will see there is a hidden folder with the name git this is how git internally manages so we don't really go deep there you will also see in my visual studio that my git is pointing to my reactor demo repo and I'm currently on the main branch so let's try to create a new model and add to it so first step which is more of an x++ thing is we create a new model so we go to the x extension and create a new model let's call it MSR Microsoft reactor demo so let's just wait for it to show up the dialogue for some reason my machine is a bit slow today okay we'll just give it a minute in the meantime while it's opening up what we can also do okay it has opened so let's call it MSR and we call it publisher is um Ms reactor demo and click on next so we have just created a new model which I'm marking as a default for my new projects now what happens is when we create a new model we basically it creates a folder structure in the packages local directory folder where all the models reside so while it's performing I'll quickly go to the packages local directory and here we can see the an new folder is created which is MSR and under this folder these are the subfolders which are created by microsof soft so when I said we do not want to track other things like and that's all things which are under xpp metadata which we do not want to Version Control we only want to Version Control the source code so let's see in in my fno the model is created it's trying to create a new project uh we will just skip the project creation part we will first set up the model uh into the uh devops so I'll just cancel it in a minute sorry sorry yeah so while this is doing I will show you there is one more thing we one more way to use git which is using the command line so if I go to my Dev machine and I search git I can open a g command line terminal so this is also an effective way to run the git commands what we can do is here we can go to this particular path where my repository is cloned and then I can run all all my um so this is my reactor demo so if I go here and I change the path and then I can run my git command so if I say git status it will tell me that your branch is main this is your main branch and your branch is up to date with the origin main so here origin Mains tells that it is talking about the remote repository so you can also use your git command line to run some commands we will use some you we will use it while doing the other operations as we move forward so for the for a moment I'll just cancel this and we will see that now we have now we have this model which is sitting under our packages local directory so what I will do is I'll just cut this mod ah just a minute not sure why my machine has shut down I need to restart it just give me a minute p guys it will take few minutes for machine to restart so while we are waiting for this to restart uh where I was that we have created a model and then we will check it uh we will create the symbolic link from the packages local directory so that once the symbolic link is created I can do the development and it gets recognized as a model and we can also um track it under the git folder once we do that we will add the get ignore file and then we will do our first check wherein we will see how the code looks when it gets committed into the devops so while the machine is restarting maybe I'll just use this time to show you few more things in the uh in the git devop side U from my existing repositories which I have uh I'll just show you in my one of the repository how we create the fold ey structure so if I go to an existing Repository we basically create different folders for uh storing the metadata and for storing the projects under it and then we add a getting no file we also uh because we also have to build this code after checking in we have to configure an Azure pipeline which we can find under the pipeline section where we can actually create a new pipeline by cloning it uh basically by using what Microsoft has published in on GitHub so Microsoft FastTrack team has published the git Pipeline on GitHub from where you can copy paste it and then you can tweak it to uh point to your particular folder structure which you have created but basically this is the build pipeline U which is uh in yaml format which basically references to these new packages which you have to upload in the artifact section and you also have to install a tool from devops Marketplace in in this in your project to enable the execution of pipeline so if we go to the extensions and this it uses the agent pool so I think git is I'm not sure but it gets not available on the build machine build machine still uses uh tfvc but if you are using uh as your hosted build agent then you can use getl pipeline so in the extensions we have to install this particular devops tool I'll see if my machine has started while it's booting up I'll show you here so this is the tool which we have to install from the marketplace it enables your pipeline uh to execute the tasks required for the uh build process so once you your build is executed you can actually then deploy the package to the higher environments using release pipelines so let's see yep the machine is restarted I'll quickly um open the I'll open the visual studio and we will continue with making the symbolic link for our folder so we created the folder which is in the packages local directory which is MSR we will basically cut it and we go to repos and we go to reactor demo and here we will first create a new folder metadata and under that we will paste that custom folder so now we have pasted it here now you'll see it has it is not showing in my packages local directory but I still need to refer it so in order to do that we have to run a symbolic link command so in order to run that what we will do is we will copy this path of the packages local directory and we will open the command prompt we run it as Administration administrator and we change the directory and now here what we will do is we will create a symbolic link now in order to create a symbolic link there is a Dos command which says MK link /d now here we will tell uh the name of the folder which we want to use so let's say reactor let's use the same name which we had for the repository folder for the model folder so we call it and the metadata we call it MSR so let's call it MSR and from where um we have to basically map it is under metadata this folder so remember to select the metadata folder and then select the folder MSR so here what I'll do is I will run this command so what this command does is it creates a symbolic link from your packages local directory to your repository now if I go back to my repository uh if I go back to my packages local directory I should be able to see a folder for MSR here which takes me to my folder structure of MSR this is similar to any other folder which would exist in the uh finance and operation packages local directory so now I have my symbolic link created and I have added my model to the git now let's see let's go back to the visual studio and we try to commit this model to your repository so what we are trying to do now is we have created the model locally let's try to push it in our devops so let's select the repository which we just configured and then we will look at what are the changes Visual Studio is showing us which can be committed to the remote repository so it's just [Music] loading it is a bit slow today so while it's loading we can also check the status from command line so if I use skit and if I use git command line and go to the folder my repository of reactor demo and see the status so here you can see that we have added these folders now why it is capturing this because it tracks the folders so here it shows you have a metadata folder and there is a file inside metadata folder so let's see if it has captured it it's just taking a few more minutes so just to recap we have to create the git ignore file also so git ignore file is actually available uh on many blocks and Microsoft has also shared it so what get ignore file tells the git is that ignore everything apart from my code that's what we want to track so if yeah I'm just waiting for it to load so here we can see that we have uh we have some changes which the system has identified and we can see that our project file is here but we want to ignore let let's say these other files we can right click and tell them ignore these local items so it will automatically create uh get ignore file and we will also stage these changes so this is how we State changes and let's say initial model commit and we commit this page so now at this moment we are committing we have committed the changes which were staged on my local repos repository now in order to push these changes to my remote repository I have to open my git Chang space and I have to do the push now this is one way we can push the code from my visual studio local machine to the remote repository so what it is doing behind the scenes is it is executing the git push command so let's just wait for it to finish and then we will be able to see the pushed objects or artifacts on the devop so here you can see the push is complete so now at this stage if I go back to my devops and if I go to my repo which we created go to devops and we will select our repo react demo so here we can see we have the metadata folder under that we should have the model folder which we created for MSR and under that we have the descriptor file so at the moment when we create a blank model first time it only has a descriptor F descriptor file that's why we are able to see this and in the history we can see that there uh is a commit which was pushed now if you will see this Commit This there is a unique ID with this commit which is this hexa decimal code this is that particular hash algorithm generated check sum which git has created to track this change so now let's go ahead and create some objects and try to check them in and this time we will try to use the git command line utility to push these changes so let's say uh I have to work uh on a feature and I want to create a new project so what I'll do is I'll create a new project project in this model MSR so we Select Finance and operations as the project template just too slow today yeah so let's say we are working on some Warehouse operations and I'll say WM job 01 and I want to store this also in my projects folder so what I'll do is in my repository I'll create a project folder and there I will store this so I go to reactor demo I'll create a new folder called called projects now this is not necessary to do it like this always you can always use the folders as per your project team uh has decided you can basically store them um wherever you want and wherever in that repository structure but for this demo I'm just putting it under the same U Get repository so now we have created a new project we'll just wait for it to load in the meantime we can also look at the git status so here you'll see in the git status it says that the branch is currently Main and my branch is up to date with the local with the remote Branch uh because I have created a new folder uh of projects it is saying that we have created a new file under projects folder which is untracked so let's just wait for it to show up the project area and then we will start adding objects to it uh there are other git utilities also so you can say for example git uh d-el it basically uh shows you all the uh help all the commands which are available in git so if you want to uh check these commands you can use it so let's go to the solution Explorer and we can see that a new project has been created it is created in the model MSR so let's start developing we write our code for example I'm creating a new class so what I'll do is I'll select a new runable object but in a real time scenario you might be creating data types tables forms um WMS job 01 demo so I've added a new class to my model now what is happening is because of that symbolic link this class the XML file of this class is getting created in the repository uh folder structure so let's wait for it to come up we can also look at this file which will be getting created using my so if you if I go to my packages local directory and I go to MSR it takes me to the folder which I have mapped and which resides under my um repo and under this I will be able to see all the objects and all the subfolders and under the class I should be able to see my WMS job 01 demo XML file so what get is actually doing is it's tracking this file Visual Studio is just my code editor but git is actually tracking that file we'll just wait for the code Editor to respond and then we will write some code and check it in so here is our class which we have just now created and we will write just some blank code here so we'll say uh my code and you can write all your business logic so now what we have done is we have created an object and we are now ready to let's say check it into the devops and this time let's use the git command line utility so let me just clear it and uh sorry sorry CS Okay so so let's first do my git status my git status currently tells me that I am on Main Branch right and I have untracked files because now git tracks files not the folder structure that is the reason git is telling you that hey you have created a new file in your xpp metadata and you have something in the projects and you have a new file here now if I uh want to add the MSR and the projects what I'll do is because I have to tell G what to uh what to add so what I can do is I can either do get add all or I can just explicitly say get add this file so what I'll do is I'll just say get add this right so say get add this and let's do my git status now at this stage what G is saying is that your branch is Main and you have added these changes to be committed so I have staged my job class to be committed so what I can do is I can now Commit This Job class and I can give my message so I can say get commit and I can give a message my initial checkin and we run enter now what git is doing is git is committing this class CL on my local repository so here you will say if you do get status now you can see that okay you have changed one file your branch is currently Main and your branch is ahead of origin main by one commit now this is the same situation which we show which we have seen in this particular slide so if I go back here we are actually at this stage you have done a new commit in Main and your local branch is ahead of main so let's go back and say okay I want to push it so we'll say get push now what this push is doing it's pushing the changes from my local repository to my remote repository and that way all these changes will get uploaded into devop so let's see we wait for it to so it has now pushed all these changes now at this mov if we go back to our devops and if we refresh the page we should be able to see the history and the check-in now this is a happy flow scenario where we have directly checked into the main branch there are git commands which we can also use to create a new branch and then basically uh merge the branch so we will quickly do that we will create a new branch do some check-ins and then we'll merge that Branch so here you can see in the repository I have the code which I just created Creed and my job is here and I also have uh history in the uh in the devops that when it was committed now you can if you have a scenario where you have to do a code review what you can do is create a new branch do the check-in do the pull request and the code reviewer will approve the pull request and it can get merged so we have done the push of a new OP je from local repository to the remote repository now I'll quickly show you very quickly how how we can create a branch and then work on that so let's say uh in order to create a branch you have you can say get checkout uh DB and let's say my Dev branch and then what it does is it switches to Dev branch and you will notice in Visual Studio my branch has changed to Dev and if I do my git status you will see that my uh because I have some untracked changes in my previous file that's why it is saying but if I do get status it will show me so if I go back quickly here and I say uh I'll probably ignore all these changes I'll just say okay uh ignore this one and ignore my other files I'll just refresh it uh let me just refresh so because I'm on the dev Branch it is showing these changes here so and here we can see how my G ignore file looks so because I have added that particular file it automatically shows now I want to show you a get uh automatic trigger of the pipeline so what we have done for that is we have a repository which I've already cloned so I'll quickly show you uh we have 13 more minutes so I will just change my repository to d365 git tro which I already cloned which is basically similar to what we have done so far but I have also configured the devops pipeline to re to listen to that particular branch and then trigger so I am on my git repo branch on the main main branch and what I can do is I can actually do a check into my uh this bran so I'll just open an existing solution uh or maybe I'll create a new one and we will see how the pipeline gets triggered when we commit a change so let me call it uh invent job 99 and I will create it in a different repository which is my d365 git repo sorry and if you are working on multiple projects then your repository can be you can share it across to manage multiple folders so I have selected this folder and let's say invent job 99 I'll say create and this model is rgm so I'll just change the model before before I do the checkin change the model to rgm Y just to reconfirm that I'm tracking rgm under that repository yeah so what we'll do is is I'll quickly create an object and do a checkin and then what we will see is it triggers the pipeline and that way we can automate the whole cicd story where we can actually um improve the Alm process let's say invent job 99 me quickly check it in let's say code and if I use git and I change it to this repository and I do get status I can see that I have added these two objects which are not checked in so what we can do is we can do get add Dash This Will basically add the objects and if I do get status now it will show me that my files have been stayed paged I can do a get commit with a message my new job in x++ and once this is committed it has added these four files I can do get push now what this is doing is it's pushing these changes from my local repository to the devops so if I if we go back to devops and look at that repository we should be able to see history and this chain set coming in so let's switch to the repository apologies guys the system is a bit slow today um but we were able to cover what we wanted to show so in this if I go back to my main branch and if I look at my change log I should be able to see my latest change which I have done so my new job in x++ and if you can see the status is in progress this is in progress because the Azure pipeline which we have configured has been triggered and this code which we have checked in is now getting built using the build Pipeline and the new get packages and the uh the pipeline definition which we had so this is how you can actually automate your cicd process wherein you have get configured the the branching and merging is pretty light and fast and then you can automate the cicd story so I'll just come back to my presentation and see where we were so we have done the demo part U so basically just to summarize why it is awesome it is awesome because first of all it's fast it's very fast as compared to tfvc internally uh there is a lot of flexibility when it comes to branching and merging and it is free it's open source and it is distributed however I would like to make a commment that the choice of using tfvc or gate is also depends on your project requirement your team preferences and your existing infrastructure and tooling if you want to learn git you can learn locally with some simple notepad files and a good way to start learning git is to try in your in-house projects where you are doing product development you can use git and then you can start using it on customers project uh once you get that confidence so git is good tfvc also works so it's totally your call what you want to use but we should know the differences and how git works so I hope in this session you are able to understand the these concepts of git and how we can use git using command line as well as using visual studio now if you are interested to do a deep dive and learn more on git then there are some very good Learning Materials available online there are some uh links which are purely talking about git and they don't talk talk much about fno and Dynamics perspective and it is very important to learn these things because the application of get in fno only has few more uh challenges which is around initializing your repository and creating those symbolic links and get ignore files but there are some nice blogs by lot of community superheroes Ian Paul Nathan clemon so these guys have very good blogs on how to use git and how to solve the initial configuration challenges so feel free to check them out and I hope you guys have now got a good understanding of what is gate and how to use it with x++ and fno I will check if there are any questions in the chat window and I will try to take them as we go all right okay is there any setup required to enable git in vs 2019 uh git comes enabled by default you have to just clone the repository hisum so once you clone the repository and then you can start working with kit uh there is another question interested in becoming a Microsoft MVP thank you uh you can find out more information this okay um yeah so there will be a link shared if you want to uh start your MVP Journey feel free to reach out uh and I will be happy to connect uh there's a question from Shanker how is x++ code different to existing C++ programming language so Shanker x++ code is different to C++ in a way that it is designed for Microsoft Dynamics 365 Erp applications it is used and it has it is used it is using net it is a first class net citizen programming language but it is tightly uh you know it is it's use case Cas is all in Dynamics 365 Erp space you can Al also use any other Pro programming language references so if you have a C library which you can reference in x++ but it is bit different you will be able to find more details on Microsoft learn tiny fonts are not visible apologies cesu for that um then we have uh okay uh UMES has a question I've changed to larger size uh thanks hasham for the appreciation omish has a question how to set up a machine for new developer after configuring the branch and initial setup can you share the experience in managing different workspaces is it same as vsts or any new findings so I'll try to answer your question in few part so how to set up a machine for new developer so basically there is a git init command uh so once the developer gets a new machine they have to clone the repository and in the visual studio git settings they can Define their username password which will be used to uh do the uh checkins so for a new developer I think um there can be a bit of a handholding required in the beginning but basically you have to clone the repository do the g in it and you are up and running you'll have to create symbolic links and then when doing the check-ins you have to uh basically make sure that uh if there are any unwanted files you you add them to get ignore thank you UMES for the uh call out uh I hope you like this session thank you Shankar for your feedback I don't see any more questions in the chat window Nadia are there any other questions we want to take no that was all I me we do have a couple of minutes if anyone else's want to ask any questions um I have popped a few of those links in the chat there I was um mentioning earlier in the presentation I'm also going to pop in the on demand YouTube link from the session as well you can go back and watch if you need to have a look um but other than that I want to thank you all for joining it is the last live stream from Sydney for 2023 so we will be back next year kicking off some content in February so make sure that you check out our Meetup Channel and you'll be able to see all the new sessions that are coming up so thank you all for joining and a big special thank you to R sheet as well for his wonderful presentation I will see you all next time bye for now all right thanks Madia thanks everyone for joining cheers bye
Info
Channel: Microsoft Reactor
Views: 1,585
Rating: undefined out of 5
Keywords:
Id: zd8r6LBCM4c
Channel Id: undefined
Length: 57min 27sec (3447 seconds)
Published: Tue Nov 28 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.