{"id":2063,"date":"2010-05-25T14:12:00","date_gmt":"2010-05-25T14:12:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/2010\/05\/25\/walkthrough-publishing-a-custom-web-control-part-1-of-2\/"},"modified":"2022-05-18T05:21:10","modified_gmt":"2022-05-18T12:21:10","slug":"walkthrough-publishing-a-custom-web-control-part-1-of-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/walkthrough-publishing-a-custom-web-control-part-1-of-2\/","title":{"rendered":"Walkthrough&#8211; Publishing a Custom Web Control (Part 1 of 2)"},"content":{"rendered":"<p>The Visual Studio 2010 SDK adds several project templates to Visual Studio that let you create and share custom controls. These are called extensibility projects. In addition to compiling the control, the extensibility project prepares it for publication by incorporating it into a VSIX extension. A VSIX control extension can be shared by publishing it to the Visual Studio gallery, or by sending it directly to interested developers.<\/p>\n<p>There is currently no extensibility web control project template in the Visual Studio SDK, but you can make your own by following the steps in this walkthrough. The walkthrough is divided into two parts:<\/p>\n<ul>\n<li>Creating and publishing a custom web control the manual way. <\/li>\n<li>Creating and publishing an extensibility web control project template. <\/li>\n<\/ul>\n<p>On completion of the second part, you will have an extensibility project template that makes creating and publishing a web control a straightforward process.<\/p>\n<p>In the first part of this walkthrough, you will learn to<\/p>\n<ul>\n<li>Create a custom web control. <\/li>\n<li>Test the web control in the Visual Studio experimental instance. <\/li>\n<li>Prepare the web control for publication. <\/li>\n<li>Publish the web control to the Visual Studio Gallery. <\/li>\n<li>Install the web control from the Visual Studio Gallery. <\/li>\n<li>Remove the web control from the Visual Studio Gallery. <\/li>\n<\/ul>\n<h4>Prerequisites<\/h4>\n<p>To follow this walkthrough, you must have a working knowledge of web controls, creating new projects, setting project properties, and using the Visual Studio experimental instance. You must have both Visual Studio 2010 and the Visual Studio 2010 SDK installed on your computer.<\/p>\n<h4>Creating and publishing your web control from scratch<\/h4>\n<p>To create and publish your custom web control when no project template is available, start with an existing extensibility control project and modify it to create an extensibility web control project. <\/p>\n<p>1. Open Visual Studio and create a new <strong>Visual C#\/Extensibility\/Windows Forms Toolbox Control<\/strong> project named MyWebControls. Check <strong>Create directory for solution<\/strong> before clicking OK.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/5556.clip_image002_thumb_43C18D88.jpg\"><img decoding=\"async\" height=\"184\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/5556.clip_image002_thumb_43C18D88.jpg\" alt=\"clip_image002\" border=\"0\" title=\"clip_image002\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>2. Add a new <strong>Visual C#\/ASP.NET Server Control<\/strong> project named Temp to the solution.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/4863.clip_image004_thumb_5314EF97.jpg\"><img decoding=\"async\" height=\"175\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/4863.clip_image004_thumb_5314EF97.jpg\" alt=\"clip_image004\" border=\"0\" title=\"clip_image004\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h5>Merging the project files.<\/h5>\n<p>1. Rename the file Temp\/ServerControl1.cs to Temp\/ColorTextControl.cs. <\/p>\n<p>2. Delete the file MyWebControls\/ToolboxControl.cs.<\/p>\n<p>3. Copy the file Temp\/ ColorTextControl.cs to the MyWebControls project.<\/p>\n<p>4. Remove the Temp project from the solution.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/8512.clip_image0024_thumb_31B549FB.jpg\"><img decoding=\"async\" height=\"163\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/8512.clip_image0024_thumb_31B549FB.jpg\" alt=\"clip_image002[4]\" border=\"0\" title=\"clip_image002[4]\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<h5>Merging the project references<\/h5>\n<p>1. Add the following references to the project:<\/p>\n<ul>\n<li>Microsoft.CSharp <\/li>\n<li>System.Data.DataSetExtensions <\/li>\n<li>System.Web <\/li>\n<li>System.Xml.Linq <\/li>\n<\/ul>\n<p>2. Remove the following references from the project:<\/p>\n<ul>\n<li>System.Data <\/li>\n<li>System.Windows.Forms <\/li>\n<li>System.Xml <\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/0272.clip_image0044_thumb_77C6070E.jpg\"><img decoding=\"async\" height=\"135\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/0272.clip_image0044_thumb_77C6070E.jpg\" alt=\"clip_image004[4]\" border=\"0\" title=\"clip_image004[4]\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<h5>Creating the web control<\/h5>\n<p>1. Open the file ColorTextControl.cs in the code editor.<\/p>\n<p>2. Change the namespace to MyWebControls.<\/p>\n<p>3. In the <b>ToolboxData<\/b> attribute, replace both occurrences of ServerControl1 with ColorTextControl.<\/p>\n<p>These values specify the opening and closing tags generated for the control when it is dragged from the Toolbox into a web page at design time. They must match the name of the control class, which is also the name of the control that will appear in the toolbox. <\/p>\n<p>4. Add a <b>ProvideToolBoxControl<\/b> attribute to the control class. <br \/>The first argument to this attribute is the name of the assembly, which is the same as the namespace when the project is generated. The color text control will appear in a category in the toolbox with this name.<\/p>\n<p>The start of the control class source code now looks like this:<\/p>\n<pre class=\"code\"><span style=\"color: blue\">namespace <\/span>MyWebControls\r\n{\r\n    [<span style=\"color: #2b91af\">DefaultProperty<\/span>(<span style=\"color: #a31515\">\"Text\"<\/span>)]\r\n    [<span style=\"color: #2b91af\">ToolboxData<\/span>(<span style=\"color: #a31515\">\"&lt;{0}:ColorTextControl runat=server&gt;&lt;\/{0}:ColorTextControl&gt;\"<\/span>)]\r\n    [<span style=\"color: #2b91af\">ProvideToolboxControl<\/span>(<span style=\"color: #a31515\">\"MyWebControls\"<\/span>, <span style=\"color: blue\">false<\/span>)]\r\n    <span style=\"color: blue\">public class <\/span><span style=\"color: #2b91af\">ColorTextControl <\/span>: <span style=\"color: #2b91af\">WebControl\r\n    <\/span>{<\/pre>\n<p>5. Replace the <b>get<\/b> method of the default <b>Text<\/b> property with this code:<\/p>\n<pre class=\"code\"><span style=\"color: blue\">get\r\n<\/span>{\r\n    <span style=\"color: #2b91af\">String <\/span>s = (<span style=\"color: #2b91af\">String<\/span>)ViewState[<span style=\"color: #a31515\">\"Text\"<\/span>];\r\n    <span style=\"color: blue\">return <\/span><span style=\"color: #a31515\">\"&lt;span style='color:green'&gt;' <\/span>+ s + <span style=\"color: #a31515\">\"&lt;\/span&gt;\"<\/span>;\r\n}<\/pre>\n<p>This surrounds the text with a span tag that colors it green.<\/p>\n<p>6. Open the file Properties\/AssemblyInfo.cs in the code editor.<\/p>\n<p>7. Replace the <b>AssemblyVersion<\/b> Revision number with the &ldquo;*&rdquo; character.<\/p>\n<pre class=\"code\">[<span style=\"color: blue\">assembly<\/span>: <span style=\"color: #2b91af\">AssemblyVersion<\/span>(<span style=\"color: #a31515\">\"1.0.0.*\"<\/span>)]<\/pre>\n<p><a href=\"http:\/\/11011.net\/software\/vspaste\"><\/a><\/p>\n<p>Custom toolbox controls are cached and refreshed only when the assembly signature changes. By incrementing the assembly revision number with each build, the cache is always refreshed.<\/p>\n<h4>Testing your web control<\/h4>\n<p>Before publishing your web control, test it out in an experimental instance of Visual Studio.<\/p>\n<p>1. Press F5 to launch an experimental instance of Visual Studio.<\/p>\n<p>2. From the <b>Tools<\/b> menu, select the <b>Extension Manager<\/b>. The MyWebControls extension appears and is enabled.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/1273.clip_image006_thumb_093667E7.jpg\"><img decoding=\"async\" height=\"56\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/1273.clip_image006_thumb_093667E7.jpg\" alt=\"clip_image006\" border=\"0\" title=\"clip_image006\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>3. Close the <b>Extension Manager<\/b>.<\/p>\n<p>4. Create a new ASP.NET web application project.<\/p>\n<p>5. Open default.aspx in <b>Source<\/b> mode.<\/p>\n<p>6. Open the toolbox. You should see ColorTextControl in the category MyWebControls.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/2350.clip_image008_thumb_169C7AED.jpg\"><img decoding=\"async\" height=\"180\" width=\"153\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/2350.clip_image008_thumb_169C7AED.jpg\" alt=\"clip_image008\" border=\"0\" title=\"clip_image008\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>7. Drag a ColorTextControl to the body of the web page.<\/p>\n<p>8. Add a <b>Text<\/b> attribute with the value <i>Think Green!<\/i> to the ColorTextControl tag. The resulting tag should look like this:<\/p>\n<pre class=\"code\"><span style=\"color: blue\">&lt;<\/span><span style=\"color: maroon\">cc1<\/span><span style=\"color: blue\">:<\/span><span style=\"color: maroon\">ColorTextControl <\/span><span style=\"color: red\">ID<\/span><span style=\"color: blue\">=\"ColorTextControl1\" <\/span><span style=\"color: red\">Text<\/span><span style=\"color: blue\">=\"Think Green!\" <\/span><span style=\"color: red\">runat<\/span><span style=\"color: blue\">=\"server\" \/&gt;<\/span><\/pre>\n<p>9. Press F5 to launch the ASP.NET Development Server. <\/p>\n<p>The ColorTextControl should render something like this:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/2766.clip_image010_thumb_6E89CBCD.jpg\"><img decoding=\"async\" height=\"65\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/2766.clip_image010_thumb_6E89CBCD.jpg\" alt=\"clip_image010\" border=\"0\" title=\"clip_image010\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>10. Close the ASP.NET Development Server. <\/p>\n<p>11. Close the experimental instance of Visual Studio.<\/p>\n<h4>Preparing your web control for publication<\/h4>\n<p>Before you can publish your control to the Visual Studio Gallery, you need an icon and a screen shot. The icon you supply appears next to the extension in the Extension Manager.<\/p>\n<p>1. If you have an icon image file, add it to your project as an existing item. Otherwise, add a new image file to your project and edit the image to represent the control. In this walkthrough, we use an icon called Color.bmp, which shows the Color letter &ldquo;A&rdquo; on a yellow field.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/5086.clip_image012_thumb_4E028C1B.jpg\"><img decoding=\"async\" height=\"70\" width=\"71\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/5086.clip_image012_thumb_4E028C1B.jpg\" alt=\"clip_image012\" border=\"0\" title=\"clip_image012\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>2. If you have a screenshot image file, add it to your project as an existing item. Otherwise, create a screenshot image file and add it to your project. In this walkthrough, we use a screen shot called ScreenShot.bmp, which shows the control as it appears in a web page.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/1373.clip_image014_thumb_65B9C381.jpg\"><img decoding=\"async\" height=\"167\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/1373.clip_image014_thumb_65B9C381.jpg\" alt=\"clip_image014\" border=\"0\" title=\"clip_image014\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>3. Open the file source.extension.vsixmanifest for editing.<\/p>\n<p>4. Change the <b>Description<\/b> to <i>Color Text Web Control<\/i>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/5315.clip_image016_thumb_453283CF.jpg\"><img decoding=\"async\" height=\"24\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/5315.clip_image016_thumb_453283CF.jpg\" alt=\"clip_image016\" border=\"0\" title=\"clip_image016\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>5. Set the <b>Icon<\/b> to <i>Color.bmp<\/i> and the <b>Preview Image<\/b> to <i>ScreenShot.bmp<\/i>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/2671.clip_image018_thumb_7247709D.jpg\"><img decoding=\"async\" height=\"51\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/2671.clip_image018_thumb_7247709D.jpg\" alt=\"clip_image018\" border=\"0\" title=\"clip_image018\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>6. Change the Author, Version, and so forth, as desired.<\/p>\n<p>7. Save and close the manifest file, then rebuild the project as a <b>Release<\/b> build. Publishing your web control<\/p>\n<h5>Publishing your web control<\/h5>\n<p>You are now ready to publish your web control to the Visual Studio gallery.<\/p>\n<p>1. Launch your web browser and navigate to <a href=\"http:\/\/visualstudiogallery.msdn.microsoft.com\">http:\/\/visualstudiogallery.msdn.microsoft.com<\/a>.<\/p>\n<p>2. Click the <b>sign in<\/b> link in the upper right-hand corner.<\/p>\n<p>3. Sign in with your Windows Live ID. If you don&rsquo;t have one, you can create one here.<\/p>\n<p>4. Click the <b>Upload<\/b> button in the upper right-hand corner.<\/p>\n<p>5. In <b>Step 1:<\/b> <b>Extension Type<\/b>, select <b>Control<\/b>, then click Next.<\/p>\n<p>6. In <b>Step 2: Upload<\/b>, select <b>I would like to upload my control<\/b>. The <b>Select your control<\/b> text box appears.<\/p>\n<p>7. Click the <b>Browse<\/b> button and select the MyWebControls.vsix file located in the project bin\/Release folder. Click Next.<\/p>\n<p>8. In <b>Step 3:<\/b> <b>Basic Information<\/b>, you see the information you entered into the manifest editor. The description you entered appears in the <b>Summary<\/b> field.<\/p>\n<p>9. Set the <b>Category<\/b> to <i>ASP.NET<\/i> and the <b>Tags<\/b> to <i>toolbox, web control<\/i>. You can enter a more detailed description at this time.<\/p>\n<p>10. Read and agree to the <b>Contribution Agreement<\/b>, then type the text image into the text box. <\/p>\n<p>11. Click <b>Create Contribution<\/b>. A warning appears that <b>This page has not yet been published<\/b>.<\/p>\n<p>12. Click <b>Publish<\/b>.<\/p>\n<p>13. Search the Visual Studio Gallery for MyWebControls. The MyWebControls extension listing appears.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/8623.clip_image020_thumb_716F0AB3.jpg\"><img decoding=\"async\" height=\"104\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/8623.clip_image020_thumb_716F0AB3.jpg\" alt=\"clip_image020\" border=\"0\" title=\"clip_image020\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<h4>Installing your web control<\/h4>\n<p>Now that your web control is published, install it in Visual Studio and test it there.<\/p>\n<p>1. Return to Visual Studio.<\/p>\n<p>2. From the <b>Tools<\/b> menu, select <b>Extension Manager<\/b>.<\/p>\n<p>3. Click <b>Online Gallery<\/b>, then search for <i>MyWebControls<\/i>. The MyWebControls extension listing appears.<\/p>\n<p>4. Click the <b>Download<\/b> button. After the extension downloads, click the <b>Install<\/b> button.&nbsp; Your web control is now installed in Visual Studio.<\/p>\n<p>6. Create a new ASP.NET web application project.<\/p>\n<p>7. Open default.aspx in <b>Source<\/b> mode.<\/p>\n<p>8. Open the toolbox. You should see ColorTextControl in the category MyWebControls.<\/p>\n<h4>Removing your control from the Visual Studio Gallery<\/h4>\n<p>In the next part of this walkthrough, you will create your web control from a project template. In preparation, delete your web control.<\/p>\n<p>1. Return to your web browser.<\/p>\n<p>2. Click the <b>My Contributions<\/b> link in the upper left-hand corner. The MyWebControls listing appears.<\/p>\n<p>3. Click <b>Delete<\/b> to remove your web control until you upload it again.<\/p>\n<p>4. Return to Visual Studio.<\/p>\n<p>5. From the <b>Tools<\/b> menu, select <b>Extension Manager<\/b>.<\/p>\n<p>6. Select MyWebControls, then click <b>Uninstall<\/b>.<\/p>\n<p>7. Restart Visual Studio to complete the uninstall process. <\/p>\n<p>This is the end of part one of this walkthrough. Part two shows you how to create and publish an extensibility web control project template based on the web control project you created above. To continue, please see <b><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/walkthrough-publishing-an-extensibility-web-control-project-template-part-2-of-2\/\">Walkthrough&#8211; Publishing an Extensibility Web Control Project Template (Part 2 of 2)<\/a><\/b>.<\/p>\n<p><span><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/1373.REDMOND_martintr_MThumb_thumb_05F45A32.jpg\"><img decoding=\"async\" height=\"100\" width=\"76\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/05\/1373.REDMOND_martintr_MThumb_thumb_05F45A32.jpg\" alt=\"Martin Tracy\" border=\"0\" title=\"Martin Tracy photo\" style=\"padding-bottom: 4px;border-right-width: 0px;padding-left: 4px;padding-right: 4px;float: left;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 4px\" \/><\/a><strong>Short Bio:<\/strong> Martin Tracy is a senior programmer writer for the Visual Studio Project and Build team. As part of VS 2010, he has documented numerous features of the MSBuild system and Visual Studio platform. His long term focus is on developing infrastructure to support richly featured web applications. Martin has a long career in real-time software development, from artificial hearts and smart prosthetics to adaptive aeronautic controls. Martin holds a Masters degree in Dance Ethnology from the University of California, Los Angeles (UCLA), and a Bachelors degree in Asian Culture from Brown University, Rhode Island. He lives in Snohomish, WA with his extended family and loves to play accordion and watch anime in his spare time.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Visual Studio 2010 SDK adds several project templates to Visual Studio that let you create and share custom controls. These are called extensibility projects. In addition to compiling the control, the extensibility project prepares it for publication by incorporating it into a VSIX extension. A VSIX control extension can be shared by publishing it [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1029],"tags":[85,5,294,13],"class_list":["post-2063","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","tag-asp-net","tag-csharp","tag-extensions","tag-visual-studio-2010"],"acf":[],"blog_post_summary":"<p>The Visual Studio 2010 SDK adds several project templates to Visual Studio that let you create and share custom controls. These are called extensibility projects. In addition to compiling the control, the extensibility project prepares it for publication by incorporating it into a VSIX extension. A VSIX control extension can be shared by publishing it [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/2063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=2063"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/2063\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=2063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=2063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=2063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}