 Hi, I'm Matt Geimer, a Program Manager on the Office Extensibility Team. In this video, I'm going to tell you all about the Microsoft Graph SDKs. Here's our agenda. What the Microsoft Graph SDKs are and how we generate them, a demo on generation using a beta endpoint, where to get the SDKs, and our future plans for the SDKs. So what are they? The Microsoft Graph SDKs are a series of client libraries on different platforms that allow you to interact with the Microsoft Graph service without having to make the rest calls directly. They expose the object model that exists in the graph. The SDKs are currently available on .NET, iOS, and Android. So how do we make them? The Microsoft Graph SDKs are generated using a tool called Viper, which is developed by Microsoft and available on GitHub. Viper takes in the service description metadata and outputs a client library in the language desired, which is the writer component of this tool. This makes it a great tool to use for building SDKs that provide CSDL service metadata. The Microsoft Graph has a beta endpoint that updates frequently enough that we aren't able to provide an SDK for it. This makes it a great endpoint to show how Viper works to generate SDKs. Let's go to the demo. For this demo, I downloaded Viper from GitHub and compiled it, which created a package that contained this executable. I'm gonna go ahead and use that, so Viper.exe, and then I'm gonna go ahead and use the URL for the Microsoft Graph. Now, this input is gonna be graph.microsoft.com slash beta, which is the version, and then the actual name of the metadata document, which is very easily dollar sign metadata. When I hit enter, this is gonna create a C-sharp file, and we can see that we have a new C-sharp proxy.cs that was just created. What I can now do is take this and put it into a class library project. So I'm gonna make a new one here. It's gonna load up the template here. Let me go ahead and remove the current cs file. Add it here. I'm gonna add an existing item. We can go to the output folder. Add in our cs file. Now, this C-sharp is just a representation of the objects that were described by the service, which in some case may conflict with the actual language rules that we have. So if we try and build this, we're gonna get a bunch of errors. Now, the reason why is that we have this right here. Right here, this default keyword is not allowed in C-sharp, and we have a property in our metadata that specifically has it. So I have to go ahead and change that out here. Just go ahead and comment this out. Here we are. Oops. And now we can try and build it again. These objects, however, also rely on OData, so we need to add the references for that. Go to Add Reference, and I have these references available already. So I can go ahead and click on those. Hit OK. Let's try and build this again. And as we can see here, we now have succeeded. So let's go ahead and take a look at what we have. We have the DLL that should exist. We did a debug build, and there we have them, actually. We can see the MicrosoftGraphBeta.dll. I will also need to use ADAL to authenticate within my app, which is available online at github.com and on Nougat. You can check for a blog post on dev.office.com for what modifications you'll need to do to make sure that your own beta SDK will compile for the MicrosoftGraph. Sometimes in the production of the SDKs, we had some client-side logic afterwards, but what we just compiled will work to use it with a service. We take these generated libraries and extra dependencies, package them together, and release them for use by developers. Now that we've seen the demo, let's talk about where to get these SDKs. After generation and any additions are made for the released SDKs, we package each of them and put them where they can be consumed easier on each platform. For iOS, you can find it on Cocopods. For .NET, you can find it on nougat.org. And for Android, you can use it with Maven and Gradle hosted on Bintray. While we currently have SDKs available on .NET, iOS, and Android, we are working to bring more platforms on board all the time. I'm very happy to announce that coming soon we will have JavaScript, Node.js, Ruby, Java, and Python. And if you're already working on these platforms that we don't have SDKs for yet, you can find authentication libraries at github.com slash azuread, where ADAL can be downloaded for these platforms. Another great thing to mention is that all of these are open source efforts and you can help contribute. The T4 Template Writer project on GitHub is part of the Viper process. You can submit bug fixes and enhancements to help make the SDKs better. Check it out at github.com slash msopentech slash Viper dash T4 template writer. You can find more information, including documentation and samples on graph.microsoft.com. Viper and the T4 template writer are available on GitHub as are the ADAL authentication libraries. Make sure you check out these other great resources and thanks for watching.