{"id":15019,"date":"2023-08-17T08:30:14","date_gmt":"2023-08-17T15:30:14","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=15019"},"modified":"2023-08-17T22:21:42","modified_gmt":"2023-08-18T05:21:42","slug":"new-teams-toolkit-for-visual-studio-release-with-exciting-features-for-net-developers","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/new-teams-toolkit-for-visual-studio-release-with-exciting-features-for-net-developers\/","title":{"rendered":"New Teams Toolkit for Visual Studio release with exciting features for .NET developers"},"content":{"rendered":"<p>Teams Toolkit for Visual Studio helps .NET developers build, debug, and publish apps for Microsoft Teams. We are thrilled to share that the new version of Teams Toolkit for Visual Studio is packed with exciting capabilities for .NET developers.<\/p>\n<p>In this article, we\u2019ll share more information about the new capabilities announced in the recent release:<\/p>\n<ul>\n<li>Automate lifecycles of Teams Apps<\/li>\n<li>Debug bots with built-in tunneling<\/li>\n<\/ul>\n<h2>Automate lifecycles of Teams apps<\/h2>\n<p>Teams Toolkit introduced a new way for .NET developers to create focused tasks to automate setup and other repetitive actions during Teams app development. These tasks are composed into groups as lifecycles of Provision, Deploy, and Publish. If you create a new project using the new version, your project will include `<code>teamsapp.yml<\/code>` by default.<\/p>\n<p>For your existing project, simply create a new file named `<code>teamsapp.yml<\/code>` and add it to your project directory. <span class=\"ui-provider bhl bhm bfd bhn bho bhp bhq bhr bhs bht bhu bhv bhw bhx bhy bhz bia bib bic bid bie bif big bih bii bij bik bil bim bin bio bip biq bir bis\" dir=\"ltr\">Teams Toolkit will handle the creation <\/span>of a Teams app registration and save the App ID to an environment file during the Provision step as shown below:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-15020 size-full\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-1.png\" alt=\"\" width=\"1023\" height=\"361\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-1.png 1023w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-1-300x106.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-1-768x271.png 768w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/p>\n<p>The above example uses the `<code>teamsApp\/create<\/code>` action. You can add many other built-in automation tasks or actions available in this release. Check out our <a href=\"https:\/\/github.com\/OfficeDev\/TeamsFx\/wiki\/Teams-Toolkit-Visual-Studio-Code-v5-Guide\">Guide<\/a> to learn more about available actions.<\/p>\n<p>Note: If you created a Teams app using the previous versions of Teams Toolkit, you\u2019ll be able to automatically upgrade your project to support the latest features.<\/p>\n<p>Here is another example using the `<code>arm\/deploy<\/code>` action. In previous versions, when projects are created by Teams Toolkit, there contains the ARM templates\/bicep files that defines the required Azure resources for different Teams app. The ARM templates are predefined and not allowed to be customized by developers. Now, using the new version, developers can use the `<code>arm\/deploy<\/code>` action to specify the bicep file they want to use for ARM deployment. This gives developers more flexibility and transparency of the Azure resources they want to use for the Teams app.<\/p>\n<p><img decoding=\"async\" width=\"897\" height=\"640\" class=\"wp-image-15021\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-2.png\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-2.png 897w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-2-300x214.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-2-768x548.png 768w\" sizes=\"(max-width: 897px) 100vw, 897px\" \/><\/p>\n<p>Users can also specify\/customize the manifest path of the Teams app, which gives developers further flexibility &#8211; a feature not available in the previous version of Teams Toolkit. Previously, Teams Toolkit generated the manifest file in a default path and always used that path, which did not allow users to move the file or specify another path. This latest release allows users to use any path they want.<\/p>\n<p><img decoding=\"async\" width=\"857\" height=\"218\" class=\"wp-image-15022\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-3.png\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-3.png 857w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-3-300x76.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-3-768x195.png 768w\" sizes=\"(max-width: 857px) 100vw, 857px\" \/><\/p>\n<h2>Debug bots with built-in tunneling<\/h2>\n<p>Debugging bots is even simpler in this release with the power of <a href=\"https:\/\/learn.microsoft.com\/en-us\/aspnet\/core\/test\/dev-tunnels?view=aspnetcore-7.0\">Visual Studio dev tunnels<\/a>. To begin, create a new tunnel by selecting the arrow on the right side of the debug button, select <strong>Dev Tunnels<\/strong> and then <strong>Create a Tunnel<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"1915\" height=\"1008\" class=\"wp-image-15023\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-4.png\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-4.png 1915w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-4-300x158.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-4-1024x539.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-4-768x404.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-4-1536x809.png 1536w\" sizes=\"(max-width: 1915px) 100vw, 1915px\" \/><\/p>\n<p>Configure the Dev Tunnel Type and Access the way you prefer, select <strong>OK<\/strong> and your tunnel will be created.<\/p>\n<p><img decoding=\"async\" width=\"1918\" height=\"1006\" class=\"wp-image-15024\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-5.png\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-5.png 1918w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-5-300x157.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-5-1024x537.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-5-768x403.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-5-1536x806.png 1536w\" sizes=\"(max-width: 1918px) 100vw, 1918px\" \/><\/p>\n<p>Using Dev Tunnels by default also brings these advantages to your Teams app development:<\/p>\n<ol>\n<li>Enhanced security awareness: receive alerts when connected to Dev Tunnels, helping prevent phishing attacks and accidental disclosure of tunnel endpoints.<\/li>\n<li>Microsoft 365 identity authentication: safeguard your tunnel creation by authenticating with your Microsoft 365 identity. This gives you an added layer of protection.<\/li>\n<li>Zero context switching: reduce context switching when building Teams apps by using the Dev Tunnels. Save manual work to create a tunneling using other tools.<\/li>\n<\/ol>\n<h2>Try the new version<\/h2>\n<p>It&#8217;s easy to get started with Teams Toolkit for Visual Studio. Install <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/\">Visual Studio 2022,<\/a> select <strong>ASP.NET and web development<\/strong> workload and <strong>Teams Toolkit<\/strong> from the Installation details.<\/p>\n<p><img decoding=\"async\" width=\"1587\" height=\"888\" class=\"wp-image-15025\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-6.png\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-6.png 1587w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-6-300x168.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-6-1024x573.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-6-768x430.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/word-image-15019-6-1536x859.png 1536w\" sizes=\"(max-width: 1587px) 100vw, 1587px\" \/><\/p>\n<p>If you already have Visual Studio 2022 and are excited to try out the new capabilities mentioned above, you can <strong>u<\/strong><strong>pdate <\/strong>Visual Studio 2022 with the Visual Studio Installer.<\/p>\n<p>To upgrade Teams apps built using the previous version of Teams Toolkit, simply open your project with the new version and your project will migrate automatically. Learn more about the file changes that will take a place in the new version by reading <a href=\"https:\/\/github.com\/OfficeDev\/TeamsFx\/wiki\/Upgrade-project-to-use-Teams-Toolkit-5.0-features\">Upgrade project to use Teams Toolkit 5.0 features<\/a> documentation.<\/p>\n<h2>We\u2019d love to learn from your experience! \ud83d\udc9c<\/h2>\n<p>We\u2019re excited for you to try the new features and share your feedback! You can build with the Teams Toolkit product team <a href=\"https:\/\/github.com\/OfficeDev\/TeamsFx\/tree\/dev\">on GitHub<\/a>, share feedback as an issue, or email the product team directly at <a href=\"mailto:ttkfeedback@microsoft.com\">ttkfeedback@microsoft.com<\/a>.<\/p>\n<p>To learn more, check out our documentation:<\/p>\n<ul>\n<li><a class=\"fui-Link ___1eya986 f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1x7u7e9 f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/toolkit\/toolkit-v4\/teams-toolkit-fundamentals-vs?pivots=visual-studio-v17-7\" href=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/toolkit\/toolkit-v4\/teams-toolkit-fundamentals-vs?pivots=visual-studio-v17-7\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link Teams Toolkit Visual Studio Overview\">Teams Toolkit Visual Studio Overview<\/a><\/li>\n<li><a class=\"fui-Link ___1eya986 f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1x7u7e9 f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/toolkit\/toolkit-v4\/install-teams-toolkit-vs?pivots=visual-studio-v17-7\" href=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/toolkit\/toolkit-v4\/install-teams-toolkit-vs?pivots=visual-studio-v17-7\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link Install Teams Toolkit in Visual Studio\">Install Teams Toolkit in Visual Studio<\/a><\/li>\n<li><a class=\"fui-Link ___1eya986 f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1x7u7e9 f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/toolkit\/toolkit-v4\/explore-teams-toolkit-vs?tabs=prj&amp;pivots=visual-studio-v17-7\" href=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/toolkit\/toolkit-v4\/explore-teams-toolkit-vs?tabs=prj&amp;pivots=visual-studio-v17-7\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link Explore Teams Toolkit in Visual Studio\">Explore Teams Toolkit in Visual Studio<\/a><\/li>\n<li><a class=\"fui-Link ___1eya986 f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1x7u7e9 f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/sbs-gs-csharp\" href=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/platform\/sbs-gs-csharp\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link Build your first Teams app with C#\">Build your first Teams app with C#<\/a><\/li>\n<\/ul>\n<p>Build .NET apps for Microsoft Teams with the new version of Teams Toolkit for Visual Studio, today!<\/p>\n<p><iframe title=\"How to get the most out of the new features of Teams Toolkit!\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/kv4BEjM-RXc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Resources:<\/p>\n<ul>\n<li>Visit our <a href=\"https:\/\/developer.microsoft.com\/en-us\/microsoft-365\">Microsoft 365 Dev Center.<\/a><\/li>\n<li>Follow us on <a href=\"https:\/\/twitter.com\/Microsoft365Dev\">Microsoft 365 Developer (@Microsoft365Dev) \/ Twitter<\/a> for the latest news and announcements.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn about the newest capabilities for .NET developers in the latest version of Teams Toolkit for Visual Studio.<\/p>\n","protected":false},"author":69083,"featured_media":15036,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,128],"tags":[186,23,55],"class_list":["post-15019","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer","category-microsoft-teams","tag-net","tag-teams-toolkit","tag-visual-studio"],"acf":[],"blog_post_summary":"<p>Learn about the newest capabilities for .NET developers in the latest version of Teams Toolkit for Visual Studio.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/15019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69083"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=15019"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/15019\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/15036"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=15019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=15019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=15019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}