Microsoft Teams Ebook DevAppJourney Final
Microsoft Teams Ebook DevAppJourney Final
to building Microsoft
Teams apps
App development 2
with Microsoft Teams
CONTENTS
01 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 05 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
The Microsoft Teams Bring Teams into your app
developer journey
06 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
02 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Publish and certify your app
Why Teams?
Build collaborative apps 07 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Bring app solutions to life Microsoft 365 Developer Program
03 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 08 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Getting started with Teams apps Next steps
04 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
App development experience
Teams development tools and SDKs
Teams Toolkit
Yeoman Generator
SDKs for building Teams apps
Developer Portal for Teams
App development 3
with Microsoft Teams
01
The Microsoft Teams With app development in Teams, you own the
technology stack and the entire user experience.
02
Why Teams?
Dedicated to supporting where, when, and how colleagues and peers are using. Likewise, with
people want to work, Teams is the collaboration Teams, you can certify your app through the
platform of choice across industries, borders, and Microsoft 365 App Compliance program, which
organizations of every size and shape. With focuses on security, privacy, and data-handling
Teams apps, you can bring business workflows standards. To monetize your app, include it as a SaaS
and insights to users where they work, helping offering on the Microsoft Commercial Marketplace,
them collaborate, drive better and faster or add an in-app purchasing option that includes a
decisions, and accelerate business outcomes. paywall experience directly from within the app.
03
Getting started Note that the Teams client provides the extension
point that people use to interact with your app, while
with Teams apps you host the APIs and logic that power your app.¹ A
Teams app package containing icons and a manifest
JSON file is installed in Teams. The manifest file
Teams apps consist of cloud services that integrate includes details about:
with Teams extension points (also known as features)
and a manifest that registers these services with • App metadata (like the app name)
the Teams platform. Teams core features and
• Teams extensibility points that the app
functionalities that you can build in your app are uses (like tabs, bots, or messaging extensions)
called Teams extension points because they enable
integration and interaction. Creating apps with • Pointers to the APIs that power the
Teams involves deciding what to build (based on app (like the ID or tab URL)
Teams extension points and user engagement),
building the APIs, creating a Teams app package,
and distributing the package to target users.
¹The Teams platform is not a hosting service; the APIs powering your app must be hosted by you and accessible by HTTPS over the internet.
App development 6
with Microsoft Teams
Before building your Teams app, it’s important to understand the different extensibility points
available across the Teams UI, including tabs, bots, and messaging extensions. By extending Teams
capabilities, you tap into the power of contextual relevance, making the user experience clearer, fuller,
and more effective. For example, you can build your services with context-specific information like
messages your app was triggered from or information related to the channel your app is installed in.
Depending on business needs, you might choose a single extension point (like a personal conversation bot)
or combine multiple extension points. For more information, see Microsoft Docs | Teams app features.
App development 7
with Microsoft Teams
04
App development experience
Because Teams is a collaborative social framework, there are many options available to solve your users’ needs.
Building an app in Teams sets you on the path for successful development, distribution, and future-state goals.
Based on your business requirements and preferred programming language, you can choose from multiple options
for developer tools and SDKs in Teams. Collectively, these choices enable you to design, build, debug, distribute,
and manage Teams apps. For environments, consider the Teams Toolkit, the open-source community tool Yeoman
Generator for Microsoft Teams (Yo Teams), or the Developer Portal. Supported frameworks include Blazor, SharePoint
Framework, and Bot Framework. For building solutions, web frameworks like React, Angular, and VueJS are available.
For programming languages, choose from familiar options like JavaScript, TypeScript, .NET, Java, or Python.
Design Development
Use the Teams UI Kit and UI Library to Use popular IDEs like Visual Studio or
create the right experience and design Visual Studio Code, command-line tools,
a UI that fits diverse user requirements. APIs, and SDKs to integrate apps into
Teams conversations and channels.
Tool or SDK Intended users or purpose Benefits for Teams app development
Teams Toolkit for JavaScript and TypeScript Create new projects in Teams, set up apps in the Teams
Visual Studio Code developers Developer Portal, run and debug in Teams, and configure
cloud hosting.
Add other Teams capabilities (such as tabs or bots) and more
Azure resources to your Teams app. Collaborate on Teams
projects and add SSO, CI/CD pipelines, and API connections.
Teams Toolkit for .NET developers Create new projects in Teams, set up apps in the Teams
Visual Studio Developer Portal, run and debug in Teams, and configure
cloud hosting.
Yo Teams CLI tool for developers who are Create and scaffold projects that include one or more Teams
familiar with Yeoman and Gulp features such as bots, messaging extensions, tabs, and more.
TeamsFx CLI tool for JavaScript, CLI offers the keyboard-centric equivalent of the Teams
TypeScript, and .NET developers; Toolkit functionality, including deployment from CI/CD
includes SDK pipelines. SDK offers simplified authentication to APIs
secured with the Microsoft identity platform, such as
Microsoft Graph and custom APIs.
Bot Framework Build conversational Teams Bot SDK offers a rich bot SDK to create Teams
bots with C#, Java, Python, and bots and message extensions.
JavaScript
Teams JS SDK Integrate apps with Teams client When you expose your web application in Teams as a tab,
capabilities make it Teams-aware and build task modules that integrate
with your application.
Microsoft Graph SDK Connect data and insights from Simplify building high-quality, efficient, and resilient apps
Microsoft 365 that access Microsoft Graph.
SharePoint Build Microsoft 365–hosted Host tabs and task modules on Microsoft 365 without
Framework solutions with single sign- additional services on Azure. Easily access resources secured
on (SSO) using TypeScript or with the Microsoft identity platform, like Microsoft Graph or
JavaScript custom APIs.
Adaptive Cards SDK Build declarative UI elements Extend bots and messaging extensions with a rich and
with JSON, which transforms interactive UI that works on any platform.
into a native Teams UI on web,
desktop, and mobile versions
Fluent UI SDK Implement web UI that is Use web components that implement Microsoft Design
consistent with Teams; supports Language and seamlessly integrate with Teams UI, such as
React buttons, dropdowns, grids, people and date pickers, and
more.
The Teams JS SDK allows you to make web apps TeamsFx can help you build apps that use the
Teams-aware. Whether you’re bringing an existing Microsoft Graph API or any API secured with
web app into Teams or building task modules, using the Microsoft identity platform to fetch data
the Teams JS SDK gives you access to the context of like basic user information. Teams Fx handles the
Teams, Outlook, and Office.com. OAuth 2.0 authorization code grant flow, getting
access tokens that can be used to make Microsoft
Bot Framework SDK Graph API calls.
The Bot Framework SDK helps you build
SharePoint Framework
messaging extensions and conversational bots.
It supports the C#, JavaScript, Python, and Build Microsoft 365–hosted apps with
Java programming languages. It also helps you SharePoint Framework using code, Teams tabs,
build conversational experiences with language and task modules. Easily access resources secured
understanding, QnA Maker, and a sophisticated with the Microsoft identity platform, such as
composition of bot replies. Microsoft Graph and custom APIs.
Microsoft Graph SDK lets you simplify building Adaptive Cards are actionable snippets of
high-quality, efficient, and resilient apps that content that can be added to conversations
access data and insights from Microsoft 365. through bots or messaging extensions. These
It’s available for the C#, PowerShell, TypeScript, cards provide rich communication to your
JavaScript, Java, Go, PHP, and Python (preview) audience using text, graphics, and buttons.
programming languages.
Fluent UI SDK
05
Bring Teams into your app
When building Teams apps, you can expose your app
inside Teams—but you can also bring some Teams
functionality to your app with a rich set of features.
Azure Communication Services, which power Teams,
enable real-time audio and video conferences in your
existing app. Similarly, the Microsoft Graph API brings
Teams (chats and channels) collaboration to your app.
By bringing Teams into your app, you can improve users’
experience by helping them get all the relevant information
they need for their work, enabling them to stay in their
flow and collaborate seamlessly without having to switch
back and forth across apps.
06
Publish and
07
Microsoft 365
certify your app Developer Program
To publish your app to the Teams store, you need to review The Microsoft 365 Developer Program offers a free,
the Teams store validation guidelines and submit your app instant sandbox for you to prototype your apps and
for publishing based on these parameters. This validation solutions. The sandbox comes pre-provisioned and
helps users and admins verify the authenticity of your app. configured for development with sample Teams
The Microsoft 365 App Compliance Program is designed to data so you can start quickly, saving time so you can
evaluate, validate, and highlight your app security, privacy, focus on what matters: exploring and learning the
and data trustworthiness based on industry standards, capabilities of the Microsoft 365 platform.
including the Service Organization Control Report (SOC The Teams sample data pack includes:
2) and the Payment Card Industry Data Security Standard
(PCI DSS). With the App Compliance Automation tool, • User, mail, and calendar data with 16 sample users,
plus user data and content, to help you model
developers can automate various tasks to achieve the
your solutions. The data includes user mailboxes,
certification faster and more easily. The tool produces calendar events, and integration into a Teams
reports that developers can share with IT to gain visibility developer environment with simulated chats and
into app security and compliance. team memberships.
08
Next steps
Teams is collaborative by design. It’s uniquely suited to
build and deploy collaborative apps into every corner of
your organization, empowering employees, optimizing
operations, and fully engaging your customers. Do you
have an app idea that can harness the power of Teams
for your organization or your customers? Take advantage
of Teams’ rich and flexible set of extensibility points,
UI constructs, and APIs to build powerful collaborative
apps with your existing development skills and the tools
provided by Microsoft 365 and Azure.