<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Visual Studio news feed</provider_name><provider_url>https://devblogs.microsoft.com/vsnews</provider_url><author_name>Vahe Minasyan</author_name><author_url>https://devblogs.microsoft.com/vsnews/akams-author/vahe1816/</author_url><title>The fastest path to a new Visual Studio Team Services (VSTS) extension</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="hiAJKtxbVk"&gt;&lt;a href="https://devblogs.microsoft.com/vsnews/akams-h4k267/"&gt;The fastest path to a new Visual Studio Team Services (VSTS) extension&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://devblogs.microsoft.com/vsnews/akams-h4k267/embed/#?secret=hiAJKtxbVk" width="600" height="338" title="&#x201C;The fastest path to a new Visual Studio Team Services (VSTS) extension&#x201D; &#x2014; Visual Studio news feed" data-secret="hiAJKtxbVk" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://devblogs.microsoft.com/vsnews/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://devblogs.microsoft.com/vsnews/wp-content/uploads/sites/25/2018/08/vsfeaturebig.png</thumbnail_url><thumbnail_width>716</thumbnail_width><thumbnail_height>448</thumbnail_height><description>Over the last few years we have introduced a number of ways to extend and integrate with Visual Studio Team Services and Team Foundation Server. For example, client libraries for .NET (which work with both .NET Framework and .NET Core apps) and for Node.js and an extensibility model that allows extension of our web experience. [&hellip;]</description></oembed>
