Microsoft Teams Development Overview
This module will introduce you to the different options and platforms to pick from when starting with Microsoft Teams development.
You will learn about the extensibility points of Teams and the way you can use them to enrich the user experience.
- Teams Development Introduction
- Creating Microsoft Teams Apps with Node.js and .NET
- Generating Microsoft Teams Apps with Yeoman
- Using the Microsoft Teams Toolkit for Visual Studio and Visual Studio Code
- App elements: Tabs, Bots, Connectors, Messaging Extensions
- Using Teams App Studio and the Developer Portal
Creating embedded Experiences with Tabs
Tabs are Teams-aware webpages embedded in Microsoft Teams.
These are iframes that point to domains declared in the app manifest and can be
added as part of a channel inside a team, a group chat, a meeting or as a personal app for an individual user.
- Channel/Group/Meeting tabs vs Personal Tabs
- Building Tabs using ASP.NET
- Building Tabs using Node.js and React
- Building Tabs using SharePoint Framework (SPFx)
- Embedded experiences with Power Apps in a Teams Tab
- Authentication options for your Teams Tabs
- LAB: Developing Tabs with .NET Core and Node.js
Style Teams App Content using Fluent UI
By using the Fluent UI framework, we can ensure that our custom Teams content has the look & feel of it's environment.
Also used in all of the Microsoft 365 interface, this framework offers a set of styles and visual components to use in your app.
- Using Fluent UI
- Styling your Apps with Fluent UI framework
- Integrating Fluent UI components
The Teams App UI
Next to Fluent UI, we have additional tools and guidelines for out Teams Apps. In this chapter we will get an overview of this
- Understanding the design process
- UI Components and Templates
- A quick view at Figma
Cards and Task Modules
Whenever our code posts content to Teams chats or channels, we can use the Cards formatting to make it look good.
This chapter will show you how Cards are composed and provide some advanced samples.
Task modules are similar to Cards, but allow you to collect input from a user, even using multiple pages to create a workflow.
- Designing Teams Cards: Hero Cards, Adaptive Cards and more.
- Responding to Card Actions
- Create Interactive Workflows with Task Modules
- LAB: Designing a Lunch Card
Building Rich Conversations with Bots
Conversational bots allow users to interact with your web service through text, interactive cards, and task modules.
In this module, you’ll learn how to create and add bots to custom Microsoft Teams apps.
- Creating a Bot Compatible Web Service
- Debugging your Bot with the Bot Emulator
- Turns, Messages and Activities
- Conversations and Channels
- Registering your Bot with Microsoft Azure's Bot Framework
Bots for Microsoft Teams
A "regular" bot can be exposed through multiple channels (Facebook, Slack, Teams,...), but you can also create a bot specifically for Teams.
This will allow your bot to react to Teams-specific events, like the adding of a channel, and to use your bots for messaging extensions.
- Creating a Bot for Teams
- Registering your Bot with the Developer Portal
- Adding Bot Capabilities in the App Manifest
- Creating simple codeless bots with Power Virtual Agents
- LAB: Creating a Lunch-bot
Enrich Messages with Messaging Extensions
Messaging extensions allow us to extend the content of a chat or conversation message in Teams.
These extensions come in three flavours, allowing us to take action, search for content or unfurl a URL based on the user's input.
- Request User Input with Action Commands and Tasks
- Provide Search Results based on Search Commands
- Enrich URL Rendering with Link Unfurling
- LAB: Creating a Query Messaging Extension
Microsoft 365 provides you with one single endpoint allowing you to communicate with all Microsoft 365 services. This
API is known as the Microsoft Graph and allows developers to access data, intelligence and insights
coming from the Microsoft cloud, including Microsoft Teams
- Microsoft Graph API
- Discovering the different APIs: Mail, Contacts, Calendar, People, Teams...
- Automating Teams with the Graph API
- Microsoft Graph SDK
Webhooks and Connectors
Webhooks and connectors are a simple way to connect your web services with channels and teams inside Microsoft Teams.
Outgoing webhooks allow your users to send text messages from a channel to your web services.
Incoming webhooks and Microsoft 365 Connectors allows to receive notifications and messages in teams from your web services.
- Basic Webhook Concepts
- Receive Information from a Channel with an outgoing Webhook
- Publish Card Content to a Channel in Teams using incoming Webhooks
- Use Microsoft 365 Connectors to publish Content to Teams or Outlook
- LAB: Creating an outgoing Webhook
- LAB: Creating a Microsoft 365 Connector
Creating Apps for Teams Meetings
Meeting apps can deliver a user experience before, during and after a meeting. You can integrate functionalities like tabs, bots, messaging extensions, ...
but you can also use some functionalities specifically for meetings, like in-meeting dialogs, meeting stage apps, etc...
- The Meeting Lifecycle
- Integrating Tabs
- Side Panels and in-meeting Dialog Boxes
- Integrating Bots and Messaging Extensions
- The Meeting Stage
- Meeting Apps APIs
- Custom Together Mode Scenes
Deploying Teams Apps
This chapter will explain how we can test and debug our Teams App and then deploy it.
We will see how to build a manifest and app package, which we will then deploy to Teams directly or to the organization's App Catalog.
- Creating a Teams App Manifest
- Composing a Teams App Package
- Using Developer Portal for Microsoft Teams
- Testing and Debugging your Teams App
- Deploying directly or through an App Catalog
- Adding your App to AppSource
Teams Administration Options
Learn what options you have for administering Teams and Apps and how Teams administration can be automated.
- Teams Admin Center
- Configuring App Setup Policies
- Configuring Settings for Apps, Bots & Connectors
- Managing Teams with PowerShell
- Managing Teams with the Microsoft 365 CLI