| page_type | sample | ||||
|---|---|---|---|---|---|
| description | This sample showcases the development of a custom personal tab for Microsoft Teams, utilizing ASP.NET Core MVC to enhance user interaction. | ||||
| products |
|
||||
| languages |
|
||||
| extensions |
|
||||
| urlFragment | officedev-microsoft-teams-samples-tab-personal-mvc-csharp |
This sample application illustrates the process of building a custom personal tab in Microsoft Teams using ASP.NET Core MVC. It provides a comprehensive guide on setting up the environment, configuring the app manifest, and deploying the app across Teams and Office platforms, enabling seamless integration and enhanced user experience.
- Tabs
Please find below demo manifest which is deployed on Microsoft Azure and you can try it yourself by uploading the app package (.zip file link below) to your teams and/or as a personal app. (Uploading must be enabled for your tenant, see steps here).
Personal Tab: Manifest
-
.NET Core SDK version 6.0
determine dotnet version
dotnet --version
-
dev tunnel or Ngrok (For local environment testing) latest version (any other tunneling software can also be used)
-
Teams Microsoft Teams is installed and you have an account
The simplest way to run this sample in Teams is to use Microsoft 365 Agents Toolkit for Visual Studio.
- Install Visual Studio 2022 Version 17.14 or higher Visual Studio
- Install Microsoft 365 Agents Toolkit for Visual Studio Microsoft 365 Agents Toolkit extension
- In the debug dropdown menu of Visual Studio, select Dev Tunnels > Create A Tunnel (set authentication type to Public) or select an existing public dev tunnel.
- Right-click the 'M365Agent' project in Solution Explorer and select Microsoft 365 Agents Toolkit > Select Microsoft 365 Account
- Sign in to Microsoft 365 Agents Toolkit with a Microsoft 365 work or school account
- Set
Startup ItemasMicrosoft Teams (browser). - Press F5, or select Debug > Start Debugging menu in Visual Studio to start your app

- In the opened web browser, select Add button to install the app in Teams
If you do not have permission to upload custom apps (uploading), Microsoft 365 Agents Toolkit will recommend creating and using a Microsoft 365 Developer Program account - a free program to get your own dev environment sandbox that includes Teams.
-
Run ngrok - point to port 3978
ngrok http 3978 --host-header="localhost:3978"Alternatively, you can also use the
dev tunnels. Please follow Create and host a dev tunnel and host the tunnel with anonymous user access command as shown below:devtunnel host -p 3978 --allow-anonymous
- App Registration
-
Register a new application in the Microsoft Entra ID – App Registrations portal.
-
Select New Registration and on the register an application page, set following values:
- Set name to your app name.
- Choose the supported account types (any account type will work)
- Leave Redirect URI empty.
- Choose Register.
-
On the overview page, copy and save the Application (client) ID, Directory (tenant) ID. You'll need those later when updating your Teams application manifest and in the appsettings.json.
-
Navigate to API Permissions, and make sure to add the follow permissions:
- Select Add a permission
- Select Microsoft Graph -> Delegated permissions.
User.Read(enabled by default)- Click on Add permissions. Please make sure to grant the admin consent for the required permissions.
-
Clone the repository
git clone https://github.com/OfficeDev/Microsoft-Teams-Samples.git
-
If you are using Visual Studio
- Launch Visual Studio
- File -> Open -> Project/Solution
- Navigate to
samples\tab-personal\mvc-csharpfolder - Select
PersonalTabMVC.slnfile and open the solution
-
Modify the
manifest.jsonin the/appPackageor/Manifest_Hubfolder and replace the following details:- <> with any random GUID.
<<Base-url>>with base Url domain. E.g. if you are using ngrok it would behttps://1234.ngrok-free.appthen your domain-name will be1234.ngrok-free.appand if you are using dev tunnels then your domain will be like:12345.devtunnels.ms.validDomainswith base Url domain. E.g. if you are using ngrok it would behttps://1234.ngrok-free.appthen your domain-name will be1234.ngrok-free.appand if you are using dev tunnels then your domain will be like:12345.devtunnels.ms.
-
Upload the manifest.zip to Teams (in the Apps view click "Upload a custom app")
- Go to Microsoft Teams. From the lower left corner, select Apps
- From the lower left corner, choose Upload a custom App
- Go to your project directory, the ./appPackage or ./Manifest_Hub folder, select the zip folder, and choose Open.
Note: If you want to test your app across multi hub like: Outlook/Office.com, please update the manifest.json in the /Manifest_Hub folder with the required values.
-
To view your app in Outlook on the web.
-
Go to Outlook on the weband sign in using your dev tenant account.
On the side bar, select More Apps. Your uploaded app title appears among your installed apps
Select your app icon to launch and preview your app running in Outlook on the web
**Click on 'Select Gray' button application will perform like below **
**Click on 'Select Red' button application will perform like below **
Note: Similarly, you can test your application in the Outlook desktop app as well.
-
To preview your app running in Office on the web.
-
Log into office.com with test tenant credentials
Select the Apps icon on the side bar. Your uploaded app title appears among your installed apps
Select your app icon to launch your app in Office on the web
**Click on 'Select Gray' button application will perform like below **
**Click on 'Select Red' button application will perform like below **
Note: Similarly, you can test your application in the Office 365 desktop app as well.
Tab-personal Create a Custom Personal Tab with ASP. NET Core MVC
Tab-personal Create a Custom Personal Tab with ASP. NET Core MVC











