{"id":15121,"date":"2016-03-31T22:40:06","date_gmt":"2016-03-31T22:40:06","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/?p=15121"},"modified":"2019-02-14T17:34:09","modified_gmt":"2019-02-15T01:34:09","slug":"team-foundation-server-extensions-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/team-foundation-server-extensions-2\/","title":{"rendered":"Team Foundation Server Extensions"},"content":{"rendered":"<p>Extensions enable publishers (partners, customers, developers) to create first-class, integrated experiences within Visual Studio Team Services. They enable integration at the UI layer \u2013 surfacing the relevant information in the right places and streamlining the user experience. An Extension can be a simple context menu, toolbar action or can be a complex and powerful custom user experience that lights up within the account, collection, or project hubs.<\/p>\n<p>In Nov 2015, we announced the <em>Public Preview<\/em> of the new <a href=\"https:\/\/marketplace.visualstudio.com\/\"><span style=\"text-decoration: underline\">Visual Studio Marketplace<\/span><\/a> \u2013 the one place to discover and acquire extensions, integrations and subscriptions for the Visual Studio family of products. Now publishers can directly host their extensions on the Visual Studio Marketplace and engineering teams can use these extensions to build great applications for any platform and any OS.<\/p>\n<p>In <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=691129\">Team Foundation Server 2015 Update 2<\/a>, we have enabled support for installing extensions. There are two ways in which you can get these extensions.<\/p>\n<ol>\n<li>\n<p>You can download them from the <a href=\"https:\/\/marketplace.visualstudio.com\/\"><span style=\"text-decoration: underline\">Visual Studio Marketplace<\/span><\/a> and upload them to a Team Foundation Server.<\/p>\n<\/li>\n<li>\n<p>You can build your own extensions using the guidance <a href=\"https:\/\/www.visualstudio.com\/en-us\/integrate\/extensions\/overview\">here<\/a> and upload them to a Team Foundation Server.<\/p>\n<\/li>\n<\/ol>\n<h2>Download from Visual Studio Marketplace<\/h2>\n<p>A new Download button is available in the details page for Extensions.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/image_thumb615.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-15021\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/image_thumb615.png\" alt=\"image_thumb615.png\" width=\"720\" height=\"228\" \/><\/a><\/p>\n<p>When you click on the Download button, the Package file (.vsix) is downloaded to your local machine. We also show guidance on the next steps you need to take for installing it on a Team Foundation Server.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/image_thumb621.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-15104\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/image_thumb621.png\" alt=\"image_thumb621.png\" width=\"723\" height=\"326\" \/><\/a><\/p>\n<p>NOTE: If an extension cannot be installed on Team Foundation Server, i.e it is only available on Team Services, the download button will be absent.<\/p>\n<h2>Upload to Team Foundation Server<\/h2>\n<p>Now you can upload this package to your Team Foundation Server. The easiest way to get to the Team Foundation Server extensions is to click on the icon on the top-left corner of your home page.<\/p>\n<p>BTW, you need to be a Server Administrator to upload an extension.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/image_thumb617.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-15043\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/image_thumb617.png\" alt=\"image_thumb617.png\" width=\"738\" height=\"173\" \/><\/a><\/p>\n<p>This will take you the Team Foundation Server Extensions page.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/image_thumb618.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-15061\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/image_thumb618.png\" alt=\"image_thumb618.png\" width=\"741\" height=\"268\" \/><\/a><\/p>\n<p>Then click on \u201cManage Extensions\u201d.<\/p>\n<p>In the next page click \u201cUpload new extension\u201d.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/ManageExtensions.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-14953\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/ManageExtensions.png\" alt=\"ManageExtensions\" width=\"723\" height=\"290\" \/><\/a><\/p>\n<p>Now select the file you just downloaded and click Upload.<\/p>\n<p>The extension from the Marketplace is now available in Team Foundation Server.<\/p>\n<h2>Install an Extension to a Team Project Collection<\/h2>\n<h2><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/InstallExtension.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-14933\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/InstallExtension.png\" alt=\"InstallExtension\" width=\"918\" height=\"184\" \/><\/a><\/h2>\n<p>If you hover on the extension, the \u201cInstall\u201d button will show and you can start install of this extension. You have to be a Team Project Collection Administrator to install an extension. The extension will also be listed in the Team Foundation Server Extensions page now.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/InstallTeamCalendar.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-14943\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/InstallTeamCalendar.png\" alt=\"InstallTeamCalendar\" width=\"679\" height=\"326\" \/><\/a><\/p>\n<p>You can click on the tile and navigate to the Details page; then start install of this extension from there too.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/TeamCalendarSelectAccount.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-14993\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/TeamCalendarSelectAccount.png\" alt=\"TeamCalendarSelectAccount\" width=\"406\" height=\"348\" \/><\/a><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/TeamCalendarConfirmInstall1.png\"><img decoding=\"async\" class=\"alignnone  wp-image-15131\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/TeamCalendarConfirmInstall1.png\" alt=\"TeamCalendarConfirmInstall\" width=\"407\" height=\"348\" \/><\/a><\/p>\n<p>You are now ready to start using the Team Calendar extension on your Team Foundation Server.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/TeamCalendarHub.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-14983\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/03\/TeamCalendarHub.png\" alt=\"TeamCalendarHub\" width=\"802\" height=\"512\" \/><\/a><\/p>\n<h2>Upload an in-house extension to Team Foundation Server<\/h2>\n<p>We have a <a href=\"https:\/\/www.visualstudio.com\/en-us\/integrate\/extensions\/overview\">well-documented set of steps<\/a> to build your own extension. If you have built your own extension, you can upload it directly from the <b>Manage Extensions<\/b> page.<\/p>\n<h2>Next Steps<\/h2>\n<p>Try out the extensions on Team Foundation Server and send us your feedback.<\/p>\n<p>The TFS extension support we are shipping in Update 2 is definitely \u201cminimum viable product\u201d level.\u00a0 We know that.\u00a0 We don\u2019t support paid extensions.\u00a0 The install process is multi-step.\u00a0 Etc.\u00a0 This is what we could get done to enable the majority of marketplace extensions with TFS in the Update 2 timeframe.\u00a0 It will improve in Update 3 and again in TFS 2016.<\/p>\n<p>You can log your suggestions at <a href=\"https:\/\/visualstudio.uservoice.com\/forums\/331878-visual-studio-marketplace\">https:\/\/visualstudio.uservoice.com\/forums\/331878-visual-studio-marketplace<\/a>.<\/p>\n<p>You can also send your feedback to vsmarketplace at microsoft dot com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Extensions enable publishers (partners, customers, developers) to create first-class, integrated experiences within Visual Studio Team Services. They enable integration at the UI layer \u2013 surfacing the relevant information in the right places and streamlining the user experience. An Extension can be a simple context menu, toolbar action or can be a complex and powerful custom [&hellip;]<\/p>\n","protected":false},"author":98,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[253,229,1],"tags":[],"class_list":["post-15121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-devops-server","category-community","category-devops"],"acf":[],"blog_post_summary":"<p>Extensions enable publishers (partners, customers, developers) to create first-class, integrated experiences within Visual Studio Team Services. They enable integration at the UI layer \u2013 surfacing the relevant information in the right places and streamlining the user experience. An Extension can be a simple context menu, toolbar action or can be a complex and powerful custom [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/15121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/98"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=15121"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/15121\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=15121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=15121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=15121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}