Microsoft Teams App Camp "In a Box"
Migrate applications into Microsoft Teams
Teams App Camp is a self-paced, online workshop, but it also makes a great live workshop, either online on in person! The App Camp team has conducted several online workshops and we'd like to share our materials with you.
This material can be used to lead:
- One-to-many hands-on bootcamps
- Tailored workshops for individual partners or customers
- Internal training for enterprise development teams
Two types of workshop are offered here, complete with agendas, slides, and other materials. The first type is an Envisioning Workshop, which is intended to help attendees envision and plan a Teams application. This is appropriate for a mix of business and technical stakeholders. The second is an App Camp Hands-on workshop, which is technical and aims to teach attendees to migrate apps to Microsoft Teams or build new apps with any tool chain.
Sample agendas are available for enterprise developers and ISV's; they're very similar but the ISV workshops include details on monetizing apps in the Microsoft Teams App Store.
Please don't feel the need to use the agendas and workshop outlines as-is! It's a lot better to understand your audience first, and then build an agenda tailored to their needs, so please mix and match, skip content that's not relevant, and add additional content as needed.
The PowerPoint decks include extensive speaker notes; don't miss them!
Preparing to teach App Camp
A lot of the PowerPoint slides shared here were used in the App Camp videos. Watching them is a good way to prepare, especially if you're new to Teams application development.
You may also want to review the article Understanding ISV's in the App Camp wiki. It compares the needs of enterprise developers, including systems integrators who build bespoke apps for enterprises, with the needs of ISV's who host Software as a Service applications.
The Envisioning Workshop is intended for business and technical audiences alike to help them envision a Teams application to be developed. It's structured for a single customer or partner, but it could be adapted for a larger audience. The goal is to envision one or more Teams apps, either as extensions of existing apps or as new ones, and to understand the business impact of these applications.
Envisioning Workshop sample agendas are here:
The Envisioning agenda begins with Discovery - that is, discovering the situation. This includes reviewing existing apps that might be extended to Microsoft Teams, or work processes that could benefit from a Teams application. It's useful to hear from as many stakeholders as possible during this discussion and to ask the customer or partner to demonstrate existing applications. Ask what works well in this application or work process, and what doesn't work so well? Are there unmet opportunities? How do people collaborate when they're using this applicaiton or doing a work process? Are users going through extra steps unnecessarily?
Write it all down on a whiteboard (physical or virtual) so everyone knows their thoughts were heard, and to allow them to be reviewed and prioritized. Prioritize the issues and feature ideas as a group, and narrow it down to the top 2 or 3. Consider the impact if these issues could be addressed, or new features introduced - how would it help the end customer? Would it make people more productive, encourage collaboration or better decision-making, or perhaps reduce the risk of error inherent in human handoffs?
Opportunity to Grow with Microsoft Teams Apps (ISV's only)
This presentation explains the business opportunity for building Teams applications and selling them as SaaS applications in the Teams app store and Microsoft App Source. You can watch the video or present it yourself.
The presentation discusses three case studies of successful Teams apps:
There are more video case studies here; select the ones that will be most relevant to your audience.
Microsoft Teams Application Overview
Following Discovery, everyone in the workshop should have a shared understanding of the present situation. In this segment, the workshop facilitator will explain how Teams apps work and what they can do. As you're doing this, constantly refer back to what you learned in Discovery - how could each feature be used to address the ideas that were discussed?
This deck contains a slide for each major capability of Teams applications, such as a personal tab or message extension, plus some general concepts such as Azure AD Single Sign-on. Each slide defines the concept along with a screen shot or other visual, and lists the end-user benefits that it brings.
It's best to accompany each slide with a demonstration. You can use the completed App Camp labs, of course, however it's a pretty bare-bones application. It's really intended to teach the technical concepts, not to demonstrate business value. So including other demos is also a great idea.
A good sample to show is the Contoso HR Talent App, which presents a business scenario - recruiting new talent - that's familiar to many. The app includes all the major Teams app features, including more message extension options and bot features than App Camp. It's available in .NET and NodeJS, and includes its own lab with setup instructions.
Envisioning whiteboard discussion
At this point, everyone in the room should understand the partner or customer's situation, any existing apps, and the capabilities of Teams apps. Now take the time to brainstorm ideas for how a Teams app might work. Could existing web pages become tabs? Would they be personal or shared? Could messaging extensions assist with handoffs or keep groups informed? Sketch the application and list use cases.
App Camp Hands-on workshop
The App Camp Hands-on workshop is intended for technical audiences to help them understand how Teams apps work so they can integrate an app with Teams. Two agendas are available: one for enterprises and systems integrators who will build apps for use within specific enterprise(s) and one for ISV's which adds content on monetizing apps in the Microsoft Teams app store.
Introduction to Teams Apps
This segment begins with a briefing on the App Camp labs and a brief demonstration of the Northwind Orders app. It then continues by explaining the basics of Teams applications, such as the capabilities and manifest.
If you want to provide more detail on the capabilities of Teams apps, consider adding content from the Microsoft Teams Application Overview here as well.
IDEA: Reduce workshop duration by assigning prework
One option that can save time is to ask students to watch one or more of these videos as pre-work. We had success with this approach in live workshops, where we opened with a quiz on the Teams material.
Labs A01-A03 or B01-B04
Most students should pursue the “A Path” (labs A01-A03). The extended labs are all based on completing lab A-03.Use these labs if your students:
- already use Azure AD for authentication OR
- do not authenticate users OR
- are building new applications
Use the "B Path" (labs B01-B04) if your students want to build a Teams app based on an existing app that uses a non-Azure AD identity system such as Auth0, Identity Server, Okta, Ping Federate, or Azure AD B2C, or a bespoke identity system such as ASP.NET SQL based authentication
Note that the solution files for the extended labs are all built on the A-03 solution; they have been tested building on B-04 but students will need to understand the code and adapt the instructions in order to make this work.
Here is the deck to introduce these initial labs.
The sample agenda suggests interrupting these labs and presenting the next segment, "Understanding Azure AD", as a lecture. This will help students understand what they're doing with Azure AD as they're doing the labs, and will provide a break from doing the labs.
Understanding Azure AD
Students will have to work with Azure AD throughout any Teams app project, as a way to authenticate users (hopefully with Single Sign-on) and to call back-end services such as the Microsoft Graph and Marketplace API. In addition, the Azure Bot Framework uses Azure AD, however many of the details are handled by the Bot Builder SDK. In any case - having a command of Azure AD concepts early on can save a lot of confusion!
This deck contains the Azure AD slides from Teams App camp as well as some additional ones.
Consider demonstrating Azure AD as part of this segment. An easy way to do this is to use the Graph Explorer.
- Before the demo, go into Enterprise Applications in the Azure AD admin center and delete the entry for Microsoft Graph Explorer.
- Then make some assorted Graph calls with Graph explorer and you'll have to grant every permission. This is a good place to discuss the permission and consent models. Grant some permissions as an administrator and others as a user, and explain the difference.
- Then return to Enterprise Apps and show that the permissions have been granted.
- Finally, show the App Camp app registration and explain that Graph Explorer is registered the same way in Microsoft's tenant. Walk them through the settings used in the lab and explain them.
Here are the decks for the extended labs, along with concept slides that introduce each topic. Demonstrate the completed lab as part of each presentation, and point out any steps you found to be tricky when you did the labs.
Monetization segments for ISV's
The ISV workshop includes additional content introducing the Microsoft Commercial Marketplace. These loosely correspond to App Camp videos; please review them as you're preparing to deliver the content.
Opportunity to Build and Grow with Microsoft Teams
Guide to Teams App Monetization
This presentation explains the steps to monetizing a Teams application, with lots of advice to make the process easier. It's available as a PDF file here and corresponds to this video from the App Camp technical briefing on Monetizing your Teams Application.
Anatomy of a SaaS Offer
This presentation explains the idea of a SaaS Offer, and the implementation of a landing page, web hooks, and licensing service to support it. This deck corresponds to this video from the App Camp technical briefing of the same name.
This presentation accompanies the monetization lab, Selling your SaaS-based Teams Extension