Getting started with Microsoft Teams Development – Part 1

In this ramp-up we will start from scratch with Microsoft Teams Development. Every week I will publish a post and in this blog series we will go through the different parts that are needed for Teams Development and the different possibilities with developing on the Teams platform. I will also make a video series of this with my fellow MVP Thomas Gölles

As always with these kind of blog posts things in Office 365 change and the information in here will be inaccurate. I will try to keep everything updated as it changes but if something is wrong or you have any questions don’t hesitate to contact me.

In this first part we will start at the beginning which always is… how to setup your development environment. Next posts go deeper into Microsoft Teams Development:

  • Part 1: Setting up your development environment
  • Part 2: ngrok: why and how to use it
  • Part 3: Creating your first Microsoft Teams app

First off in Teams development you can pick your poison. If you like C# development then you can develop onto Teams in C#. If you rather develop into Node.JS then that’s also possible. The scaffolding tools and development tools can change… but the result will remain the same. This is one of the strong points of Teams development. Be sure to check out
https://docs.microsoft.com/en-us/microsoftteams/platform/ for more information

Now to get started with Microsoft Teams development you of course need an Office 365 tenant. If you don’t have one you can get one for free to do your development on. But be aware, you are getting this tenant for development purposes from Microsoft, don’t use it for real life stuff. Check out the Office 365 developer program for more information.

Licenses

If you already have a tenant and you want to use that one then you must have one of the following licenses:

  • Business Essentials
  • Business Premium
  • Enterprise E1, E3, and E5
  • Developer
  • Education, Education Plus, and Education E5 (or as my friend Jethro Segers noticed it’s A1, A3 and A5 or Office 365 for Students/Teachers)

When you have a tenant to do your development on you will need to turn on Microsoft Teams. If this is still needed. This depends on when you created your tenant. If you took a fresh developer Tenant then this is not needed anymore.

Turn on sideloading

Then you need to turn on sideloading of app. This can be done in the admin portal. Go to the “Services & add-ins” page and select Microsoft Teams. https://admin.microsoft.com/AdminPortal/Home#/Settings/ServicesAndAddIns

Here under the “Apps” menu you can turn on sideloading of apps.

And optionally you can turn on the developer preview of the Teams client. This is not required but depending on what you are going to build you might need it.

Let’s start

Now Microsoft Teams development requires 2 basic items:

A manifest and your code. The manifest is part of the Microsoft Teams app that you upload to Teams. This tells Teams what you have built, what’s it called, and all those things needed by Teams to run your app. A manifest consists out of the following parts:

  1. Name
  2. Description
  3. Icons
  4. Permissions
  5. Valid Domains
  • Tabs
  • Static Tabs
  • Bots
  • Connectors
  • Compose Extensions
The top ones are required inside of the manifest. The bottom items not. But if you just fill out the top ones you will have an app that has no functionalities. 

This also means that we need a second part and that’s of course a website to host your code. This is where the code you have written will be hosted. If you develop something for Microsoft Teams it will always will need to be hosted somewhere else. It could be that this is in Azure. But it also could be inside SharePoint (with an SPFx app) or even on AWS.

Of course, you will need something to write your code in. This is something that you must choose yourself. Do you prefer Visual Studio Code or Visual Studio? Doesn’t matter anymore these days.

After these steps your developer environment should be ready… but a crucial helping tool is still missing. That would be ngrok. In the next post we will go deeper why we need this tool and how to set it up.