{"id":1344,"date":"2013-09-10T02:00:00","date_gmt":"2013-09-10T02:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2013\/09\/10\/what-is-new-in-browser-link-with-visual-studio-2013-rc\/"},"modified":"2022-08-09T05:36:26","modified_gmt":"2022-08-09T12:36:26","slug":"what-is-new-in-browser-link-with-visual-studio-2013-rc","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/what-is-new-in-browser-link-with-visual-studio-2013-rc\/","title":{"rendered":"What is new in Browser Link with Visual Studio 2013 RC?"},"content":{"rendered":"<p>Over the last few months, the Browser Link team has worked on delivering these new features in the Visual Studio 2013 RC release:<\/p>\n<ol>\n<li>Browser Link Dashboard<\/li>\n<li>APIs for extension authoring<\/li>\n<\/ol>\n<p>For those who are not familiar with Browser Link, please look at our introductory blog <a href=\"http:\/\/blogs.msdn.com\/b\/webdev\/archive\/2013\/08\/01\/10430221.aspx\"><font color=\"#0000ff\">here<\/font><\/a><font color=\"#0000ff\">.<\/font><\/p>\n<h2>Browser Link Dashboard<\/h2>\n<p>The Browser Link Dashboard is a tool window in VS that shows all active browser link connections.<\/p>\n<p>You can invoke the dashboard by clicking on the little arrow next to the Refresh Linked Browser icon.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/5226.image_thumb_09B3E809.png\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/5226.image_thumb_09B3E809.png\" width=\"242\" height=\"85\" \/><\/a> <\/p>\n<p> Clicking on the Browser Link Dashboard menu item will bring up the tool window.<\/p>\n<p>As you can see in the image below, the dashboard shows all active connections related to your solution. These include connections that were opened via F5 (run with debugger), Ctrl+F5 (run), View in Browser or even just by opening any browser and pasting the url. <\/p>\n<p>For example, in the image below, you can see that connections to About.aspx in IE, Chrome and IPad emulator are all listed in the Browser Link Dashboard. The connections also give you details of the url.<\/p>\n<p>A Problems node exists to tell you if there is a problem. In our case, we are good as the debug flag is set to true and we are on a 4.5 project.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/5810.image_thumb_255873FF.png\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/5810.image_thumb_255873FF.png\" width=\"642\" height=\"464\" \/><\/a> <\/p>\n<h2>APIs for extension authoring<\/h2>\n<p>With the RC release, we now support the authoring of Browser Link Extensions via a public API. The rest of this post describes what a Browser Link Extension is and how you can write one.<\/p>\n<p>A Browser Link Extension is a VS extension that will let you talk to all Browsers connected with any web project&#160; that is open in Visual Studio. Your extension will have a <em>CSharp<\/em> part and a <em>JavaScript<\/em> part. The CSharp part is run in the context of Visual Studio. The Javascript part gets injected in the browser when a user makes a requests to that page. There are APIs on both sides that allow them to talk to each other.<\/p>\n<p>Let us start off with writing a simple Browser link Extension.<\/p>\n<p>To get started you will need the following:<\/p>\n<blockquote>\n<p>1. Visual Studio Ultimate 2013 RC from <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=306566\"><font color=\"#0000ff\">here<\/font>.<\/a><u><font color=\"#0000ff\"><\/font><\/u><\/p>\n<p>2. VSSDK from <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=306566\"><font color=\"#0000ff\">here<\/font>.<\/a><u><font color=\"#0000ff\"><\/font><\/u><\/p>\n<p>3. The&#160; Visual Studio Template for Browser Link Extension from the VS Gallery. This is available <a href=\"http:\/\/visualstudiogallery.msdn.microsoft.com\/8375c840-ac95-4214-b4c7-9b976d7409ce\"><font color=\"#0000ff\">here<\/font><\/a><u><\/u><font color=\"#0000ff\">.<\/font><\/p>\n<\/blockquote>\n<p>Here is a step by step explanation of how to author a simple extension:<\/p>\n<p><strong>Step 1<\/strong>: Create a Browser Link Project by going to:<\/p>\n<p> File \u2013&gt;New Project -&gt;Visual C# \u2013&gt;Extensibility. Search for Browser Link Extension, select it and click the OK button.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/3678.image_thumb_7E1E2AC9.png\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/3678.image_thumb_7E1E2AC9.png\" width=\"642\" height=\"445\" \/><\/a> <\/p>\n<p><strong>Step 2:<\/strong> The project is created for you at this point. <\/p>\n<p><strong>Step 3<\/strong>: Open SimpleBrowserLinkProject.js under the scripts folder. Copy and paste the following. I have added a simple HelloWorld function that can be called from Visual Studio. <\/p>\n<div id=\"scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2c2519c4-9e9d-49f9-92fd-1df866d074db\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<div style=\"border: #000080 1px solid;color: #000;font-family: 'Courier New', Courier, Monospace;font-size: 10pt\">\n<div style=\"background: #000080;color: #fff;font-family: Verdana, Tahoma, Arial, sans-serif;font-weight: bold;padding: 2px 5px\">Code Snippet<\/div>\n<div style=\"background: #ddd;max-height: 300px;overflow: auto\">\n<ol start=\"1\" style=\"background: #ffffff;margin: 0 0 0 2.5em;padding: 0 0 0 5px\">\n<li><span style=\"background:#ffffff;color:#008000\">\/\/\/ &lt;reference path=&quot;..\/intellisense\/browserlink.intellisense.js&quot; \/&gt;<\/span><\/li>\n<li style=\"background: #f3f3f3\">&nbsp;<\/li>\n<li><span style=\"background:#ffffff;color:#000000\">(<\/span><span style=\"background:#ffffff;color:#0000ff\">function<\/span><span style=\"background:#ffffff;color:#000000\"> (browserLink, $) {<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#008000\">\/\/\/ &lt;param name=&quot;browserLink&quot; value=&quot;bl&quot; \/&gt;<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#008000\">\/\/\/ &lt;param name=&quot;$&quot; value=&quot;jQuery&quot; \/&gt;<\/span><\/li>\n<li style=\"background: #f3f3f3\">&nbsp;<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">function<\/span><span style=\"background:#ffffff;color:#000000\"> output(message) { <\/span><span style=\"background:#ffffff;color:#008000\">\/\/ Helper for the &#039;greeting&#039; function<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">alert(message);<\/span><\/li>\n<li>&nbsp;<\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">if<\/span><span style=\"background:#ffffff;color:#000000\"> (console) {<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">console.log(message);<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li style=\"background: #f3f3f3\">&nbsp;<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">return<\/span><span style=\"background:#ffffff;color:#000000\"> {<\/span><\/li>\n<li style=\"background: #f3f3f3\">&nbsp;<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">HelloWorld: <\/span><span style=\"background:#ffffff;color:#0000ff\">function<\/span><span style=\"background:#ffffff;color:#000000\">(message)<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">{<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">var<\/span><span style=\"background:#ffffff;color:#000000\"> topDiv = document.createElement(<\/span><span style=\"background:#ffffff;color:#a31515\">&quot;div&quot;<\/span><span style=\"background:#ffffff;color:#000000\">);<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">topDiv.id = <\/span><span style=\"background:#ffffff;color:#a31515\">&quot;SimpleDiv&quot;<\/span><span style=\"background:#ffffff;color:#000000\">;<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">var<\/span><span style=\"background:#ffffff;color:#000000\"> textElement = document.createTextNode(message);<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">topDiv.appendChild(textElement);<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">$(<\/span><span style=\"background:#ffffff;color:#a31515\">&quot;body&quot;<\/span><span style=\"background:#ffffff;color:#000000\">).prepend(topDiv);<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">,<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">name: <\/span><span style=\"background:#ffffff;color:#a31515\">&quot;SimpleBrowserLinkProject&quot;<\/span><span style=\"background:#ffffff;color:#000000\">,<\/span><\/li>\n<li>&nbsp;<\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">greeting: <\/span><span style=\"background:#ffffff;color:#0000ff\">function<\/span><span style=\"background:#ffffff;color:#000000\"> (message) { <\/span><span style=\"background:#ffffff;color:#008000\">\/\/ Can be called from the server-side extension<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">output(message);<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">},<\/span><\/li>\n<li>&nbsp;<\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">onInit: <\/span><span style=\"background:#ffffff;color:#0000ff\">function<\/span><span style=\"background:#ffffff;color:#000000\"> () { <\/span><span style=\"background:#ffffff;color:#008000\">\/\/ Optional. Is called when a connection is established<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">};<\/span><\/li>\n<li style=\"background: #f3f3f3\"><span style=\"background:#ffffff;color:#000000\">});<\/span><\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p><strong><\/strong><\/p>\n<p><strong>Step 4:<\/strong> Open SimpleBrowserLinkProject.cs and copy and paste the following under OnConnected. <\/p>\n<div id=\"scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fb88c751-198a-48a4-b6db-738988201ca0\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<div style=\"border: #000080 1px solid;color: #000;font-family: 'Courier New', Courier, Monospace;font-size: 10pt\">\n<div style=\"background: #000080;color: #fff;font-family: Verdana, Tahoma, Arial, sans-serif;font-weight: bold;padding: 2px 5px\">Code Snippet<\/div>\n<div style=\"background: #ddd;max-height: 300px;overflow: auto\">\n<ol start=\"1\" style=\"background: #ffffff;margin: 0 0 0 2em;padding: 0 0 0 5px\">\n<li><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">override<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">void<\/span><span style=\"background:#ffffff;color:#000000\"> OnConnected(<\/span><span style=\"background:#ffffff;color:#2b91af\">BrowserLinkConnection<\/span><span style=\"background:#ffffff;color:#000000\"> connection)<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">{<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">Clients.Call(connection,<\/span><span style=\"background:#ffffff;color:#a31515\">&quot;HelloWorld&quot;<\/span><span style=\"background:#ffffff;color:#000000\">, <\/span><span style=\"background:#ffffff;color:#a31515\">&quot;This is a simple Browser link extension!!&quot;<\/span><span style=\"background:#ffffff;color:#000000\">);<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p><strong>Step 5:<\/strong> Ctrl + F5 and this will open the experimental instance of Visual Studio. Now, Create a Web Application Project and View About.aspx in IE and Chrome. In each of these new connections, we are calling the javascript function \u201cHelloWorld\u201d which adds a div at the top of your page.&#160; <\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/1033.image_thumb_56E3E194.png\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/1033.image_thumb_56E3E194.png\" width=\"642\" height=\"463\" \/><\/a><\/p>\n<p>This is a simple extension which shows how VS can talk to all browsers.<\/p>\n<p><strong>Step 6:<\/strong>&#160; To talk from the browser to VS, make the following changes. Copy and paste this code into your OnInit function in SimpleBrowserLinkProject.js. <\/p>\n<div id=\"scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:cf8af1a2-5170-4b2a-8b8b-6af7de37e1b7\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<div style=\"border: #000080 1px solid;color: #000;font-family: 'Courier New', Courier, Monospace;font-size: 10pt\">\n<div style=\"background: #000080;color: #fff;font-family: Verdana, Tahoma, Arial, sans-serif;font-weight: bold;padding: 2px 5px\">Code Snippet<\/div>\n<div style=\"background: #ddd;max-height: 300px;overflow: auto\">\n<ol start=\"1\" style=\"background: #ffffff;margin: 0 0 0 2em;padding: 0 0 0 5px\">\n<li><span style=\"background:#ffffff;color:#000000\">onInit: <\/span><span style=\"background:#ffffff;color:#0000ff\">function<\/span><span style=\"background:#ffffff;color:#000000\"> () { <\/span><span style=\"background:#ffffff;color:#008000\">\/\/ Optional. Is called when a connection is established<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">browserLink.call(<\/span><span style=\"background:#ffffff;color:#a31515\">&quot;SendText&quot;<\/span><span style=\"background:#ffffff;color:#000000\">, <\/span><span style=\"background:#ffffff;color:#a31515\">&quot;Hello from JS to VS&quot;<\/span><span style=\"background:#ffffff;color:#000000\">)<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p><strong>Step 7<\/strong>: In your SimpleBrowserLinkProject.cs file you should have a SendText method which has a BrowserLinkCallBack Attribute. This attribute suggests that this can be called from JavaScript.<\/p>\n<div id=\"scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b0b8721c-b7cf-4748-b376-fb0a8ced4bb8\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<div style=\"border: #000080 1px solid;color: #000;font-family: 'Courier New', Courier, Monospace;font-size: 10pt\">\n<div style=\"background: #000080;color: #fff;font-family: Verdana, Tahoma, Arial, sans-serif;font-weight: bold;padding: 2px 5px\">Code Snippet<\/div>\n<div style=\"background: #ddd;max-height: 300px;overflow: auto\">\n<ol start=\"1\" style=\"background: #ffffff;margin: 0 0 0 2em;padding: 0 0 0 5px\">\n<li><span style=\"background:#ffffff;color:#000000\"> [<\/span><span style=\"background:#ffffff;color:#2b91af\">BrowserLinkCallback<\/span><span style=\"background:#ffffff;color:#000000\">] <\/span><span style=\"background:#ffffff;color:#008000\">\/\/ This method can be called from JavaScript<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">void<\/span><span style=\"background:#ffffff;color:#000000\"> SendText(<\/span><span style=\"background:#ffffff;color:#0000ff\">string<\/span><span style=\"background:#ffffff;color:#000000\"> message)<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">{<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#2b91af\">MessageBox<\/span><span style=\"background:#ffffff;color:#000000\">.Show(message);<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p><strong>Step 8:<\/strong> Ctrl + F5 and this will open the experimental instance of Visual Studio. Create a&#160; Web Application Project in your experimental instance and invoke Browse with multiple browsers. Now each of these will pop up a VS Message box as shown below.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/2526.image_thumb_7692BB5C.png\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/09\/2526.image_thumb_7692BB5C.png\" width=\"480\" height=\"482\" \/><\/a> <\/p>\n<\/p>\n<p>So that was a quick introduction to the new Browser Link feature in RC. <\/p>\n<p>You can look at Mad\u2019s <font color=\"#0000ff\">W<\/font><a href=\"http:\/\/vswebessentials.com\/\"><font color=\"#0000ff\">eb essentials for Visual Studio 2013<\/font><\/a><font color=\"#0000ff\"> (<\/font><a href=\"https:\/\/github.com\/madskristensen\/WebEssentials2013\/tree\/master\/EditorExtensions\/BrowserLink\"><font color=\"#0000ff\">source<\/font><\/a><font color=\"#0000ff\">)<\/font> for some cool Browser Link Extensions. Stay tuned for more posts around knowing your Browser Link APIs.<\/p>\n<p>Thanks,<\/p>\n<p>Reshmi Mangalore<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the last few months, the Browser Link team has worked on delivering these new features in the Visual Studio 2013 RC release: Browser Link Dashboard APIs for extension authoring For those who are not familiar with Browser Link, please look at our introductory blog here. Browser Link Dashboard The Browser Link Dashboard is a [&hellip;]<\/p>\n","protected":false},"author":432,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[7437,7350,7436],"class_list":["post-1344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","tag-browser-link","tag-reshmi-mangalore","tag-visual-studio-2013"],"acf":[],"blog_post_summary":"<p>Over the last few months, the Browser Link team has worked on delivering these new features in the Visual Studio 2013 RC release: Browser Link Dashboard APIs for extension authoring For those who are not familiar with Browser Link, please look at our introductory blog here. Browser Link Dashboard The Browser Link Dashboard is a [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/1344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/432"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=1344"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/1344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=1344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=1344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=1344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}