CINXE.COM

Visual Studio Pricing: Compare Subscription Plans & Costs

<!DOCTYPE html> <html class="avada-html-layout-wide avada-html-header-position-top" lang="en-US" > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!--- Fav icon for Edge ----> <script> var newrelic_browser_appID = '926586826'; var newrelic_browser_agent_id = '926586826'; </script> <title> Visual Studio Pricing: Compare Subscription Plans & Costs</title> <meta name="description" content="Professional developer tools subscription & licenses. See our Visual Studio Professional, Enterprise, Test Professional, & MSDN Platforms pricing today." /> <meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1"/> <link rel="canonical" href="https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Visual Studio Pricing: Compare Subscription Plans & Costs" /> <meta property="og:description" content="Professional developer tools subscription & licenses. See our Visual Studio Professional, Enterprise, Test Professional, & MSDN Platforms pricing today." /> <meta property="og:url" content="https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions" /> <meta property="og:site_name" content="Visual Studio" /> <meta property="og:image" content="https://visualstudio.microsoft.com/wp-content/uploads/2025/03/vscom-share-image.jpg" /> <meta property="og:image:width" content="800" /> <meta property="og:image:height" content="450" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:description" content="Professional developer tools subscription & licenses. See our Visual Studio Professional, Enterprise, Test Professional, & MSDN Platforms pricing today." /> <meta name="twitter:title" content="Visual Studio Pricing: Compare Subscription Plans & Costs" /> <meta name="twitter:image" content="https://visualstudio.microsoft.com/wp-content/uploads/2025/03/vscom-share-image.jpg" /> <script type="application/ld+json"> {"@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "@id": "https://visualstudio.microsoft.com/#website", "url": "https://visualstudio.microsoft.com/", "name": "Visual Studio", "description": "Any Developer, Any App, Any Platform", "potentialAction": { "@type": "SearchAction", "target": "https://visualstudio.microsoft.com/?s={search_term_string}", "query-input": "required name=search_term_string" } }, { "@type": "ImageObject", "@id": "https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions#primaryimage", "url": "https://visualstudio.microsoft.com/wp-content/uploads/2025/03/vscom-share-image.jpg", "width": 1200, "height": 628 }, { "@type": "WebPage", "@id": "https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions#webpage", "url": "https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions", "inLanguage": "en_US", "name": "Visual Studio Pricing: Compare Subscription Plans & Costs", "isPartOf": { "@id": "http://localhost/#website" }, "primaryImageOfPage": { "@id": "https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions '#primaryimage" }, "datePublished": "2019-08-06T14:46:48+00:00", "dateModified": "2025-03-12T15:27:12+00:00", "description": "Professional developer tools subscription & licenses. See our Visual Studio Professional, Enterprise, Test Professional, & MSDN Platforms pricing today." } ] } </script><meta name='robots' content='max-image-preview:large' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel="alternate" type="application/rss+xml" title="Visual Studio &raquo; Feed" href="https://visualstudio.microsoft.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Visual Studio &raquo; Comments Feed" href="https://visualstudio.microsoft.com/comments/feed/" /> <link rel="shortcut icon" href="https://visualstudio.microsoft.com/wp-content/uploads/2017/02/Microsoft-favicon.png" type="image/x-icon" /> <!-- Apple Touch Icon --> <link rel="apple-touch-icon" sizes="180x180" href="https://visualstudio.microsoft.com/wp-content/uploads/2022/05/Microsoft-180.png"> <!-- Android Icon --> <link rel="icon" sizes="192x192" href="https://visualstudio.microsoft.com/wp-content/uploads/2022/05/Microsoft-120.png"> <!-- MS Edge Icon --> <meta name="msapplication-TileImage" content="https://visualstudio.microsoft.com/wp-content/uploads/2022/05/Microsoft-152.png"> <link rel='stylesheet' id='vscom-swimlane-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-swimlane.css?ver=6.7.2' type='text/css' media='all' /> <style id='safe-svg-svg-icon-style-inline-css' type='text/css'> .safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%} </style> <style id='pdfemb-pdf-embedder-viewer-style-inline-css' type='text/css'> .wp-block-pdfemb-pdf-embedder-viewer{max-width:none} </style> <link rel='stylesheet' id='microsoft-uhf-css' href='https://visualstudio.microsoft.com/wp-content/plugins/microsoft-uhf/assets/microsoft-uhf.css?ver=2.3' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-subsup-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-core/assets/css/vscom-subsup.min.css?ver=1667498184' type='text/css' media='1' /> <link rel='stylesheet' id='ajax-filter-styles-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-whatsnew/css/style.css' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-video-player-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-video-player.min.css?ver=1667498194' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-feature-hero-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-feature-hero.min.css?ver=1681237298' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-builder-tabs-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-builder-tabs.min.css?ver=1735582150' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-single-box-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-single-box.min.css?ver=1681924015' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-icon-cloud-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-icon-cloud.min.css?ver=1670949096' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-collage-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-collage.min.css?ver=1670949096' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-extension-cards-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-extension-cards.min.css?ver=1740079183' type='text/css' media='all' /> <link rel='stylesheet' id='vscom_video_carousel-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-video-carousel.min.css?ver=1736452972' type='text/css' media='all' /> <link rel='stylesheet' id='fabric-icons-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fabric-icon-manager//assets/css/vscom-icons.css?ver=1660768558' type='text/css' media='all' /> <link rel='stylesheet' id='fusion-dynamic-css-css' href='https://visualstudio.microsoft.com/wp-content/uploads/fusion-styles/d4ab4399f0e849daef67a35380aff1aa.min.css?ver=3.11.14' type='text/css' media='all' /> <link rel='stylesheet' id='avada-fullwidth-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/fullwidth-md.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='avada-fullwidth-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/fullwidth-sm.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='avada-image-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/image-md.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='avada-image-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/image-sm.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='avada-section-separator-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/section-separator-md.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='avada-section-separator-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/section-separator-sm.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='avada-tabs-lg-min-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/tabs-lg-min.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 640px)' /> <link rel='stylesheet' id='avada-tabs-lg-max-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/tabs-lg-max.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='avada-tabs-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/tabs-md.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='avada-tabs-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/tabs-sm.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='awb-title-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/title-md.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='awb-title-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/title-sm.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='awb-meta-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/meta-md.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='awb-meta-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/meta-sm.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='awb-layout-colums-md-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/layout-columns-md.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 1084px)' /> <link rel='stylesheet' id='awb-layout-colums-sm-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/layout-columns-sm.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='avada-max-1c-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-1c.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 644px)' /> <link rel='stylesheet' id='avada-max-2c-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-2c.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 735px)' /> <link rel='stylesheet' id='avada-min-2c-max-3c-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-2c-max-3c.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 735px) and (max-width: 826px)' /> <link rel='stylesheet' id='avada-min-3c-max-4c-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-3c-max-4c.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 826px) and (max-width: 917px)' /> <link rel='stylesheet' id='avada-min-4c-max-5c-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-4c-max-5c.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 917px) and (max-width: 1008px)' /> <link rel='stylesheet' id='avada-min-5c-max-6c-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-5c-max-6c.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 1008px) and (max-width: 1099px)' /> <link rel='stylesheet' id='avada-min-shbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-shbp.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 301px)' /> <link rel='stylesheet' id='avada-min-shbp-header-legacy-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-shbp-header-legacy.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 301px)' /> <link rel='stylesheet' id='avada-max-shbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-shbp.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 300px)' /> <link rel='stylesheet' id='avada-max-shbp-header-legacy-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-shbp-header-legacy.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 300px)' /> <link rel='stylesheet' id='avada-max-sh-shbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-sh-shbp.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 300px)' /> <link rel='stylesheet' id='avada-max-sh-shbp-header-legacy-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-sh-shbp-header-legacy.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 300px)' /> <link rel='stylesheet' id='avada-min-768-max-1024-p-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-768-max-1024-p.min.css?ver=7.11.14' type='text/css' media='only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait)' /> <link rel='stylesheet' id='avada-min-768-max-1024-p-header-legacy-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-768-max-1024-p-header-legacy.min.css?ver=7.11.14' type='text/css' media='only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait)' /> <link rel='stylesheet' id='avada-min-768-max-1024-l-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-768-max-1024-l.min.css?ver=7.11.14' type='text/css' media='only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape)' /> <link rel='stylesheet' id='avada-min-768-max-1024-l-header-legacy-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-768-max-1024-l-header-legacy.min.css?ver=7.11.14' type='text/css' media='only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape)' /> <link rel='stylesheet' id='avada-max-sh-cbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-sh-cbp.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 800px)' /> <link rel='stylesheet' id='avada-max-sh-sbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-sh-sbp.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 800px)' /> <link rel='stylesheet' id='avada-max-sh-640-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-sh-640.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 640px)' /> <link rel='stylesheet' id='avada-max-shbp-18-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-shbp-18.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 282px)' /> <link rel='stylesheet' id='avada-max-shbp-32-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-shbp-32.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 268px)' /> <link rel='stylesheet' id='avada-min-sh-cbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/min-sh-cbp.min.css?ver=7.11.14' type='text/css' media='only screen and (min-width: 800px)' /> <link rel='stylesheet' id='avada-max-640-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-640.min.css?ver=7.11.14' type='text/css' media='only screen and (max-device-width: 640px)' /> <link rel='stylesheet' id='avada-max-main-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-main.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 1099px)' /> <link rel='stylesheet' id='avada-max-cbp-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-cbp.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 800px)' /> <link rel='stylesheet' id='avada-max-sh-cbp-social-sharing-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/css/media/max-sh-cbp-social-sharing.min.css?ver=7.11.14' type='text/css' media='only screen and (max-width: 800px)' /> <link rel='stylesheet' id='fb-max-sh-cbp-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/max-sh-cbp.min.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 800px)' /> <link rel='stylesheet' id='fb-min-768-max-1024-p-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/min-768-max-1024-p.min.css?ver=3.11.14' type='text/css' media='only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait)' /> <link rel='stylesheet' id='fb-max-640-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/max-640.min.css?ver=3.11.14' type='text/css' media='only screen and (max-device-width: 640px)' /> <link rel='stylesheet' id='fb-max-1c-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/max-1c.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 644px)' /> <link rel='stylesheet' id='fb-max-2c-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/max-2c.css?ver=3.11.14' type='text/css' media='only screen and (max-width: 735px)' /> <link rel='stylesheet' id='fb-min-2c-max-3c-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/min-2c-max-3c.css?ver=3.11.14' type='text/css' media='only screen and (min-width: 735px) and (max-width: 826px)' /> <link rel='stylesheet' id='fb-min-3c-max-4c-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/min-3c-max-4c.css?ver=3.11.14' type='text/css' media='only screen and (min-width: 826px) and (max-width: 917px)' /> <link rel='stylesheet' id='fb-min-4c-max-5c-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/min-4c-max-5c.css?ver=3.11.14' type='text/css' media='only screen and (min-width: 917px) and (max-width: 1008px)' /> <link rel='stylesheet' id='fb-min-5c-max-6c-css' href='https://visualstudio.microsoft.com/wp-content/plugins/fusion-builder/assets/css/media/min-5c-max-6c.css?ver=3.11.14' type='text/css' media='only screen and (min-width: 1008px) and (max-width: 1099px)' /> <link rel='stylesheet' id='avada-child-stylesheet-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/modern-styles.min.css?1741896686' type='text/css' media='all' /> <link rel='stylesheet' id='style-vscom-dist-min-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-asset-minification/assets/css/vscom-dist.min.css?1724260366' type='text/css' media='all' /> <link rel='stylesheet' id='style-en-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-asset-minification/assets/css/en.min.css?1667498184' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-pricing-temp-style-css' href='https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/assets/css/temp/pricing.min.css?1736452972' type='text/css' media='all' /> <meta name="ms.locale_id" content="42693" /> <meta name="ms.locale_slug" content="pricing" /> <script type="text/javascript"> // document.onReady document.addEventListener("DOMContentLoaded", function(event) { var locale_slug = "pricing"; var locale_id = "42693"; }); </script><script type="text/javascript" src="https://visualstudio.microsoft.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-utility-plugin/js/utility.min.js?ver=1675795484" id="vscom_common_js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/vscom-icon-cloud.min.js?ver=1670949097" id="vscom-icon-cloud-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/vscom-collage.min.js?ver=1670949097" id="vscom-collage-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/assets/js/liveperson-chat.min.js?ver=1675963769" id="vscom-liveperson-chat-js"></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://visualstudio.microsoft.com/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://visualstudio.microsoft.com/?p=42693' /> <script type="text/javascript"> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1; t.src="https://www.clarity.ms/tag/"+i+"?ref=wordpress";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "jmjgcz3l72"); </script> <link rel="stylesheet" href="https://www.microsoft.com/onerfstatics/marketingsites-wcus-prod/west-european/shell/_scrf/css/themes=default.device=uplevel_web_pc/60-6a98d7/c9-be0100/a6-e969ef/43-9f2e7c/82-8b5456/a0-5d3913/84-6d4f33/ae-f1ac0c?ver=2.0&amp;_cf=02242021_3231" type="text/css" media="all" /><meta name="ms.shortidmsdn" content="page-42693" /> <meta name="ms.lang" content="en" /> <meta name="ms.loc" content="US" /> <meta name="Ms.Locale" content="en_US" /> <link rel="alternate" hreflang="cs" href="https://visualstudio.microsoft.com/cs/vs/pricing/" /><link rel="alternate" hreflang="de" href="https://visualstudio.microsoft.com/de/vs/pricing/" /><link rel="alternate" hreflang="en" href="https://visualstudio.microsoft.com/vs/pricing/" /><link rel="alternate" hreflang="es" href="https://visualstudio.microsoft.com/es/vs/pricing/" /><link rel="alternate" hreflang="fr" href="https://visualstudio.microsoft.com/fr/vs/pricing/" /><link rel="alternate" hreflang="it" href="https://visualstudio.microsoft.com/it/vs/pricing/" /><link rel="alternate" hreflang="ja" href="https://visualstudio.microsoft.com/ja/vs/pricing/" /><link rel="alternate" hreflang="ko" href="https://visualstudio.microsoft.com/ko/vs/pricing/" /><link rel="alternate" hreflang="pl" href="https://visualstudio.microsoft.com/pl/vs/pricing/" /><link rel="alternate" hreflang="pt-br" href="https://visualstudio.microsoft.com/pt-br/vs/pricing/" /><link rel="alternate" hreflang="ru" href="https://visualstudio.microsoft.com/ru/vs/pricing/" /><link rel="alternate" hreflang="tr" href="https://visualstudio.microsoft.com/tr/vs/pricing/" /><link rel="alternate" hreflang="zh-hans" href="https://visualstudio.microsoft.com/zh-hans/vs/pricing/" /><link rel="alternate" hreflang="zh-hant" href="https://visualstudio.microsoft.com/zh-hant/vs/pricing/" /><script> var img_placeholder = 'https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/assets/img/vscom-img-placeholder.png'; </script><style type="text/css" id="css-fb-visibility">@media screen and (max-width: 640px){.fusion-no-small-visibility{display:none !important;}body .sm-text-align-center{text-align:center !important;}body .sm-text-align-left{text-align:left !important;}body .sm-text-align-right{text-align:right !important;}body .sm-flex-align-center{justify-content:center !important;}body .sm-flex-align-flex-start{justify-content:flex-start !important;}body .sm-flex-align-flex-end{justify-content:flex-end !important;}body .sm-mx-auto{margin-left:auto !important;margin-right:auto !important;}body .sm-ml-auto{margin-left:auto !important;}body .sm-mr-auto{margin-right:auto !important;}body .fusion-absolute-position-small{position:absolute;top:auto;width:100%;}.awb-sticky.awb-sticky-small{ position: sticky; top: var(--awb-sticky-offset,0); }}@media screen and (min-width: 641px) and (max-width: 1084px){.fusion-no-medium-visibility{display:none !important;}body .md-text-align-center{text-align:center !important;}body .md-text-align-left{text-align:left !important;}body .md-text-align-right{text-align:right !important;}body .md-flex-align-center{justify-content:center !important;}body .md-flex-align-flex-start{justify-content:flex-start !important;}body .md-flex-align-flex-end{justify-content:flex-end !important;}body .md-mx-auto{margin-left:auto !important;margin-right:auto !important;}body .md-ml-auto{margin-left:auto !important;}body .md-mr-auto{margin-right:auto !important;}body .fusion-absolute-position-medium{position:absolute;top:auto;width:100%;}.awb-sticky.awb-sticky-medium{ position: sticky; top: var(--awb-sticky-offset,0); }}@media screen and (min-width: 1085px){.fusion-no-large-visibility{display:none !important;}body .lg-text-align-center{text-align:center !important;}body .lg-text-align-left{text-align:left !important;}body .lg-text-align-right{text-align:right !important;}body .lg-flex-align-center{justify-content:center !important;}body .lg-flex-align-flex-start{justify-content:flex-start !important;}body .lg-flex-align-flex-end{justify-content:flex-end !important;}body .lg-mx-auto{margin-left:auto !important;margin-right:auto !important;}body .lg-ml-auto{margin-left:auto !important;}body .lg-mr-auto{margin-right:auto !important;}body .fusion-absolute-position-large{position:absolute;top:auto;width:100%;}.awb-sticky.awb-sticky-large{ position: sticky; top: var(--awb-sticky-offset,0); }}</style> <script type="text/javascript"> var doc = document.documentElement; doc.setAttribute( 'data-useragent', navigator.userAgent ); </script> <style type="text/css" id="fusion-builder-page-css">.vscom-tag.vscom-tag--standard { margin-bottom: 10px; } .post-content .vscom-btn-box { gap: 8px; } .pricing-hero.fusion-fullwidth { background-size: 180% 500% } .pricing-hero.fusion-fullwidth .fusion-title.fusion-title-center { max-width: 700px; margin: 0 auto !important; } #wrapper #main .post-content .pricing-hero h1 { font-family: Segoe UI; font-weight: 600; font-size: var(--fs-h2) !important; line-height: 57px !important; } #wrapper #main .post-content .fusion-fullwidth h2 { font-size: var(--fs-h3) !important; line-height: var(--lh-h3) !important; font-weight: var(--fw-semibold); } #wrapper #main .post-content .fusion-fullwidth h3, #wrapper #main .post-content .fusion-fullwidth h3 * { font-size: var(--fs-h5) !important; line-height: var(--lh-h5) !important; font-weight: var(--fw-semibold); } #wrapper #main .post-content .fusion-fullwidth h4 { font-size: var(--fs-body) !important; line-height: var(--lh-body) !important; font-weight: var(--fw-semibold); margin-bottom: 8px !important; } .pricing-hero .fusion-title, .h3-title .fusion-title { margin-top: 0 !important; } .pricing-hero .fusion-text p, .pricing-hero .fusion-text * { font-size: var(--fs-h6); } #main .post-content .pricing-hero-tabs .vscom-builder-tabs-container { margin-bottom: 0; } .sub-hero.fusion-fullwidth { background: linear-gradient(218.17deg, rgba(175, 148, 222, 0.25) 34.06%, rgba(102, 183, 237, 0.25) 137.42%); } /* Free tool Download cards */ .download-cards-lane .hero-grid-product { padding: 0 1.5rem; } .download-cards-lane .hero-grid-description { padding: 1.25rem 14.5rem 3rem 1.5rem; } .download-cards-lane .hero-grid-header { padding: 1.5rem 1.5rem 0 1.5rem; border-radius: 24px 24px 0 0; } .download-cards-lane .hero-grid-download { padding: 1.25rem 1.5rem 1.5rem 1.5rem; border-radius: 0 0 24px 24px; } .hero-grid-inner-wrap .vscom-grid-cell { box-shadow: 2px 2px 2px 1px #00000024; } #main .subscription-lane.fullwidth-box.fusion-fullwidth .fusion-row, .price-cards.vscom-grid-container, .vscom-grid-container.vol-cards { filter: drop-shadow(#00000024 2px 2px 2px); } .hero-grid-inner-wrap .left-card { background-attachment: fixed !important; background: #fff linear-gradient(42.78deg, rgba(140, 105, 215, 0.32) -17.5%, rgba(180, 175, 255, 0.4) 36.44%, rgba(211, 208, 255, 0.4) 100.05%); } .hero-grid-inner-wrap .right-card { background-attachment: fixed !important; background: #fff linear-gradient(34.4deg, rgba(35, 170, 242, 0.4) 15.75%, rgba(108, 240, 249, 0.4) 84.29%); } .vs-hero-block h3+p { margin-top: 0 !important; } .hero-grid-header img { width: 4rem; height: auto; margin: 20px; } .hero-grid-header i { margin-right: 0.75rem; } .hero-grid-product h3 { margin-bottom: 0.25rem; } .hero-grid-product .hero-grid-logos { margin-right: 0.5rem; display: inline-flex; align-items: center; min-height: 23px; } .hero-grid-product .hero-grid-logos img, .hero-grid-product .hero-grid-logos i { margin-right: 0.5rem; color: #000; } .hero-grid-product .hero-grid-logos1 { margin-left: 0.5rem; display: inline-flex; align-items: center; min-height: 23px; } .hero-grid-info { margin-top: 1.5rem; } .hero-grid-product .hero-grid-logos1 img, .hero-grid-product .hero-grid-logos1 i { margin-left: 0.5rem; color: #000; font-size: 0.9rem; } .download-cards-lane .hero-grid-product p, .download-cards-lane .hero-grid-description p, .download-cards-lane .hero-grid-header p { margin-bottom: 0; } .hero-grid-image img { width: 100%; height: auto; image-rendering: optimizeSpeed; /* STOP SMOOTHING, GIVE ME SPEED */ image-rendering: -moz-crisp-edges; /* Firefox */ image-rendering: -o-crisp-edges; /* Opera */ image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */ image-rendering: pixelated; /* Chrome */ image-rendering: optimize-contrast; /* CSS3 Proposed */ -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ } .hero-grid-header i { font-size: 1.25rem; line-height: 2rem; color: #666; margin-right: 0.75rem; } .hero-grid-product { line-height: 1; } #wrapper #main .hero-grid-item.hero-grid-info { line-height: 1; } #wrapper #main .hero-grid-item.hero-grid-info .vscom-hero-boxes-mini, #wrapper #main .hero-grid-item.hero-grid-info p, #wrapper #main .hero-grid-item.hero-grid-info .vscom-hero-boxes-mini a { font-size: 0.75rem !important; line-height: 1 !important; } .vs-hero-block { display: flex; align-items: center; } /*-media-*/ @media screen and (max-width: 1400px) { .download-cards-lane .hero-grid-description { padding: 1.25rem 1.5rem 3rem 1.5rem; } } @media screen and (max-width: 800px) { .hero-grid-inner-wrap { max-width: 30rem; margin: 0 auto; grid-row-gap: 20px; } .hero-grid-inner-wrap .hero-grid-download.left-card { margin-bottom: 20px; } } @media screen and (max-width: 400px) { .hero-grid-inner-wrap { max-width: 100%; } } /* price -cards */ .price-cards .vscom-grid-cell { background: var(--clr-white); padding: 12px 24px; } .price-cards .vscom-grid-cell.grid-top { border-top-left-radius: 24px; border-top-right-radius: 24px; padding: 24px 24px 12px 24px; } .price-cards .vscom-grid-cell.grid-cta { padding: 42px 24px 24px 24px; } .price-cards .vscom-grid-cell.grid-bottom { border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; padding: 0 24px 24px 24px; } .price-cards.monthly .vscom-grid-cell.grid-cta { border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; padding: 42px 24px 24px 24px; } .vscom-grid-cell ul { list-style-position: inside; } #wrapper #main .post-content .price { font-size: var(--fs-h2) !important; line-height: var(--lh-h2); font-weight: var(--fw-semibold); margin-right: 0.5rem; } .price-cards .vscom-grid-cell p { margin-bottom: 0; } .tab-title { position: absolute; top: 80px; } .pill-tab-col .vscom-link-wrapper { margin-top: 32px } /* products lane */ #main .products-lane .vscom-grid-cell * { font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); } .products-lane .vscom-tag.vscom-tag--standard { margin-top: 6px; } .products-lane .best-value-mobile { display: none; } .products-lane .vscom-grid-cell ul { margin-left: 1.25rem; list-style-position: outside; } /* sticky head */ @media (min-width: 1084px) and (max-width: 1780px) { .sticky-head .fusion-column-wrapper { max-width: calc(90vw - 24px) !important; margin-left: 5vw !important; } } .sticky-head .header-items { display: flex; text-align: left; width: 80%; margin-left: 20%; list-style: none; } .sticky-head .header-items li { width: 25%; padding-left: 16px; display: flex; flex-direction: column; justify-content: space-between; } #wrapper #main .post-content .sticky-head .header-items h4 { font-size: var(--fs-body) !important; line-height: var(--lh-body); } .sticky-head .header-items a { margin-top: 8px; } .sticky-head.fusion-layout-column { width: 100vw; margin-left: calc((-100vw + 100%) / 2) !important; margin-right: calc((-100vw + 100%) / 2) !important; box-shadow: 0px 4px 8px 0px #00000024, 0px 0px 2px 0px #0000001F; } @media (min-width: 1780px) { #main .sticky-head .fusion-column-wrapper { max-width: 1576px !important; margin-left: calc((100% - 1576px)/2) !important; } } .sticky-head.top .menu-top { height: 104px; display: block; background: 0 0; width: 100%; } .sticky-head { transition: all 0.5s ease-in-out; opacity: 0; visibility: hidden; max-height: 0; } .sticky-head.top { position: fixed; top: 0; left: 0; opacity: 1; z-index: 20; visibility: visible; max-height: none; background-color: var(--clr-white); } .sticky-head .menu-top { height: 0px; } .table-lane { position: relative; } .post-content a.black-link.table-header-link { font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); } .vol-lane { background: linear-gradient(180deg, #FBF7FF 0%, #E9E1F6 100%); } .vol-cards .vscom-grid-cell { background: var(--clr-white); } .vol-cards .vscom-grid-cell.top { border-top-left-radius: 24px; border-top-right-radius: 24px; padding: 8px; } .vol-cards .vscom-grid-cell.bottom { border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; padding: 0 24px 24px 24px; } .vol-cards .vscom-grid-cell img { border-radius: 16px; } .vol-cards .middle { padding: 24px; } .professional-lane .fusion-text, .professional-lane .fusion-text p, .professional-lane .fusion-text a { max-width: 480px; margin: 0 auto; } .professional-lane .fusion-text a { margin-top: 20px; } /* select options */ .select-lane .express-select-boxes-wrapper { display: grid; width: 100%; gap: 2rem; margin-top: 50px; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; } .post-content .express-select-box.express-select-box--flexbox { background: var(--clr-white); border-radius: 24px; padding: 24px; text-align: left; align-items: flex-start; text-align: left; min-height: 100%; box-shadow: 0px 2px 4px 0px #00000024; } .post-content .express-select-box.express-select-box--flexbox, .express-select-box .outer-box, .express-select-box .box-text, .express-select-box .price-text { display: flex; flex-direction: column; justify-content: space-between; } .express-select-box .outer-box { min-height: calc(100% - 91px); } .express-select-box.express-select-box--flexbox.active { outline: 2px var(--clr-violet-light) solid; outline-offset: 0; } #wrapper #main .post-content .select-lane h3 { font-size: var(--fs-h6) !important; line-height: var(--lh-h6) !important; font-weight: var(--fw-semibold); } .express-select-box .footer { min-height: 91px; } .express-select-box .footer p { margin-bottom: 0; } .express-select-box .footer p.footer-note { margin-top: 10px; } .express-select-box span.price-sm { display: block; font-size: var(--fs-body-sm); } .express-select-box span.footer-note, .express-select-box .price-link { font-size: var(--fs-body-sm); margin-left: 8px; } .express-select-box .vscom-link-wrapper { margin-bottom: 15px; } .express-select-box a.price-link { display: block; color: var(--clr-black); } .express-select-box .price-text { min-height: 145px; margin-bottom: 30px; } .express-select-box .price-wrapper { margin-bottom: 20px; } .subscription-lane .fusion-imageframe { z-index: 0; } .subscription-lane .text-col ul { position: relative; list-style: none; margin-left: 0; padding-left: 20px; margin-top: 20px; } .subscription-lane a.vscom-btn-secondary { margin-top: 20px; } .subscription-lane .text-col ul li { margin: 0 0 8px 8px; } .subscription-lane .text-col ul li:before { position: absolute; left: 0; display: flex; width: 20px; height: 20px; color: var(--clr-white); font-size: 14px; border-radius: 50%; background: var(--clr-violet-light); font-family: "VSCOMIcons"; margin-right: 10px; justify-content: center; margin-top: 5px; } #main .subscription-lane.fullwidth-box.fusion-fullwidth .fusion-row { margin: 0 auto !important; padding-left: 4.15% !important; padding-right: 4.15% !important; } #main .cloud-lane.fullwidth-box.fusion-fullwidth .fusion-row { margin: 0 auto !important; padding-left: 8.333% !important; padding-right: 8.333% !important; } .dev-lane .vscom-btn-box--center a { margin: 0 auto; } .dev-lane .fusion-title+.fusion-text, .professional-lane .fusion-title+.fusion-text{ margin-top: 1rem !important; } @media (min-width: 1084px) { .subscription-lane .fusion-layout-column.text-col { padding-right: 0 !important; width: 50%; } .subscription-lane .fusion-layout-column.img-col { padding-left: 0 !important; width: 50%; } } .subscription-lane .text-col .fusion-column-wrapper { padding: 24px; } .post-content .cloud-lane.fullwidth-box p { margin-bottom: 0; } .post-content .fusion-content-boxes .content-container { margin-top: 20px; } /* Media */ @media screen and (max-width: 1600px) { .sticky-head .sticky-content { margin-left: 0; } } @media screen and (max-width: 1400px) { #wrapper #main .post-content .pricing-hero h1 { font-size: 50px !important; line-height: 57px !important; } #wrapper #main .post-content .fusion-fullwidth h2 { font-size: var(--fs-h2) !important; line-height: var(--lh-h2) !important; } #wrapper #main .post-content .fusion-fullwidth h3, #wrapper #main .post-content .fusion-fullwidth h3 * { font-size: var(--fs-h3) !important; line-height: var(--lh-h3) !important; } #wrapper #main .post-content .fusion-fullwidth h4 { font-size: var(--fs-body) !important; line-height: var(--lh-body) !important; } .subscription-lane .fusion-imageframe { min-height: 100%; } .subscription-lane .fusion-imageframe img { height: 100% } #main .subscription-lane.fullwidth-box.fusion-fullwidth .fusion-row { padding-left: 0 !important; padding-right: 0 !important; } #main .cloud-lane.fullwidth-box.fusion-fullwidth .fusion-row { padding-left: 0 !important; padding-right: 0 !important; } } @media screen and (max-width: 1084px) { .fusion-content-boxes.fusion-content-boxes--equal-heights { flex-direction: row; } } @media screen and (max-width: 1083px) { .post-content .dev-lane-text p { margin-bottom: 1rem; } .products-lane .fusion-column-wrapper .vscom-grid-container { row-gap: 0; filter: drop-shadow(#00000024 2px 2px 2px); } .products-lane .vscom-grid-container .vscom-grid-cell { background: var(--clr-white); padding: 10px 12px; } .products-lane .grid-top { border-top-left-radius: 1rem; border-top-right-radius: 1rem; } .products-lane .grid-bottom { border-bottom-left-radius: 1rem; border-bottom-right-radius: 1rem; margin-bottom: 12px; } .products-lane .best-value-mobile { display: block; width: fit-content; } .products-lane .best-value-text { display: none; } #main .vscom-grid-container h2 { margin: 0 auto; } .select-lane .express-select-boxes-wrapper { grid-auto-flow: row; } .post-content .express-select-box.express-select-box--flexbox, .express-select-box .outer-box { min-height: auto; justify-content: flex-start; } .pricing-hero-tabs .fusion-layout-column:last-child { padding-top: 0; padding-bottom: 0; } .vol-lane .vscom-grid-cell.vscom-grid-cell--3.bottom { margin-bottom: 20px; } .sticky-head.top { display: none !important; opacity: 0 !important; } .vscom-onetoggletable tr { display: flex; flex-direction: column; } .vscom-onetoggletable tr th, .vscom-onetoggletable tr td { width: 100%; } .express-select-box .price-text { min-height: 90px; margin-bottom: 30px; } #main .fullwidth-box.fusion-fullwidth .fusion-row { max-width: calc(100% - 24px) !important; } .subscription-lane .fusion-layout-column { width: 50%; padding-top: 0; padding-bottom: 0; } .dev-lane.fullwidth-box { padding-top: 0; padding-bottom: 0; } #faq.fullwidth-box { padding-top: 0; } #wrapper #main .post-content .price { font-size: var(--fs-h1) !important; } } @media (max-width: 859px) { #wrapper #main .post-content .fullwidth-box.fusion-fullwidth .fusion-row { padding: 0 1rem !important; } } @media (max-width: 800px) { .subscription-lane .fusion-layout-column { width: 100%; } .subscription-lane .fusion-builder-row { flex-direction: column; flex-direction: column-reverse; } .subscription-lane .fusion-layout-column.img-col { padding-bottom: 0; margin-bottom: 0; } .subscription-lane .fusion-layout-column.text-col { padding-top: 0; margin-top: 0; } .subscription-lane .img-col .fusion-column-wrapper { border-top-left-radius: 24px; border-top-right-radius: 24px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .subscription-lane .text-col .fusion-column-wrapper { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; } .pricing-hero.fusion-fullwidth { background-size: 800%; padding-top: 20px; padding-bottom: 40px; } .tab-title { position: relative; top: 40px; } #main .tab-title h2 { text-align: center; } #main .cloud-lane.fullwidth-box.fusion-fullwidth .fusion-row { max-width: 100% !important; margin: 0 auto !important; } .title-tab { position: relative; top: 40px; } .pill-tab-col.fusion-layout-column { padding-top: 0; } .pill-tab-col .fusion-column-wrapper { padding-top: 20px; } .fusion-content-boxes.fusion-content-boxes--equal-heights { flex-direction: column; } } @media (max-width: 600px) { #main .fusion-fullwidth:not(.pricing-hero) { padding-top: 25px !important; padding-bottom: 25px !important; } #main .post-content .fusion-fullwidth.faq-title-lane { padding-bottom: 0 !important; } #main .post-content .fusion-fullwidth.faq-content-lane { padding-top: 0 !important; } h2 span { display: block; } .sub-hero a.vscom-btn-secondary { min-width: 100%; } .price-cards .vscom-grid-cell.grid-bottom, .price-cards.monthly .vscom-grid-cell.grid-cta { margin-bottom: 24px; } .price-cards .vscom-grid-cell.grid-cta { padding: 24px; } .price-cards .vscom-grid-cell { background: var(--clr-white); padding: 12px 24px; } .price-cards .vscom-grid-cell.grid-top { border-top-left-radius: 24px; border-top-right-radius: 24px; padding: 24px 24px 12px 24px; } .price-cards .vscom-grid-cell.grid-bottom { border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; padding: 12px 24px 24px 24px; } .subscription-lane a { min-width: 100%; margin-top: 20px; height: auto; } .products-lane a.vscom-btn-primary-sm, .express-select-boxes-wrapper .footer a, .express-select-boxes-wrapper .footer { width: 100%; } #wrapper #main .post-content .pricing-hero h1 { font-size: 24px !important; line-height: 32px !important; letter-spacing: -0.05em !important; } } @media (max-width: 380px) { .subscription-lane a { text-align: center; justify-content: center; flex-direction: column; } .vscom-onetoggletable .tooltip-showhide .info { min-width: 150px; max-width: 150px; } } /* FAQ Buildertab */ /*-------------------------------------------------------*/ .vscom-buildertabs.vscom-buildertabs--mobile { display: none !important; margin-left: 0; margin-right: 0; } .vscom-swimlane.vscom-swimlane--buildertab-container { padding: 0 !important; } .vscom-swimlane.vscom-swimlane--buildertab-container .fusion-layout-column { margin-top: 0 !important; margin-bottom: 0 !important; } .vscom-buildertabs-list { list-style: none; margin: 0; padding: 0 0 0 1rem; font-size: 0 !important; } .vscom-buildertabs-item { display: inline-block; margin-right: 0.5rem; } .vscom-buildertabs-button, .vscom-buildertabs-button-wrapper, .vscom-buildertabs-button-text, .vscom-buildertabs-button-count { line-height: 1.556; } .vscom-buildertabs-button { margin: 0 0.5rem 0 0; padding: 0.5rem 0.5rem 0.7rem 0.5rem; display: block; position: relative; } .vscom-buildertabs-button-wrapper { display: flex; flex-direction: row; position: relative; } .vscom-buildertabs-button-text, .vscom-buildertabs-button-count { margin: auto; /* center the text */ height: auto; } .vscom-buildertabs-button-text { display: block; text-align: left; } .vscom-buildertabs-button-count { display: none; text-align: right; margin-left: 0.5rem; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-button-wrapper { flex-direction: row; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-list { padding-left: 0; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-item { display: block; flex: unset; width: 100%; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-button-text { flex: 1 0 auto; text-align: left; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-button-count { flex: 0 1 auto; margin-left: 0; } .vscom-warning-copy { margin-left: 0.5rem; } .vscom-warning .vscom-warning-inner { display: flex; } .vscom-warning .vscom-warning-icon { margin-top: 1px; } /*theme*/ .vscom-buildertabs-button { border: 0; background-color: transparent; } .switcher-button-icon::after, .switcher-button-icon::before { font-size: 1.5rem; color: #5D2E8F; } .vscom-buildertabs-button-text, .vscom-buildertabs-button-count { font-size: 1.125rem; font-weight: 400; } .vscom-buildertabs-button-count { color: #5C2D91; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-button { background-color: #FFF; border-bottom: 1px solid #C8C6C4; } .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab='0'], .vscom-buildertabs.vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab='4'] { border-top: 1px solid #C8C6C4; } a { word-wrap: break-word; } .fusion-text.vscom-warning { padding: 0.75rem; margin: 0; } .vscom-warning--yellow { background-color: #FFF4CE; } .vscom-warning-inner, .vscom-warning-icon, .vscom-warning-copy { font-size: 0.875rem; } /*media*/ @media screen and (max-width: 900px) { .vscom-buildertabs-list { display: flex; flex-direction: column; } .vscom-buildertabs-item { flex: 0 1 30%; margin: 0 auto; display: block; } .vscom-buildertabs-button { min-width: 100%; min-height: 100%; } .vscom-buildertabs-button-wrapper { flex-direction: column; } .vscom-buildertabs { display: none !important; } .vscom-buildertabs.vscom-buildertabs--mobile { display: block !important; } #main .vscom-swimlane.fusion-fullwidth.faq-content, #main .vscom-swimlane.fusion-fullwidth.faq-title { padding-top: 0 !important; padding-bottom: 0 !important; } } /* state */ .vscom-buildertabs-button:hover { cursor: pointer; } .vscom-buildertabs-button:focus { box-shadow: none; outline: none; } .vscom-buildertabs-button:disabled .vscom-buildertabs-button-count { color: #747474; } .vscom-buildertabs-button:focus::after { border: 1px solid #605E5C; top: 0; left: 0; bottom: 0; right: 0; position: absolute; content: ' '; } /*.vscom-buildertabs-button:active .vscom-buildertabs-button-wrapper::after,*/ #wrapper.show-tab-0 .vscom-buildertabs-button[data-tab="0"] .vscom-buildertabs-button-wrapper::after, #wrapper.show-tab-1 .vscom-buildertabs-button[data-tab="1"] .vscom-buildertabs-button-wrapper::after, #wrapper.show-tab-2 .vscom-buildertabs-button[data-tab="2"] .vscom-buildertabs-button-wrapper::after, #wrapper.show-tab-3 .vscom-buildertabs-button[data-tab="3"] .vscom-buildertabs-button-wrapper::after { border-color: #5C2D91 !important; border-width: 0px 0px 2px 0px !important; border: solid; top: 0; left: 0; bottom: 0; right: 0; position: absolute; content: ' '; } #wrapper.show-tab-0 .vscom-buildertabs-button[data-tab="0"] .vscom-buildertabs-button-text, #wrapper.show-tab-1 .vscom-buildertabs-button[data-tab="1"] .vscom-buildertabs-button-text, #wrapper.show-tab-2 .vscom-buildertabs-button[data-tab="2"] .vscom-buildertabs-button-text, #wrapper.show-tab-3 .vscom-buildertabs-button[data-tab="3"] .vscom-buildertabs-button-text { font-weight: 600; letter-spacing: -0.24px; } #wrapper.show-tab-0 .vscom-buildertabs-button[data-tab="0"] .vscom-buildertabs-button-count, #wrapper.show-tab-1 .vscom-buildertabs-button[data-tab="1"] .vscom-buildertabs-button-count, #wrapper.show-tab-2 .vscom-buildertabs-button[data-tab="2"] .vscom-buildertabs-button-count, #wrapper.show-tab-3 .vscom-buildertabs-button[data-tab="3"] .vscom-buildertabs-button-count { font-weight: 600; } #wrapper.show-tab-0 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"] .vscom-buildertabs-button-wrapper::after, #wrapper.show-tab-1 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="1"] .vscom-buildertabs-button-wrapper::after, #wrapper.show-tab-2 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="2"] .vscom-buildertabs-button-wrapper::after, #wrapper.show-tab-3 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="3"] .vscom-buildertabs-button-wrapper::after { border: none; content: ' '; } #wrapper.show-tab-0 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"], #wrapper.show-tab-1 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="1"], #wrapper.show-tab-2 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="2"], #wrapper.show-tab-3 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="3"] { font-weight: 600; background-color: transparent; border-top: 0; border-bottom: 0; } #wrapper:not(.show-tab-1) .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"], #wrapper:not(.show-tab-2) .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"], #wrapper:not(.show-tab-3) .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"], #wrapper.show-tab-1 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="1"], #wrapper.show-tab-2 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="2"], #wrapper.show-tab-3 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="3"] { border-top: 1px solid #C8C6C4; } #wrapper.show-tab-0 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"] .vscom-buildertabs-button-text, #wrapper.show-tab-1 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="1"] .vscom-buildertabs-button-text, #wrapper.show-tab-2 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="2"] .vscom-buildertabs-button-text, #wrapper.show-tab-3 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="3"] .vscom-buildertabs-button-text #wrapper.show-tab-0 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="0"] .vscom-buildertabs-button-count, #wrapper.show-tab-1 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="1"] .vscom-buildertabs-button-count, #wrapper.show-tab-2 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="2"] .vscom-buildertabs-button-count, #wrapper.show-tab-3 .vscom-buildertabs--mobile .vscom-buildertabs-button[data-tab="3"] .vscom-buildertabs-button-count { font-weight: 600; background-color: transparent; border-top: 0; border-bottom: 0; } #wrapper .vscom-buildertabs-button:disabled .vscom-buildertabs-button-wrapper::after { display: none !important; } #wrapper .vscom-buildertabs-button:disabled .vscom-buildertabs-button-wrapper .vscom-buildertabs-button-text, #wrapper .vscom-buildertabs-button:disabled .vscom-buildertabs-button-wrapper .vscom-buildertabs-button-count { font-weight: 400; } .vscom-buildertabs-button:active { cursor: pointer; } .vscom-buildertab--tab-0, .vscom-buildertab--tab-1, .vscom-buildertab--tab-2, .vscom-buildertab--tab-3 { display: block !important; } /* :not() would be true if the class is not on #wrapper and the first tab must display by default so we cannot use :not() to check for show-tab-4 state, we have to instead check against the others */ #wrapper.show-tab-1 .vscom-buildertab--tab-0, #wrapper.show-tab-2 .vscom-buildertab--tab-0, #wrapper.show-tab-3 .vscom-buildertab--tab-0, #wrapper:not(.show-tab-1) .vscom-buildertab--tab-1, #wrapper:not(.show-tab-2) .vscom-buildertab--tab-2, #wrapper:not(.show-tab-3) .vscom-buildertab--tab-3 { display: none !important; } /* FAQ Search */ .faq-input-wrapper { position: relative; flex: 1 1 100%; } #faq-search-input { width: 100%; padding: 0.5rem 1rem; height: auto; position: relative; } #faq-search-input { font-size: 0.875rem; color: #323130 !important; } #faq-search-input::placeholder { font-size: 0.875rem; color: #323130 !important; } #faq-search-input:-ms-input-placeholder { font-size: 0.875rem; color: #323130; } .vscom-no-faq-results { display: none; } #faq-clear-button { display: none; } #faq-clear-button .vscom-icon--Clear:before { font-size: 10px; font-weight: 600; } #faq-search-button, #faq-clear-button { position: absolute; right: 2px; top: 2px; bottom: 2px; padding: 4px 12px; background: #FFF; border: 0; font-size: 1rem; color: #323130 !important; } #faq-search-button:hover, #faq-clear-button:hover { background: #F1F1F1; cursor: pointer; } #faq-clear-button .vscom-icon, #faq-search-button .vscom-icon { position: relative; display: flex; } .vscom-faq-search { display: flex; } /* from on page CSS block */ .subscription-lane .text-col ul li:before { /* content: "E73E"; moved to specific CSS file for compatibility */ position: absolute; left: 0; display: flex; width: 20px; height: 20px; color: var(--clr-white); font-size: 14px; border-radius: 50%; background: var(--clr-violet-light); font-family: "VSCOMIcons"; margin-right: 10px; justify-content: center; } .subscription-lane .text-col ul { position: relative; list-style: none; margin-left: 0; padding-left: 20px; margin-top: 20px; } .subscription-lane .text-col ul li { margin: 0 0 8px 8px; } /* end from on page CSS block */</style><!--- [Begin] WCP Cookie Consent API Implementation for Vscom !--> <script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script> <div id="cookie-banner" data-bi-id="Cookie Banner"></div> <script> window.WcpConsent && WcpConsent.init( 'en-us', "cookie-banner", function (err, _siteConsent) { if (!err) { siteConsent = _siteConsent; //siteConsent is used to get the current consent } }, onConsentChanged ); function onConsentChanged(categoryPreferences) { if ( siteConsent.isConsentRequired === true && siteConsent.getConsent().Analytics === true){ loadAdobeTarget(); // Consent for Clarity window.clarity('consent'); } else if (siteConsent.isConsentRequired === false) { // Consent is not required window.clarity('consent'); } } function loadAdobeTarget(){ var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); //Assigning the value generated from PHP script.src = adobe_at_config_js; //Executing synchronously. script.async = false; head.appendChild(script); var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); //Assigning the value generated from PHP script.src = adobe_at_js; //Executing synchronously. script.async = false; head.appendChild(script); } </script> <!--- [End] WCP Cookie Consent API Implementation for Vscom !--> <!-- [Begin] JSLL SHIM script includes --> <link rel="preconnect" href="//js.monitor.azure.com" crossorigin> <link rel="preconnect" href="//browser.events.data.microsoft.com" crossorigin> <script> var adobePageMarket = 'en' var firstPagePath = window.location.pathname.split('/')[1] if (['zh-hans', 'zh-hant', 'fr', 'de', 'it', 'ja', 'ru', 'es', 'cs', 'ko', 'pl', 'pt-br', 'tr'].indexOf(firstPagePath) >= 0) { adobePageMarket = firstPagePath } </script> <script type="text/javascript" src="https://js.monitor.azure.com/scripts/c/ms.jsll-3.min.js"> </script> <script type="text/javascript"> let userConsentDetailsCallback = function() { return siteConsent ? siteConsent.getConsent() : null }; var config = { useDefaultContentName: true, useShortNameForContentBlob: false, autoCapture: { pageView: true, onLoad: true, onUnload: true, lineage: true, click: true, scroll: true, resize: false, lineage: true, jsError: true, addin: true, perf: true }, urlCollectHash: true, urlCollectQuery: true, instrumentationKey: "f194a55d6cb942d9b0e5b604e01b609b-8c663a24-3636-4cc5-a2bf-267a92b4ee4f-7662", coreData: { appId: "VSCOM", market: adobePageMarket }, // Initially set the GPC_DataSharingOptIn flag property in 1DS (One Data Source) to false advancedConfig: { propertyConfiguration: { gpcDataSharingOptIn: false, callback: { userConsentDetails: userConsentDetailsCallback }, }, // This one is not working , so we are setting the value using awa.sku.addTelemetryInitializer((item) down below (line 53) userConsent: false, cookieCfg: { ignoreCookies: ["MSCC"] // new. check the FAQ to confirm which cookie you want to ignore! }, }, callback: { pageName: function() { return document.title } } }; awa.init(config); //awa.config.extensionConfig.SystemPropertiesCollector //config.extensionConfig.SystemPropertiesCollector.userConsented = userConsentDetailsCallback() awa.sku.config.extensionConfig.SystemPropertiesCollector.callback.userConsentDetails = userConsentDetailsCallback awa.sku.config.extensionConfig.SystemPropertiesCollector.userConsented = false; /*awa.sku.addTelemetryInitializer((item) => { item = item || {}; item.ext = item.ext || {}; item.ext.web = item.ext.web || {}; item.ext.web.userConsent = false; item.ext.web. })*/ //tracking the search button expand click // 1DS not tracking the click on html button element even after tagging data-bi attribute document.addEventListener("DOMContentLoaded", function(event) { const element = document.getElementById('search') if (element) { element.addEventListener("click", () => { var overrideValues = { behavior: awa.behavior.SEARCHINITIATE, actionType: "CL", contentTags: { areaName: 'Search_nav', id: 'Nav Search Bar Open ' } }; if (typeof awa === "object" && typeof awa.ct === "object") { awa.ct.captureContentPageAction(overrideValues); } }); } }); </script> <!-- [End] JSLL Shim script includes --> <script> //load newrelic if user has consent if (typeof siteConsent === "object") { if (siteConsent.isConsentRequired === false || siteConsent.getConsent().Analytics === true) { ; window.NREUM || (NREUM = {}); NREUM.init = { distributed_tracing: { enabled: true }, privacy: { cookies_enabled: true }, ajax: { deny_list: ["bam.nr-data.net"] } };; NREUM.loader_config = { accountID: "3631496", trustKey: "1551542", agentID: newrelic_browser_agent_id, licenseKey: "NRJS-b705b49e5f52f7729c9", applicationID: newrelic_browser_appID };; NREUM.info = { beacon: "bam.nr-data.net", errorBeacon: "bam.nr-data.net", licenseKey: "NRJS-b705b49e5f52f7729c9", applicationID: newrelic_browser_appID, sa: 1 };; (() => { var __webpack_modules__ = { 507: (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; function detectPolyfillFeatures() { const featureStatus = {}; return checkAndAddFeature("Promise", "PROMISE"), checkAndAddFeature("Array.prototype.includes", "ARRAY_INCLUDES"), checkAndAddFeature("Object.assign", "OBJECT_ASSIGN"), checkAndAddFeature("Object.entries", "OBJECT_ENTRIES"), featureStatus; function checkAndAddFeature(funcString, featName) { try { let func = eval("self." + funcString); - 1 !== func.toString().indexOf("[native code]") ? featureStatus[featName] = Status.NATIVE : featureStatus[featName] = Status.CHANGED } catch { featureStatus[featName] = Status.UNAVAIL } } } __webpack_require__.d(__webpack_exports__, { n: () => detectPolyfillFeatures }); const Status = { UNAVAIL: "NotSupported", NATIVE: "Detected", CHANGED: "Modified" } }, 2687: (e, t, r) => { "use strict"; r.d(t, { Z: () => n }); const n = (0, r(2141).ky)(16) }, 1719: (e, t, r) => { "use strict"; r.d(t, { I: () => n }); var n = 0, i = navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/); i && (n = +i[1]) }, 3524: (e, t, r) => { "use strict"; let n; if (r.d(t, { H: () => i }), r(8438).il) { const e = document.createElement("div"); e.innerHTML = "\x3c!--[if lte IE 6]><div></div><![endif]--\x3e\x3c!--[if lte IE 7]><div></div><![endif]--\x3e\x3c!--[if lte IE 8]><div></div><![endif]--\x3e\x3c!--[if lte IE 9]><div></div><![endif]--\x3e", n = e.getElementsByTagName("div").length } var i; i = 4 === n ? 6 : 3 === n ? 7 : 2 === n ? 8 : 1 === n ? 9 : 0 }, 5970: (e, t, r) => { "use strict"; r.d(t, { P_: () => l, Mt: () => h, C5: () => c, DL: () => b, OP: () => R, Yu: () => m, Dg: () => p, CX: () => u, GE: () => g, sU: () => N }); var n = {}; r.r(n), r.d(n, { agent: () => x, match: () => E, version: () => P }); var i = r(4580); class o { constructor(e, t) { return e && "object" == typeof e ? t && "object" == typeof t ? (Object.assign(this, t), void Object.entries(e).forEach((e => { let [t, r] = e; this[t] = r }))) : console.error("setting a Configurable requires a model to set its initial properties") : console.error("setting a Configurable requires an object as input") } } const a = { beacon: i.ce.beacon, errorBeacon: i.ce.errorBeacon, licenseKey: void 0, applicationID: void 0, sa: void 0, queueTime: void 0, applicationTime: void 0, ttGuid: void 0, user: void 0, account: void 0, product: void 0, extra: void 0, jsAttributes: {}, userAttributes: void 0, atts: void 0, transactionName: void 0, tNamePlain: void 0 }, s = {}; function c(e) { if (!e) throw new Error("All info objects require an agent identifier!"); if (!s[e]) throw new Error(`Info for ${e} was never set`); return s[e] } function u(e, t) { if (!e) throw new Error("All info objects require an agent identifier!"); s[e] = new o(t, a), (0, i.Qy)(e, s[e], "info") } const d = { allow_bfcache: !1, privacy: { cookies_enabled: !0 }, ajax: { deny_list: void 0, enabled: !0 }, distributed_tracing: { enabled: void 0, exclude_newrelic_header: void 0, cors_use_newrelic_header: void 0, cors_use_tracecontext_headers: void 0, allowed_origins: void 0 }, ssl: void 0, obfuscate: void 0, jserrors: { enabled: !0 }, metrics: { enabled: !0 }, page_action: { enabled: !0 }, page_view_event: { enabled: !0 }, page_view_timing: { enabled: !0 }, session_trace: { enabled: !0 }, spa: { enabled: !0 } }, f = {}; function l(e) { if (!e) throw new Error("All configuration objects require an agent identifier!"); if (!f[e]) throw new Error(`Configuration for ${e} was never set`); return f[e] } function p(e, t) { if (!e) throw new Error("All configuration objects require an agent identifier!"); f[e] = new o(t, d), (0, i.Qy)(e, f[e], "config") } function h(e, t) { if (!e) throw new Error("All configuration objects require an agent identifier!"); var r = l(e); if (r) { for (var n = t.split("."), i = 0; i < n.length - 1; i++) if ("object" != typeof(r = r[n[i]])) return; r = r[n[n.length - 1]] } return r } const v = { accountID: void 0, trustKey: void 0, agentID: void 0, licenseKey: void 0, applicationID: void 0, xpid: void 0 }, _ = {}; function b(e) { if (!e) throw new Error("All loader-config objects require an agent identifier!"); if (!_[e]) throw new Error(`LoaderConfig for ${e} was never set`); return _[e] } function g(e, t) { if (!e) throw new Error("All loader-config objects require an agent identifier!"); _[e] = new o(t, v), (0, i.Qy)(e, _[e], "loader_config") } const m = (0, i.mF)().o; var w = r(3524), y = r(9206), x = null, P = null; if (navigator.userAgent) { var O = navigator.userAgent, k = O.match(/Version\/(\S+)\s+Safari/); k && -1 === O.indexOf("Chrome") && -1 === O.indexOf("Chromium") && (x = "Safari", P = k[1]) } function E(e, t) { if (!x) return !1; if (e !== x) return !1; if (!t) return !0; if (!P) return !1; for (var r = P.split("."), n = t.split("."), i = 0; i < n.length; i++) if (n[i] !== r[i]) return !1; return !0 } var S = r(2141), C = r(8438); const T = "NRBA_SESSION_ID"; function A() { if (!C.il) return null; try { let e; return null === (e = window.sessionStorage.getItem(T)) && (e = (0, S.ky)(16), window.sessionStorage.setItem(T, e)), e } catch (e) { return null } } var q = C.ZP?.XMLHttpRequest, I = q && q.prototype; const j = {}; function R(e) { if (!e) throw new Error("All runtime objects require an agent identifier!"); if (!j[e]) throw new Error(`Runtime for ${e} was never set`); return j[e] } function N(e, t) { if (!e) throw new Error("All runtime objects require an agent identifier!"); var r; j[e] = new o(t, (r = e, { customTransaction: void 0, disabled: !1, features: {}, loaderType: void 0, maxBytes: 6 === w.H ? 2e3 : 3e4, offset: (0, y.yf)(), onerror: void 0, origin: "" + C.ZP?.location, ptid: void 0, releaseIds: {}, sessionId: 1 == h(r, "privacy.cookies_enabled") ? A() : null, xhrWrappable: q && I && I.addEventListener && !/CriOS/.test(navigator.userAgent), userAgent: n })), (0, i.Qy)(e, j[e], "runtime") } }, 8873: (e, t, r) => { "use strict"; r.d(t, { q: () => n }); const n = ["1222", "PROD"].filter((e => e)).join(".") }, 1925: (e, t, r) => { "use strict"; r.d(t, { w: () => i }); const n = { agentIdentifier: "" }; class i { constructor(e) { if ("object" != typeof e) return console.error("shared context requires an object as input"); this.sharedContext = {}, Object.assign(this.sharedContext, n), Object.entries(e).forEach((e => { let [t, r] = e; Object.keys(n).includes(t) && (this.sharedContext[t] = r) })) } } }, 2071: (e, t, r) => { "use strict"; r.d(t, { c: () => d, ee: () => c }); var n = r(4580), i = r(9010), o = r(9599), a = "nr@context"; let s = (0, n.fP)(); var c; function u() {} function d(e) { return (0, i.X)(e, a, f) } function f() { return new u } function l() { (c.backlog.api || c.backlog.feature) && (c.aborted = !0, c.backlog = {}) } s.ee ? c = s.ee : (c = function e(t, r) { var n = {}, s = {}, d = {}, p = { on: _, addEventListener: _, removeEventListener: b, emit: v, get: m, listeners: g, context: h, buffer: w, abort: l, aborted: !1, isBuffering: y, debugId: r, backlog: t && t.backlog ? t.backlog : {} }; return p; function h(e) { return e && e instanceof u ? e : e ? (0, i.X)(e, a, f) : f() } function v(e, r, n, i, o) { if (!1 !== o && (o = !0), !c.aborted || i) { t && o && t.emit(e, r, n); for (var a = h(n), u = g(e), d = u.length, f = 0; f < d; f++) u[f].apply(a, r); var l = x()[s[e]]; return l && l.push([p, e, r, a]), a } } function _(e, t) { n[e] = g(e).concat(t) } function b(e, t) { var r = n[e]; if (r) for (var i = 0; i < r.length; i++) r[i] === t && r.splice(i, 1) } function g(e) { return n[e] || [] } function m(t) { return d[t] = d[t] || e(p, t) } function w(e, t) { var r = x(); p.aborted || (0, o.D)(e, (function(e, n) { t = t || "feature", s[n] = t, t in r || (r[t] = []) })) } function y(e) { return !!x()[s[e]] } function x() { return p.backlog } }(void 0, "globalEE"), s.ee = c) }, 3195: (e, t, r) => { "use strict"; r.d(t, { E: () => n, p: () => i }); var n = r(2071).ee.get("handle"); function i(e, t, r, i, o) { o ? (o.buffer([e], i), o.emit(e, t, r)) : (n.buffer([e], i), n.emit(e, t, r)) } }, 4539: (e, t, r) => { "use strict"; r.d(t, { X: () => o }); var n = r(3195); o.on = a; var i = o.handlers = {}; function o(e, t, r, o) { a(o || n.E, i, e, t, r) } function a(e, t, r, i, o) { o || (o = "feature"), e || (e = n.E); var a = t[o] = t[o] || {}; (a[r] = a[r] || []).push([e, i]) } }, 3585: (e, t, r) => { "use strict"; r.d(t, { bP: () => s, iz: () => c, m$: () => a }); var n = r(8438), i = !1; try { var o = Object.defineProperty({}, "passive", { get: function() { i = !0 } }); n.ZP?.addEventListener("testPassive", null, o), n.ZP?.removeEventListener("testPassive", null, o) } catch (e) {} function a(e) { return i ? { passive: !0, capture: !!e } : !!e } function s(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; window.addEventListener(e, t, a(r)) } function c(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; document.addEventListener(e, t, a(r)) } }, 2141: (e, t, r) => { "use strict"; r.d(t, { Ht: () => a, M: () => o, Rl: () => i, ky: () => s }); var n = r(8438); function i() { var e = null, t = 0, r = n.ZP?.crypto || n.ZP?.msCrypto; function i() { return e ? 15 & e[t++] : 16 * Math.random() | 0 } r && r.getRandomValues && (e = r.getRandomValues(new Uint8Array(31))); for (var o, a = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx", s = "", c = 0; c < a.length; c++) s += "x" === (o = a[c]) ? i().toString(16) : "y" === o ? (o = 3 & i() | 8).toString(16) : o; return s } function o() { return s(16) } function a() { return s(32) } function s(e) { var t = null, r = 0, n = self.crypto || self.msCrypto; n && n.getRandomValues && Uint8Array && (t = n.getRandomValues(new Uint8Array(31))); for (var i = [], o = 0; o < e; o++) i.push(a().toString(16)); return i.join(""); function a() { return t ? 15 & t[r++] : 16 * Math.random() | 0 } } }, 9206: (e, t, r) => { "use strict"; r.d(t, { nb: () => c, os: () => u, yf: () => s, zO: () => a }); var n = r(1209), i = (new Date).getTime(), o = i; function a() { return n.G && performance.now ? Math.round(performance.now()) : (i = Math.max((new Date).getTime(), i)) - o } function s() { return i } function c(e) { o = e } function u() { return o } }, 1209: (e, t, r) => { "use strict"; r.d(t, { G: () => n }); const n = void 0 !== r(8438).ZP?.performance?.timing?.navigationStart }, 745: (e, t, r) => { "use strict"; r.d(t, { s: () => c, v: () => u }); var n = r(7036), i = r(1719), o = r(9206), a = r(1209), s = r(8438); let c = !0; function u(e) { var t = function() { if (i.I && i.I < 9) return; if (a.G) return c = !1, s.ZP?.performance?.timing?.navigationStart }(); t && ((0, n.B)(e, "starttime", t), (0, o.nb)(t)) } }, 7036: (e, t, r) => { "use strict"; r.d(t, { B: () => o, L: () => a }); var n = r(9206), i = {}; function o(e, t, r) { void 0 === r && (r = (0, n.zO)() + (0, n.os)()), i[e] = i[e] || {}, i[e][t] = r } function a(e, t, r, n) { const o = e.sharedContext.agentIdentifier; var a = i[o]?.[r], s = i[o]?.[n]; void 0 !== a && void 0 !== s && e.store("measures", t, { value: s - a }) } }, 7233: (e, t, r) => { "use strict"; r.d(t, { e: () => o }); var n = r(8438), i = {}; function o(e) { if (e in i) return i[e]; if (0 === (e || "").indexOf("data:")) return { protocol: "data" }; let t; var r = n.ZP?.location, o = {}; if (n.il) t = document.createElement("a"), t.href = e; else try { t = new URL(e, r.href) } catch { return o } o.port = t.port; var a = t.href.split("://"); !o.port && a[1] && (o.port = a[1].split("/")[0].split("@").pop().split(":")[1]), o.port && "0" !== o.port || (o.port = "https" === a[0] ? "443" : "80"), o.hostname = t.hostname || r.hostname, o.pathname = t.pathname, o.protocol = a[0], "/" !== o.pathname.charAt(0) && (o.pathname = "/" + o.pathname); var s = !t.protocol || ":" === t.protocol || t.protocol === r.protocol, c = t.hostname === r.hostname && t.port === r.port; return o.sameOrigin = s && (!t.hostname || c), "/" === o.pathname && (i[e] = o), o } }, 8547: (e, t, r) => { "use strict"; r.d(t, { T: () => i }); var n = r(8438); const i = { isFileProtocol: function() { let e = Boolean("file:" === (0, n.lW)()?.location?.protocol); e && (i.supportabilityMetricSent = !0); return e }, supportabilityMetricSent: !1 } }, 9011: (e, t, r) => { "use strict"; r.d(t, { K: () => o }); var n = r(5970); const i = ["ajax", "jserrors", "metrics", "page_action", "page_view_event", "page_view_timing", "session_trace", "spa"]; function o(e) { const t = {}; return i.forEach((r => { t[r] = function(e, t) { return !0 !== (0, n.OP)(t).disabled && !1 !== (0, n.Mt)(t, `${e}.enabled`) }(r, e) })), t } }, 8025: (e, t, r) => { "use strict"; r.d(t, { W: () => i }); var n = r(2071); class i { constructor(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : []; this.agentIdentifier = e, this.aggregator = t, this.ee = n.ee.get(e), this.externalFeatures = r, this.blocked = !1 } } }, 9010: (e, t, r) => { "use strict"; r.d(t, { X: () => i }); var n = Object.prototype.hasOwnProperty; function i(e, t, r) { if (n.call(e, t)) return e[t]; var i = r(); if (Object.defineProperty && Object.keys) try { return Object.defineProperty(e, t, { value: i, writable: !0, enumerable: !1 }), i } catch (e) {} return e[t] = i, i } }, 8438: (e, t, r) => { "use strict"; r.d(t, { ZP: () => a, il: () => n, lW: () => s, v6: () => i }); const n = Boolean("undefined" != typeof window && window.document), i = Boolean("undefined" != typeof WorkerGlobalScope && self.navigator instanceof WorkerNavigator); let o = (() => { if (n) return window; if (i) { if ("undefined" != typeof globalThis && globalThis instanceof WorkerGlobalScope) return globalThis; if (self instanceof WorkerGlobalScope) return self } throw new Error("New Relic browser agent shutting down due to error: Unable to locate global scope. This is possibly due to code redefining browser global variables like `self` and `window`.") })(); const a = o; function s() { return o } }, 9599: (e, t, r) => { "use strict"; r.d(t, { D: () => i }); var n = Object.prototype.hasOwnProperty; function i(e, t) { var r = [], i = "", o = 0; for (i in e) n.call(e, i) && (r[o] = t(i, e[i]), o += 1); return r } }, 248: (e, t, r) => { "use strict"; r.d(t, { $c: () => c, Ng: () => u, RR: () => s }); var n = r(5970), i = r(1925), o = r(8547), a = { regex: /^file:\/\/(.*)/, replacement: "file://OBFUSCATED" }; class s extends i.w { constructor(e) { super(e) } shouldObfuscate() { return c(this.sharedContext.agentIdentifier).length > 0 } obfuscateString(e) { if (!e || "string" != typeof e) return e; for (var t = c(this.sharedContext.agentIdentifier), r = e, n = 0; n < t.length; n++) { var i = t[n].regex, o = t[n].replacement || "*"; r = r.replace(i, o) } return r } } function c(e) { var t = [], r = (0, n.Mt)(e, "obfuscate") || []; return t = t.concat(r), o.T.isFileProtocol() && t.push(a), t } function u(e) { for (var t = !1, r = !1, n = 0; n < e.length; n++) { "regex" in e[n] ? "string" != typeof e[n].regex && e[n].regex.constructor !== RegExp && (console && console.warn && console.warn('An obfuscation replacement rule contains a "regex" value with an invalid type (must be a string or RegExp)'), r = !0) : (console && console.warn && console.warn('An obfuscation replacement rule was detected missing a "regex" value.'), r = !0); var i = e[n].replacement; i && "string" != typeof i && (console && console.warn && console.warn('An obfuscation replacement rule contains a "replacement" value with an invalid type (must be a string)'), t = !0) } return !t && !r } }, 4580: (e, t, r) => { "use strict"; r.d(t, { EZ: () => u, Qy: () => c, ce: () => o, fP: () => a, gG: () => d, mF: () => s }); var n = r(9206), i = r(8438); const o = { beacon: "bam.nr-data.net", errorBeacon: "bam.nr-data.net" }; function a() { return i.ZP?.NREUM || (i.ZP.NREUM = {}), void 0 === i.ZP?.newrelic && (i.ZP.newrelic = i.ZP.NREUM), i.ZP.NREUM } function s() { let e = a(); if (!e.o) { var t = self, r = t.XMLHttpRequest; e.o = { ST: setTimeout, SI: t.setImmediate, CT: clearTimeout, XHR: r, REQ: t.Request, EV: t.Event, PR: t.Promise, MO: t.MutationObserver, FETCH: t.fetch } } return e } function c(e, t, r) { let i = a(); const o = i.initializedAgents || {}, s = o[e] || {}; return Object.keys(s).length || (s.initializedAt = { ms: (0, n.zO)(), date: new Date }), i.initializedAgents = { ...o, [e]: { ...s, [r]: t } }, i } function u(e, t) { a()[e] = t } function d() { return function() { let e = a(); const t = e.info || {}; e.info = { beacon: o.beacon, errorBeacon: o.errorBeacon, ...t } }(), function() { let e = a(); const t = e.init || {}; e.init = { ...t } }(), s(), function() { let e = a(); const t = e.loader_config || {}; e.loader_config = { ...t } }(), a() } }, 584: (e, t, r) => { "use strict"; r.d(t, { N: () => i, e: () => o }); var n = r(3585); function i(e) { let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; return void(0, n.iz)("visibilitychange", r); function r() { if (t) { if ("hidden" != document.visibilityState) return; e() } e(document.visibilityState) } } function o() { return "hidden" === document.visibilityState ? -1 : 1 / 0 } }, 6023: (e, t, r) => { "use strict"; r.d(t, { W: () => i }); var n = r(8438); function i() { return "function" == typeof n.ZP?.PerformanceObserver } }, 8539: e => { e.exports = function(e, t, r) { t || (t = 0), void 0 === r && (r = e ? e.length : 0); for (var n = -1, i = r - t || 0, o = Array(i < 0 ? 0 : i); ++n < i;) o[n] = e[t + n]; return o } } }, __webpack_module_cache__ = {}, inProgress, dataWebpackPrefix; function __webpack_require__(e) { var t = __webpack_module_cache__[e]; if (void 0 !== t) return t.exports; var r = __webpack_module_cache__[e] = { exports: {} }; return __webpack_modules__[e](r, r.exports, __webpack_require__), r.exports } __webpack_require__.m = __webpack_modules__, __webpack_require__.n = e => { var t = e && e.__esModule ? () => e.default : () => e; return __webpack_require__.d(t, { a: t }), t }, __webpack_require__.d = (e, t) => { for (var r in t) __webpack_require__.o(t, r) && !__webpack_require__.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] }) }, __webpack_require__.f = {}, __webpack_require__.e = e => Promise.all(Object.keys(__webpack_require__.f).reduce(((t, r) => (__webpack_require__.f[r](e, t), t)), [])), __webpack_require__.u = e => e + "." + __webpack_require__.h().slice(0, 8) + "-1222.js", __webpack_require__.h = () => "95d4308d836c4fa71ea6", __webpack_require__.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), inProgress = {}, dataWebpackPrefix = "NRBA:", __webpack_require__.l = (e, t, r, n) => { if (inProgress[e]) inProgress[e].push(t); else { var i, o; if (void 0 !== r) for (var a = document.getElementsByTagName("script"), s = 0; s < a.length; s++) { var c = a[s]; if (c.getAttribute("src") == e || c.getAttribute("data-webpack") == dataWebpackPrefix + r) { i = c; break } } i || (o = !0, (i = document.createElement("script")).charset = "utf-8", i.timeout = 120, __webpack_require__.nc && i.setAttribute("nonce", __webpack_require__.nc), i.setAttribute("data-webpack", dataWebpackPrefix + r), i.src = e), inProgress[e] = [t]; var u = (t, r) => { i.onerror = i.onload = null, clearTimeout(d); var n = inProgress[e]; if (delete inProgress[e], i.parentNode && i.parentNode.removeChild(i), n && n.forEach((e => e(r))), t) return t(r) }, d = setTimeout(u.bind(null, void 0, { type: "timeout", target: i }), 12e4); i.onerror = u.bind(null, i.onerror), i.onload = u.bind(null, i.onload), o && document.head.appendChild(i) } }, __webpack_require__.r = e => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, __webpack_require__.p = "https://js-agent.newrelic.com/", (() => { var e = { 450: 0, 566: 0 }; __webpack_require__.f.j = (t, r) => { var n = __webpack_require__.o(e, t) ? e[t] : void 0; if (0 !== n) if (n) r.push(n[2]); else { var i = new Promise(((r, i) => n = e[t] = [r, i])); r.push(n[2] = i); var o = __webpack_require__.p + __webpack_require__.u(t), a = new Error; __webpack_require__.l(o, (r => { if (__webpack_require__.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) { var i = r && ("load" === r.type ? "missing" : r.type), o = r && r.target && r.target.src; a.message = "Loading chunk " + t + " failed.\n(" + i + ": " + o + ")", a.name = "ChunkLoadError", a.type = i, a.request = o, n[1](a) } }), "chunk-" + t, t) } }; var t = (t, r) => { var n, i, [o, a, s] = r, c = 0; if (o.some((t => 0 !== e[t]))) { for (n in a) __webpack_require__.o(a, n) && (__webpack_require__.m[n] = a[n]); if (s) s(__webpack_require__) } for (t && t(r); c < o.length; c++) i = o[c], __webpack_require__.o(e, i) && e[i] && e[i][0](), e[i] = 0 }, r = window.webpackChunkNRBA = window.webpackChunkNRBA || []; r.forEach(t.bind(null, 0)), r.push = t.bind(null, r.push.bind(r)) })(); var __webpack_exports__ = {}; (() => { "use strict"; __webpack_require__.r(__webpack_exports__); var e = __webpack_require__(507), t = __webpack_require__(3585); function r(e) { if (!document || "complete" === document.readyState) return e() || !0 } function n(e) { r(e) || (0, t.bP)("load", e) } function i(e) { r(e) || (0, t.iz)("DOMContentLoaded", e) } var o = __webpack_require__(8438), a = __webpack_require__(2071); let s = 0; function c(e) { (async () => { if (!s++) try { const { aggregator: t } = await __webpack_require__.e(859).then(__webpack_require__.bind(__webpack_require__, 7859)); await t(e) } catch (e) { console.error("Failed to successfully load all aggregators. Aborting...\n", e), a.ee.abort() } })() } var u = __webpack_require__(2687), d = __webpack_require__(3195), f = __webpack_require__(9206), l = __webpack_require__(7036), p = __webpack_require__(745), h = __webpack_require__(8025); class v extends h.W { constructor(e) { super(e), o.il && ((0, p.v)(e), (0, l.B)(e, "firstbyte", (0, f.yf)()), n((() => this.measureWindowLoaded())), i((() => this.measureDomContentLoaded()))) } measureWindowLoaded() { var e = (0, f.zO)(); (0, l.B)(this.agentIdentifier, "onload", e + (0, f.os)()), (0, d.p)("timing", ["load", e], void 0, void 0, this.ee) } measureDomContentLoaded() { (0, l.B)(this.agentIdentifier, "domContent", (0, f.zO)() + (0, f.os)()) } } var _ = __webpack_require__(584), b = __webpack_require__(5970); class g extends h.W { constructor(e) { var r; if (super(e), r = this, this.isEnabled() && o.il) { if (this.pageHiddenTime = (0, _.e)(), this.performanceObserver, this.lcpPerformanceObserver, this.clsPerformanceObserver, this.fiRecorded = !1, "PerformanceObserver" in window && "function" == typeof window.PerformanceObserver) { this.performanceObserver = new PerformanceObserver((function() { return r.perfObserver(...arguments) })); try { this.performanceObserver.observe({ entryTypes: ["paint"] }) } catch (e) {} this.lcpPerformanceObserver = new PerformanceObserver((function() { return r.lcpObserver(...arguments) })); try { this.lcpPerformanceObserver.observe({ entryTypes: ["largest-contentful-paint"] }) } catch (e) {} this.clsPerformanceObserver = new PerformanceObserver((function() { return r.clsObserver(...arguments) })); try { this.clsPerformanceObserver.observe({ type: "layout-shift", buffered: !0 }) } catch (e) {} } this.fiRecorded = !1; ["click", "keydown", "mousedown", "pointerdown", "touchstart"].forEach((e => { (0, t.iz)(e, (function() { return r.captureInteraction(...arguments) })) })), (0, _.N)((() => { this.pageHiddenTime = (0, f.zO)(), (0, d.p)("docHidden", [this.pageHiddenTime], void 0, void 0, this.ee) }), !0), (0, t.bP)("pagehide", (() => (0, d.p)("winPagehide", [(0, f.zO)()], void 0, void 0, this.ee))) } } isEnabled() { return !1 !== (0, b.Mt)(this.agentIdentifier, "page_view_timing.enabled") } perfObserver(e, t) { e.getEntries().forEach((e => { "first-paint" === e.name ? (0, d.p)("timing", ["fp", Math.floor(e.startTime)], void 0, void 0, this.ee) : "first-contentful-paint" === e.name && (0, d.p)("timing", ["fcp", Math.floor(e.startTime)], void 0, void 0, this.ee) })) } lcpObserver(e, t) { var r = e.getEntries(); if (r.length > 0) { var n = r[r.length - 1]; if (this.pageHiddenTime < n.startTime) return; var i = [n], o = this.addConnectionAttributes({}); o && i.push(o), (0, d.p)("lcp", i, void 0, void 0, this.ee) } } clsObserver(e) { e.getEntries().forEach((e => { e.hadRecentInput || (0, d.p)("cls", [e], void 0, void 0, this.ee) })) } addConnectionAttributes(e) { var t = navigator.connection || navigator.mozConnection || navigator.webkitConnection; if (t) return t.type && (e["net-type"] = t.type), t.effectiveType && (e["net-etype"] = t.effectiveType), t.rtt && (e["net-rtt"] = t.rtt), t.downlink && (e["net-dlink"] = t.downlink), e } captureInteraction(e) { if (e instanceof b.Yu.EV && !this.fiRecorded) { var t = Math.round(e.timeStamp), r = { type: e.type }; this.addConnectionAttributes(r), t <= (0, f.zO)() ? r.fid = (0, f.zO)() - t : t > (0, f.os)() && t <= Date.now() ? (t -= (0, f.os)(), r.fid = (0, f.zO)() - t) : t = (0, f.zO)(), this.fiRecorded = !0, (0, d.p)("timing", ["fi", t, r], void 0, void 0, this.ee) } } } var m = __webpack_require__(4539), w = "React", y = "Angular", x = "AngularJS", P = "Backbone", O = "Ember", k = "Vue", E = "Meteor", S = "Zepto", C = "Jquery"; function T() { if (!o.il) return []; var e = []; try { (function() { try { if (window.React || window.ReactDOM || window.ReactRedux) return !0; if (document.querySelector("[data-reactroot], [data-reactid]")) return !0; for (var e = document.querySelectorAll("body > div"), t = 0; t < e.length; t++) if (Object.keys(e[t]).indexOf("_reactRootContainer") >= 0) return !0; return !1 } catch (e) { return !1 } })() && e.push(w), function() { try { return !!window.angular || (!!document.querySelector(".ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]") || !!document.querySelector('script[src*="angular.js"], script[src*="angular.min.js"]')) } catch (e) { return !1 } }() && e.push(x), function() { try { return !!(window.hasOwnProperty("ng") && window.ng.hasOwnProperty("coreTokens") && window.ng.coreTokens.hasOwnProperty("NgZone")) || !!document.querySelectorAll("[ng-version]").length } catch (e) { return !1 } }() && e.push(y), window.Backbone && e.push(P), window.Ember && e.push(O), window.Vue && e.push(k), window.Meteor && e.push(E), window.Zepto && e.push(S), window.jQuery && e.push(C) } catch (e) {} return e } var A = __webpack_require__(8547), q = __webpack_require__(248), I = __webpack_require__(8873); const j = Boolean(o.ZP?.Worker), R = Boolean(o.ZP?.SharedWorker), N = Boolean(o.ZP?.navigator?.serviceWorker); let L, Z, H; class z extends h.W { constructor(e) { var t; let r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; super(e), t = this, this.PfFeatStatusEnum = r, this.singleChecks(), this.eachSessionChecks(), (0, m.X)("record-supportability", (function() { return t.recordSupportability(...arguments) }), void 0, this.ee), (0, m.X)("record-custom", (function() { return t.recordCustom(...arguments) }), void 0, this.ee) } recordSupportability(e, t) { var r = ["sm", e, { name: e }, t]; return (0, d.p)("storeMetric", r, null, void 0, this.ee), r } recordCustom(e, t) { var r = ["cm", e, { name: e }, t]; return (0, d.p)("storeEventMetrics", r, null, void 0, this.ee), r } singleChecks() { this.recordSupportability(`Generic/Version/${I.q}/Detected`); const { loaderType: e } = (0, b.OP)(this.agentIdentifier); e && this.recordSupportability(`Generic/LoaderType/${e}/Detected`), o.il && i((() => { T().forEach((e => { this.recordSupportability("Framework/" + e + "/Detected") })) })), A.T.isFileProtocol() && (this.recordSupportability("Generic/FileProtocol/Detected"), A.T.supportabilityMetricSent = !0); const t = (0, q.$c)(this.agentIdentifier); t.length > 0 && this.recordSupportability("Generic/Obfuscate/Detected"), t.length > 0 && !(0, q.Ng)(t) && this.recordSupportability("Generic/Obfuscate/Invalid"), o.il && this.reportPolyfillsNeeded(), function(e) { if (!L) { if (j) { L = Worker; try { o.ZP.Worker = r(L, "Dedicated") } catch (e) { a(e, "Dedicated") } if (R) { Z = SharedWorker; try { o.ZP.SharedWorker = r(Z, "Shared") } catch (e) { a(e, "Shared") } } else n("Shared"); if (N) { H = navigator.serviceWorker.register; try { o.ZP.navigator.serviceWorker.register = (t = H, function() { for (var e = arguments.length, r = new Array(e), n = 0; n < e; n++) r[n] = arguments[n]; return i("Service", r[1]?.type), t.apply(navigator.serviceWorker, r) }) } catch (e) { a(e, "Service") } } else n("Service"); var t; return } n("All") } function r(e, t) { return new Proxy(e, { construct: (e, r) => (i(t, r[1]?.type), new e(...r)) }) } function n(t) { o.v6 || e(`Workers/${t}/Unavailable`) } function i(t, r) { e("module" === r ? `Workers/${t}/Module` : `Workers/${t}/Classic`) } function a(t, r) { e(`Workers/${r}/SM/Unsupported`), console.warn(`NR Agent: Unable to capture ${r} workers.`, t) } }(this.recordSupportability.bind(this)) } reportPolyfillsNeeded() { this.recordSupportability(`Generic/Polyfill/Promise/${this.PfFeatStatusEnum.PROMISE}`), this.recordSupportability(`Generic/Polyfill/ArrayIncludes/${this.PfFeatStatusEnum.ARRAY_INCLUDES}`), this.recordSupportability(`Generic/Polyfill/ObjectAssign/${this.PfFeatStatusEnum.OBJECT_ASSIGN}`), this.recordSupportability(`Generic/Polyfill/ObjectEntries/${this.PfFeatStatusEnum.OBJECT_ENTRIES}`) } eachSessionChecks() { o.il && (0, t.bP)("pageshow", (e => { e.persisted && this.recordCustom("Custom/BFCache/PageRestored") })) } } var M = __webpack_require__(9010), D = __webpack_require__(8539), W = __webpack_require__.n(D), B = __webpack_require__(9599), $ = o.ZP, G = "fetch-", F = G + "body-", U = ["arrayBuffer", "blob", "json", "text", "formData"], X = $.Request, V = $.Response, Y = "prototype", J = "nr@context"; const Q = {}; function K(e) { const t = function(e) { return (e || a.ee).get("fetch") }(e); if (!(X && V && $.fetch)) return t; if (Q[t.debugId]) return t; function r(e, r, n) { var i = e[r]; "function" == typeof i && (e[r] = function() { var e, r = W()(arguments), o = {}; t.emit(n + "before-start", [r], o), o[J] && o[J].dt && (e = o[J].dt); var a = i.apply(this, r); return t.emit(n + "start", [r, e], a), a.then((function(e) { return t.emit(n + "end", [null, e], a), e }), (function(e) { throw t.emit(n + "end", [e], a), e })) }) } return Q[t.debugId] = !0, (0, B.D)(U, (function(e, t) { r(X[Y], t, F), r(V[Y], t, F) })), r($, "fetch", G), t.on(G + "end", (function(e, r) { var n = this; if (r) { var i = r.headers.get("content-length"); null !== i && (n.rxSize = i), t.emit(G + "done", [null, r], n) } else t.emit(G + "done", [e], n) })), t } var ee = "nr@original", te = Object.prototype.hasOwnProperty, re = !1; function ne(e, t) { return e || (e = a.ee), r.inPlace = function(e, t, n, i, o) { n || (n = ""); var a, s, c, u = "-" === n.charAt(0); for (c = 0; c < t.length; c++) ae(a = e[s = t[c]]) || (e[s] = r(a, u ? s + n : n, i, s, o)) }, r.flag = ee, r; function r(t, r, i, o, a) { return ae(t) ? t : (r || (r = ""), nrWrapper[ee] = t, oe(t, nrWrapper, e), nrWrapper); function nrWrapper() { var s, c, u, d; try { c = this, s = W()(arguments), u = "function" == typeof i ? i(s, c) : i || {} } catch (t) { ie([t, "", [s, c, o], u], e) } n(r + "start", [s, c, o], u, a); try { return d = t.apply(c, s) } catch (e) { throw n(r + "err", [s, c, e], u, a), e } finally { n(r + "end", [s, c, d], u, a) } } } function n(r, n, i, o) { if (!re || t) { var a = re; re = !0; try { e.emit(r, n, i, t, o) } catch (t) { ie([t, r, n, i], e) } re = a } } } function ie(e, t) { t || (t = a.ee); try { t.emit("internal-error", e) } catch (e) {} } function oe(e, t, r) { if (Object.defineProperty && Object.keys) try { return Object.keys(e).forEach((function(r) { Object.defineProperty(t, r, { get: function() { return e[r] }, set: function(t) { return e[r] = t, t } }) })), t } catch (e) { ie([e], r) } for (var n in e) te.call(e, n) && (t[n] = e[n]); return t } function ae(e) { return !(e && e instanceof Function && e.apply && !e[ee]) } function se(e, t, r) { var n = e[t]; e[t] = function(e, t) { var r = t(e); return r[ee] = e, oe(e, r, a.ee), r }(n, r) } function ce() { for (var e = arguments.length, t = new Array(e), r = 0; r < e; ++r) t[r] = arguments[r]; return t } const ue = {}; function de(e) { const t = function(e) { return (e || a.ee).get("timer") }(e); if (ue[t.debugId]) return t; ue[t.debugId] = !0; var r = ne(t), n = "setTimeout", i = "setInterval", s = "clearTimeout", c = "-start"; return r.inPlace(o.ZP, [n, "setImmediate"], n + "-"), r.inPlace(o.ZP, [i], i + "-"), r.inPlace(o.ZP, [s, "clearImmediate"], s + "-"), t.on(i + c, (function(e, t, n) { e[0] = r(e[0], "fn-", null, n) })), t.on(n + c, (function(e, t, n) { this.method = n, this.timerDuration = isNaN(e[1]) ? 0 : +e[1], e[0] = r(e[0], "fn-", this, n) })), t } const fe = {}; function le(e) { const t = function(e) { return (e || a.ee).get("raf") }(e); if (fe[t.debugId] || !o.il) return t; fe[t.debugId] = !0; var r = ne(t), n = "equestAnimationFrame"; return r.inPlace(window, ["r" + n, "mozR" + n, "webkitR" + n, "msR" + n], "raf-"), t.on("raf-start", (function(e) { e[0] = r(e[0], "fn-") })), t } const pe = {}; function he(e) { const t = function(e) { return (e || a.ee).get("history") }(e); if (pe[t.debugId] || !o.il) return t; pe[t.debugId] = !0; var r = ne(t), n = window.history && window.history.constructor && window.history.constructor.prototype, i = window.history; return n && n.pushState && n.replaceState && (i = n), r.inPlace(i, ["pushState", "replaceState"], "-"), t } const ve = {}; function _e(e) { const r = function(e) { return (e || a.ee).get("jsonp") }(e); if (ve[r.debugId] || !o.il) return r; ve[r.debugId] = !0; var n = ne(r), i = /[?&](?:callback|cb)=([^&#]+)/, s = /(.*)\.([^.]+)/, c = /^(\w+)(\.|$)(.*)$/, u = ["appendChild", "insertBefore", "replaceChild"]; function d(e, t) { var r = e.match(c), n = r[1], i = r[3]; return i ? d(i, t[n]) : t[n] } return "addEventListener" in window && (Node && Node.prototype && Node.prototype.appendChild ? n.inPlace(Node.prototype, u, "dom-") : (n.inPlace(HTMLElement.prototype, u, "dom-"), n.inPlace(HTMLHeadElement.prototype, u, "dom-"), n.inPlace(HTMLBodyElement.prototype, u, "dom-"))), r.on("dom-start", (function(e) { ! function(e) { if (!e || "string" != typeof e.nodeName || "script" !== e.nodeName.toLowerCase()) return; if ("function" != typeof e.addEventListener) return; var o = (a = e.src, c = a.match(i), c ? c[1] : null); var a, c; if (!o) return; var u = function(e) { var t = e.match(s); if (t && t.length >= 3) return { key: t[2], parent: d(t[1], window) }; return { key: e, parent: window } }(o); if ("function" != typeof u.parent[u.key]) return; var f = {}; function l() { r.emit("jsonp-end", [], f), e.removeEventListener("load", l, (0, t.m$)(!1)), e.removeEventListener("error", p, (0, t.m$)(!1)) } function p() { r.emit("jsonp-error", [], f), r.emit("jsonp-end", [], f), e.removeEventListener("load", l, (0, t.m$)(!1)), e.removeEventListener("error", p, (0, t.m$)(!1)) } n.inPlace(u.parent, [u.key], "cb-", f), e.addEventListener("load", l, (0, t.m$)(!1)), e.addEventListener("error", p, (0, t.m$)(!1)), r.emit("new-jsonp", [e.src], f) }(e[0]) })), r } const be = {}; function ge(e) { const t = function(e) { return (e || a.ee).get("mutation") }(e); if (be[t.debugId] || !o.il) return t; be[t.debugId] = !0; var r = ne(t), n = b.Yu.MO; return n && (window.MutationObserver = function(e) { return this instanceof n ? new n(r(e, "fn-")) : n.apply(this, arguments) }, MutationObserver.prototype = n.prototype), t } const me = {}; function we(e) { const t = function(e) { return (e || a.ee).get("promise") }(e); if (me[t.debugId]) return t; me[t.debugId] = !0; var r = a.c, n = ne(t), i = b.Yu.PR; return i && function() { function e(e) { var r = t.context(), o = n(e, "executor-", r, null, !1), a = new i(o); return t.context(a).getCtx = function() { return r }, a } o.ZP.Promise = e, Object.defineProperty(o.ZP.Promise, "name", { value: "Promise" }), ["all", "race"].forEach((function(e) { var r = i[e]; i[e] = function(n) { var o = !1; (0, B.D)(n, (function(t, r) { Promise.resolve(r).then(s("all" === e), s(!1)) })); var a = r.apply(i, arguments); return i.resolve(a); function s(e) { return function() { t.emit("propagate", [null, !o], a, !1, !1), o = o || !e } } } })), ["resolve", "reject"].forEach((function(e) { var r = i[e]; i[e] = function(e) { var n = r.apply(i, arguments); return e !== n && t.emit("propagate", [e, !0], n, !1, !1), n } })), i.prototype.catch = function(e) { return this.then(null, e) }, Object.assign(i.prototype, { constructor: { value: e } }), (0, B.D)(Object.getOwnPropertyNames(i), (function(t, r) { try { e[r] = i[r] } catch (e) {} })), se(i.prototype, "then", (function(e) { return function() { var i = this, o = ce.apply(this, arguments), a = r(i); a.promise = i, o[0] = n(o[0], "cb-", a, null, !1), o[1] = n(o[1], "cb-", a, null, !1); var s = e.apply(this, o); return a.nextPromise = s, t.emit("propagate", [i, !0], s, !1, !1), s } })), t.on("executor-start", (function(e) { e[0] = n(e[0], "resolve-", this, null, !1), e[1] = n(e[1], "resolve-", this, null, !1) })), t.on("executor-err", (function(e, t, r) { e[1](r) })), t.on("cb-end", (function(e, r, n) { t.emit("propagate", [n, !0], this.nextPromise, !1, !1) })), t.on("propagate", (function(e, r, n) { this.getCtx && !r || (this.getCtx = function() { if (e instanceof Promise) var r = t.context(e); return r && r.getCtx ? r.getCtx() : this }) })), e.toString = function() { return "" + i } }(), t } const ye = {}; function xe(e) { var t = function(e) { return (e || a.ee).get("events") }(e); if (ye[t.debugId]) return t; ye[t.debugId] = !0; var r = ne(t, !0), n = XMLHttpRequest, i = "addEventListener", s = "removeEventListener"; function c(e) { for (var t = e; t && !t.hasOwnProperty(i);) t = Object.getPrototypeOf(t); t && u(t) } function u(e) { r.inPlace(e, [i, s], "-", d) } function d(e, t) { return e[1] } return "getPrototypeOf" in Object ? (o.il && c(document), c(o.ZP), c(n.prototype)) : n.prototype.hasOwnProperty(i) && (u(o.ZP), u(n.prototype)), t.on(i + "-start", (function(e, t) { var n = e[1]; if (null !== n && ("function" == typeof n || "object" == typeof n)) { var i = (0, M.X)(n, "nr@wrapped", (function() { var e = { object: function() { if ("function" != typeof n.handleEvent) return; return n.handleEvent.apply(n, arguments) }, function: n } [typeof n]; return e ? r(e, "fn-", null, e.name || "anonymous") : n })); this.wrapped = e[1] = i } })), t.on(s + "-start", (function(e) { e[1] = this.wrapped || e[1] })), t } const Pe = {}; function Oe(e) { var r = e || a.ee; const n = function(e) { return (e || a.ee).get("xhr") }(r); if (Pe[n.debugId]) return n; Pe[n.debugId] = !0, xe(r); var i = ne(n), s = b.Yu.XHR, c = b.Yu.MO, u = b.Yu.PR, d = b.Yu.SI, f = "readystatechange", l = ["onload", "onerror", "onabort", "onloadstart", "onloadend", "onprogress", "ontimeout"], p = [], h = o.ZP.XMLHttpRequest.listeners, v = o.ZP.XMLHttpRequest = function(e) { var r = new s(e); function i() { try { n.emit("new-xhr", [r], r), r.addEventListener(f, g, (0, t.m$)(!1)) } catch (e) { console.error(e); try { n.emit("internal-error", [e]) } catch (e) {} } } return this.listeners = h ? [...h, i] : [i], this.listeners.forEach((e => e())), r }; function _(e, t) { i.inPlace(t, ["onreadystatechange"], "fn-", P) } function g() { var e = this, t = n.context(e); e.readyState > 3 && !t.resolved && (t.resolved = !0, n.emit("xhr-resolved", [], e)), i.inPlace(e, l, "fn-", P) } if (function(e, t) { for (var r in e) t[r] = e[r] }(s, v), v.prototype = s.prototype, i.inPlace(v.prototype, ["open", "send"], "-xhr-", P), n.on("send-xhr-start", (function(e, t) { _(e, t), function(e) { p.push(e), c && (m ? m.then(x) : d ? d(x) : (w = -w, y.data = w)) }(t) })), n.on("open-xhr-start", _), c) { var m = u && u.resolve(); if (!d && !u) { var w = 1, y = document.createTextNode(w); new c(x).observe(y, { characterData: !0 }) } } else r.on("fn-end", (function(e) { e[0] && e[0].type === f || x() })); function x() { for (var e = 0; e < p.length; e++) _(0, p[e]); p.length && (p = []) } function P(e, t) { return t } return n } function ke(e) { return xe(e) } function Ee(e) { return K(e) } function Se(e) { return he(e) } function Ce(e) { return le(e) } function Te(e) { return de(e) } function Ae(e) { return Oe(e) } var qe, Ie = {}; try { qe = localStorage.getItem("__nr_flags").split(","), console && "function" == typeof console.log && (Ie.console = !0, -1 !== qe.indexOf("dev") && (Ie.dev = !0), -1 !== qe.indexOf("nr_dev") && (Ie.nrDev = !0)) } catch (e) {} function je(e) { try { Ie.console && je(e) } catch (e) {} } Ie.nrDev && a.ee.on("internal-error", (function(e) { je(e.stack) })), Ie.dev && a.ee.on("fn-err", (function(e, t, r) { je(r.stack) })), Ie.dev && (je("NR AGENT IN DEVELOPMENT MODE"), je("flags: " + (0, B.D)(Ie, (function(e, t) { return e })).join(", "))); var Re = "nr@seenError"; class Ne extends h.W { constructor(e) { var t; super(e), t = this, this.skipNext = 0, this.handleErrors = !1, this.origOnerror = o.ZP?.onerror; const r = this, n = (0, b.OP)(this.agentIdentifier); n.features.err = !0, r.ee.on("fn-start", (function(e, t, n) { r.handleErrors && (r.skipNext += 1) })), r.ee.on("fn-err", (function(e, t, n) { r.handleErrors && !n[Re] && ((0, M.X)(n, Re, (function() { return !0 })), this.thrown = !0, Ze(n, void 0, r.ee)) })), r.ee.on("fn-end", (function() { r.handleErrors && !this.thrown && r.skipNext > 0 && (r.skipNext -= 1) })), r.ee.on("internal-error", (e => { (0, d.p)("ierr", [e, (0, f.zO)(), !0], void 0, void 0, r.ee) })); const i = o.ZP?.onerror; o.ZP.onerror = function() { return i && i(...arguments), t.onerrorHandler(...arguments), !1 }; try { o.ZP?.addEventListener("unhandledrejection", (e => { const t = new Error(`${e.reason}`); (0, d.p)("err", [t, (0, f.zO)(), !1, { unhandledPromiseRejection: 1 }], void 0, void 0, this.ee) })) } catch (e) {} try { throw new Error } catch (e) { "stack" in e && (Te(this.ee), Ce(this.ee), "addEventListener" in o.ZP && ke(this.ee), n.xhrWrappable && Ae(this.ee), r.handleErrors = !0) } } onerrorHandler(e, t, r, n, i) { try { this.skipNext ? this.skipNext -= 1 : Ze(i || new Le(e, t, r), !0, this.ee) } catch (e) { try { (0, d.p)("ierr", [e, (0, f.zO)(), !0], void 0, void 0, this.ee) } catch (e) {} } return "function" == typeof this.origOnerror && this.origOnerror.apply(this, W()(arguments)) } } function Le(e, t, r) { this.message = e || "Uncaught error with no additional information", this.sourceURL = t, this.line = r } function Ze(e, t, r) { var n = t ? null : (0, f.zO)(); (0, d.p)("err", [e, n], void 0, void 0, r) } var He = 1; function ze(e) { var t = typeof e; return !e || "object" !== t && "function" !== t ? -1 : e === o.ZP ? 0 : (0, M.X)(e, "nr@id", (function() { return He++ })) } var Me = __webpack_require__(1719); function De(e) { if ("string" == typeof e && e.length) return e.length; if ("object" == typeof e) { if ("undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer && e.byteLength) return e.byteLength; if ("undefined" != typeof Blob && e instanceof Blob && e.size) return e.size; if (!("undefined" != typeof FormData && e instanceof FormData)) try { return JSON.stringify(e).length } catch (e) { return } } } var We = __webpack_require__(7233), Be = __webpack_require__(2141); class $e { constructor(e) { this.agentIdentifier = e, this.generateTracePayload = this.generateTracePayload.bind(this), this.shouldGenerateTrace = this.shouldGenerateTrace.bind(this) } generateTracePayload(e) { if (!this.shouldGenerateTrace(e)) return null; var t = (0, b.DL)(this.agentIdentifier); if (!t) return null; var r = (t.accountID || "").toString() || null, n = (t.agentID || "").toString() || null, i = (t.trustKey || "").toString() || null; if (!r || !n) return null; var o = (0, Be.M)(), a = (0, Be.Ht)(), s = Date.now(), c = { spanId: o, traceId: a, timestamp: s }; return (e.sameOrigin || this.isAllowedOrigin(e) && this.useTraceContextHeadersForCors()) && (c.traceContextParentHeader = this.generateTraceContextParentHeader(o, a), c.traceContextStateHeader = this.generateTraceContextStateHeader(o, s, r, n, i)), (e.sameOrigin && !this.excludeNewrelicHeader() || !e.sameOrigin && this.isAllowedOrigin(e) && this.useNewrelicHeaderForCors()) && (c.newrelicHeader = this.generateTraceHeader(o, a, s, r, n, i)), c } generateTraceContextParentHeader(e, t) { return "00-" + t + "-" + e + "-01" } generateTraceContextStateHeader(e, t, r, n, i) { return i + "@nr=0-1-" + r + "-" + n + "-" + e + "----" + t } generateTraceHeader(e, t, r, n, i, a) { if (!("function" == typeof o.ZP?.btoa)) return null; var s = { v: [0, 1], d: { ty: "Browser", ac: n, ap: i, id: e, tr: t, ti: r } }; return a && n !== a && (s.d.tk = a), btoa(JSON.stringify(s)) } shouldGenerateTrace(e) { return this.isDtEnabled() && this.isAllowedOrigin(e) } isAllowedOrigin(e) { var t = !1, r = {}; if ((0, b.Mt)(this.agentIdentifier, "distributed_tracing") && (r = (0, b.P_)(this.agentIdentifier).distributed_tracing), e.sameOrigin) t = !0; else if (r.allowed_origins instanceof Array) for (var n = 0; n < r.allowed_origins.length; n++) { var i = (0, We.e)(r.allowed_origins[n]); if (e.hostname === i.hostname && e.protocol === i.protocol && e.port === i.port) { t = !0; break } } return t } isDtEnabled() { var e = (0, b.Mt)(this.agentIdentifier, "distributed_tracing"); return !!e && !!e.enabled } excludeNewrelicHeader() { var e = (0, b.Mt)(this.agentIdentifier, "distributed_tracing"); return !!e && !!e.exclude_newrelic_header } useNewrelicHeaderForCors() { var e = (0, b.Mt)(this.agentIdentifier, "distributed_tracing"); return !!e && !1 !== e.cors_use_newrelic_header } useTraceContextHeadersForCors() { var e = (0, b.Mt)(this.agentIdentifier, "distributed_tracing"); return !!e && !!e.cors_use_tracecontext_headers } } var Ge = ["load", "error", "abort", "timeout"], Fe = Ge.length, Ue = b.Yu.REQ, Xe = o.ZP?.XMLHttpRequest; class Ve extends h.W { constructor(e) { super(e); const r = (0, b.OP)(this.agentIdentifier); r.xhrWrappable && !r.disabled && (r.features.xhr = !0, this.dt = new $e(this.agentIdentifier), this.handler = (e, t, r, n) => (0, d.p)(e, t, r, n, this.ee), this.wrappedFetch = Ee(this.ee), Ae(this.ee), function(e, r, n, i) { function a(e) { var r = this; r.totalCbs = 0, r.called = 0, r.cbTime = 0, r.end = P, r.ended = !1, r.xhrGuids = {}, r.lastSize = null, r.loadCaptureCalled = !1, r.params = this.params || {}, r.metrics = this.metrics || {}, e.addEventListener("load", (function(t) { k(r, e) }), (0, t.m$)(!1)), Me.I && (Me.I > 34 || Me.I < 10) || e.addEventListener("progress", (function(e) { r.lastSize = e.loaded }), (0, t.m$)(!1)) } function s(e) { this.params = { method: e[0] }, O(this, e[1]), this.metrics = {} } function c(t, r) { var n = (0, b.DL)(e); "xpid" in n && this.sameOrigin && r.setRequestHeader("X-NewRelic-ID", n.xpid); var o = i.generateTracePayload(this.parsedOrigin); if (o) { var a = !1; o.newrelicHeader && (r.setRequestHeader("newrelic", o.newrelicHeader), a = !0), o.traceContextParentHeader && (r.setRequestHeader("traceparent", o.traceContextParentHeader), o.traceContextStateHeader && r.setRequestHeader("tracestate", o.traceContextStateHeader), a = !0), a && (this.dt = o) } } function u(e, n) { var i = this.metrics, o = e[0], a = this; if (i && o) { var s = De(o); s && (i.txSize = s) } this.startTime = (0, f.zO)(), this.listener = function(e) { try { "abort" !== e.type || a.loadCaptureCalled || (a.params.aborted = !0), ("load" !== e.type || a.called === a.totalCbs && (a.onloadCalled || "function" != typeof n.onload)) && a.end(n) } catch (e) { try { r.emit("internal-error", [e]) } catch (e) {} } }; for (var c = 0; c < Fe; c++) n.addEventListener(Ge[c], this.listener, (0, t.m$)(!1)) } function d(e, t, r) { this.cbTime += e, t ? this.onloadCalled = !0 : this.called += 1, this.called !== this.totalCbs || !this.onloadCalled && "function" == typeof r.onload || this.end(r) } function l(e, t) { var r = "" + ze(e) + !!t; this.xhrGuids && !this.xhrGuids[r] && (this.xhrGuids[r] = !0, this.totalCbs += 1) } function p(e, t) { var r = "" + ze(e) + !!t; this.xhrGuids && this.xhrGuids[r] && (delete this.xhrGuids[r], this.totalCbs -= 1) } function h() { this.endTime = (0, f.zO)() } function v(e, t) { t instanceof Xe && "load" === e[0] && r.emit("xhr-load-added", [e[1], e[2]], t) } function _(e, t) { t instanceof Xe && "load" === e[0] && r.emit("xhr-load-removed", [e[1], e[2]], t) } function g(e, t, r) { t instanceof Xe && ("onload" === r && (this.onload = !0), ("load" === (e[0] && e[0].type) || this.onload) && (this.xhrCbStart = (0, f.zO)())) } function m(e, t) { this.xhrCbStart && r.emit("xhr-cb-time", [(0, f.zO)() - this.xhrCbStart, this.onload, t], t) } function w(e) { var t, r = e[1] || {}; "string" == typeof e[0] ? t = e[0] : e[0] && e[0].url ? t = e[0].url : o.ZP?.URL && e[0] && e[0] instanceof URL && (t = e[0].href), t && (this.parsedOrigin = (0, We.e)(t), this.sameOrigin = this.parsedOrigin.sameOrigin); var n = i.generateTracePayload(this.parsedOrigin); if (n && (n.newrelicHeader || n.traceContextParentHeader)) if ("string" == typeof e[0] || o.ZP?.URL && e[0] && e[0] instanceof URL) { var a = {}; for (var s in r) a[s] = r[s]; a.headers = new Headers(r.headers || {}), c(a.headers, n) && (this.dt = n), e.length > 1 ? e[1] = a : e.push(a) } else e[0] && e[0].headers && c(e[0].headers, n) && (this.dt = n); function c(e, t) { var r = !1; return t.newrelicHeader && (e.set("newrelic", t.newrelicHeader), r = !0), t.traceContextParentHeader && (e.set("traceparent", t.traceContextParentHeader), t.traceContextStateHeader && e.set("tracestate", t.traceContextStateHeader), r = !0), r } } function y(e, t) { this.params = {}, this.metrics = {}, this.startTime = (0, f.zO)(), this.dt = t, e.length >= 1 && (this.target = e[0]), e.length >= 2 && (this.opts = e[1]); var r, n = this.opts || {}, i = this.target; "string" == typeof i ? r = i : "object" == typeof i && i instanceof Ue ? r = i.url : o.ZP?.URL && "object" == typeof i && i instanceof URL && (r = i.href), O(this, r); var a = ("" + (i && i instanceof Ue && i.method || n.method || "GET")).toUpperCase(); this.params.method = a, this.txSize = De(n.body) || 0 } function x(e, t) { var r; this.endTime = (0, f.zO)(), this.params || (this.params = {}), this.params.status = t ? t.status : 0, "string" == typeof this.rxSize && this.rxSize.length > 0 && (r = +this.rxSize); var i = { txSize: this.txSize, rxSize: r, duration: (0, f.zO)() - this.startTime }; n("xhr", [this.params, i, this.startTime, this.endTime, "fetch"], this) } function P(e) { var t = this.params, r = this.metrics; if (!this.ended) { this.ended = !0; for (var i = 0; i < Fe; i++) e.removeEventListener(Ge[i], this.listener, !1); t.aborted || (r.duration = (0, f.zO)() - this.startTime, this.loadCaptureCalled || 4 !== e.readyState ? null == t.status && (t.status = 0) : k(this, e), r.cbTime = this.cbTime, n("xhr", [t, r, this.startTime, this.endTime, "xhr"], this)) } } function O(e, t) { var r = (0, We.e)(t), n = e.params; n.hostname = r.hostname, n.port = r.port, n.protocol = r.protocol, n.host = r.hostname + ":" + r.port, n.pathname = r.pathname, e.parsedOrigin = r, e.sameOrigin = r.sameOrigin } function k(e, t) { e.params.status = t.status; var r = function(e, t) { var r = e.responseType; return "json" === r && null !== t ? t : "arraybuffer" === r || "blob" === r || "json" === r ? De(e.response) : "text" === r || "" === r || void 0 === r ? De(e.responseText) : void 0 }(t, e.lastSize); if (r && (e.metrics.rxSize = r), e.sameOrigin) { var n = t.getResponseHeader("X-NewRelic-App-Data"); n && (e.params.cat = n.split(", ").pop()) } e.loadCaptureCalled = !0 } r.on("new-xhr", a), r.on("open-xhr-start", s), r.on("open-xhr-end", c), r.on("send-xhr-start", u), r.on("xhr-cb-time", d), r.on("xhr-load-added", l), r.on("xhr-load-removed", p), r.on("xhr-resolved", h), r.on("addEventListener-end", v), r.on("removeEventListener-end", _), r.on("fn-end", m), r.on("fetch-before-start", w), r.on("fetch-start", y), r.on("fn-start", g), r.on("fetch-done", x) }(this.agentIdentifier, this.ee, this.handler, this.dt)) } } var Ye = __webpack_require__(6023), Je = "learResourceTimings", Qe = "addEventListener", Ke = "removeEventListener", et = "resourcetimingbufferfull", tt = "bstResource", rt = "-start", nt = "-end", it = "fn" + rt, ot = "fn" + nt, at = "bstTimer", st = "pushState", ct = b.Yu.EV; class ut extends h.W { constructor(e) { if (super(e), !o.il) return; if (!(window.performance && window.performance.timing && window.performance.getEntriesByType)) return; (0, b.OP)(this.agentIdentifier).features.stn = !0; const r = this.ee; function n(e) { if ((0, d.p)(tt, [window.performance.getEntriesByType("resource")], void 0, void 0, r), window.performance["c" + Je]) try { window.performance[Ke](et, n, !1) } catch (e) {} else try { window.performance[Ke]("webkit" + et, n, !1) } catch (e) {} } this.timerEE = Te(this.ee), this.rafEE = Ce(this.ee), Se(this.ee), ke(this.ee), this.ee.on(it, (function(e, t) { e[0] instanceof ct && (this.bstStart = (0, f.zO)()) })), this.ee.on(ot, (function(e, t) { var n = e[0]; n instanceof ct && (0, d.p)("bst", [n, t, this.bstStart, (0, f.zO)()], void 0, void 0, r) })), this.timerEE.on(it, (function(e, t, r) { this.bstStart = (0, f.zO)(), this.bstType = r })), this.timerEE.on(ot, (function(e, t) { (0, d.p)(at, [t, this.bstStart, (0, f.zO)(), this.bstType], void 0, void 0, r) })), this.rafEE.on(it, (function() { this.bstStart = (0, f.zO)() })), this.rafEE.on(ot, (function(e, t) { (0, d.p)(at, [t, this.bstStart, (0, f.zO)(), "requestAnimationFrame"], void 0, void 0, r) })), this.ee.on(st + rt, (function(e) { this.time = (0, f.zO)(), this.startPath = location.pathname + location.hash })), this.ee.on(st + nt, (function(e) { (0, d.p)("bstHist", [location.pathname + location.hash, this.startPath, this.time], void 0, void 0, r) })), (0, Ye.W)() ? ((0, d.p)(tt, [window.performance.getEntriesByType("resource")], void 0, void 0, r), function() { var e = new PerformanceObserver(((e, t) => { var n = e.getEntries(); (0, d.p)(tt, [n], void 0, void 0, r) })); try { e.observe({ entryTypes: ["resource"] }) } catch (e) {} }()) : Qe in window.performance && (window.performance["c" + Je] ? window.performance[Qe](et, n, (0, t.m$)(!1)) : window.performance[Qe]("webkit" + et, n, (0, t.m$)(!1))), document[Qe]("scroll", this.noOp, (0, t.m$)(!1)), document[Qe]("keypress", this.noOp, (0, t.m$)(!1)), document[Qe]("click", this.noOp, (0, t.m$)(!1)) } noOp(e) {} } class dt extends h.W { constructor(e) { super(e); (0, b.OP)(this.agentIdentifier).features.ins = !0 } } var ft = "-start", lt = "-end", pt = "-body", ht = "fn" + ft, vt = "fn" + lt, _t = "cb" + ft, bt = "cb" + lt, gt = "jsTime", mt = "fetch", wt = "addEventListener", yt = o.ZP, xt = yt.location; class Pt extends h.W { constructor(e) { if (super(e), !o.il) return; const r = (0, b.OP)(this.agentIdentifier); if (!yt[wt] || !r.xhrWrappable || r.disabled) return; r.features.spa = !0; let n, i = 0; const a = this.ee.get("tracer"), s = _e(this.ee); const c = function(e) { return we(e) }(this.ee), u = ke(this.ee), d = Te(this.ee), l = Ae(this.ee), p = Ee(this.ee), h = Se(this.ee), v = function(e) { return ge(e) }(this.ee); function _(e, t) { h.emit("newURL", ["" + xt, t]) } function g() { i++, n = xt.hash, this[ht] = (0, f.zO)() } function m() { i--, xt.hash !== n && _(0, !0); var e = (0, f.zO)(); this[gt] = ~~this[gt] + e - this[ht], this[vt] = e } function w(e, t) { e.on(t, (function() { this[t] = (0, f.zO)() })) } this.ee.on(ht, g), c.on(_t, g), s.on(_t, g), this.ee.on(vt, m), c.on(bt, m), s.on(bt, m), this.ee.buffer([ht, vt, "xhr-resolved"]), u.buffer([ht]), d.buffer(["setTimeout" + lt, "clearTimeout" + ft, ht]), l.buffer([ht, "new-xhr", "send-xhr" + ft]), p.buffer([mt + ft, mt + "-done", mt + pt + ft, mt + pt + lt]), h.buffer(["newURL"]), v.buffer([ht]), c.buffer(["propagate", _t, bt, "executor-err", "resolve" + ft]), a.buffer([ht, "no-" + ht]), s.buffer(["new-jsonp", "cb-start", "jsonp-error", "jsonp-end"]), w(p, mt + ft), w(p, mt + "-done"), w(s, "new-jsonp"), w(s, "jsonp-end"), w(s, "cb-start"), h.on("pushState-end", _), h.on("replaceState-end", _), yt[wt]("hashchange", _, (0, t.m$)(!0)), yt[wt]("load", _, (0, t.m$)(!0)), yt[wt]("popstate", (function() { _(0, i > 1) }), (0, t.m$)(!0)) } } var Ot = __webpack_require__(9011), kt = __webpack_require__(4580); let Et = !1; const St = (0, e.n)(); try { ! function(e) { if (Et) return; const t = (0, kt.gG)(); o.v6 && (t.info.jsAttributes = { ...t.info.jsAttributes, isWorker: !0 }); try { (0, b.CX)(u.Z, t.info), (0, b.Dg)(u.Z, t.init), (0, b.GE)(u.Z, t.loader_config), (0, b.sU)(u.Z, { loaderType: e }), function(e) { var t = (0, kt.fP)(), r = a.ee.get(e), n = r.get("tracer"), i = "api-", o = i + "ixn-"; function s() {}(0, B.D)(["setErrorHandler", "finished", "addToTrace", "inlineHit", "addRelease"], (function(e, r) { t[r] = u(i, r, !0, "api") })), t.addPageAction = u(i, "addPageAction", !0), t.setCurrentRouteName = u(i, "routeName", !0), t.setPageViewName = function(t, r) { if ("string" == typeof t) return "/" !== t.charAt(0) && (t = "/" + t), (0, b.OP)(e).customTransaction = (r || "http://custom.transaction") + t, u(i, "setPageViewName", !0, "api")() }, t.setCustomAttribute = function(t, r) { const n = (0, b.C5)(e); return (0, b.CX)(e, { ...n, jsAttributes: { ...n.jsAttributes, [t]: r } }), u(i, "setCustomAttribute", !0, "api")() }, t.interaction = function() { return (new s).get() }; var c = s.prototype = { createTracer: function(e, t) { var i = {}, a = this, s = "function" == typeof t; return (0, d.p)(o + "tracer", [(0, f.zO)(), e, i], a, void 0, r), function() { if (n.emit((s ? "" : "no-") + "fn-start", [(0, f.zO)(), a, s], i), s) try { return t.apply(this, arguments) } catch (e) { throw n.emit("fn-err", [arguments, this, "string" == typeof e ? new Error(e) : e], i), e } finally { n.emit("fn-end", [(0, f.zO)()], i) } } } }; function u(e, t, n, i) { return function() { return (0, d.p)("record-supportability", ["API/" + t + "/called"], void 0, void 0, r), (0, d.p)(e + t, [(0, f.zO)()].concat(W()(arguments)), n ? null : this, i, r), n ? void 0 : this } }(0, B.D)("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","), (function(e, t) { c[t] = u(o, t) })), t.noticeError = function(e, t) { "string" == typeof e && (e = new Error(e)), (0, d.p)("record-supportability", ["API/noticeError/called"], void 0, void 0, r), (0, d.p)("err", [e, (0, f.zO)(), !1, t], void 0, void 0, r) } }(u.Z), Et = !0 } catch (e) {} }("spa"); const e = (0, Ot.K)(u.Z); e.page_view_event && new v(u.Z), e.page_view_timing && new g(u.Z), e.metrics && new z(u.Z, St), e.jserrors && new Ne(u.Z), e.ajax && new Ve(u.Z), e.session_trace && new ut(u.Z), e.page_action && new dt(u.Z), e.spa && new Pt(u.Z), function(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1e3; t ? setTimeout((() => c(e)), r) : o.il ? n((() => c(e))) : c(e) }("spa") } catch (e) { o.ZP?.newrelic?.ee?.abort && o.ZP.newrelic.ee.abort() } })(), window.NRBA = __webpack_exports__ })(); } } </script> <script type="text/javascript"> var vscom_browser_redirect_params = {"pageLanguage":"en","languageUrls":{"en_US":"https:\/\/visualstudio.microsoft.com\/vs\/pricing\/","en":"https:\/\/visualstudio.microsoft.com\/vs\/pricing\/","US":"https:\/\/visualstudio.microsoft.com\/vs\/pricing\/","zh_CN":"https:\/\/visualstudio.microsoft.com\/zh-hans\/vs\/pricing\/","zh-hans":"https:\/\/visualstudio.microsoft.com\/zh-hans\/vs\/pricing\/","CN":"https:\/\/visualstudio.microsoft.com\/zh-hans\/vs\/pricing\/","zh_TW":"https:\/\/visualstudio.microsoft.com\/zh-hant\/vs\/pricing\/","zh-hant":"https:\/\/visualstudio.microsoft.com\/zh-hant\/vs\/pricing\/","TW":"https:\/\/visualstudio.microsoft.com\/zh-hant\/vs\/pricing\/","fr_FR":"https:\/\/visualstudio.microsoft.com\/fr\/vs\/pricing\/","fr":"https:\/\/visualstudio.microsoft.com\/fr\/vs\/pricing\/","FR":"https:\/\/visualstudio.microsoft.com\/fr\/vs\/pricing\/","de_DE":"https:\/\/visualstudio.microsoft.com\/de\/vs\/pricing\/","de":"https:\/\/visualstudio.microsoft.com\/de\/vs\/pricing\/","DE":"https:\/\/visualstudio.microsoft.com\/de\/vs\/pricing\/","it_IT":"https:\/\/visualstudio.microsoft.com\/it\/vs\/pricing\/","it":"https:\/\/visualstudio.microsoft.com\/it\/vs\/pricing\/","IT":"https:\/\/visualstudio.microsoft.com\/it\/vs\/pricing\/","ja_JP":"https:\/\/visualstudio.microsoft.com\/ja\/vs\/pricing\/","ja":"https:\/\/visualstudio.microsoft.com\/ja\/vs\/pricing\/","JP":"https:\/\/visualstudio.microsoft.com\/ja\/vs\/pricing\/","ru_RU":"https:\/\/visualstudio.microsoft.com\/ru\/vs\/pricing\/","ru":"https:\/\/visualstudio.microsoft.com\/ru\/vs\/pricing\/","RU":"https:\/\/visualstudio.microsoft.com\/ru\/vs\/pricing\/","es_ES":"https:\/\/visualstudio.microsoft.com\/es\/vs\/pricing\/","es":"https:\/\/visualstudio.microsoft.com\/es\/vs\/pricing\/","ES":"https:\/\/visualstudio.microsoft.com\/es\/vs\/pricing\/","cs_CZ":"https:\/\/visualstudio.microsoft.com\/cs\/vs\/pricing\/","cs":"https:\/\/visualstudio.microsoft.com\/cs\/vs\/pricing\/","CZ":"https:\/\/visualstudio.microsoft.com\/cs\/vs\/pricing\/","ko_KR":"https:\/\/visualstudio.microsoft.com\/ko\/vs\/pricing\/","ko":"https:\/\/visualstudio.microsoft.com\/ko\/vs\/pricing\/","KR":"https:\/\/visualstudio.microsoft.com\/ko\/vs\/pricing\/","pl_PL":"https:\/\/visualstudio.microsoft.com\/pl\/vs\/pricing\/","pl":"https:\/\/visualstudio.microsoft.com\/pl\/vs\/pricing\/","PL":"https:\/\/visualstudio.microsoft.com\/pl\/vs\/pricing\/","pt_BR":"https:\/\/visualstudio.microsoft.com\/pt-br\/vs\/pricing\/","pt-br":"https:\/\/visualstudio.microsoft.com\/pt-br\/vs\/pricing\/","BR":"https:\/\/visualstudio.microsoft.com\/pt-br\/vs\/pricing\/","tr_TR":"https:\/\/visualstudio.microsoft.com\/tr\/vs\/pricing\/","tr":"https:\/\/visualstudio.microsoft.com\/tr\/vs\/pricing\/","TR":"https:\/\/visualstudio.microsoft.com\/tr\/vs\/pricing\/"},"cookie":{"name":"_icl_visitor_lang_js","domain":"visualstudio.microsoft.com","path":"\/","expiration":720},"is404":false,"urlLocale":""}; var VScomMLBrowserRedirect=function(vscom_browser_redirect_params){"use strict";var self=this,vscom_browser_redirect_params=vscom_browser_redirect_params||window.vscom_browser_redirect_params;self.vscom_browser_redirect_params=vscom_browser_redirect_params,self.init=function(){var redirectUrl,browserLanguages;if(self.is404())self.status="404";else if(!vscom_browser_redirect_params.urlLocale){var cookieLanguage=self.readCookie(vscom_browser_redirect_params.cookie.name);if(cookieLanguage)return redirectUrl=self.redirectIfNeeded(cookieLanguage),void(self.status="cookie");browserLanguages=self.getBrowserLanguage(),redirectUrl=self.lookUpRedirectParams(browserLanguages),self.status="new";var pageLanguage=vscom_browser_redirect_params.pageLanguage.toLowerCase();void 0===redirectUrl||!1===redirectUrl.url||!1!==navigator.cookieEnabled||redirectUrl.url!==vscom_browser_redirect_params.languageUrls[pageLanguage]?void 0!==redirectUrl&&!1!==redirectUrl.url&&redirectUrl.url!==vscom_browser_redirect_params.languageUrls[pageLanguage]&&(self.status="redirect",self.redirectWithQueryString(redirectUrl.url)):self.status="no cookies"}},self.lookUpRedirectParams=function(browserLanguages){for(var redirectUrl,browserLanguagesLength=browserLanguages.length,pageLanguage=vscom_browser_redirect_params.pageLanguage.toLowerCase(),i=0;i<browserLanguagesLength;i++){var browserLanguage=browserLanguages[i];if(pageLanguage===browserLanguage)break;if(!1!==(redirectUrl=self.mapBrowserToVSCOMLang(browserLanguage)).url)break}return redirectUrl},self.getRedirectUrl=function(browserLanguage){if(!1===browserLanguage)return{url:!1,language:!1};var redirectUrl=!1,redirectLanguage=!1,languageUrls=vscom_browser_redirect_params.languageUrls,languageFirstPart=browserLanguage.substr(0,2),languageLastPart=browserLanguage.substr(3,2);return void 0===languageUrls[browserLanguage]?void 0!==languageUrls[languageFirstPart]?(redirectUrl=languageUrls[languageFirstPart],redirectLanguage=languageFirstPart):void 0!==languageUrls[languageLastPart]&&(redirectUrl=languageUrls[languageLastPart],redirectLanguage=languageLastPart):(redirectUrl=languageUrls[browserLanguage],redirectLanguage=browserLanguage),{url:redirectUrl,language:redirectLanguage}},self.is404=function(){return vscom_browser_redirect_params.is404},self.mapBrowserToVSCOMLang=function(browserLanguage){var redirectUrl;return browserLanguage=self.maybeCovertChinese(browserLanguage),redirectUrl=self.getRedirectUrl(browserLanguage)},self.redirectIfNeeded=function(language){var pageLanguage=vscom_browser_redirect_params.pageLanguage.toLowerCase(),languageUrls=vscom_browser_redirect_params.languageUrls,redirectUrl;return pageLanguage!==(language=self.maybeCovertChinese(language))&&language.substr(0,2)!==pageLanguage&&languageUrls[language]!==languageUrls[pageLanguage]&&!1!==(redirectUrl=self.getRedirectUrl(language)).url&&self.redirectWithQueryString(redirectUrl.url),redirectUrl},self.maybeCovertChinese=function(language){var simpleChinese=["hans","cn","CN"];return"zh"===language.substr(0,2)&&-1===simpleChinese.indexOf(language.substr(3,4))&&language.length>3||"TW"==language?language="zh-hant":("zh"==language||"zh"===language.substr(0,2)&&simpleChinese.indexOf(language.substr(3,4))>=0||"CN"==language)&&(language="zh-hans"),language},self.redirectWithQueryString=function(redirectTo){""===window.location.search||redirectTo.includes("?")||(redirectTo+=window.location.search),window.location=redirectTo},self.getExpirationDate=function(){var date=new Date,currentTime=date.getTime();return date.setTime(currentTime+60*vscom_browser_redirect_params.cookie.expiration*60*1e3),date},self.readCookie=function(a){var b=document.cookie.match("(^|;)\\s*"+a+"\\s*=\\s*([^;]+)");return b?b.pop():""},self.setCookie=function(browserLanguage){var cookieParams=vscom_browser_redirect_params.cookie,cookieName=cookieParams.name,path="/";cookieParams.path&&(path=cookieParams.path),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"language-picker",label:browserLanguage}),document.cookie=cookieName+"= ; expires=Thu, 01 Jan 1970 00:00:01 GMT;",document.cookie=cookieName+"= ; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;",document.cookie=cookieName+"= ; domain= ; expires=Thu, 01 Jan 1970 00:00:01 GMT;",document.cookie=cookieName+"= ; domain= ; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;",document.cookie=cookieName+"= ; domain=."+cookieParams.domain+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;",document.cookie=cookieName+"= ; domain=."+cookieParams.domain+"; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;",document.cookie=cookieName+"="+browserLanguage+"; expires="+self.getExpirationDate().toGMTString()+"; path="+path},self.getBrowserLanguage=function(){var browserLanguages=[];return navigator.languages&&(browserLanguages=navigator.languages),0===browserLanguages.length&&(navigator.language||navigator.userLanguage)&&browserLanguages.push(navigator.language||navigator.userLanguage),0===browserLanguages.length&&(navigator.browserLanguage||navigator.systemLanguage)&&browserLanguages.push(navigator.browserLanguage||navigator.systemLanguage),0!==browserLanguages.length&&(browserLanguages=browserLanguages.join("|").toLowerCase().split("|")),browserLanguages}};"undefined"!=typeof module&&module.exports&&(module.exports={VScomMLBrowserRedirect:VScomMLBrowserRedirect}); VScomMLBrowserRedirect = new VScomMLBrowserRedirect(); VScomMLBrowserRedirect.init(); </script> <script> /*! lazysizes - v4.1.3 | For lazy loading images */ ! function(a, b) { var c = b(a, a.document); a.lazySizes = c, "object" == typeof module && module.exports && (module.exports = c) }(window, function(a, b) { "use strict"; if (b.getElementsByClassName) { var c, d, e = b.documentElement, f = a.Date, g = a.HTMLPictureElement, h = "addEventListener", i = "getAttribute", j = a[h], k = a.setTimeout, l = a.requestAnimationFrame || k, m = a.requestIdleCallback, n = /^picture$/i, o = ["load", "error", "lazyincluded", "_lazyloaded"], p = {}, q = Array.prototype.forEach, r = function(a, b) { return p[b] || (p[b] = new RegExp("(\\s|^)" + b + "(\\s|$)")), p[b].test(a[i]("class") || "") && p[b] }, s = function(a, b) { r(a, b) || a.setAttribute("class", (a[i]("class") || "").trim() + " " + b) }, t = function(a, b) { var c; (c = r(a, b)) && a.setAttribute("class", (a[i]("class") || "").replace(c, " ")) }, u = function(a, b, c) { var d = c ? h : "removeEventListener"; c && u(a, b), o.forEach(function(c) { a[d](c, b) }) }, v = function(a, d, e, f, g) { var h = b.createEvent("Event"); return e || (e = {}), e.instance = c, h.initEvent(d, !f, !g), h.detail = e, a.dispatchEvent(h), h }, w = function(b, c) { var e; !g && (e = a.picturefill || d.pf) ? (c && c.src && !b[i]("srcset") && b.setAttribute("srcset", c.src), e({ reevaluate: !0, elements: [b] })) : c && c.src && (b.src = c.src) }, x = function(a, b) { return (getComputedStyle(a, null) || {})[b] }, y = function(a, b, c) { for (c = c || a.offsetWidth; c < d.minSize && b && !a._lazysizesWidth;) c = b.offsetWidth, b = b.parentNode; return c }, z = function() { var a, c, d = [], e = [], f = d, g = function() { var b = f; for (f = d.length ? e : d, a = !0, c = !1; b.length;) b.shift()(); a = !1 }, h = function(d, e) { a && !e ? d.apply(this, arguments) : (f.push(d), c || (c = !0, (b.hidden ? k : l)(g))) }; return h._lsFlush = g, h }(), A = function(a, b) { return b ? function() { z(a) } : function() { var b = this, c = arguments; z(function() { a.apply(b, c) }) } }, B = function(a) { var b, c = 0, e = d.throttleDelay, g = d.ricTimeout, h = function() { b = !1, c = f.now(), a() }, i = m && g > 49 ? function() { m(h, { timeout: g }), g !== d.ricTimeout && (g = d.ricTimeout) } : A(function() { k(h) }, !0); return function(a) { var d; (a = a === !0) && (g = 33), b || (b = !0, d = e - (f.now() - c), 0 > d && (d = 0), a || 9 > d ? i() : k(i, d)) } }, C = function(a) { var b, c, d = 99, e = function() { b = null, a() }, g = function() { var a = f.now() - c; d > a ? k(g, d - a) : (m || e)(e) }; return function() { c = f.now(), b || (b = k(g, d)) } }; ! function() { var b, c = { lazyClass: "lazyload", loadedClass: "lazyloaded", loadingClass: "lazyloading", preloadClass: "lazypreload", errorClass: "lazyerror", autosizesClass: "lazyautosizes", srcAttr: "data-src", srcsetAttr: "data-srcset", sizesAttr: "data-sizes", minSize: 40, customMedia: {}, init: !0, expFactor: 1.5, hFac: .8, loadMode: 2, loadHidden: !0, ricTimeout: 0, throttleDelay: 125 }; d = a.lazySizesConfig || a.lazysizesConfig || {}; for (b in c) b in d || (d[b] = c[b]); a.lazySizesConfig = d, k(function() { d.init && F() }) }(); var D = function() { var g, l, m, o, p, y, D, F, G, H, I, J, K, L, M = /^img$/i, N = /^iframe$/i, O = "onscroll" in a && !/(gle|ing)bot/.test(navigator.userAgent), P = 0, Q = 0, R = 0, S = -1, T = function(a) { R--, a && a.target && u(a.target, T), (!a || 0 > R || !a.target) && (R = 0) }, U = function(a, c) { var d, f = a, g = "hidden" == x(b.body, "visibility") || "hidden" != x(a.parentNode, "visibility") && "hidden" != x(a, "visibility"); for (F -= c, I += c, G -= c, H += c; g && (f = f.offsetParent) && f != b.body && f != e;) g = (x(f, "opacity") || 1) > 0, g && "visible" != x(f, "overflow") && (d = f.getBoundingClientRect(), g = H > d.left && G < d.right && I > d.top - 1 && F < d.bottom + 1); return g }, V = function() { var a, f, h, j, k, m, n, p, q, r = c.elements; if ((o = d.loadMode) && 8 > R && (a = r.length)) { f = 0, S++, null == K && ("expand" in d || (d.expand = e.clientHeight > 500 && e.clientWidth > 500 ? 500 : 370), J = d.expand, K = J * d.expFactor), K > Q && 1 > R && S > 2 && o > 2 && !b.hidden ? (Q = K, S = 0) : Q = o > 1 && S > 1 && 6 > R ? J : P; for (; a > f; f++) if (r[f] && !r[f]._lazyRace) if (O) if ((p = r[f][i]("data-expand")) && (m = 1 * p) || (m = Q), q !== m && (y = innerWidth + m * L, D = innerHeight + m, n = -1 * m, q = m), h = r[f].getBoundingClientRect(), (I = h.bottom) >= n && (F = h.top) <= D && (H = h.right) >= n * L && (G = h.left) <= y && (I || H || G || F) && (d.loadHidden || "hidden" != x(r[f], "visibility")) && (l && 3 > R && !p && (3 > o || 4 > S) || U(r[f], m))) { if (ba(r[f]), k = !0, R > 9) break } else !k && l && !j && 4 > R && 4 > S && o > 2 && (g[0] || d.preloadAfterLoad) && (g[0] || !p && (I || H || G || F || "auto" != r[f][i](d.sizesAttr))) && (j = g[0] || r[f]); else ba(r[f]); j && !k && ba(j) } }, W = B(V), X = function(a) { s(a.target, d.loadedClass), t(a.target, d.loadingClass), u(a.target, Z), v(a.target, "lazyloaded") }, Y = A(X), Z = function(a) { Y({ target: a.target }) }, $ = function(a, b) { try { a.contentWindow.location.replace(b) } catch (c) { a.src = b } }, _ = function(a) { var b, c = a[i](d.srcsetAttr); (b = d.customMedia[a[i]("data-media") || a[i]("media")]) && a.setAttribute("media", b), c && a.setAttribute("srcset", c) }, aa = A(function(a, b, c, e, f) { var g, h, j, l, o, p; (o = v(a, "lazybeforeunveil", b)).defaultPrevented || (e && (c ? s(a, d.autosizesClass) : a.setAttribute("sizes", e)), h = a[i](d.srcsetAttr), g = a[i](d.srcAttr), f && (j = a.parentNode, l = j && n.test(j.nodeName || "")), p = b.firesLoad || "src" in a && (h || g || l), o = { target: a }, p && (u(a, T, !0), clearTimeout(m), m = k(T, 2500), s(a, d.loadingClass), u(a, Z, !0)), l && q.call(j.getElementsByTagName("source"), _), h ? a.setAttribute("srcset", h) : g && !l && (N.test(a.nodeName) ? $(a, g) : a.src = g), f && (h || l) && w(a, { src: g })), a._lazyRace && delete a._lazyRace, t(a, d.lazyClass), z(function() { (!p || a.complete && a.naturalWidth > 1) && (p ? T(o) : R--, X(o)) }, !0) }), ba = function(a) { var b, c = M.test(a.nodeName), e = c && (a[i](d.sizesAttr) || a[i]("sizes")), f = "auto" == e; (!f && l || !c || !a[i]("src") && !a.srcset || a.complete || r(a, d.errorClass) || !r(a, d.lazyClass)) && (b = v(a, "lazyunveilread").detail, f && E.updateElem(a, !0, a.offsetWidth), a._lazyRace = !0, R++, aa(a, b, f, e, c)) }, ca = function() { if (!l) { if (f.now() - p < 999) return void k(ca, 999); var a = C(function() { d.loadMode = 3, W() }); l = !0, d.loadMode = 3, W(), j("scroll", function() { 3 == d.loadMode && (d.loadMode = 2), a() }, !0) } }; return { _: function() { p = f.now(), c.elements = b.getElementsByClassName(d.lazyClass), g = b.getElementsByClassName(d.lazyClass + " " + d.preloadClass), L = d.hFac, j("scroll", W, !0), j("resize", W, !0), a.MutationObserver ? new MutationObserver(W).observe(e, { childList: !0, subtree: !0, attributes: !0 }) : (e[h]("DOMNodeInserted", W, !0), e[h]("DOMAttrModified", W, !0), setInterval(W, 999)), j("hashchange", W, !0), ["focus", "mouseover", "click", "load", "transitionend", "animationend", "webkitAnimationEnd"].forEach(function(a) { b[h](a, W, !0) }), /d$|^c/.test(b.readyState) ? ca() : (j("load", ca), b[h]("DOMContentLoaded", W), k(ca, 2e4)), c.elements.length ? (V(), z._lsFlush()) : W() }, checkElems: W, unveil: ba } }(), E = function() { var a, c = A(function(a, b, c, d) { var e, f, g; if (a._lazysizesWidth = d, d += "px", a.setAttribute("sizes", d), n.test(b.nodeName || "")) for (e = b.getElementsByTagName("source"), f = 0, g = e.length; g > f; f++) e[f].setAttribute("sizes", d); c.detail.dataAttr || w(a, c.detail) }), e = function(a, b, d) { var e, f = a.parentNode; f && (d = y(a, f, d), e = v(a, "lazybeforesizes", { width: d, dataAttr: !!b }), e.defaultPrevented || (d = e.detail.width, d && d !== a._lazysizesWidth && c(a, f, e, d))) }, f = function() { var b, c = a.length; if (c) for (b = 0; c > b; b++) e(a[b]) }, g = C(f); return { _: function() { a = b.getElementsByClassName(d.autosizesClass), j("resize", g) }, checkElems: g, updateElem: e } }(), F = function() { F.i || (F.i = !0, E._(), D._()) }; return c = { cfg: d, autoSizer: E, loader: D, init: F, uP: w, aC: s, rC: t, hC: r, fire: v, gW: y, rAF: z } } }); </script> <meta name="format-detection" content="telephone=no" /> <meta name="baidu-site-verification" content="codeva-dhhqsW34IG" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script type="text/javascript"> var doc = document.documentElement; doc.setAttribute('data-useragent', navigator.userAgent); </script> <script> function searchbuttonclick() { if (!isSearchFieldVisible()) { displaySearchField(); focusSearchField(); } else if (document.getElementById('searchinput').value) { document.getElementById('searchform').submit(); } else { closeSearchBox(); } } function focusSearchField() { var textBox = jQuery("#searchfield"); textBox = textBox.length > 0 ? textBox[0] : null; jQuery("#searchfield").focus(); if (!!textBox && textBox != document.activeElement) { textBox.focus(); } } function clearSearchText() { document.getElementById('searchinput').value=''; } function isSearchFieldVisible() { return document.getElementById('searchfield').style.display !== 'none'; } function displaySearchField() { document.getElementById('searchfield').style.display = 'inline-block'; } function closeSearchBox(){ clearSearchText(); document.getElementById('searchfield').style.display = 'none'; } </script> <script> window.performance && performance.mark && performance.mark("HeadAreaEnd") </script> </head> <body class="page-template page-template-100-modern page-template-100-modern-php page page-id-42693 page-child parent-pageid-175 microsoft-uhf awb-no-sidebars fusion-image-hovers fusion-pagination-sizing fusion-button_type-flat fusion-button_span-no fusion-button_gradient-linear avada-image-rollover-circle-yes avada-image-rollover-yes avada-image-rollover-direction-left fusion-body ltr no-tablet-sticky-header no-mobile-sticky-header no-mobile-slidingbar no-desktop-totop no-mobile-totop fusion-sub-menu-fade mobile-logo-pos-left layout-wide-mode avada-has-boxed-modal-shadow-none layout-scroll-offset-full avada-has-zero-margin-offset-top avada-has-header-hidden mobile-menu-design-modern fusion-show-pagination-text fusion-header-layout-v1 avada-responsive avada-footer-fx-none avada-menu-highlight-style-bar fusion-search-form-classic fusion-main-menu-search-dropdown fusion-avatar-square avada-dropdown-styles avada-blog-layout-medium alternate avada-blog-archive-layout-large avada-header-shadow-no avada-menu-icon-position-left avada-has-100-footer avada-has-breadcrumb-mobile-hidden avada-has-titlebar-bar_and_content avada-has-pagination-padding avada-flyout-menu-direction-fade avada-ec-views-v1"> <!-- Loading Accessibility Automation Tool in all non prod env --> <!-- Loading Accessibility Automation Tool in all non prod env --> <div id="headerArea" class="uhf" data-m='{"cN":"headerArea","cT":"Area_coreuiArea","id":"a1Body","sN":1,"aN":"Body"}'> <div id="headerRegion" data-region-key="headerregion" data-m='{"cN":"headerRegion","cT":"Region_coreui-region","id":"r1a1","sN":1,"aN":"a1"}' > <div id="headerUniversalHeader" data-m='{"cN":"headerUniversalHeader","cT":"Module_coreui-universalheader","id":"m1r1a1","sN":1,"aN":"r1a1"}' data-module-id="Category|headerRegion|coreui-region|headerUniversalHeader|coreui-universalheader"> <div data-m='{"cN":"cookiebanner_cont","cT":"Container","id":"c1m1r1a1","sN":1,"aN":"m1r1a1"}'> <div id="uhfCookieAlert" data-locale="en-us"> <div id="msccBannerV2"></div> </div> </div> <a id="uhfSkipToMain" class="m-skip-to-main" href="javascript:void(0)" data-href="#main" tabindex="0" data-m='{"cN":"Skip to content_nonnav","id":"nn2m1r1a1","sN":2,"aN":"m1r1a1"}'>Skip to main content</a> <header class="c-uhfh context-uhf no-js c-sgl-stck c-category-header " itemscope="itemscope" data-header-footprint="/VisualStudio/VisualStudioHeaderMsftPROD-Dark-1, fromService: True" data-magict="true" itemtype="http://schema.org/Organization"> <div class="theme-dark js-global-head f-closed global-head-cont" data-m='{"cN":"Universal Header_cont","cT":"Container","id":"c3m1r1a1","sN":3,"aN":"m1r1a1"}'> <div class="c-uhfh-gcontainer-st"> <button type="button" class="c-action-trigger c-glyph glyph-global-nav-button" aria-label="All Microsoft expand to see list of Microsoft products and services" initialState-label="All Microsoft expand to see list of Microsoft products and services" toggleState-label="Close All Microsoft list" aria-expanded="false" data-m='{"cN":"Mobile menu button_nonnav","id":"nn1c3m1r1a1","sN":1,"aN":"c3m1r1a1"}'></button> <button type="button" class="c-action-trigger c-glyph glyph-arrow-htmllegacy c-close-search" aria-label="Close search" aria-expanded="false" data-m='{"cN":"Close Search_nonnav","id":"nn2c3m1r1a1","sN":2,"aN":"c3m1r1a1"}'></button> <a id="uhfLogo" class="c-logo c-sgl-stk-uhfLogo" itemprop="url" href="https://www.microsoft.com" aria-label="Microsoft" data-m='{"cN":"GlobalNav_Logo_cont","cT":"Container","id":"c3c3m1r1a1","sN":3,"aN":"c3m1r1a1"}'> <img alt="" itemprop="logo" class="c-image" src="https://uhf.microsoft.com/images/microsoft/RE1MmB8.png" role="presentation" aria-hidden="true" /> <span itemprop="name" role="presentation" aria-hidden="true">Microsoft</span> </a> <div class="f-mobile-title"> <button type="button" class="c-action-trigger c-glyph glyph-chevron-left" aria-label="See more menu options" data-m='{"cN":"Mobile back button_nonnav","id":"nn4c3m1r1a1","sN":4,"aN":"c3m1r1a1"}'></button> <span data-global-title="Microsoft home" class="js-mobile-title">Visual Studio</span> <button type="button" class="c-action-trigger c-glyph glyph-chevron-right" aria-label="See more menu options" data-m='{"cN":"Mobile forward button_nonnav","id":"nn5c3m1r1a1","sN":5,"aN":"c3m1r1a1"}'></button> </div> <div class="c-show-pipe x-hidden-vp-mobile-st"> <a id="uhfCatLogo" class="c-logo c-cat-logo" href="https://visualstudio.microsoft.com/" aria-label="Visual Studio" itemprop="url" data-m='{"cN":"CatNav_Visual Studio_nav","id":"n6c3m1r1a1","sN":6,"aN":"c3m1r1a1"}'> <span>Visual Studio</span> </a> </div> <div class="cat-logo-button-cont x-hidden"> <button type="button" id="uhfCatLogoButton" class="c-cat-logo-button x-hidden" aria-expanded="false" aria-label="Visual Studio" data-m='{"cN":"Visual Studio_nonnav","id":"nn7c3m1r1a1","sN":7,"aN":"c3m1r1a1"}'> Visual Studio </button> </div> <nav id="uhf-g-nav" aria-label="Contextual menu" class="c-uhfh-gnav" data-m='{"cN":"Category nav_cont","cT":"Container","id":"c8c3m1r1a1","sN":8,"aN":"c3m1r1a1"}'> <ul class="js-paddle-items"> <li class="single-link js-nav-menu x-hidden-none-mobile-vp uhf-menu-item"> <a class="c-uhf-nav-link" href="https://visualstudio.microsoft.com/" data-m='{"cN":"CatNav_Home_nav","id":"n1c8c3m1r1a1","sN":1,"aN":"c8c3m1r1a1"}' > Home </a> </li> <li class="nested-menu uhf-menu-item"> <div class="c-uhf-menu js-nav-menu"> <button type="button" id="devblogs-menu-item" aria-expanded="false" data-m='{"cN":"CatNav_Developer Tools_nonnav","id":"nn2c8c3m1r1a1","sN":2,"aN":"c8c3m1r1a1"}'>Developer Tools</button> <ul class="f-multi-column f-multi-column-2" data-class-idn="f-multi-column f-multi-column-2" aria-hidden="true" data-m='{"cN":"Developer Tools_cont","cT":"Container","id":"c3c8c3m1r1a1","sN":3,"aN":"c8c3m1r1a1"}'> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cN":"Visual Studio 2022_cont","cT":"Container","id":"c1c3c8c3m1r1a1","sN":1,"aN":"c3c8c3m1r1a1"}'> <span id="uhf-navspn-shellmenu_41-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"cN":"CatNav_Visual Studio 2022_nonnav","id":"nn1c1c3c8c3m1r1a1","sN":1,"aN":"c1c3c8c3m1r1a1"}'>Visual Studio 2022</span> <button id="uhf-navbtn-shellmenu_41-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"cN":"CatNav_Visual Studio 2022_nonnav","id":"nn2c1c3c8c3m1r1a1","sN":2,"aN":"c1c3c8c3m1r1a1"}'>Visual Studio 2022</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_41-span"> <li class="js-nav-menu single-link" data-m='{"cN":"Overview_cont","cT":"Container","id":"c3c1c3c8c3m1r1a1","sN":3,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_42" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/vs/" data-m='{"cN":"CatNav_Overview_nav","id":"n1c3c1c3c8c3m1r1a1","sN":1,"aN":"c3c1c3c8c3m1r1a1"}'>Overview</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Features_cont","cT":"Container","id":"c4c1c3c8c3m1r1a1","sN":4,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_43" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/vs/features/" data-m='{"cN":"CatNav_Features_nav","id":"n1c4c1c3c8c3m1r1a1","sN":1,"aN":"c4c1c3c8c3m1r1a1"}'>Features</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Editions_cont","cT":"Container","id":"c5c1c3c8c3m1r1a1","sN":5,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_44" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/vs/compare/" data-m='{"cN":"CatNav_Editions_nav","id":"n1c5c1c3c8c3m1r1a1","sN":1,"aN":"c5c1c3c8c3m1r1a1"}'>Editions</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Extensions_cont","cT":"Container","id":"c6c1c3c8c3m1r1a1","sN":6,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_45" class="js-subm-uhf-nav-link" href="https://marketplace.visualstudio.com/vs" data-m='{"cN":"CatNav_Extensions_nav","id":"n1c6c1c3c8c3m1r1a1","sN":1,"aN":"c6c1c3c8c3m1r1a1"}'>Extensions</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Get Started_cont","cT":"Container","id":"c7c1c3c8c3m1r1a1","sN":7,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_46" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/vs/getting-started/" data-m='{"cN":"CatNav_Get Started_nav","id":"n1c7c1c3c8c3m1r1a1","sN":1,"aN":"c7c1c3c8c3m1r1a1"}'>Get Started</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Service Status_cont","cT":"Container","id":"c8c1c3c8c3m1r1a1","sN":8,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_47" class="js-subm-uhf-nav-link" href="https://aka.ms/vsstatus" data-m='{"cN":"CatNav_Service Status_nav","id":"n1c8c1c3c8c3m1r1a1","sN":1,"aN":"c8c1c3c8c3m1r1a1"}'>Service Status</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"FAQ Support_cont","cT":"Container","id":"c9c1c3c8c3m1r1a1","sN":9,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_48" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/vs/support/" data-m='{"cN":"CatNav_FAQ Support_nav","id":"n1c9c1c3c8c3m1r1a1","sN":1,"aN":"c9c1c3c8c3m1r1a1"}'>FAQ Support</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Documentation_cont","cT":"Container","id":"c10c1c3c8c3m1r1a1","sN":10,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_49" class="js-subm-uhf-nav-link" href="https://learn.microsoft.com/visualstudio/" data-m='{"cN":"CatNav_Documentation_nav","id":"n1c10c1c3c8c3m1r1a1","sN":1,"aN":"c10c1c3c8c3m1r1a1"}'>Documentation</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Blog_cont","cT":"Container","id":"c11c1c3c8c3m1r1a1","sN":11,"aN":"c1c3c8c3m1r1a1"}'> <a id="shellmenu_50" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/visualstudio/" data-m='{"cN":"CatNav_Blog_nav","id":"n1c11c1c3c8c3m1r1a1","sN":1,"aN":"c11c1c3c8c3m1r1a1"}'>Blog</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cN":"Visual Studio Code_cont","cT":"Container","id":"c2c3c8c3m1r1a1","sN":2,"aN":"c3c8c3m1r1a1"}'> <span id="uhf-navspn-shellmenu_51-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"cN":"CatNav_Visual Studio Code_nonnav","id":"nn1c2c3c8c3m1r1a1","sN":1,"aN":"c2c3c8c3m1r1a1"}'>Visual Studio Code</span> <button id="uhf-navbtn-shellmenu_51-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"cN":"CatNav_Visual Studio Code_nonnav","id":"nn2c2c3c8c3m1r1a1","sN":2,"aN":"c2c3c8c3m1r1a1"}'>Visual Studio Code</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_51-span"> <li class="js-nav-menu single-link" data-m='{"cN":"Overview_cont","cT":"Container","id":"c3c2c3c8c3m1r1a1","sN":3,"aN":"c2c3c8c3m1r1a1"}'> <a id="shellmenu_52" class="js-subm-uhf-nav-link" href="https://code.visualstudio.com/?wt.mc_id=DX_841432" data-m='{"cN":"CatNav_Overview_nav","id":"n1c3c2c3c8c3m1r1a1","sN":1,"aN":"c3c2c3c8c3m1r1a1"}'>Overview</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Extensions_cont","cT":"Container","id":"c4c2c3c8c3m1r1a1","sN":4,"aN":"c2c3c8c3m1r1a1"}'> <a id="shellmenu_53" class="js-subm-uhf-nav-link" href="https://marketplace.visualstudio.com/vscode" data-m='{"cN":"CatNav_Extensions_nav","id":"n1c4c2c3c8c3m1r1a1","sN":1,"aN":"c4c2c3c8c3m1r1a1"}'>Extensions</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Support_cont","cT":"Container","id":"c5c2c3c8c3m1r1a1","sN":5,"aN":"c2c3c8c3m1r1a1"}'> <a id="shellmenu_54" class="js-subm-uhf-nav-link" href="https://support.serviceshub.microsoft.com/supportforbusiness/create?sapId=d66407ed-3967-b000-4cfb-2c318cad363d" data-m='{"cN":"CatNav_Support_nav","id":"n1c5c2c3c8c3m1r1a1","sN":1,"aN":"c5c2c3c8c3m1r1a1"}'>Support</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Documentation_cont","cT":"Container","id":"c6c2c3c8c3m1r1a1","sN":6,"aN":"c2c3c8c3m1r1a1"}'> <a id="shellmenu_55" class="js-subm-uhf-nav-link" href="https://code.visualstudio.com/docs" data-m='{"cN":"CatNav_Documentation_nav","id":"n1c6c2c3c8c3m1r1a1","sN":1,"aN":"c6c2c3c8c3m1r1a1"}'>Documentation</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Blog_cont","cT":"Container","id":"c7c2c3c8c3m1r1a1","sN":7,"aN":"c2c3c8c3m1r1a1"}'> <a id="shellmenu_56" class="js-subm-uhf-nav-link" href="https://code.visualstudio.com/blogs" data-m='{"cN":"CatNav_Blog_nav","id":"n1c7c2c3c8c3m1r1a1","sN":1,"aN":"c7c2c3c8c3m1r1a1"}'>Blog</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"VS Code for Education_cont","cT":"Container","id":"c8c2c3c8c3m1r1a1","sN":8,"aN":"c2c3c8c3m1r1a1"}'> <a id="shellmenu_57" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/vscode-edu/" data-m='{"cN":"CatNav_VS Code for Education_nav","id":"n1c8c2c3c8c3m1r1a1","sN":1,"aN":"c8c2c3c8c3m1r1a1"}'>VS Code for Education</a> </li> </ul> </li> </ul> </div> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_58" class="c-uhf-nav-link" href="https://visualstudio.microsoft.com/downloads/" data-m='{"cN":"CatNav_Downloads_nav","id":"n4c8c3m1r1a1","sN":4,"aN":"c8c3m1r1a1"}'>Downloads</a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_59" class="c-uhf-nav-link" href="https://visualstudio.microsoft.com/vs/pricing/?tab=paid-subscriptions" data-m='{"cN":"CatNav_Buy_nav","id":"n5c8c3m1r1a1","sN":5,"aN":"c8c3m1r1a1"}'>Buy</a> </li> <li class="nested-menu uhf-menu-item"> <div class="c-uhf-menu js-nav-menu"> <button type="button" id="c-shellmenu_60" aria-expanded="false" data-m='{"cN":"CatNav_Subscriptions_nonnav","id":"nn6c8c3m1r1a1","sN":6,"aN":"c8c3m1r1a1"}'>Subscriptions</button> <ul class="" data-class-idn="" aria-hidden="true" data-m='{"cN":"Subscriptions_cont","cT":"Container","id":"c7c8c3m1r1a1","sN":7,"aN":"c8c3m1r1a1"}'> <li class="js-nav-menu single-link" data-m='{"cN":"Overview_cont","cT":"Container","id":"c1c7c8c3m1r1a1","sN":1,"aN":"c7c8c3m1r1a1"}'> <a id="c-shellmenu_61" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/subscriptions/" data-m='{"cN":"CatNav_Overview_nav","id":"n1c1c7c8c3m1r1a1","sN":1,"aN":"c1c7c8c3m1r1a1"}'>Overview</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Support​_cont","cT":"Container","id":"c2c7c8c3m1r1a1","sN":2,"aN":"c7c8c3m1r1a1"}'> <a id="c-shellmenu_62" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/subscriptions/support/" data-m='{"cN":"CatNav_Support​_nav","id":"n1c2c7c8c3m1r1a1","sN":1,"aN":"c2c7c8c3m1r1a1"}'>Support​</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Administrator Portal​_cont","cT":"Container","id":"c3c7c8c3m1r1a1","sN":3,"aN":"c7c8c3m1r1a1"}'> <a id="c-shellmenu_63" class="js-subm-uhf-nav-link" href="https://manage.visualstudio.com/GetHelp" data-m='{"cN":"CatNav_Administrator Portal​_nav","id":"n1c3c7c8c3m1r1a1","sN":1,"aN":"c3c7c8c3m1r1a1"}'>Administrator Portal​</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Subscriber Portal​_cont","cT":"Container","id":"c4c7c8c3m1r1a1","sN":4,"aN":"c7c8c3m1r1a1"}'> <a id="c-shellmenu_64" class="js-subm-uhf-nav-link" href="https://my.visualstudio.com/GetHelp" data-m='{"cN":"CatNav_Subscriber Portal​_nav","id":"n1c4c7c8c3m1r1a1","sN":1,"aN":"c4c7c8c3m1r1a1"}'>Subscriber Portal​</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Dev Essentials_cont","cT":"Container","id":"c5c7c8c3m1r1a1","sN":5,"aN":"c7c8c3m1r1a1"}'> <a id="c-shellmenu_65" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/dev-essentials/" data-m='{"cN":"CatNav_Dev Essentials_nav","id":"n1c5c7c8c3m1r1a1","sN":1,"aN":"c5c7c8c3m1r1a1"}'>Dev Essentials</a> </li> </ul> </div> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_66" class="c-uhf-nav-link" href="https://visualstudio.microsoft.com/hub/" data-m='{"cN":"CatNav_Visual Studio Hub_nav","id":"n8c8c3m1r1a1","sN":8,"aN":"c8c3m1r1a1"}'>Visual Studio Hub</a> </li> <li id="overflow-menu" class="overflow-menu x-hidden uhf-menu-item"> <div class="c-uhf-menu js-nav-menu"> <button data-m='{"pid":"More","id":"nn9c8c3m1r1a1","sN":9,"aN":"c8c3m1r1a1"}' type="button" aria-label="More" aria-expanded="false">More</button> <ul id="overflow-menu-list" aria-hidden="true" class="overflow-menu-list"> </ul> </div> </li> <li class="single-link js-nav-menu" id="c-uhf-nav-cta"> <a class="c-uhf-nav-link" href="https://visualstudio.microsoft.com/free-developer-offers/" data-m='{"cN":"CatNav_cta_Free Visual Studio_nav","id":"n10c8c3m1r1a1","sN":10,"aN":"c8c3m1r1a1"}'>Free Visual Studio</a> </li> </ul> </nav> <div class="c-uhfh-actions" data-m='{"cN":"Header actions_cont","cT":"Container","id":"c9c3m1r1a1","sN":9,"aN":"c3m1r1a1"}'> <div class="wf-menu"> <nav id="uhf-c-nav" aria-label="All Microsoft menu" data-m='{"cN":"GlobalNav_cont","cT":"Container","id":"c1c9c3m1r1a1","sN":1,"aN":"c9c3m1r1a1"}'> <ul class="js-paddle-items"> <li> <div class="c-uhf-menu js-nav-menu"> <button type="button" class="c-button-logo all-ms-nav" aria-expanded="false" data-m='{"cN":"GlobalNav_More_nonnav","id":"nn1c1c9c3m1r1a1","sN":1,"aN":"c1c9c3m1r1a1"}'> <span>All Microsoft</span></button> <ul class="f-multi-column f-multi-column-4" aria-hidden="true" data-m='{"cN":"More_cont","cT":"Container","id":"c2c1c9c3m1r1a1","sN":2,"aN":"c1c9c3m1r1a1"}'> <li class="c-w0-contr"> <h2 class="c-uhf-sronly">Global</h2> <ul class="c-w0"> <li class="js-nav-menu single-link" data-m='{"cN":"Microsoft Security_cont","cT":"Container","id":"c1c2c1c9c3m1r1a1","sN":1,"aN":"c2c1c9c3m1r1a1"}'> <a id="shellmenu_0" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/security" data-m='{"cN":"W0Nav_Microsoft Security_nav","id":"n1c1c2c1c9c3m1r1a1","sN":1,"aN":"c1c2c1c9c3m1r1a1"}'>Microsoft Security</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Azure_cont","cT":"Container","id":"c2c2c1c9c3m1r1a1","sN":2,"aN":"c2c1c9c3m1r1a1"}'> <a id="shellmenu_1" class="js-subm-uhf-nav-link" href="https://azure.microsoft.com/en-us/" data-m='{"cN":"W0Nav_Azure_nav","id":"n1c2c2c1c9c3m1r1a1","sN":1,"aN":"c2c2c1c9c3m1r1a1"}'>Azure</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Dynamics 365_cont","cT":"Container","id":"c3c2c1c9c3m1r1a1","sN":3,"aN":"c2c1c9c3m1r1a1"}'> <a id="shellmenu_2" class="js-subm-uhf-nav-link" href="https://dynamics.microsoft.com/en-us/" data-m='{"cN":"W0Nav_Dynamics 365_nav","id":"n1c3c2c1c9c3m1r1a1","sN":1,"aN":"c3c2c1c9c3m1r1a1"}'>Dynamics 365</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Microsoft 365_cont","cT":"Container","id":"c4c2c1c9c3m1r1a1","sN":4,"aN":"c2c1c9c3m1r1a1"}'> <a id="shellmenu_3" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-365/business/" data-m='{"cN":"W0Nav_Microsoft 365_nav","id":"n1c4c2c1c9c3m1r1a1","sN":1,"aN":"c4c2c1c9c3m1r1a1"}'>Microsoft 365</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Microsoft Teams_cont","cT":"Container","id":"c5c2c1c9c3m1r1a1","sN":5,"aN":"c2c1c9c3m1r1a1"}'> <a id="shellmenu_4" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m='{"cN":"W0Nav_Microsoft Teams_nav","id":"n1c5c2c1c9c3m1r1a1","sN":1,"aN":"c5c2c1c9c3m1r1a1"}'>Microsoft Teams</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Windows 365_cont","cT":"Container","id":"c6c2c1c9c3m1r1a1","sN":6,"aN":"c2c1c9c3m1r1a1"}'> <a id="shellmenu_5" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/windows-365" data-m='{"cN":"W0Nav_Windows 365_nav","id":"n1c6c2c1c9c3m1r1a1","sN":1,"aN":"c6c2c1c9c3m1r1a1"}'>Windows 365</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c7c2c1c9c3m1r1a1","sN":7,"aN":"c2c1c9c3m1r1a1"}'> <span id="uhf-navspn-shellmenu_7-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c7c2c1c9c3m1r1a1","sN":1,"aN":"c7c2c1c9c3m1r1a1"}'>Tech &amp; innovation</span> <button id="uhf-navbtn-shellmenu_7-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c7c2c1c9c3m1r1a1","sN":2,"aN":"c7c2c1c9c3m1r1a1"}'>Tech &amp; innovation</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_7-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_MicrosoftCloud_cont","cT":"Container","id":"c3c7c2c1c9c3m1r1a1","sN":3,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_8" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-cloud" data-m='{"cN":"GlobalNav_More_TechInnovation_MicrosoftCloud_nav","id":"n1c3c7c2c1c9c3m1r1a1","sN":1,"aN":"c3c7c2c1c9c3m1r1a1"}'>Microsoft Cloud</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation__AI_cont","cT":"Container","id":"c4c7c2c1c9c3m1r1a1","sN":4,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_9" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/ai" data-m='{"cN":"GlobalNav_More_TechInnovation__AI_nav","id":"n1c4c7c2c1c9c3m1r1a1","sN":1,"aN":"c4c7c2c1c9c3m1r1a1"}'>AI</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_AzureSpace_cont","cT":"Container","id":"c5c7c2c1c9c3m1r1a1","sN":5,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_10" class="js-subm-uhf-nav-link" href="https://azure.microsoft.com/en-us/solutions/space/" data-m='{"cN":"GlobalNav_More_TechInnovation_AzureSpace_nav","id":"n1c5c7c2c1c9c3m1r1a1","sN":1,"aN":"c5c7c2c1c9c3m1r1a1"}'>Azure Space</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_MixedReality_cont","cT":"Container","id":"c6c7c2c1c9c3m1r1a1","sN":6,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_11" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/mixed-reality/windows-mixed-reality" data-m='{"cN":"GlobalNav_More_TechInnovation_MixedReality_nav","id":"n1c6c7c2c1c9c3m1r1a1","sN":1,"aN":"c6c7c2c1c9c3m1r1a1"}'>Mixed reality</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_MicrosoftHololens_cont","cT":"Container","id":"c7c7c2c1c9c3m1r1a1","sN":7,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_12" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/hololens" data-m='{"cN":"GlobalNav_More_TechInnovation_MicrosoftHololens_nav","id":"n1c7c7c2c1c9c3m1r1a1","sN":1,"aN":"c7c7c2c1c9c3m1r1a1"}'>Microsoft HoloLens</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_Microsoft Viva_cont","cT":"Container","id":"c8c7c2c1c9c3m1r1a1","sN":8,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_13" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-viva" data-m='{"cN":"GlobalNav_More_TechInnovation_Microsoft Viva_nav","id":"n1c8c7c2c1c9c3m1r1a1","sN":1,"aN":"c8c7c2c1c9c3m1r1a1"}'>Microsoft Viva</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_QuantumComputing_cont","cT":"Container","id":"c9c7c2c1c9c3m1r1a1","sN":9,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_14" class="js-subm-uhf-nav-link" href="https://azure.microsoft.com/en-us/solutions/quantum-computing/" data-m='{"cN":"GlobalNav_More_TechInnovation_QuantumComputing_nav","id":"n1c9c7c2c1c9c3m1r1a1","sN":1,"aN":"c9c7c2c1c9c3m1r1a1"}'>Quantum computing</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_TechInnovation_Sustainability_cont","cT":"Container","id":"c10c7c2c1c9c3m1r1a1","sN":10,"aN":"c7c2c1c9c3m1r1a1"}'> <a id="shellmenu_15" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/sustainability/" data-m='{"cN":"GlobalNav_More_TechInnovation_Sustainability_nav","id":"n1c10c7c2c1c9c3m1r1a1","sN":1,"aN":"c10c7c2c1c9c3m1r1a1"}'>Sustainability</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c8c2c1c9c3m1r1a1","sN":8,"aN":"c2c1c9c3m1r1a1"}'> <span id="uhf-navspn-shellmenu_16-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c8c2c1c9c3m1r1a1","sN":1,"aN":"c8c2c1c9c3m1r1a1"}'>Industries</span> <button id="uhf-navbtn-shellmenu_16-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c8c2c1c9c3m1r1a1","sN":2,"aN":"c8c2c1c9c3m1r1a1"}'>Industries</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_16-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Education_cont","cT":"Container","id":"c3c8c2c1c9c3m1r1a1","sN":3,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_17" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/education" data-m='{"cN":"GlobalNav_More_Industries_Education_nav","id":"n1c3c8c2c1c9c3m1r1a1","sN":1,"aN":"c3c8c2c1c9c3m1r1a1"}'>Education</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Automotive_cont","cT":"Container","id":"c4c8c2c1c9c3m1r1a1","sN":4,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_18" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry/automotive" data-m='{"cN":"GlobalNav_More_Industries_Automotive_nav","id":"n1c4c8c2c1c9c3m1r1a1","sN":1,"aN":"c4c8c2c1c9c3m1r1a1"}'>Automotive</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Financialservices_cont","cT":"Container","id":"c5c8c2c1c9c3m1r1a1","sN":5,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_19" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry/financial-services/banking" data-m='{"cN":"GlobalNav_More_Industries_Financialservices_nav","id":"n1c5c8c2c1c9c3m1r1a1","sN":1,"aN":"c5c8c2c1c9c3m1r1a1"}'>Financial services</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Government_cont","cT":"Container","id":"c6c8c2c1c9c3m1r1a1","sN":6,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_20" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry/government" data-m='{"cN":"GlobalNav_More_Industries_Government_nav","id":"n1c6c8c2c1c9c3m1r1a1","sN":1,"aN":"c6c8c2c1c9c3m1r1a1"}'>Government</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Health_cont","cT":"Container","id":"c7c8c2c1c9c3m1r1a1","sN":7,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_21" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry/health/microsoft-cloud-for-healthcare" data-m='{"cN":"GlobalNav_More_Industries_Health_nav","id":"n1c7c8c2c1c9c3m1r1a1","sN":1,"aN":"c7c8c2c1c9c3m1r1a1"}'>Healthcare</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Manufacturing_cont","cT":"Container","id":"c8c8c2c1c9c3m1r1a1","sN":8,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_22" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry/manufacturing/microsoft-cloud-for-manufacturing" data-m='{"cN":"GlobalNav_More_Industries_Manufacturing_nav","id":"n1c8c8c2c1c9c3m1r1a1","sN":1,"aN":"c8c8c2c1c9c3m1r1a1"}'>Manufacturing</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Retail_cont","cT":"Container","id":"c9c8c2c1c9c3m1r1a1","sN":9,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_23" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry/consumer-goods" data-m='{"cN":"GlobalNav_More_Industries_Retail_nav","id":"n1c9c8c2c1c9c3m1r1a1","sN":1,"aN":"c9c8c2c1c9c3m1r1a1"}'>Retail</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Industries_Allindustries_cont","cT":"Container","id":"c10c8c2c1c9c3m1r1a1","sN":10,"aN":"c8c2c1c9c3m1r1a1"}'> <a id="shellmenu_24" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry" data-m='{"cN":"GlobalNav_More_Industries_Allindustries_nav","id":"n1c10c8c2c1c9c3m1r1a1","sN":1,"aN":"c10c8c2c1c9c3m1r1a1"}'>All industries</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c9c2c1c9c3m1r1a1","sN":9,"aN":"c2c1c9c3m1r1a1"}'> <span id="uhf-navspn-shellmenu_25-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c9c2c1c9c3m1r1a1","sN":1,"aN":"c9c2c1c9c3m1r1a1"}'>Partners</span> <button id="uhf-navbtn-shellmenu_25-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c9c2c1c9c3m1r1a1","sN":2,"aN":"c9c2c1c9c3m1r1a1"}'>Partners</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_25-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Partner_FindPartner_cont","cT":"Container","id":"c3c9c2c1c9c3m1r1a1","sN":3,"aN":"c9c2c1c9c3m1r1a1"}'> <a id="shellmenu_26" class="js-subm-uhf-nav-link" href="https://partner.microsoft.com/en-US/" data-m='{"cN":"GlobalNav_More_Partner_FindPartner_nav","id":"n1c3c9c2c1c9c3m1r1a1","sN":1,"aN":"c3c9c2c1c9c3m1r1a1"}'>Find a partner</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Partner_BecomePartner_cont","cT":"Container","id":"c4c9c2c1c9c3m1r1a1","sN":4,"aN":"c9c2c1c9c3m1r1a1"}'> <a id="shellmenu_27" class="js-subm-uhf-nav-link" href="https://partner.microsoft.com/en-US/membership/cloud-solution-provider" data-m='{"cN":"GlobalNav_More_Partner_BecomePartner_nav","id":"n1c4c9c2c1c9c3m1r1a1","sN":1,"aN":"c4c9c2c1c9c3m1r1a1"}'>Become a partner</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Partner_PartnerNetwork_cont","cT":"Container","id":"c5c9c2c1c9c3m1r1a1","sN":5,"aN":"c9c2c1c9c3m1r1a1"}'> <a id="shellmenu_28" class="js-subm-uhf-nav-link" href="https://partner.microsoft.com/en-us/membership" data-m='{"cN":"GlobalNav_More_Partner_PartnerNetwork_nav","id":"n1c5c9c2c1c9c3m1r1a1","sN":1,"aN":"c5c9c2c1c9c3m1r1a1"}'>Partner Network</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Partner_AzureMarketplace_cont","cT":"Container","id":"c6c9c2c1c9c3m1r1a1","sN":6,"aN":"c9c2c1c9c3m1r1a1"}'> <a id="shellmenu_29" class="js-subm-uhf-nav-link" href="https://azuremarketplace.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_Partner_AzureMarketplace_nav","id":"n1c6c9c2c1c9c3m1r1a1","sN":1,"aN":"c6c9c2c1c9c3m1r1a1"}'>Azure Marketplace</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Partner_AppSource_cont","cT":"Container","id":"c7c9c2c1c9c3m1r1a1","sN":7,"aN":"c9c2c1c9c3m1r1a1"}'> <a id="shellmenu_30" class="js-subm-uhf-nav-link" href="https://appsource.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_Partner_AppSource_nav","id":"n1c7c9c2c1c9c3m1r1a1","sN":1,"aN":"c7c9c2c1c9c3m1r1a1"}'>AppSource</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c10c2c1c9c3m1r1a1","sN":10,"aN":"c2c1c9c3m1r1a1"}'> <span id="uhf-navspn-shellmenu_31-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c10c2c1c9c3m1r1a1","sN":1,"aN":"c10c2c1c9c3m1r1a1"}'>Resources</span> <button id="uhf-navbtn-shellmenu_31-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c10c2c1c9c3m1r1a1","sN":2,"aN":"c10c2c1c9c3m1r1a1"}'>Resources</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_31-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_Blog_cont","cT":"Container","id":"c3c10c2c1c9c3m1r1a1","sN":3,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_32" class="js-subm-uhf-nav-link" href="https://blogs.microsoft.com/" data-m='{"cN":"GlobalNav_More_Resources_Blog_nav","id":"n1c3c10c2c1c9c3m1r1a1","sN":1,"aN":"c3c10c2c1c9c3m1r1a1"}'>Blog</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_MicrosoftAdvertising_cont","cT":"Container","id":"c4c10c2c1c9c3m1r1a1","sN":4,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_33" class="js-subm-uhf-nav-link" href="https://about.ads.microsoft.com/en-us?s_cid=dig-src_uhfcomm" data-m='{"cN":"GlobalNav_More_Resources_MicrosoftAdvertising_nav","id":"n1c4c10c2c1c9c3m1r1a1","sN":1,"aN":"c4c10c2c1c9c3m1r1a1"}'>Microsoft Advertising</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_DeveloperCenter_cont","cT":"Container","id":"c5c10c2c1c9c3m1r1a1","sN":5,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_34" class="js-subm-uhf-nav-link" href="https://developer.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_Resources_DeveloperCenter_nav","id":"n1c5c10c2c1c9c3m1r1a1","sN":1,"aN":"c5c10c2c1c9c3m1r1a1"}'>Developer Center</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_Documentation_cont","cT":"Container","id":"c6c10c2c1c9c3m1r1a1","sN":6,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_35" class="js-subm-uhf-nav-link" href="https://learn.microsoft.com/docs/" data-m='{"cN":"GlobalNav_More_Resources_Documentation_nav","id":"n1c6c10c2c1c9c3m1r1a1","sN":1,"aN":"c6c10c2c1c9c3m1r1a1"}'>Documentation</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_Events_cont","cT":"Container","id":"c7c10c2c1c9c3m1r1a1","sN":7,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_36" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/events" data-m='{"cN":"GlobalNav_More_Resources_Events_nav","id":"n1c7c10c2c1c9c3m1r1a1","sN":1,"aN":"c7c10c2c1c9c3m1r1a1"}'>Events</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_Licensing_cont","cT":"Container","id":"c8c10c2c1c9c3m1r1a1","sN":8,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_37" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/licensing/" data-m='{"cN":"GlobalNav_More_Resources_Licensing_nav","id":"n1c8c10c2c1c9c3m1r1a1","sN":1,"aN":"c8c10c2c1c9c3m1r1a1"}'>Licensing</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_MicrosoftLearn_cont","cT":"Container","id":"c9c10c2c1c9c3m1r1a1","sN":9,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_38" class="js-subm-uhf-nav-link" href="https://learn.microsoft.com/" data-m='{"cN":"GlobalNav_More_Resources_MicrosoftLearn_nav","id":"n1c9c10c2c1c9c3m1r1a1","sN":1,"aN":"c9c10c2c1c9c3m1r1a1"}'>Microsoft Learn</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Resources_MicrosoftResearch_cont","cT":"Container","id":"c10c10c2c1c9c3m1r1a1","sN":10,"aN":"c10c2c1c9c3m1r1a1"}'> <a id="shellmenu_39" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/research/" data-m='{"cN":"GlobalNav_More_Resources_MicrosoftResearch_nav","id":"n1c10c10c2c1c9c3m1r1a1","sN":1,"aN":"c10c10c2c1c9c3m1r1a1"}'>Microsoft Research</a> </li> </ul> </li> <li class="f-multi-column-info"> <a data-m='{"id":"n11c2c1c9c3m1r1a1","sN":11,"aN":"c2c1c9c3m1r1a1"}' href="https://www.microsoft.com/en-us/sitemap" aria-label="" class="c-glyph">View Sitemap</a> </li> </ul> </div> </li> </ul> </nav> </div> <form class="c-search" autocomplete="off" id="searchForm" name="searchForm" role="search" action="/en-us/search/" method="GET" data-seAutoSuggest='{"isAutosuggestDisabled":false,"queryParams":{"market":"en-us","clientId":"7F27B536-CF6B-4C65-8638-A0F8CBDFCA65","sources":"Microsoft-Terms,Iris-Products,DCatAll-Products","filter":"+ClientType:StoreWeb","counts":"5,1,5"},"familyNames":{"Apps":"App","Books":"Book","Bundles":"Bundle","Devices":"Device","Fees":"Fee","Games":"Game","MusicAlbums":"Album","MusicTracks":"Song","MusicVideos":"Video","MusicArtists":"Artist","OperatingSystem":"Operating System","Software":"Software","Movies":"Movie","TV":"TV","CSV":"Gift Card","VideoActor":"Actor"}}' data-seautosuggestapi="https://www.microsoft.com/msstoreapiprod/api/autosuggest" data-m='{"cN":"GlobalNav_Search_cont","cT":"Container","id":"c3c1c9c3m1r1a1","sN":3,"aN":"c1c9c3m1r1a1"}' aria-expanded="false"> <input id="cli_shellHeaderSearchInput" aria-label="Search Expanded" aria-expanded="false" aria-controls="universal-header-search-auto-suggest-transparent" aria-owns="universal-header-search-auto-suggest-ul" type="search" name="query" placeholder="Search" data-m='{"cN":"SearchBox_nav","id":"n1c3c1c9c3m1r1a1","sN":1,"aN":"c3c1c9c3m1r1a1"}' data-toggle="tooltip" data-placement="right" title="Search" /> <button id="search" aria-label="Search" class="c-glyph" data-m='{"cN":"Search_nav","id":"n2c3c1c9c3m1r1a1","sN":2,"aN":"c3c1c9c3m1r1a1"}' data-bi-mto="true" aria-expanded="false" disabled="disabled"> <span role="presentation">Search</span> <span role="tooltip" class="c-uhf-tooltip c-uhf-search-tooltip">Search</span> </button> <div class="m-auto-suggest" id="universal-header-search-auto-suggest-transparent" role="group"> <ul class="c-menu" id="universal-header-search-auto-suggest-ul" aria-label="Search Suggestions" aria-hidden="true" data-bi-dnt="true" data-bi-mto="true" data-js-auto-suggest-position="default" role="listbox" data-tel="jsll" data-m='{"cN":"search suggestions_cont","cT":"Container","id":"c3c3c1c9c3m1r1a1","sN":3,"aN":"c3c1c9c3m1r1a1"}'></ul> <ul class="c-menu f-auto-suggest-no-results" aria-hidden="true" data-js-auto-suggest-postion="default" data-js-auto-suggest-position="default" role="listbox"> <li class="c-menu-item"> <span tabindex="-1">No results</span></li> </ul> </div> </form> <button data-m='{"cN":"cancel-search","pid":"Cancel Search","id":"nn4c1c9c3m1r1a1","sN":4,"aN":"c1c9c3m1r1a1"}' id="cancel-search" class="cancel-search" aria-label="Cancel Search"> <span>Cancel</span> </button> <div id="meControl" class="c-me" data-signinsettings='{"containerId":"meControl","enabled":true,"headerHeight":48,"debug":false,"extensibleLinks":[],"userData":{"idp":"msa","firstName":"","lastName":"","memberName":"","cid":"","authenticatedState":"3"},"rpData":{"preferredIdp":"msa","msaInfo":{"signInUrl":"https://app.vsaex.visualstudio.com/go/profile?mkt=en-us\u0026wt.mc_id=o~msft~vscom~signin\u0026_ga=1.106715523.1812220160.1467138837","signOutUrl":"https://app.vssps.visualstudio.com/_signout?mkt=en-us\u0026_ga=1.265116815.1812220160.1467138837\u0026redirectUrl=https%3A%2F%2Fvisualstudio.microsoft.com","meUrl":"https://login.live.com/me.srf?wa=wsignin1.0"},"aadInfo":{"signOutUrl":"https://app.vssps.visualstudio.com/_signout?mkt=en-us\u0026_ga=1.265116815.1812220160.1467138837\u0026redirectUrl=https%3A%2F%2Fvisualstudio.microsoft.com","appId":"","siteUrl":"","blockMsaFed":true}}}' data-m='{"cN":"GlobalNav_Account_cont","cT":"Container","id":"c5c1c9c3m1r1a1","sN":5,"aN":"c1c9c3m1r1a1"}'> <div class="msame_Header"> <div class="msame_Header_name st_msame_placeholder">Sign in</div> </div> </div> </div> </div> </div> </header> </div> </div> </div> <div id="wrapper" class="vscom-win-browser "> <div class="vscom-modal-window-wrapper vscom-modal-window-wrapper--hidden" id="vscom-mobile-download-dialog"> <style> #vscom-mobile-download-dialog .vscom-modal-window-content { display: none; } #vscom-mobile-download-dialog .vscom-modal-window-content.active { display: block; } </style> <div class="vscom-modal-window vscom-modal-window--mdd"> <button class="vscom-mobile-dialog-close white-focus-outline" aria-label="Close modal"> <i class="vscom-icon vscom-icon--Cancel" id="vscom-mobile-download-dialog-close"></i> </button> <div class="vscom-modal-window-content mobile-download-dialog-form"> <div data-form-block-id="0ddbaebe-5157-ea11-a811-000d3a3b1bf3"></div> <div id="doS-uJoaJ8L9cVnALebcBTdlxs9zZdFZ4Myv2ygU4Sbg"></div> </div> <div class="vscom-modal-window-content mobile-download-dialog-generic"> <div class="vscom-modal-window-content-inner x-hidden-focus"> <h2 class="vscom-mobile-dialog-header"> This device is not currently supported for these products. </h2> <div class="vscom-mobile-dialog-products"> <a class="black-focus-outline" href="/vs/" id="vscom-mobile-dialog-click-vs"> <img src="https://visualstudio.microsoft.com/wp-content/uploads/2019/02/BrandVisualStudioWin2019-2.svg"> Visual Studio IDE <i class="vscom-icon vscom-icon--ChevronRightSmall"></i> </a> <a class="black-focus-outline" href="/vs/mac" id="vscom-mobile-dialog-click-vs-mac"> <img src="https://visualstudio.microsoft.com/wp-content/uploads/2019/09/VSforMacIcon2019-2.svg"> Visual Studio for Mac <i class="vscom-icon vscom-icon--ChevronRightSmall"></i> </a> <a class="black-focus-outline" href="https://code.visualstudio.com/?wt.mc_id=DX_841432" id="vscom-mobile-dialog-click-vscode"> <img src="https://visualstudio.microsoft.com/wp-content/uploads/2019/09/vs-code-responsive-01-1.png"> Visual Studio Code <i class="vscom-icon vscom-icon--ChevronRightSmall"></i> </a> </div> </div> <div class="vscom-modal-window-footer"> <a class="vscom-mobile-dialog-download" href="#" id="vscom-mobile-dialog-continue-download-click-generic"> <span class="vscom-mobile-dialog-download-text x-hidden-focus"> To continue downloading, click here <i class="vscom-icon vscom-icon--ChevronRightSmall"></i> </span> </a> </div> </div> </div> </div> <div id="home" style="position:relative;top:-1px;"></div> <section class="avada-page-titlebar-wrapper" aria-label="Page Title Bar"> <div class="fusion-page-title-bar fusion-page-title-bar-breadcrumbs fusion-page-title-bar-center"> <div class="fusion-page-title-row"> <div class="fusion-page-title-wrapper"> <div class="fusion-page-title-captions"> </div> </div> </div> </div> </section> <script> window.performance && performance.mark && performance.mark("MainAreaBegin") </script> <main id="main" role="main" class="clearfix width-100" style="padding-left:0px;padding-right:0px;"> <div class="fusion-row" style="max-width:100%;"><div id="content" class="full-width"> <div id="post-42693" class="post-42693 page type-page status-publish hentry"> <span class="entry-title rich-snippet-hidden">Pricing | Visual Studio</span><span class="updated rich-snippet-hidden">2025-03-12T15:27:12-07:00</span> <div class="post-content post-vs_pricing"> <div class="fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background fusion-parallax-none pricing-hero vscom-swimlane--dark nonhundred-percent-fullwidth non-hundred-percent-height-scrolling fusion-custom-z-index" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-z-index:1;--awb-padding-top:65px;--awb-padding-bottom:105px;--awb-background-image:url(&quot;https://visualstudio.microsoft.com/wp-content/uploads/2024/12/PricingPage_HeroBanner-scaled.webp&quot;);--awb-background-size:cover;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-1" style="--awb-content-alignment:center;--awb-font-size:21px;"><p>Visual Studio subscriptions pricing</p> </div><div class="fusion-title title fusion-title-1 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-one vscom-hero-title" style="--awb-margin-top:0px;--awb-margin-bottom:2rem;"><h1 class="fusion-title-heading title-heading-center fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Match your needs with a plan that works for you</h1></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background pricing-hero-tabs nonhundred-percent-fullwidth non-hundred-percent-height-scrolling fusion-custom-z-index" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-z-index:2;--awb-margin-top:-33px;--awb-background-color:transparent;--awb-flex-wrap:wrap;" id="builder-tab" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-center pricing-hero-tabs" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-center fusion-content-layout-column"><script type="text/javascript"> window.vscom_buildertabs_prefix = "main"; </script> <div class="vscom-builder-tabs-container vscom-builder-tabs--rounded-border" data-prefix="main"> <div class="vscom-builder-tabs-wrapper vscom-builder-tabs-wrapper--desktop"> <ul class="vscom-builder-tabs-list" role="tablist" style="min-width:496px;"> <li class="vscom-builder-tabs-item" role="presentation" data-tab="0" data-param="free-tools"> <button class="vscom-builder-tabs-button" aria-selected="false" role="tab" data-tab="0" data-param="free-tools" data-bi-id="Free tools" data-bi-area="body" data-bi-name="body_tab switcher_Free tools"> <span class="vscom-builder-tabs-button-wrapper"> <span class="vscom-builder-tabs-button-text"> Free tools </span> </span> </button> </li><li class="vscom-builder-tabs-item" role="presentation" data-tab="1" data-param="paid-subscriptions"> <button class="vscom-builder-tabs-button" aria-selected="false" role="tab" data-tab="1" data-param="paid-subscriptions" data-bi-id="Paid subscriptions" data-bi-area="body" data-bi-name="body_tab switcher_Paid subscriptions"> <span class="vscom-builder-tabs-button-wrapper"> <span class="vscom-builder-tabs-button-text"> Paid subscriptions </span> </span> </button> </li> </ul> </div> <div class="rounded-border-mobile"> <a role="button" class="arrow-prev rounded-border-mobile-button" href="javascript:void(0)" aria-label="previous button"><i class="vscom-icon vscom-icon--ChevronLeft"></i></a> <a role="button" class="arrow-next rounded-border-mobile-button active" href="javascript:void(0)" aria-label="next button"><i class="vscom-icon vscom-icon--ChevronRight"></i></a> </div> </div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background vscom-builder-tabs-content--main-0 download-cards-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:60px;--awb-padding-bottom:100px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-padding-right:0px;--awb-padding-left:0px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-two" style="--awb-margin-bottom:2rem;"><h2 class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">For individuals we recommend our free tools</h2></div><style>.vscom-grid-container.vscom-grid-container--1{ row-gap:0; column-gap:48px; grid-template-columns: 1fr 1fr; grid-template-rows: auto; } @media screen and (max-width: 1083px) { .vscom-grid-container.vscom-grid-container--1 { grid-template-columns: 1fr 1fr; } }@media screen and (max-width: 800px) { .vscom-grid-container.vscom-grid-container--1 { grid-template-columns: 1fr; grid-template-rows: auto; } } .vscom-grid-container--1 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--1 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--1 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--1 .vscom-grid-cell--4 { order:7; }.vscom-grid-container--1 .vscom-grid-cell--5 { order:2; }.vscom-grid-container--1 .vscom-grid-cell--6 { order:4; }.vscom-grid-container--1 .vscom-grid-cell--7 { order:6; }.vscom-grid-container--1 .vscom-grid-cell--8 { order:8; } @media screen and (max-width:1083px) { .vscom-grid-container--1 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--1 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--1 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--1 .vscom-grid-cell--4 { order:7; }.vscom-grid-container--1 .vscom-grid-cell--5 { order:2; }.vscom-grid-container--1 .vscom-grid-cell--6 { order:4; }.vscom-grid-container--1 .vscom-grid-cell--7 { order:6; }.vscom-grid-container--1 .vscom-grid-cell--8 { order:8; }} @media screen and (max-width:800px) { .vscom-grid-container--1 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--1 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--1 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--1 .vscom-grid-cell--4 { order:4; }.vscom-grid-container--1 .vscom-grid-cell--5 { order:5; }.vscom-grid-container--1 .vscom-grid-cell--6 { order:6; }.vscom-grid-container--1 .vscom-grid-cell--7 { order:7; }.vscom-grid-container--1 .vscom-grid-cell--8 { order:8; }}</style> <div class="vscom-grid-container vscom-grid-container--1 hero-grid-inner-wrap" data-bi-name=""> <div class="vscom-grid-cell vscom-grid-cell--1 hero-grid-header left-card" style=""> <p><img decoding="async" src="/wp-content/uploads/2021/10/Product-Icon.svg" alt="Visual Studio Win 2022 logo" width="96" height="96" /></p> </div><div class="vscom-grid-cell vscom-grid-cell--2 hero-grid-product left-card" style=""> <div class="vs-hero-block"> <h3>Visual Studio Community</h3> <p><span class="hero-grid-subtitle"><span class="hero-grid-logos1"><img decoding="async" src="/wp-content/uploads/2022/03/Windows.svg" alt="Microsoft Windows Logo" /></span></span></p> </div> </div><div class="vscom-grid-cell vscom-grid-cell--3 hero-grid-description left-card" style=""> <p>The best comprehensive IDE for .NET and C++ developers on Windows. Fully packed with a sweet array of tools and features to elevate and enhance every stage of software development.</p> </div><div class="vscom-grid-cell vscom-grid-cell--4 hero-grid-download left-card" style=""> <div class="vscom-btn-box"><a class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" href="/thank-you-downloading-visual-studio/?sku=Community&amp;channel=Release&amp;version=VS2022&amp;source=VSLandingPage&amp;passive=false&amp;cid=2030" data-bi-area="body" data-bi-name="body_Visual Studio Community_free download" data-bi-id="free download" aria-label="Free download Visual Studio Community ">Free download</a><a class="vscom-btn-wire vscom-wire-black vscom-btn-fill-grow fill-violet vscom-btn-secondary" href="/vs" data-bi-id="learn more" data-bi-area="body" data-bi-name="body_Visual Studio Community_learn more" aria-label="Learn more about Visual Studio Community ">Learn more</a></div> </div><div class="vscom-grid-cell vscom-grid-cell--5 hero-grid-header right-card" style=""> <p><img decoding="async" src="/wp-content/uploads/2019/09/vs-code-responsive-01-1.png" alt="Visual Studio Code logo" width="96" height="96" /></p> </div><div class="vscom-grid-cell vscom-grid-cell--6 hero-grid-product right-card" style=""> <div class="vs-hero-block"> <h3>Visual Studio Code</h3> <p><span class="hero-grid-subtitle"><span class="hero-grid-logos1"><img decoding="async" src="/wp-content/uploads/2022/03/Windows.svg" alt="Microsoft Windows Logo" /><img decoding="async" src="/wp-content/uploads/2021/10/apple_logo.svg" alt="Apple macOS Logo" /><img decoding="async" src="/wp-content/uploads/2022/03/Linux.svg" alt="Linux Logo" /></span></span></p> </div> </div><div class="vscom-grid-cell vscom-grid-cell--7 hero-grid-description right-card" style=""> <p class="hero-grid-text">A standalone source code editor that runs on Windows, macOS, and Linux. The top pick for JavaScript and web developers, with extensions to support just about any programming language.</p> <div class="hero-grid-info"><span class="vscom-hero-boxes-mini">By using Visual Studio Code you agree to its <a data-bi-id="license" data-bi-area="body" data-bi-name="body_visual studio code_license" href="https://code.visualstudio.com/License/" target="_blank" rel="noopener" class="black-link">license</a> &amp; <a data-bi-id="privacy statement" href="https://privacy.microsoft.com/privacystatement" target="_blank" rel="noopener" class="black-link" data-bi-area="body" data-bi-name="body_visual studio code_privacy statement">privacy statement</a></span></div> </div><div class="vscom-grid-cell vscom-grid-cell--8 hero-grid-download right-card" style=""> <div class="vscom-btn-box"><div class="vscom-dropdown-button vscom-dropdown-button--code vscom-btn-secondary vscom-btn-fill-grow fill-blue vscom-dropdown-button--modern-light-code"> <div class="vscom-dropdown-menu-container"> <button data-bi-id="Free download" data-bi-area="body" data-bi-name="body_Visual Studio Code_Free download" aria-expanded="false" class="toplink" aria-label="Free download Visual Studio Code" tabindex="0"> <span class="vscom-dropdown-text">Free download</span><i class="vscom-icon vscom-icon--chevron-down button-icon-right"></i> </button> <ul class="vscom-subnav vsopt-download-visual-studio" role="menu"> <li role="presentation"> <div class="subwrap"> <a data-bi-id="Windows x64 User Installer" data-bi-area="body" data-bi-name="body_Visual Studio Code_Windows x64 User Installer" data-bi-bhvr="40" data-bi-dlnm="Windows x64 User Installer" data-bi-dlid="download_visual_studio_code" data-bi-dltype="software installer" role="menuitem" href="https://code.visualstudio.com/docs/?dv=win64user" class="sublink vseng-track-vscode-win-x64" aria-label="Free download Visual Studio Code for Windows x64 User Installer" title="" target="_blank"> <span class="vscom-option-text">Windows x64</span><span class="vscom-version-insert">User Installer</span> </a> </div> </li> <li role="presentation"> <div class="subwrap"> <a data-bi-id="Windows Arm64 User Installer" data-bi-area="body" data-bi-name="body_Visual Studio Code_Windows Arm64 User Installer" data-bi-bhvr="40" data-bi-dlnm="Windows Arm64 User Installer" data-bi-dlid="download_visual_studio_code" data-bi-dltype="software installer" role="menuitem" href="https://code.visualstudio.com/docs/?dv=win32arm64user" class="sublink vseng-track-vscode-win-Arm64" aria-label="Free download Visual Studio Code for Windows Arm64 User Installer" title="" target="_blank"> <span class="vscom-option-text">Windows Arm64</span><span class="vscom-version-insert">User Installer</span> </a> </div> </li> <li role="presentation"> <div class="subwrap"> <a data-bi-id="macOS Universal Package" data-bi-area="body" data-bi-name="body_Visual Studio Code_macOS Universal Package" data-bi-bhvr="40" data-bi-dlnm="macOS Universal Package" data-bi-dlid="download_visual_studio_code" data-bi-dltype="software installer" role="menuitem" href="https://code.visualstudio.com/docs/?dv=osx" class="sublink vseng-track-vscode-macOS Intel" aria-label="Free download Visual Studio Code for macOS Universal Package" title="" target="_blank"> <span class="vscom-option-text">macOS Universal</span><span class="vscom-version-insert">Package</span> </a> </div> </li> <li role="presentation"> <div class="subwrap"> <a data-bi-id="Linux x64.deb" data-bi-area="body" data-bi-name="body_Visual Studio Code_Linux x64.deb" data-bi-bhvr="40" data-bi-dlnm="Linux x64.deb" data-bi-dlid="download_visual_studio_code" data-bi-dltype="software installer" role="menuitem" href="https://code.visualstudio.com/docs/?dv=linux64_deb" class="sublink vseng-track-vscode-linux-deb" aria-label="Free download Visual Studio Code for Linux (.deb)" title="" target="_blank"> <span class="vscom-option-text">Linux x64</span><span class="vscom-version-insert">.deb</span> </a> </div> </li> <li role="presentation"> <div class="subwrap"> <a data-bi-id="Linux x64.rpm" data-bi-area="body" data-bi-name="body_Visual Studio Code_Linux x64.rpm" data-bi-bhvr="40" data-bi-dlnm="Linux x64.rpm" data-bi-dlid="download_visual_studio_code" data-bi-dltype="software installer" role="menuitem" href="https://code.visualstudio.com/docs/?dv=linux64_rpm" class="sublink vseng-track-vscode-linux-rpm" aria-label="Free download Visual Studio Code for Linux (.rpm)" title="" target="_blank"> <span class="vscom-option-text">Linux x64</span><span class="vscom-version-insert">.rpm</span> </a> </div> </li> <li role="presentation"> <div class="subwrap"> <a data-bi-id="More" data-bi-area="body" data-bi-name="body_Visual Studio Code_More" data-bi-bhvr="40" data-bi-dlnm="More" data-bi-dlid="download_visual_studio_code" data-bi-dltype="software installer" role="menuitem" href="https://code.visualstudio.com/download" class="sublink vseng-track-vscode-more" aria-label="Free download more Visual Studio Code" title="" target="_blank"> <span class="vscom-option-text">More</span><span class="vscom-version-insert"></span> </a> </div> </li> </ul> </div> </div><a class="vscom-btn-wire vscom-wire-black vscom-btn-fill-grow fill-blue vscom-btn-secondary" href="https://code.visualstudio.com/" target="_blank" rel="noopener" data-bi-id="learn more" data-bi-area="hero" data-bi-name="body_Visual Studio Code_learn more" aria-label="Learn more about Visual Studio Code">Learn more</a></div> </div></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-4 fusion-flex-container has-pattern-background has-mask-background vscom-builder-tabs-content--main-0 subscription-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:100px;--awb-padding-bottom:100px;--awb-background-color:rgba(134,97,197,0.15);--awb-flex-wrap:nowrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-stretch fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width:calc( 1600px + 0px );margin-left: calc(-0px / 2 );margin-right: calc(-0px / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_2 1_2 fusion-flex-column text-col" style="--awb-overflow:hidden;--awb-bg-color:#ffffff;--awb-bg-color-hover:#ffffff;--awb-bg-size:cover;--awb-border-radius:24px 0px 0px 24px;--awb-width-large:50%;--awb-margin-top-large:15px;--awb-spacing-right-large:0px;--awb-margin-bottom-large:15px;--awb-spacing-left-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:0px;--awb-spacing-left-medium:0px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:0px;--awb-spacing-left-small:0px;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-space-between fusion-content-layout-column"><div class="fusion-text fusion-text-2"><h2>Need a subscription with development tools and more?</h2> <ul> <li>Access to the latest and past versions of Visual Studio</li> <li>Monthly Azure credit for dev/test</li> <li>Access to thousands of software downloads</li> <li>Services to help support your development</li> <li>Training resources such as Pluralsight, LinkedIn Learning, DevForge and Dometrain</li> <li>Support benefits</li> </ul> </div><div class="fusion-text fusion-text-3"><p><a class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" id="purchase-button" data-bi-area="body" data-bi-id="Purchase a Visual Studio subscription" data-bi-name="body_Need a subscription with development tools and more_Purchase a Visual Studio subscription" href="#" data-param="paid">Purchase a Visual Studio subscription</a></p> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_2 1_2 fusion-flex-column img-col" style="--awb-overflow:hidden;--awb-bg-size:cover;--awb-border-radius:0px 24px 24px 0px;--awb-width-large:50%;--awb-margin-top-large:15px;--awb-spacing-right-large:0px;--awb-margin-bottom-large:15px;--awb-spacing-left-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:0px;--awb-spacing-left-medium:0px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:0px;--awb-spacing-left-small:0px;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><span class=" fusion-imageframe imageframe-none imageframe-1 hover-type-none"><img fetchpriority="high" decoding="async" width="1328" height="996" alt="Need A Subscription image" title="NeedASubscription_img" src="https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img.webp" class="img-responsive wp-image-217780 lazyload " srcset="https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-200x150.webp 200w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-300x225.webp 300w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-400x300.webp 400w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-600x450.webp 600w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-768x576.webp 768w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-800x600.webp 800w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-1024x768.webp 1024w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img-1200x900.webp 1200w, https://visualstudio.microsoft.com/wp-content/uploads/2024/12/NeedASubscription_img.webp 1328w" sizes="(max-width: 1084px) 100vw, (max-width: 640px) 100vw, 1200px" /></span></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-5 fusion-flex-container has-pattern-background has-mask-background vscom-builder-tabs-content--main-0 cloud-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:60px;--awb-padding-bottom:60px;--awb-background-color:#f7f7f7;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-3 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-center fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Part of the developer <span>cloud from Microsoft</span></h2></div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-6 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-content-boxes content-boxes columns row fusion-columns-2 fusion-columns-total-2 fusion-content-boxes-1 content-boxes-icon-on-side content-left fusion-content-boxes--equal-heights fusion-content-boxes--hero-sub" data-animationOffset="top-into-view" style="margin-top:60px;margin-bottom:60px;" data-bi-id='Part of the developer' data-bi-slot='' data-bi-id=''><style type="text/css">.fusion-content-boxes-1 .heading .content-box-heading {color:#000000;} .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover .heading .content-box-heading, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover .heading .heading-link .content-box-heading, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover .heading .content-box-heading, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover .heading .heading-link .content-box-heading, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover.link-area-box .fusion-read-more, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover.link-area-box .fusion-read-more::after, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover.link-area-box .fusion-read-more::before, .fusion-content-boxes-1 .fusion-content-box-hover .fusion-read-more:hover:after, .fusion-content-boxes-1 .fusion-content-box-hover .fusion-read-more:hover:before, .fusion-content-boxes-1 .fusion-content-box-hover .fusion-read-more:hover, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover.link-area-box .fusion-read-more, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover.link-area-box .fusion-read-more::after, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover.link-area-box .fusion-read-more::before, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover .icon .circle-no, .fusion-content-boxes-1 .heading .heading-link:hover .content-box-heading { color: #000000; } .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover .icon .circle-no { color: #000000 !important; }.fusion-content-boxes-1 .fusion-content-box-hover .link-area-box.link-area-box-hover .fusion-content-box-button {background: #32145a;color: #ffffff;}.fusion-content-boxes-1 .fusion-content-box-hover .link-area-box.link-area-box-hover .fusion-content-box-button .fusion-button-text {color: #ffffff;} .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover .heading .icon > span { background-color: transparent !important; } .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover .heading .icon > span { border-color: #000000 !important; } .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover.icon-hover-animation-pulsate .fontawesome-icon:after, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover.icon-hover-animation-pulsate .fontawesome-icon:after, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover.icon-wrapper-hover-animation-pulsate .icon span:after, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover.icon-wrapper-hover-animation-pulsate .icon span:after { -webkit-box-shadow:0 0 0 2px rgba(255,255,255,0.1), 0 0 10px 10px #000000, 0 0 0 10px rgba(255,255,255,0.5); -moz-box-shadow:0 0 0 2px rgba(255,255,255,0.1), 0 0 10px 10px #000000, 0 0 0 10px rgba(255,255,255,0.5); box-shadow: 0 0 0 2px rgba(255,255,255,0.1), 0 0 10px 10px #000000, 0 0 0 10px rgba(255,255,255,0.5); } </style><div class="fusion-column content-box-column reveal content-box-column content-box-column-1 col-lg-6 col-md-6 col-sm-6 content-box-column-first-in-row"><div class="col content-box-wrapper content-wrapper link-area-link-icon content-icon-wrapper-yes icon-wrapper-hover-animation-pulsate" style="background-color:rgba(255,255,255,0);" data-animationOffset="top-into-view"><div class="heading heading-with-icon icon-left"><div aria-hidden="true" class="image"><img decoding="async" src="https://visualstudio.microsoft.com/wp-content/uploads/2019/09/Microsoft-Account.svg" width="40" height="40" alt="Microsoft account logo" /></div><h3 class="content-box-heading fusion-responsive-typography-calculated" style="font-size:24px;--fontSize:24;line-height:;padding-left:60px;">Microsoft Azure</h3></div><div class="fusion-clearfix"></div><div class="content-container" style="padding-left:60px;color:#333333;">The productive cloud that integrates with your tools</p> <div class="vscom-link-wrapper"><a href="https://azure.microsoft.com/free/?ref=VisualStudio" class="vscom-arrow-link clr-black" data-bi-area="body" data-bi-name="body_Microsoft Azure_Get started for free" data-bi-id="Get started for free" target="_blank" rel="noopener" aria-label="Get Microsoft Azure started for free"><span class="vscom-link-text">Get started for free</span><i class="vscom-icon vscom-icon--arrow-right"></i></a></div> </div></div></div><div class="fusion-column content-box-column reveal content-box-column content-box-column-2 col-lg-6 col-md-6 col-sm-6 content-box-column-last content-box-column-last-in-row"><div class="col content-box-wrapper content-wrapper link-area-link-icon content-icon-wrapper-yes icon-wrapper-hover-animation-pulsate" style="background-color:rgba(255,255,255,0);" data-animationOffset="top-into-view"><div class="heading heading-with-icon icon-left"><div aria-hidden="true" class="image"><img decoding="async" src="https://visualstudio.microsoft.com/wp-content/uploads/2019/07/GitHubIcon.svg" width="40" height="40" alt="GitHub logo" /></div><h3 class="content-box-heading fusion-responsive-typography-calculated" style="font-size:24px;--fontSize:24;line-height:;padding-left:60px;">GitHub</h3></div><div class="fusion-clearfix"></div><div class="content-container" style="padding-left:60px;color:#333333;">Increase collaboration with your teams and the open-source community</p> <div class="vscom-link-wrapper"><a href="https://github.com/join?plan=business_plus&amp;setup_organization=true&amp;source=enterprise-hero/" class="vscom-arrow-link clr-black" data-bi-area="body" data-bi-name="body_GitHub_Get started for free" data-bi-id="Get started for free" target="_blank" rel="noopener" aria-label="Get GitHub started for free"><span class="vscom-link-text">Get started for free</span><i class="vscom-icon vscom-icon--arrow-right"></i></a></div> </div></div></div><style type="text/css"> .fusion-content-boxes-1 .fusion-content-box-hover .heading-link:hover .icon i.circle-yes, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box:hover .heading-link .icon i.circle-yes, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-link-icon-hover .heading .icon i.circle-yes, .fusion-content-boxes-1 .fusion-content-box-hover .link-area-box-hover .heading .icon i.circle-yes { background-color: transparent !important; border-color: #000000 !important; }</style><div class="fusion-clearfix"></div></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-6 fusion-flex-container has-pattern-background has-mask-background sub-hero vscom-builder-tabs-content--main-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-bottom:85px;--awb-margin-top:-50px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-7 fusion_builder_column_1_1 1_1 fusion-flex-column tab-title" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-4 fusion-sep-none fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Choose your subscription</h2></div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-8 fusion_builder_column_1_1 1_1 fusion-flex-column pill-tab-col" style="--awb-padding-top:100px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><span data-bi-id=""><div class="fusion-tabs fusion-tabs-1 clean horizontal-tabs pill-tab pill-tab--right icon-position-left"><style type="text/css">#wrapper .fusion-tabs.fusion-tabs-1.clean .nav-tabs li a{border-color:#ebeaea;}.fusion-tabs.fusion-tabs-1 .nav-tabs li a{background-color:rgba(255,255,255,0);}.fusion-tabs.fusion-tabs-1 .nav-tabs li.active a,.fusion-tabs.fusion-tabs-1 .nav-tabs li.active a:hover,.fusion-tabs.fusion-tabs-1 .nav-tabs li.active a:focus{background-color:rgba(255,255,255,0);}.fusion-tabs.fusion-tabs-1 .nav-tabs li a:hover{background-color:rgba(255,255,255,0);border-top-color:rgba(255,255,255,0);}.fusion-tabs.fusion-tabs-1 .tab-pane{background-color:rgba(255,255,255,0);}.fusion-tabs.fusion-tabs-1 .nav,.fusion-tabs.fusion-tabs-1 .nav-tabs,.fusion-tabs.fusion-tabs-1 .tab-content .tab-pane{border-color:#ebeaea;}</style><div class="nav"><ul role="tablist"class="nav-tabs nav-justified"><li role="presentation"class="active"><a role="tab" aria-selected="true" aria-posinset="1" aria-setsize="2"class="tab-link" data-toggle="tab" role="tab" aria-controls="tab-cfc88ec2bc791caf129" id="fusion-tab-1-tab-cfc88ec2bc791caf129" href="#tab-cfc88ec2bc791caf129"><span class="vscom-tab-text">Standard</span></a></li><li role="presentation"><a role="tab" aria-selected="false" aria-posinset="2" aria-setsize="2"class="tab-link" data-toggle="tab" role="tab" aria-controls="tab-50b758a97a6729bd3ae" id="fusion-tab-1-tab-50b758a97a6729bd3ae" href="#tab-50b758a97a6729bd3ae"><span class="vscom-tab-text">Monthly</span></a></li></ul></div><div class="tab-content"><div class="nav fusion-mobile-tab-nav"><ul class="nav-tabs nav-justified"><li role="presentation"class="active"><a role="tab" aria-selected="true" aria-posinset="1" aria-setsize="2"class="tab-link" data-toggle="tab" role="tab" aria-controls="tab-cfc88ec2bc791caf129" id="mobile-fusion-tab-1-tab-cfc88ec2bc791caf129" href="#tab-cfc88ec2bc791caf129"><span class="vscom-tab-text">Standard</span></a></li></ul></div><div class="tab-pane fusion-clearfix in active fade" role="tabpanel" aria-labelledby="fusion-tab-1-tab-cfc88ec2bc791caf129" paneid="scrollablePane-0" id="tab-cfc88ec2bc791caf129"><style>.vscom-grid-container.vscom-grid-container--2{ row-gap:0; column-gap:56px; grid-template-columns: 1fr 1fr; grid-template-rows: auto; } @media screen and (max-width: 1100px) { .vscom-grid-container.vscom-grid-container--2 { grid-template-columns: 1fr 1fr; grid-template-rows: auto; } }@media screen and (max-width: 600px) { .vscom-grid-container.vscom-grid-container--2 { grid-template-columns: 1fr; grid-template-rows: auto; } } .vscom-grid-container--2 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--2 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--2 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--2 .vscom-grid-cell--4 { order:7; }.vscom-grid-container--2 .vscom-grid-cell--5 { order:9; }.vscom-grid-container--2 .vscom-grid-cell--6 { order:11; }.vscom-grid-container--2 .vscom-grid-cell--7 { order:2; }.vscom-grid-container--2 .vscom-grid-cell--8 { order:4; }.vscom-grid-container--2 .vscom-grid-cell--9 { order:6; }.vscom-grid-container--2 .vscom-grid-cell--10 { order:8; }.vscom-grid-container--2 .vscom-grid-cell--11 { order:10; }.vscom-grid-container--2 .vscom-grid-cell--12 { order:12; } @media screen and (max-width:1000px) { .vscom-grid-container--2 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--2 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--2 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--2 .vscom-grid-cell--4 { order:7; }.vscom-grid-container--2 .vscom-grid-cell--5 { order:9; }.vscom-grid-container--2 .vscom-grid-cell--6 { order:11; }.vscom-grid-container--2 .vscom-grid-cell--7 { order:2; }.vscom-grid-container--2 .vscom-grid-cell--8 { order:4; }.vscom-grid-container--2 .vscom-grid-cell--9 { order:6; }.vscom-grid-container--2 .vscom-grid-cell--10 { order:8; }.vscom-grid-container--2 .vscom-grid-cell--11 { order:10; }.vscom-grid-container--2 .vscom-grid-cell--12 { order:12; }} @media screen and (max-width:600px) { .vscom-grid-container--2 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--2 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--2 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--2 .vscom-grid-cell--4 { order:4; }.vscom-grid-container--2 .vscom-grid-cell--5 { order:5; }.vscom-grid-container--2 .vscom-grid-cell--6 { order:6; }.vscom-grid-container--2 .vscom-grid-cell--7 { order:7; }.vscom-grid-container--2 .vscom-grid-cell--8 { order:8; }.vscom-grid-container--2 .vscom-grid-cell--9 { order:9; }.vscom-grid-container--2 .vscom-grid-cell--10 { order:10; }.vscom-grid-container--2 .vscom-grid-cell--11 { order:11; }.vscom-grid-container--2 .vscom-grid-cell--12 { order:12; }}</style> <div class="vscom-grid-container vscom-grid-container--2 price-cards" data-bi-name=""> <div class="vscom-grid-cell vscom-grid-cell--1 grid-top" style=""> <h3>Enterprise standard</h3> </div><div class="vscom-grid-cell vscom-grid-cell--2 " style=""> <ul> <li>Visual Studio 2022 Enterprise​</li> <li>Azure DevOps (Basic + Test plan)​</li> <li>$150 Azure credit per month</li> <li>Premium dev/test software​</li> <li>Extended training and support​</li> <li>Power BI Pro</li> <li>and more</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--3 " style=""> <p>Starting at<br /> <span><span class="price">$499.92</span>user/mo*</span></p> </div><div class="vscom-grid-cell vscom-grid-cell--4 " style=""> <p>Renewal rate $214.09 user/mo* (after first year)<br /> Pricing varies by eligible subscription. See <a href="#volume-licensing" class="purple-link" data-bi-area="body" data-bi-id="Volume licensing" data-bi-name="body_Choose your subscription_Enterprise standard_Volume licensing">Volume licensing</a></p> </div><div class="vscom-grid-cell vscom-grid-cell--5 grid-cta" style=""> <div class="vscom-btn-box"><a data-bi-area="body" data-bi-id="Buy now" data-bi-name="body_Choose your subscription_Enterprise standard_Buy now" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" href="https://www.microsoft.com/d/visual-studio-enterprise-subscription/dg7gmgf0dst4?activetab=pivot:overviewtab" target="_blank" rel="noopener" aria-label="Buy Enterprise standard now">Buy now</a><a class="vscom-btn-secondary vscom-btn-wire vscom-wire-black vscom-btn-fill-grow fill-violet" href="https://www.microsoft.com/en-us/d/visual-studio-enterprise-subscription/dg7gmgf0dst4/0003?activetab=pivot:overviewtab" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="Renew" data-bi-name="body_Choose your subscription_Enterprise standard_Renew" aria-label="Renew Enterprise standard">Renew</a></div> </div><div class="vscom-grid-cell vscom-grid-cell--6 grid-bottom" style=""> <p>*One-time annual payment</p> </div><div class="vscom-grid-cell vscom-grid-cell--7 grid-top" style=""> <h3>Professional standard</h3> </div><div class="vscom-grid-cell vscom-grid-cell--8 " style=""> <ul> <li>Visual Studio 2022 Professional</li> <li>Azure DevOps (Basic plan)</li> <li>$50 Azure credit per month</li> <li>Basic dev/test software</li> <li>Training and support</li> <li>and more</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--9 " style=""> <p><span class="price">$99.99</span>user/mo*</p> </div><div class="vscom-grid-cell vscom-grid-cell--10 " style=""> <p>Renewal rate $66.59 user/mo* (after first year)<br /> Pricing varies by eligible subscription. See <a href="#volume-licensing" class="purple-link" data-bi-area="body" data-bi-id="Volume licensing" data-bi-name="body_Choose your subscription_Professional standard_Volume licensing">Volume licensing</a></p> </div><div class="vscom-grid-cell vscom-grid-cell--11 grid-cta" style=""> <div class="vscom-btn-box"><a data-bi-area="body" data-bi-id="Buy now" data-bi-name="body_Choose your subscription_Professional standard_Buy now" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" href="https://www.microsoft.com/d/visual-studio-professional-subscription/dg7gmgf0dst3?activetab=pivot:overviewtab" target="_blank" rel="noopener">Buy now</a><a class="vscom-btn-secondary vscom-btn-wire vscom-wire-black vscom-btn-fill-grow fill-violet" href="https://www.microsoft.com/d/visual-studio-professional-subscription/dg7gmgf0dst3/0003?activetab=pivot:overviewtab" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="Renew" data-bi-name="body_Choose your subscription_Professional standard_Renew" aria-label="Renew Professional standard now">Renew</a></div> </div><div class="vscom-grid-cell vscom-grid-cell--12 grid-bottom" style=""> <p>*One-time annual payment</p> </div></div></div><div class="nav fusion-mobile-tab-nav"><ul class="nav-tabs nav-justified"><li role="presentation"><a role="tab" aria-selected="false" aria-posinset="2" aria-setsize="2"class="tab-link" data-toggle="tab" role="tab" aria-controls="tab-50b758a97a6729bd3ae" id="mobile-fusion-tab-1-tab-50b758a97a6729bd3ae" href="#tab-50b758a97a6729bd3ae"><span class="vscom-tab-text">Monthly</span></a></li></ul></div><div class="tab-pane fusion-clearfix fade" role="tabpanel" aria-labelledby="fusion-tab-1-tab-50b758a97a6729bd3ae" paneid="scrollablePane-1" id="tab-50b758a97a6729bd3ae"><style>.vscom-grid-container.vscom-grid-container--3{ row-gap:0; column-gap:56px; grid-template-columns: 1fr 1fr; grid-template-rows: auto; } @media screen and (max-width: 1100px) { .vscom-grid-container.vscom-grid-container--3 { grid-template-columns: 1fr 1fr; grid-template-rows: auto; } }@media screen and (max-width: 600px) { .vscom-grid-container.vscom-grid-container--3 { grid-template-columns: 1fr; grid-template-rows: auto; } } .vscom-grid-container--3 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--3 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--3 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--3 .vscom-grid-cell--4 { order:9; }.vscom-grid-container--3 .vscom-grid-cell--5 { order:2; }.vscom-grid-container--3 .vscom-grid-cell--6 { order:4; }.vscom-grid-container--3 .vscom-grid-cell--7 { order:6; }.vscom-grid-container--3 .vscom-grid-cell--8 { order:10; } @media screen and (max-width:1000px) { .vscom-grid-container--3 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--3 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--3 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--3 .vscom-grid-cell--4 { order:9; }.vscom-grid-container--3 .vscom-grid-cell--5 { order:2; }.vscom-grid-container--3 .vscom-grid-cell--6 { order:4; }.vscom-grid-container--3 .vscom-grid-cell--7 { order:6; }.vscom-grid-container--3 .vscom-grid-cell--8 { order:10; }} @media screen and (max-width:600px) { .vscom-grid-container--3 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--3 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--3 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--3 .vscom-grid-cell--4 { order:5; }.vscom-grid-container--3 .vscom-grid-cell--5 { order:7; }.vscom-grid-container--3 .vscom-grid-cell--6 { order:8; }.vscom-grid-container--3 .vscom-grid-cell--7 { order:9; }.vscom-grid-container--3 .vscom-grid-cell--8 { order:11; }}</style> <div class="vscom-grid-container vscom-grid-container--3 price-cards monthly" data-bi-name=""> <div class="vscom-grid-cell vscom-grid-cell--1 grid-top" style=""> <h3>Enterprise monthly</h3> </div><div class="vscom-grid-cell vscom-grid-cell--2 " style=""> <ul> <li>Visual Studio 2022 Enterprise​</li> <li>Azure DevOps (Basic + Test plan)​</li> <li>and more</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--3 " style=""> <span><span class="price">$250</span>user/mo</span></div><div class="vscom-grid-cell vscom-grid-cell--4 grid-cta" style=""> <p><a class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" href="https://marketplace.visualstudio.com/items?itemName=ms.vs-enterprise-monthly#pricing" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Choose your subscription_Enterprise monthly_Buy now">Buy now</a></p> </div><div class="vscom-grid-cell vscom-grid-cell--5 grid-top" style=""> <h3>Professional monthly</h3> </div><div class="vscom-grid-cell vscom-grid-cell--6 " style=""> <ul> <li>Visual Studio 2022 Professional</li> <li>Azure DevOps (Basic plan)</li> <li>and more</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--7 " style=""> <span><span class="price">$45</span>user/mo</span></div><div class="vscom-grid-cell vscom-grid-cell--8 grid-cta" style=""> <p><a class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" href="https://marketplace.visualstudio.com/items?itemName=ms.vs-professional-monthly#overview" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Choose your subscription_professional monthly_Buy now">Buy now</a></p> </div></div></div></div></div></span></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-7 fusion-flex-container has-pattern-background has-mask-background products-lane vscom-builder-tabs-content--main-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:90px;--awb-padding-bottom:0px;--awb-background-color:#fbf7ff;--awb-flex-wrap:wrap;" id="compare" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-9 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-5 fusion-sep-none fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Compare subscriptions</h2></div><div class="fusion-text fusion-text-4" style="--awb-content-alignment:left;"><p>Discover the differences in benefits to match the best subscription for your needs.</p> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-10 fusion_builder_column_1_5 1_5 fusion-flex-column h3-title" style="--awb-bg-size:cover;--awb-width-large:20%;--awb-margin-top-large:15px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-6 fusion-sep-none fusion-title-text fusion-title-size-three" style="--awb-margin-top:0px;"><h3 class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Subscriptions</h3></div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-11 fusion_builder_column_4_5 4_5 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:80%;--awb-margin-top-large:15px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-5 best-value-text"><p class="vscom-tag vscom-tag--standard vscom-tag-light-purple">Best value</p> </div><style>.vscom-grid-container.vscom-grid-container--4{ row-gap:10px; column-gap:36px; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto; } @media screen and (max-width: 1083px) { .vscom-grid-container.vscom-grid-container--4 { grid-template-columns: 1fr; } }@media screen and (max-width: 600px) { .vscom-grid-container.vscom-grid-container--4 { grid-template-columns: 1fr; grid-template-rows: auto; } } .vscom-grid-container--4 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--4 .vscom-grid-cell--2 { order:5; }.vscom-grid-container--4 .vscom-grid-cell--3 { order:9; }.vscom-grid-container--4 .vscom-grid-cell--4 { order:13; }.vscom-grid-container--4 .vscom-grid-cell--5 { order:2; }.vscom-grid-container--4 .vscom-grid-cell--6 { order:6; }.vscom-grid-container--4 .vscom-grid-cell--7 { order:10; }.vscom-grid-container--4 .vscom-grid-cell--8 { order:14; }.vscom-grid-container--4 .vscom-grid-cell--9 { order:3; }.vscom-grid-container--4 .vscom-grid-cell--10 { order:7; }.vscom-grid-container--4 .vscom-grid-cell--11 { order:11; }.vscom-grid-container--4 .vscom-grid-cell--12 { order:15; }.vscom-grid-container--4 .vscom-grid-cell--13 { order:4; }.vscom-grid-container--4 .vscom-grid-cell--14 { order:8; }.vscom-grid-container--4 .vscom-grid-cell--15 { order:12; }.vscom-grid-container--4 .vscom-grid-cell--16 { order:16; } @media screen and (max-width:1083px) { .vscom-grid-container--4 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--4 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--4 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--4 .vscom-grid-cell--4 { order:4; }.vscom-grid-container--4 .vscom-grid-cell--5 { order:5; }.vscom-grid-container--4 .vscom-grid-cell--6 { order:6; }.vscom-grid-container--4 .vscom-grid-cell--7 { order:7; }.vscom-grid-container--4 .vscom-grid-cell--8 { order:8; }.vscom-grid-container--4 .vscom-grid-cell--9 { order:9; }.vscom-grid-container--4 .vscom-grid-cell--10 { order:10; }.vscom-grid-container--4 .vscom-grid-cell--11 { order:11; }.vscom-grid-container--4 .vscom-grid-cell--12 { order:12; }.vscom-grid-container--4 .vscom-grid-cell--13 { order:13; }.vscom-grid-container--4 .vscom-grid-cell--14 { order:14; }.vscom-grid-container--4 .vscom-grid-cell--15 { order:15; }.vscom-grid-container--4 .vscom-grid-cell--16 { order:16; }} @media screen and (max-width:600px) { .vscom-grid-container--4 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--4 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--4 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--4 .vscom-grid-cell--4 { order:4; }.vscom-grid-container--4 .vscom-grid-cell--5 { order:5; }.vscom-grid-container--4 .vscom-grid-cell--6 { order:6; }.vscom-grid-container--4 .vscom-grid-cell--7 { order:7; }.vscom-grid-container--4 .vscom-grid-cell--8 { order:8; }.vscom-grid-container--4 .vscom-grid-cell--9 { order:9; }.vscom-grid-container--4 .vscom-grid-cell--10 { order:10; }.vscom-grid-container--4 .vscom-grid-cell--11 { order:11; }.vscom-grid-container--4 .vscom-grid-cell--12 { order:12; }.vscom-grid-container--4 .vscom-grid-cell--13 { order:13; }.vscom-grid-container--4 .vscom-grid-cell--14 { order:14; }.vscom-grid-container--4 .vscom-grid-cell--15 { order:15; }.vscom-grid-container--4 .vscom-grid-cell--16 { order:16; }}</style> <div class="vscom-grid-container vscom-grid-container--4 " data-bi-name=""> <div class="vscom-grid-cell vscom-grid-cell--1 grid-top" style=""> <p class="best-value-mobile vscom-tag vscom-tag--standard vscom-tag-light-purple">Best value</p> <h4>Enterprise standard</h4> <h4>$499.92 user/mo*</h4> </div><div class="vscom-grid-cell vscom-grid-cell--2 " style=""> <ul> <li>Visual Studio 2022 Enterprise​</li> <li>Azure DevOps (Basic + Test plan)​</li> <li>$150 Azure Credit per month</li> <li>Premium dev/test software​</li> <li>Extended training and support​</li> <li>Power BI Pro</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--3 " style=""> <a href="https://www.microsoft.com/d/visual-studio-enterprise-subscription/dg7gmgf0dst4?activetab=pivot:overviewtab" class="vscom-btn-primary-sm vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_subscriptions_Enterprise standard_buy now">Buy now</a></div><div class="vscom-grid-cell vscom-grid-cell--4 grid-bottom" style=""> <a class="black-link" href="https://www.microsoft.com/en-us/d/visual-studio-enterprise-subscription/dg7gmgf0dst4/0003?activetab=pivot:overviewtab" target="_blank" rel="noopener" data-bi-id="Or renew at $214.09" data-bi-area="body" data-bi-name="body_subscriptions_Enterprise standard_Or renew at $214.09">Or renew at $214.09 user/mo*</a></p> <p>*Paid annually</div><div class="vscom-grid-cell vscom-grid-cell--5 grid-top" style=""> <h4>Professional standard</h4> <h4>$99.99 user/mo*</h4> </div><div class="vscom-grid-cell vscom-grid-cell--6 " style=""> <ul> <li>Visual Studio 2022 Professional</li> <li>Azure DevOps (Basic plan)</li> <li>$50 Azure Credit per month</li> <li>Basic Dev/test software</li> <li>Training and support</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--7 " style=""> <a href="https://www.microsoft.com/en-us/d/visual-studio-professional-subscription/dg7gmgf0dst3/0001?activetab=pivot:overviewtab" class="vscom-btn-primary-sm vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_subscriptions_professional standard_buy now">Buy now</a></div><div class="vscom-grid-cell vscom-grid-cell--8 grid-bottom" style=""> <a class="black-link" href="https://www.microsoft.com/d/visual-studio-professional-subscription/dg7gmgf0dst3/0003?activetab=pivot:overviewtab" target="_blank" rel="noopener" data-bi-id="Or renew at $66.59" data-bi-area="body" data-bi-name="body_subscriptions_professional standard_Or renew at $66.59">Or renew at $66.59 user/mo*</a></p> <p>*Paid annually</div><div class="vscom-grid-cell vscom-grid-cell--9 grid-top" style=""> <h4>Enterprise monthly</h4> <h4>$250 user/mo</h4> </div><div class="vscom-grid-cell vscom-grid-cell--10 " style=""> <ul> <li>Visual Studio 2022 Enterprise​</li> <li>Azure DevOps (Basic + Test plan)</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--11 " style=""> <a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-enterprise-monthly#pricing" class="vscom-btn-primary-sm vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_subscriptions_Enterprise monthly_buy now">Buy now</a></div><div class="vscom-grid-cell vscom-grid-cell--12 grid-bottom" style=""> </div><div class="vscom-grid-cell vscom-grid-cell--13 grid-top" style=""> <h4>Professional monthly</h4> <h4>$45 user/mo</h4> </div><div class="vscom-grid-cell vscom-grid-cell--14 " style=""> <ul> <li>Visual Studio 2022 Professional​</li> <li>Azure DevOps (Basic plan)</li> </ul> </div><div class="vscom-grid-cell vscom-grid-cell--15 " style=""> <a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-professional-monthly#overview" class="vscom-btn-primary-sm vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_subscriptions_professional monthly_buy now">Buy now</a></div><div class="vscom-grid-cell vscom-grid-cell--16 grid-bottom" style=""> </div></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-8 fusion-flex-container has-pattern-background has-mask-background table-lane vscom-builder-tabs-content--main-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-color:#fbf7ff;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-12 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-z-index:10;--awb-padding-top:10px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><style> .vscom-sticky-header .vscom-sticky-header-body { width: calc(100% - 20%); margin-left: 20%; } </style> <div class="vscom-sticky-header "> <div class="vscom-sticky-header-wrapper"> <ul class="vscom-sticky-header-body"> <li class="vscom-sticky-header-item "> <h4>Enterprise standard</h4> <p><a href="https://www.microsoft.com/d/visual-studio-enterprise-subscription/dg7gmgf0dst4?activetab=pivot:overviewtab" class="vscom-btn-primary-sm fill-violet" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="Buy now" data-bi-name="body_sticky cta_enterprise standard_buy now" tabindex="-1">Buy now</a></li><li class="vscom-sticky-header-item "> <h4>Professional standard</h4> <p><a href="https://www.microsoft.com/d/visual-studio-professional-subscription/dg7gmgf0dst3/0001?activetab=pivot:overviewtab" class="vscom-btn-primary-sm fill-violet" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="Buy now" data-bi-name="body_sticky cta_professional standard_buy now" tabindex="-1">Buy now</a></li><li class="vscom-sticky-header-item "> <h4>Enterprise monthly</h4> <p><a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-enterprise-monthly#pricing" class="vscom-btn-primary-sm fill-violet" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="Buy now" data-bi-name="body_sticky cta_enterprise monthly_buy now" tabindex="-1">Buy now</a></li><li class="vscom-sticky-header-item "> <h4>Professional monthly</h4> <p><a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-professional-monthly#overview" class="vscom-btn-primary-sm fill-violet" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="Buy now" data-bi-name="body_sticky cta_professional monthly_buy now" tabindex="-1">Buy now</a></li> </ul> </div> </div> </div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-13 fusion_builder_column_1_1 1_1 fusion-flex-column tab-content" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="vscom-one-toggle-table"> <div class="expand-buttons"> <a id="expand-btn" class="expand-button vscom-btn-primary-sm vscom-btn-wire vscom-wire-black vscom-btn-fill-grow fill-violet disabled" role="button" aria-label="Click to expand all table rows" href="javascript:void(0)" data-bi-id="Expand all" data-bi-area="table" data-bi-name="table_Expand all" aria-disabled="true" tabindex="-1" disabled>Expand all</a> <a id="collapse-btn" class="collapse-button vscom-btn-primary-sm vscom-btn-wire vscom-wire-black vscom-btn-fill-grow fill-violet " role="button" aria-label="Click to collapse all table rows" href="javascript:void(0)" data-bi-id="Collapse all" data-bi-area="table" data-bi-name="table_Collapse all" aria-disabled="false">Collapse all</a> </div> <table cellspacing="0" cellpadding="0" role="treegrid" summary="A comparison of the four versions of Visual Studio" class="vscom-onetoggletable "> <caption class="visually-hidden"></caption> <thead class=""> <tr> <td></td> <th scope="col"><span class="visually-hidden">Enterprise standard</span></th> <th scope="col"><span class="visually-hidden">Professional standard</span></th> <th scope="col"><span class="visually-hidden">Enterprise monthly</span></th> <th scope="col"><span class="visually-hidden">Professional monthly</span></th> <th scope="col"><span class="visually-hidden"></span></th> </tr> </thead> <tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span>Visual Studio IDE</span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Visual Studio 2022<button data-bi-area="body" data-bi-id="visual-studio-2022" data-bi-name="body_comparision table_info icon popup_visual-studio-2022" class="tooltip-showhide" aria-labelledby="visual-studio-2022"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="visual-studio-2022" role="tooltip">Open-source, cross-platform development platform for building all your apps</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Access to past versions of Visual Studio</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Perpetual IDE license included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span>GitHub Enterprise</span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">GitHub Enterprise<button data-bi-area="body" data-bi-id="visual-studio-2022" data-bi-name="body_comparision table_info icon popup_gitHub-enterprise" class="tooltip-showhide" aria-labelledby="gitHub-enterprise"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="gitHub-enterprise" role="tooltip">Professional and Enterprise standard subscriptions can be purchased as a bundle with GitHub Enterprise via an Enterprise agreement. Please see below for further information on Enterprise agreements</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">Options available</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">Options available</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span>Extensions in VS Code</span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>C# Dev Kit for VS Code</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>IntelliCode for C# Dev Kit</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">.NET MAUI extension for VS Code</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">UNITY extension for VS Code</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span> <p>Azure DevOps</p> </span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Basic features</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Test plans</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Self-hosted pipelines</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Artifacts</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span> <p>Cloud services</p> </span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Azure dev/test individual credits</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">$150 credit/month</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">$50 credit/month</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Azure dev/test pricing</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Microsoft 365 developer subscription (E5)</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Power BI Pro</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Windows Store developer account</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Visual Studio App Center</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Windows Virtual Desktop</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span> <p>Azure DevOps Server</p> </span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Server license</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">User client access license (CAL)</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Test plans</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Self-hosted pipelines</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Artifacts</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> </tr><tbody class="software-row"> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span>Software for dev/test<br /> <a href="https://aka.ms/vss_products_list" target="_blank" rel="noopener" class="black-link table-header-link" data-bi-area="body" data-bi-id="Download the full list" data-bi-name="body_comparision table_Download the full list">Download the full list</a></span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Microsoft Office Professional Plus, Project, Visio</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Windows, Windows Server, Windows Embedded, Microsoft SQL Server</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Sharepoint, Exchange, Dynamics &amp; other Microsoft server software</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span> <p>Training and education</p> </span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">LinkedIn Learning<button data-bi-area="body" data-bi-id="linkedIn-learning" data-bi-name="body_comparision table_info icon popup_linkedIn-learninge" class="tooltip-showhide" aria-labelledby="linkedIn-learning"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="linkedIn-learning" role="tooltip">Professional standard subscriptions include 3 months of access. Enterprise standard subscriptions include 6 months of access.</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">6 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">3 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">DataCamp<button data-bi-area="body" data-bi-id="datacamp" data-bi-name="body_comparision table_info icon popup_datacamp" class="tooltip-showhide" aria-labelledby="datacamp"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="datacamp" role="tooltip">Professional standard and Enterprise standard subscriptions include 3 months of access.</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">3 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">3 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Pluralsight training<button data-bi-area="body" data-bi-id="pluralsight-training" data-bi-name="body_comparision table_info icon popup_pluralsight-training" class="tooltip-showhide" aria-labelledby="pluralsight-training"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="pluralsight-training" role="tooltip">Professional standard subscriptions include 3 months of access. Enterprise standard subscriptions include 6 months of access.</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">6 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">3 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">CODE Magazine<button data-bi-area="body" data-bi-id="code-magazine" data-bi-name="body_comparision table_info icon popup_code-magazine" class="tooltip-showhide" aria-labelledby="code-magazine"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="code-magazine" role="tooltip">Professional and Enterprise standard plans include a 12-month subscription to Code Magazine (print or digital).</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">12 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">12 months included</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Dometrain<button data-bi-area="body" data-bi-id="dometrain" data-bi-name="body_comparision table_info icon popup_dometrain" class="tooltip-showhide" aria-labelledby="dometrain"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="dometrain" role="tooltip">Professional standard subscriptions and Enterprise standard subscriptions save 50% off Dometrain Pro for Visual Studio for 12 months.</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">50% discount for 12 months</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">50% discount for 12 months</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">DevForge<button data-bi-area="body" data-bi-id="DevForge" data-bi-name="body_comparision table_info icon popup_DevForge" class="tooltip-showhide" aria-labelledby="DevForge"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="DevForge" role="tooltip">Professional standard subscriptions and Enterprise standard subscriptions save 50% off DevForge’s Dev Pass Business Edition for 12 months.</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">50% discount for 12 months</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">50% discount for 12 months</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span> <p>Support</p> </span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Technical support<button data-bi-area="body" data-bi-id="technical-support" data-bi-name="body_comparision table_info_icon_popup_technical-support" class="tooltip-showhide" aria-labelledby="technical-support"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="technical-support" role="tooltip">Professional standard subscriptions include 2 support incidents. Enterprise standard subscriptions include 4 support incidents.​​</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">4 incidents</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">2 incidents</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Developer Community</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Concierge chat</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Azure Community</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text">Microsoft Q&amp;A</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Microsoft Tech Community</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span>Software/services for production use</span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Microsoft 365 Apps for enterprise</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>Office Professional Plus 2019
(licensed for normal use on one device)</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--CheckMark" aria-label="feature available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tbody class=""> <tr class="vscom-onetoggletable-thead tblRowCollapsable expanded vscom-onetoggletable-row" aria-expanded="true" tabindex="0"> <th colspan="5" scope="colgroup"><span> <p>3rd party offers</p> </span></th> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"> <p>CloudPilot</p> </span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">2 licenses for 90 days</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text">1 license for 30 days</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"><a href="https://software.parasoft.com/virtualize/microsoft/" target="_blank" rel="noopener" class="black-link" data-bi-area="body" data-bi-id="Parasoft" data-bi-name="body_comparision table_Parasoft">Parasoft</a><br /> Virtualize/SOAtest Professional Desktop</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">Full subscription for 6 months</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr><tr class="vscom-onetoggletable-row content-rows content" role="row" tabindex="-1"> <td class="vscom-onetoggletable-rowheader" role="rowheader" scope="row"> <span class="vscom-onetoggletable-text"><a href="https://www.mend.io/free-developer-tools/bolt/azure-thank-you/" class="black-link" target="_blank" rel="noopener" data-bi-area="body" data-bi-id="WhiteSource" data-bi-name="body_comparision table_WhiteSource">WhiteSource</a><br /> Azure DevOps Server/Azure DevOps Bolt extension<button data-bi-area="body" data-bi-id="white-source" data-bi-name="body_comparision table_info icon popup_white-source" class="tooltip-showhide" aria-labelledby="white-source"><i class="tooltip-icon vscom-icon vscom-icon--StatusCircleInfo"></i><span class="info" aria-hidden="true" id="white-source" role="tooltip">Enterprise standard subscriptions include 6 months of access.</span></button></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise standard</span><span class="vscom-onetoggletable-text">6 months unlimited scans</span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional standard</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Enterprise monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> <td class="vscom-onetoggletable-gridcell" role="gridcell"> <span aria-hidden="true" class="mobile-cell-text">Professional monthly</span><span class="vscom-onetoggletable-text"><i role="img" class="vscom-icon vscom-icon--Remove" aria-label="feature not available"></i></span> </td> </tr> </table> </div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-9 fusion-flex-container has-pattern-background has-mask-background vol-lane vscom-builder-tabs-content--main-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:90px;--awb-flex-wrap:wrap;" id="volume-licensing" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-14 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-7 fusion-sep-none fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Volume licensing​</h2></div><div class="fusion-text fusion-text-6"><p>Get the best pricing and discounts for small, mid-size, and large organizations.</p> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-15 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><style>.vscom-grid-container.vscom-grid-container--5{ row-gap:0; column-gap:56px; grid-template-columns: 1fr 1fr; grid-template-rows: auto; } @media screen and (max-width: 1083px) { .vscom-grid-container.vscom-grid-container--5 { grid-template-columns: 1fr ; grid-template-rows: auto; column-gap: 20px; } }@media screen and (max-width: 600px) { .vscom-grid-container.vscom-grid-container--5 { grid-template-columns: 1fr; grid-template-rows: auto; column-gap: 20px; } } .vscom-grid-container--5 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--5 .vscom-grid-cell--2 { order:3; }.vscom-grid-container--5 .vscom-grid-cell--3 { order:5; }.vscom-grid-container--5 .vscom-grid-cell--4 { order:2; }.vscom-grid-container--5 .vscom-grid-cell--5 { order:4; }.vscom-grid-container--5 .vscom-grid-cell--6 { order:6; } @media screen and (max-width:1083px) { .vscom-grid-container--5 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--5 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--5 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--5 .vscom-grid-cell--4 { order:4; }.vscom-grid-container--5 .vscom-grid-cell--5 { order:5; }.vscom-grid-container--5 .vscom-grid-cell--6 { order:6; }} @media screen and (max-width:600px) { .vscom-grid-container--5 .vscom-grid-cell--1 { order:1; }.vscom-grid-container--5 .vscom-grid-cell--2 { order:2; }.vscom-grid-container--5 .vscom-grid-cell--3 { order:3; }.vscom-grid-container--5 .vscom-grid-cell--4 { order:4; }.vscom-grid-container--5 .vscom-grid-cell--5 { order:5; }.vscom-grid-container--5 .vscom-grid-cell--6 { order:6; }}</style> <div class="vscom-grid-container vscom-grid-container--5 vol-cards" data-bi-name=""> <div class="vscom-grid-cell vscom-grid-cell--1 top" style=""> <img decoding="async" data-src="/wp-content/uploads/2024/12/OpenValueprogram_img_1576-scaled.webp" src="/wp-content/uploads/2024/12/OpenValueprogram_img_1576-scaled.webp" alt="Open Value program screenshot" class="img-responsive vscom-not-lazy-image" /></div><div class="vscom-grid-cell vscom-grid-cell--2 middle" style=""> <h3>Open Value program</h3> <p>Open Value is the recommended program if you have a small to midsize organization with five or more desktop PCs and want to simplify license management, manage software costs, and improve your control over your investment.</p> </div><div class="vscom-grid-cell vscom-grid-cell--3 bottom" style=""> <div class="vscom-link-wrapper"><a data-bi-id="learn more" data-bi-area="body" data-bi-name="body_Volume licensing​_Open Value program_learn more" href="https://www.microsoft.com/Licensing/licensing-programs/open-license?rtc=1" class="vscom-arrow-link" target="_blank" aria-label="click to lean more about Open Value program" rel="noopener"><span class="vscom-link-text">Learn more</span><i class="vscom-icon vscom-icon--arrow-right"></i></a></div> </div><div class="vscom-grid-cell vscom-grid-cell--4 top" style=""> <img decoding="async" data-src="/wp-content/uploads/2024/12/EnterpriseAgreement_img_1576-scaled.webp" src="/wp-content/uploads/2024/12/EnterpriseAgreement_img_1576-scaled.webp" alt="Enterprise Agreement screenshot" class="img-responsive vscom-not-lazy-image" /></div><div class="vscom-grid-cell vscom-grid-cell--5 middle" style=""> <h3>Enterprise Agreement</h3> <p>The Microsoft Enterprise Agreement offers the best value to organizations with 500 or more users or devices that want a manageable volume licensing program that gives them the flexibility to buy cloud services and software licenses under one agreement. ​</p> </div><div class="vscom-grid-cell vscom-grid-cell--6 bottom" style=""> <div class="vscom-link-wrapper"><a href="https://www.microsoft.com/Licensing/licensing-programs/enterprise?rtc=1&amp;activetab=enterprise-tab:primaryr2" class="vscom-arrow-link" aria-label="click to learn more about Open Value program" target="_blank" rel="noopener" data-bi-id="learn more" data-bi-area="body" data-bi-name="body_Volume licensing​_Enterprise Agreement_learn more"><span class="vscom-link-text">Learn more</span><i class="vscom-icon vscom-icon--arrow-right"></i></a></div> </div></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-10 fusion-flex-container has-pattern-background has-mask-background vscom-builder-tabs-content--main-1 professional-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:90px;--awb-padding-bottom:90px;--awb-background-color:#e9e1f6;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-16 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-center" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;" data-scroll-devices="small-visibility,medium-visibility,large-visibility"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-center fusion-content-layout-column"><div class="fusion-title title fusion-title-8 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-center fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Visual Studio Professional 2022​</h2></div><div class="fusion-text fusion-text-7" style="--awb-content-alignment:center;"><p>Need only the current version of Visual Studio Professional? 
Consider getting the one-time purchase IDE standalone.</p> </div><div class="fusion-text fusion-text-8" style="--awb-content-alignment:center;"><p><a href="https://www.microsoft.com/d/visual-studio-professional-2022/dg7gmgf0d3sj?rtc=1&amp;activetab=pivot:overviewtab" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Visual Studio Professional 2022​_buy now">Buy now</a></p> </div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-11 fusion-flex-container has-pattern-background has-mask-background vscom-builder-tabs-content--main-1 select-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:90px;--awb-padding-bottom:55px;--awb-background-color:#f7f7f7;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-17 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-9 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-center fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Still not sure which plan to choose?</h2></div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-18 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="express-select-wrapper "> <div class="vscom-select-wrapper"> <label for="select-7472">Select an option</label> <select class="vscom-select" id="select-7472"> <option value="0">What do you want included as part of your subscription package?</option> <option aria-setsize="6" value="option-1" aria-posinset="1">I manage complex, large-scale projects across multiple platforms</option><option aria-setsize="6" value="option-2" aria-posinset="2">I focus on commercial development in a small business</option><option aria-setsize="6" value="option-1" aria-posinset="3">I’m focused on DevOps and automated deployments</option><option aria-setsize="6" value="option-2" aria-posinset="4">I’m a developer or tester or solutions hosted on Windows/SQL Server</option><option aria-setsize="6" value="option-10" aria-posinset="5">I only want month-to-month access to the Visual Studio Professional 2022 IDE</option><option aria-setsize="6" value="option-7" aria-posinset="6">I only want offline access to the Visual Studio Professional 2022 IDE with perpetual use rights</option> </select> </div> <div class="express-select-boxes-wrapper"> <div class="express-select-box express-select-box--flexbox " data-select-id="option-1"> <div class="outer-box"> <div class="box-text"> <h3>Enterprise standard</h3> <p>A full year of access to a comprehensive stack of enterprise tools for testing, debugging, collaboration, including access to the comprehensive library of Microsoft software, monthly Azure credits, Azure Pay-as-you-go pricing, discounted Azure DevOps basic + Test Plans, premium support and more to optimize development.</p> </div> <div class="price-text"><span class="price-wrapper"><span class="price">$499.92</span><span class="price-sm">user/mo*</span></span><a href="https://www.microsoft.com/d/visual-studio-enterprise-subscription/dg7gmgf0dst4/0003?activetab=pivot:overviewtab" class="price-sm black-link" data-bi-id="Or renew at $214.09" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_enterprise standard_Or renew at $214.09">Or renew at $214.09 user/mo*</a></div> </div> <div class="footer"> <p><a href="https://www.microsoft.com/en-us/d/visual-studio-enterprise-subscription/dg7gmgf0dst4?activetab=pivot:overviewtab" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_enterprise standard_buy now">Buy now</a></p> <p class="footer-note price-sm">*Paid annually</p> </div> </div><div class="express-select-box express-select-box--flexbox " data-select-id="option-2"> <div class="outer-box"> <div class="box-text"> <h3>Professional standard</h3> <p>A full year of access to a robust set of tools for testing and deploying applications including access to a library of Microsoft software, monthly Azure credits, Azure Pay-as-you-go pricing, discounted Azure DevOps basic, support and more.</p> </div> <div class="price-text"><span class="price-wrapper"><span class="price">$99.99</span><span class="price-sm">user/mo*</span></span><a href="https://www.microsoft.com/d/visual-studio-professional-subscription/dg7gmgf0dst3/0003?activetab=pivot:overviewtab" class="price-sm black-link" target="_blank" rel="noopener" data-bi-id="Or renew at $66.59" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_professional standard_Or renew at $66.59">Or renew at $66.59 user/mo*</a></div> </div> <div class="footer"> <p><a href="https://www.microsoft.com/en-us/d/visual-studio-professional-subscription/dg7gmgf0dst3/0001?activetab=pivot:overviewtab" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_professional standard_buy now">Buy now</a></p> <p class="footer-note price-sm">*Paid annually</p> </div> </div><div class="express-select-box express-select-box--flexbox " data-select-id="option-10"> <div class="outer-box"> <div class="box-text"> <h3>Enterprise monthly</h3> <p>Month-to-month access to Visual Studio Enterprise and a set of tools including C#, a TFS license, Microsoft SQL Server Developer edition and access to Azure DevOps basic + Test Plans.</p> </div> <div class="price-text"><span class="price-wrapper"><span class="price">$250</span><span class="price-sm">user/mo</span></span></div> </div> <div class="footer"><a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-enterprise-monthly#overview" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_enterprise monthly_buy now">Buy now</a></div> </div><div class="express-select-box express-select-box--flexbox " data-select-id="option-10"> <div class="outer-box"> <div class="box-text"> <h3>Professional monthly</h3> <p>Month-to-month access to Visual Studio Professional and a set of tools including C#, a TFS license, and access to Azure DevOps basic.</p> </div> <div class="price-text"><span class="price-wrapper"><span class="price">$45</span><span class="price-sm">user/mo</span></span></div> </div> <div class="footer"><a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-professional-monthly#overview" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_professional monthly_buy now">Buy now</a></div> </div><div class="express-select-box express-select-box--flexbox " data-select-id="option-7"> <div class="outer-box"> <div class="box-text"> <h3>IDE standalone</h3> <p>This standalone version includes perpetual licensing without the other benefits included in subscriptions.</p> </div> <div class="price-text"><span class="price-wrapper"><span class="price">$499</span></span></div> </div> <div class="footer"><a href="https://www.microsoft.com/en-us/d/visual-studio-professional-2022/dg7gmgf0d3sj?msockid=24a94bf18b6564e93ece5ee58af7656d&amp;activetab=pivot:overviewtab" class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" target="_blank" rel="noopener" data-bi-id="buy now" data-bi-area="body" data-bi-name="body_Still not sure which plan to choose_IDE standalone_buy now">Buy now</a></div> </div> </div> </div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-12 has-pattern-background has-mask-background vscom-swimlane vscom-swimlane--reduced-bottom-padding faq-title-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:45px;--awb-flex-wrap:wrap;" id="faq" ><div class="fusion-builder-row fusion-row"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-19 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last" style="--awb-bg-size:cover;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy"><div class="fusion-title title fusion-title-10 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two vscom-swimlane-title vscom-swimlane-title--center-small"><h2 class="fusion-title-heading title-heading-center fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">FAQ</h2></div><div class="fusion-clearfix"></div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-20 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last" style="--awb-bg-size:cover;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy"><div class="fusion-text fusion-text-9"><div class="fusion-text vscom-faq-search vscom-faq-search--full-width"> <div class="faq-input-wrapper"> <input id="faq-search-input" aria-label="Search FAQ" type="text" placeholder="Search FAQ" class="x-hidden-focus"> <button id="faq-search-button" aria-label="Submit Search"><i class="vscom-icon vscom-icon--Search"></i></button> <button id="faq-clear-button" aria-label="Clear Search"><i class="vscom-icon vscom-icon--Clear"></i></button> </div> </div> </div><div class="fusion-clearfix"></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-13 fusion-flex-container has-pattern-background has-mask-background vscom-swimlane vscom-swimlane--reduced-top-padding faq-content-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-bottom:90px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-21 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-flex-start fusion-layout-column--no-margins fusion-column-no-min-height" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-10"><div class="vscom-buildertabs"> <div class="vscom-buildertabs-wrapper"> <ul class="vscom-buildertabs-list" role="tablist"> <li class="vscom-buildertabs-item" data-tab="0" role="presentation"><button data-bi-area="body" data-bi-name="body_faq_Pre-Sales and Purchase" data-bi-id="Pre-Sales and Purchase" class="vscom-buildertabs-button" data-tab="0" aria-selected="false" role="tab"><span class="vscom-buildertabs-button-wrapper"><span class="vscom-buildertabs-button-text">Pre-Sales and Purchase</span><span class="vscom-buildertabs-button-count"></span></span></button></li> <li class="vscom-buildertabs-item" data-tab="1" role="presentation"><button data-bi-area="body" data-bi-name="body_faq_Benefits and licensing" data-bi-id="Benefits and licensing" class="vscom-buildertabs-button" data-tab="1" aria-selected="false" role="tab"><span class="vscom-buildertabs-button-wrapper"><span class="vscom-buildertabs-button-text">Benefits and licensing</span><span class="vscom-buildertabs-button-count"></span></span></button></li> <li class="vscom-buildertabs-item" data-tab="2" role="presentation"><button data-bi-name="body_faq_Billing and renewals" data-bi-id="Billing and renewals" class="vscom-buildertabs-button" data-tab="2" aria-selected="false" role="tab"><span class="vscom-buildertabs-button-wrapper"><span class="vscom-buildertabs-button-text">Billing and renewals</span><span class="vscom-buildertabs-button-count"></span></span></button></li> </ul> </div> </div> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-22 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-11"><div class="vscom-buildertabs vscom-buildertabs--mobile"> <div class="vscom-buildertabs-wrapper"> <ul class="vscom-buildertabs-list"> <li class="vscom-buildertabs-item"><button data-bi-id="FAQ" class="vscom-buildertabs-button" data-tab="0"><span class="vscom-buildertabs-button-wrapper"><span class="vscom-buildertabs-button-text">Pre-sales and Purchase</span><span class="vscom-buildertabs-button-count"></span></span></button></li> </ul> </div> </div> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-23 fusion_builder_column_1_1 1_1 fusion-flex-column vscom-searchable-faq vscom-buildertab--tab-0" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><style type="text/css">.fusion-accordian #accordion-42693-1 .panel-title a .vscom-icon{ color: #000000;}.fusion-accordian #accordion-42693-1 .panel-title a .vscom-icon:before{ font-size: 16px; width: 16px;}.fusion-accordian #accordion-42693-1 .panel-title a{font-size:24px;}.fusion-accordian #accordion-42693-1 .panel-title a:hover, #accordion-42693-1 .fusion-toggle-boxed-mode:hover .panel-title a .fusion-toggle-heading{ color: #8661c5;}</style><div class="vscom-toggle accordian fusion-accordian fusion-accordian--pricing-faq"><div class="panel-group fusion-toggle-icon-unboxed" id="accordion-42693-1" data-allow-toggle><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="1bea70d60c6e3af14" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#1bea70d60c6e3af14" href="#1bea70d60c6e3af14" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">What is the difference between Visual Studio and Visual Studio Code?</span></a></div></div><div id="1bea70d60c6e3af14" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Visual Studio is a fully-featured IDE whereas Visual Studio Code is a code editor. Visual Studio Code is free and based on open source, and runs on Windows, macOS, and Linux. <a data-bi-id="Check out this doc for a more detailed understanding of the differences" data-bi-area="body" data-bi-name="body_FAQ_tab1_Check out this doc for a more detailed understanding of the differences" href="https://code.visualstudio.com/docs/supporting/FAQ#_what-is-the-difference-between-visual-studio-code-and-visual-studio-ide%20" target="_blank" rel="noopener">Check out this doc for a more detailed understanding of the differences.</a>aq</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="5d4fcd62986723b92" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#5d4fcd62986723b92" href="#5d4fcd62986723b92" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">How do I purchase Visual Studio subscriptions for a business?</span></a></div></div><div id="5d4fcd62986723b92" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Depending on the size of your business, there are different agreements and <a data-bi-id="licensing types" data-bi-area="body" data-bi-name="body_faq_tab1_licensing types" href="https://www.microsoft.com/Licensing/licensing-programs/licensing-programs" target="_blank" rel="nofollow noopener">licensing types</a> that are available. You can purchase directly from the <a data-bi-id="Visual Studio Marketplace" data-bi-area="body" data-bi-name="body_faq_tab1_Visual Studio Marketplace" href="https: //marketplace.visualstudio.com/subscriptions" target="_blank" rel="nofollow noopener">Visual Studio Marketplace</a>. You can also purchase through Microsoft Volume Licensing for commercial licensing agreements or a <a data-bi-id="Solution Partner" data-bi-area="body" data-bi-name="body_faq_tab1_Solution Partner" href="https://www.microsoft.com/solution-providers/home" target="_blank" rel="nofollow noopener">Solution Partner</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="0afed1cad3df81b0c" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#0afed1cad3df81b0c" href="#0afed1cad3df81b0c" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">How do I purchase a Visual Studio subscription for myself?</span></a></div></div><div id="0afed1cad3df81b0c" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">As an individual, you have a few options depending on your needs. You can purchase a monthly subscription from the <a data-bi-id="Visual Studio Marketplace" data-bi-area="body" data-bi-name="body_faq_tab1_Visual Studio Marketplace" href="https://marketplace.visualstudio.com/subscriptions" target="_blank" rel="nofollow noopener">Visual Studio Marketplace</a> if you just need access to the IDE and want the flexibility of a monthly subscription. You can also purchase the subscription which includes the IDE as well as many other benefits such as Azure dev/test individual credits, Azure DevOps, training, services, support and more, from the <a data-bi-id="Microsoft Store" data-bi="" area="body" data-bi-name="body_faq_tab1_Microsoft Store" href="https://www.microsoft.com/store/collections/visualstudio" target="_blank" rel="nofollow noopener">Microsoft Store</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="468aa7431c91234cd" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#468aa7431c91234cd" href="#468aa7431c91234cd" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">What’s the difference between monthly subscriptions and standard subscriptions?</span></a></div></div><div id="468aa7431c91234cd" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Monthly (or “cloud”) subscriptions are billed each month and provide billing flexibility. This is a great option for those that just need to use Visual Studio and/or Azure DevOps for a short time, or don’t need the other benefits offered in most standard subscriptions.</p> <p>Standard subscriptions include access to more benefits, such as Azure dev/test pricing, monthly Azure individual credit, software and download access, services, training, and support. Standard subscriptions often also include a perpetual license for Visual Studio, meaning you can continue to use the product after the subscription expires.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="c6c11ce1d8b2d28be" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#c6c11ce1d8b2d28be" href="#c6c11ce1d8b2d28be" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Do you offer discounts for start-ups?</span></a></div></div><div id="c6c11ce1d8b2d28be" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">There aren&#8217;t any discounts available to start-ups, however an unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects. For more information about Visual Studio Community, please see the <a data-bi-id="licensing terms" data-bi-area="body" data-bi-name="body_faq_tab1_licensing terms" href="https://visualstudio.microsoft.com/license-terms/vs2022-ga-community/" aria-label="Visual Studio Community licensing terms">licensing terms</a>. For more information about options for start-ups visit <a data-bi-id="microsoft.com" data-bi-area="body" data-bi-name="body_faq_tab1_microsoft.com" href="https://startups.microsoft.com" target="_blank" rel="nofollow noopener">https://startups.microsoft.com</a>.</p> <p>For all other usage scenarios:<br /> In non-enterprise organizations, up to five users can use Visual Studio Community. In enterprise organizations (meaning those with &gt;250 PCs or &gt;$1 Million US Dollars in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="489badfb7ddbe5e19" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#489badfb7ddbe5e19" href="#489badfb7ddbe5e19" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">I am looking for MSDN Platforms</span></a></div></div><div id="489badfb7ddbe5e19" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Please read <a href="https://aka.ms/VSS/MSDNPlatforms" target="_blank" rel="noopener" data-bi-id="here" data-bi-area="body" data-bi-name="body_faq_tab1_I am looking for MSDN Platforms_here">here</a> for more information on standard subscription for MSDN Platforms.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="dbe9c3a6001918ce5" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#dbe9c3a6001918ce5" href="#dbe9c3a6001918ce5" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">I am looking for Test Professional</span></a></div></div><div id="dbe9c3a6001918ce5" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Learn more about Visual Studio Test professional <a data-bi-id="here" data-bi-area="body" data-bi-name="body_faq_tab1_I am looking for Test Professional_here" href="https://www.microsoft.com/d/visual-studio-test-professional-subscription/dg7gmgf0dst6?activetab=pivot:overviewtab" target="_blank" rel="noopener">here</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="e548273deea1f6f4d" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#e548273deea1f6f4d" href="#e548273deea1f6f4d" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">I am looking for Visual Studio standalone</span></a></div></div><div id="e548273deea1f6f4d" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Check out the <a data-bi-id="pricing details page" data-bi-area="body" data-bi-name="body_faq_tab1_pricing details page" href="https://www.microsoft.com/d/visual-studio-professional-2022/dg7gmgf0d3sj?msockid=24a94bf18b6564e93ece5ee58af7656d&amp;activetab=pivot:overviewtab" target="_blank" rel="noopener">pricing details page</a> for information on Visual Studio Professional standalone license.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="8c33b463bbb881495" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#8c33b463bbb881495" href="#8c33b463bbb881495" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">There are a lot of subscription options with different features, benefits and included downloads. Which one is the right for me?</span></a></div></div><div id="8c33b463bbb881495" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Take a look at <a data-bi-id="the comparison charts" data-bi-area="body" data-bi-name="body_faq_tab1_the comparison charts" id="compare-href" href="#compare" data-tab="1">the comparison charts</a> to see the options available with each subscription level to determine which subscription meets your needs. If you aren&#8217;t sure which benefits you need, you can take a look at our <a data-bi-id="Visual Studio subscriptions benefits page" data-bi-area="body" data-bi-name="body_faq_tab1_Visual Studio subscriptions benefits page" href="https://visualstudio.microsoft.com/vs/benefits">Visual Studio subscriptions benefits page</a> which provides more details about each of the benefits that are included with each subscription level.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="df453a318668a3dfa" role="button" data-toggle="collapse" data-parent="#accordion-42693-1" data-target="#df453a318668a3dfa" href="#df453a318668a3dfa" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Can I still use Express?</span></a></div></div><div id="df453a318668a3dfa" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Yes, but we recommend using our latest Visual Studio instead. Have you tried the free <a data-bi-id="Visual Studio Community" data-bi-area="body" data-bi-name="body_faq_tab1_Visual Studio Community" href="https://visualstudio.microsoft.com/vs/community/">Visual Studio Community</a>?</div></div></div></div></div><div class="fusion-text fusion-text-12 vscom-no-faq-results"><p>0 results found.</p> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-24 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-13"><div class="vscom-buildertabs vscom-buildertabs--mobile"> <div class="vscom-buildertabs-wrapper"> <ul class="vscom-buildertabs-list"> <li class="vscom-buildertabs-item"><button data-bi-id="FAQ" class="vscom-buildertabs-button" data-tab="1"><span class="vscom-buildertabs-button-wrapper"><span class="vscom-buildertabs-button-text">Benefits and licensing</span><span class="vscom-buildertabs-button-count"></span></span></button></li> </ul> </div> </div> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-25 fusion_builder_column_1_1 1_1 fusion-flex-column vscom-searchable-faq vscom-buildertab--tab-1" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><style type="text/css">.fusion-accordian #accordion-42693-2 .panel-title a .vscom-icon{ color: #000000;}.fusion-accordian #accordion-42693-2 .panel-title a .vscom-icon:before{ font-size: 16px; width: 16px;}.fusion-accordian #accordion-42693-2 .panel-title a{font-size:24px;}.fusion-accordian #accordion-42693-2 .panel-title a:hover, #accordion-42693-2 .fusion-toggle-boxed-mode:hover .panel-title a .fusion-toggle-heading{ color: #8661c5;}</style><div class="vscom-toggle accordian fusion-accordian fusion-accordian--pricing-faq"><div class="panel-group fusion-toggle-icon-unboxed" id="accordion-42693-2" data-allow-toggle><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="446546c80c6d8e77a" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#446546c80c6d8e77a" href="#446546c80c6d8e77a" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">I purchased a subscription. Where do I go to find my benefits and get started?</span></a></div></div><div id="446546c80c6d8e77a" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">To access your subscription benefits, go to <a data-bi-id="my.visualstudio.com" data-bi-area="body" data-bi-name="body_faq_tab2_my.visualstudio.com" href="https://my.visualstudio.com" target="_blank" rel="noopener">https://my.visualstudio.com</a> and sign in using the email address that you used to sign up for the subscription (or the one that your administrator used to assign one to you). Once you’re signed in, all of your benefits will be in the portal.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="4793f6ee38c11285a" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#4793f6ee38c11285a" href="#4793f6ee38c11285a" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Where can I find more information about which benefits are included with Visual Studio subscriptions?</span></a></div></div><div id="4793f6ee38c11285a" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Available benefits vary by subscription level and are subject to change. To see which benefits are included for each subscription level, please visit the <a data-bi-id="benefits webpage" data-bi-area="body" data-bi-name="body_faq_tab2_benefits webpage" href="https://visualstudio.microsoft.com/subscriptions/">benefits webpage</a>. You can select the subscription you’re interested in, and then see which benefits are available in the various levels.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="b5c8559db8f66b001" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#b5c8559db8f66b001" href="#b5c8559db8f66b001" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">What software downloads are available in Visual Studio subscriptions?</span></a></div></div><div id="b5c8559db8f66b001" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Download the Microsoft Excel file for a <a data-bi-id="comprehensive list of the downloads" data-bi-area="body" data_bi_name="body_faq_tab2_comprehensive list of the downloads" href="https://aka.ms/vss_products_list" target="_blank" rel="nofollow noopener">comprehensive list of the downloads</a> included with different subscription levels.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="893d243840c368b91" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#893d243840c368b91" href="#893d243840c368b91" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">What are the licensing terms for Visual Studio subscriptions?</span></a></div></div><div id="893d243840c368b91" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">For a complete document containing the <a data-bi-id="licensing terms" data-bi-area="body" data-bi-name="body_faq_tab2_licensing terms" href="https://aka.ms/VSLicensingPaper" target="_blank" rel="nofollow noopener">licensing terms</a> for Visual Studio subscriptions, download the white paper.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="611a52c6ced7c0d35" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#611a52c6ced7c0d35" href="#611a52c6ced7c0d35" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">How can I get access to older versions of Visual Studio?</span></a></div></div><div id="611a52c6ced7c0d35" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">If you purchase a Visual Studio subscription, both current and old versions of Visual Studio are available. To see the exact versions available for various subscription levels, <a data-bi-id="download the complete list of software" data-bi-area="body" data-bi-name="body_faq_tab2_download the complete list of software" href="https://download.microsoft.com/download/1/5/4/15454442-CF17-47B9-A65D-DF84EF88511B/Visual_Studio_by_Subscription_Level.xlsx" target="_blank" rel="nofollow noopener">download the complete list of software</a>. For access to previous versions of Visual Studio Community you can go <a data-bi-id="here" data-bi-area="body" data-bi-name="body_faq_tab2_here" href="https://visualstudio.microsoft.com/vs/older-downloads/">here</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="675721a01269e04be" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#675721a01269e04be" href="#675721a01269e04be" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Are new VS versions included in a subscription?</span></a></div></div><div id="675721a01269e04be" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix"> <p>Yes, the newest version of Visual Studio will be available as long as your subscription is active.</p> </div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="3c0dc5dafec7ac9f8" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#3c0dc5dafec7ac9f8" href="#3c0dc5dafec7ac9f8" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Can I use VS Community? </span></a></div></div><div id="3c0dc5dafec7ac9f8" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Any individual can sign up for Visual Studio Community to create their own free or paid apps. There are restrictions for organizations that wish to use Visual Studio Community. For more information, visit the <a data-bi-id="Visual Studio Community page" data-bi-area="body" data-bi-name="body_faq_tab2_Visual Studio Community page" href="https://visualstudio.microsoft.com/vs/community/">Visual Studio Community page</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="dcfd4b7c6770ccca3" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#dcfd4b7c6770ccca3" href="#dcfd4b7c6770ccca3" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Which subscription grants me access to Azure DevOps? </span></a></div></div><div id="dcfd4b7c6770ccca3" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix"> <p>Azure DevOps Server is included in all paid subscription levels. Azure DevOps Basic Plan is included in all paid subscription levels. Visual Studio Enterprise standard and monthly, Visual Studio Test Professional and MSDN Platforms include Test Plans as well.</p> </div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="fd88ad4a8f57af21b" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#fd88ad4a8f57af21b" href="#fd88ad4a8f57af21b" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Can I use Visual Studio privately as well?</span></a></div></div><div id="fd88ad4a8f57af21b" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Yes. Visual Studio subscriptions are licensed per user, not per machine. So if you have an active subscription, you are allowed to use the software anywhere. For more information about usage rights, download the <a data-bi-id="Visual Studio Licensing whitepaper" data-bi-area="body" data-bi-name="body_faq_tab2_Visual Studio Licensing whitepaper" href="https://aka.ms/VSLicensingPaper">Visual Studio Licensing whitepaper</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="876f81a6375daf88a" role="button" data-toggle="collapse" data-parent="#accordion-42693-2" data-target="#876f81a6375daf88a" href="#876f81a6375daf88a" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">What purchase options are available to Cloud Solution Providers (CSP) or to those who are purchasing through CSP Partners? </span></a></div></div><div id="876f81a6375daf88a" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">Partners can purchase monthly (or cloud) Visual Studio subscriptions for their customers through the Azure Marketplace:</p> <ul> <li>Professional &gt; <a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-professional-monthly" target="_blank" rel="nofollow noopener" data-bi-id="vs-professional-monthly" data-bi-area="body" data-bi-name="body_faq_tab2_vs-professional-monthly">https://marketplace.visualstudio.com/items?itemName=ms.vs-professional-monthly</a></li> <li>Enterprise &gt; <a href="https://marketplace.visualstudio.com/items?itemName=ms.vs-enterprise-monthly" target="_blank" relf="nofollow noopener" rel="noopener" data-bi-id="vs-enterprise-monthly" data-bi-area="body" data-bi-name="body_faq_tab2_vs-enterprise-monthly">https://marketplace.visualstudio.com/items?itemName=ms.vs-enterprise-monthly</a></li> </ul> <p>*Note that monthly (or cloud) Visual Studio subscriptions do not offer the full range of benefits offered through Visual Studio Standard subscriptions, including Azure Dev/Test pricing. For a more detailed comparison, review the product comparison table.</p> <p>Due to the nature of the CSP channel, Visual Studio standard subscriptions are not available to purchase for indirect or direct-bill models within the CSP program. If a customer would like to purchase a Visual Studio standard subscription, the customer can purchase through one of the following channel options:</p> <ul> <li>Open Value License program &gt; <a href="https://www.microsoft.com/Licensing/licensing-programs/open-license" target="_blank" rel="nofollow noopener" data-bi-id="open-license" data-bi-area="body" data-bi-name="body_faq_tab2_open-license">https://www.microsoft.com/Licensing/licensing-programs/open-license</a></li> <li>Volume Licensing Enterprise Program &gt; <a href="https://www.microsoft.com/Licensing/licensing-programs/enterprise" target="_blank" rel="nofollow noopener" data-bi-id="enterprise" data-bi-area="body" data-bi-name="body_faq_tab2_enterprise">https://www.microsoft.com/Licensing/licensing-programs/enterprise</a></li> <li>Microsoft Store <ul> <li>Visual Studio Professional &gt; <a href="https://www.microsoft.com/en-us/d/visual-studio-professional-subscription/dg7gmgf0dst3/0001" target="_blank" rel="nofollow noopener" data-bi-id="visual-studio-professional-subscription" data-bi-area="body" data-bi-name="body_faq_tab2_visual-studio-professional-subscription">https://www.microsoft.com/d/visual-studio-professional-subscription/dg7gmgf0dst3/0001</a></li> <li>Visual Studio Enterprise &gt; <a href="https://www.microsoft.com/en-us/d/visual-studio-enterprise-subscription/dg7gmgf0dst4" target="_blank" rel="nofollow noopener" data-bi-id="visual-studio-enterprise-subscription" data-bi-area="body" data-bi-name="body_faq_tab2_visual-studio-enterprise-subscription">https://www.microsoft.com/d/visual-studio-enterprise-subscription/dg7gmgf0dst4</a></li> </ul> </li> </ul> </div></div></div></div></div><div class="fusion-text fusion-text-14 vscom-no-faq-results"><p>0 results found.</p> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-26 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-margin-bottom-large:0px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-15"><div class="vscom-buildertabs vscom-buildertabs--mobile"> <div class="vscom-buildertabs-wrapper"> <ul class="vscom-buildertabs-list"> <li class="vscom-buildertabs-item"><button data-bi-id="FAQ" class="vscom-buildertabs-button" data-tab="2"><span class="vscom-buildertabs-button-wrapper"><span class="vscom-buildertabs-button-text">Billing and renewals</span><span class="vscom-buildertabs-button-count"></span></span></button></li> </ul> </div> </div> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-27 fusion_builder_column_1_1 1_1 fusion-flex-column vscom-searchable-faq vscom-buildertab--tab-2" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-width-small:100%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><style type="text/css">.fusion-accordian #accordion-42693-3 .panel-title a .vscom-icon{ color: #000000;}.fusion-accordian #accordion-42693-3 .panel-title a .vscom-icon:before{ font-size: 16px; width: 16px;}.fusion-accordian #accordion-42693-3 .panel-title a{font-size:24px;}.fusion-accordian #accordion-42693-3 .panel-title a:hover, #accordion-42693-3 .fusion-toggle-boxed-mode:hover .panel-title a .fusion-toggle-heading{ color: #8661c5;}</style><div class="vscom-toggle accordian fusion-accordian fusion-accordian--pricing-faq"><div class="panel-group fusion-toggle-icon-unboxed" id="accordion-42693-3" data-allow-toggle><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="53a3b62b9773958db" role="button" data-toggle="collapse" data-parent="#accordion-42693-3" data-target="#53a3b62b9773958db" href="#53a3b62b9773958db" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">How do I renew my Visual Studio standard subscription purchased from Microsoft store? </span></a></div></div><div id="53a3b62b9773958db" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">If you purchased your subscription from the Microsoft Store, you can either purchase a renewal directly from them, or you can simply renew in the subscription portal.</p> <p>Connect to <a data-bi-id="subscriptions" data-bi-area="body" data-bi-name="body_faq_tab3_subscriptions" href="https://my.visualstudio.com/subscriptions" target="_blank" rel="noopener">https://my.visualstudio.com/subscriptions</a> and click on the “Renew” link.<br /> Visit the Microsoft Store and search for “Visual Studio subscription” to see the available renewal opportunities. Here are some quick links:<br /> <a data-bi-id="Visual Studio Enterprise" data-bi-area="body" data-bi-name="body_faq_tab3_Visual Studio Enterprise" href="https://www.microsoft.com/p/visual-studio-enterprise-subscription/dg7gmgf0dst4?activetab=pivot%3aoverviewtab" target="_blank" rel="nofollow noopener">Visual Studio Enterprise</a><br /> <a data-bi-id="Visual Studio Professional" data-bi-area="body" data-bi-name="body_faq_tab3_Visual Studio Professional" href="https://www.microsoft.com/p/visual-studio-professional-subscription/dg7gmgf0dst3?activetab=pivot%3aoverviewtab" target="_blank" rel="nofollow noopener">Visual Studio Professional</a><br /> <a data-bi-id="Visual Studio Test Professional" data-bi-area="body" data-bi-name="body_faq_tab3_Visual Studio Test Professional" href="https://www.microsoft.com/p/visual-studio-test-professional-subscription/dg7gmgf0dst6?activetab=pivot%3aoverviewtab" target="_blank" rel="nofollow noopener">Visual Studio Test Professional</a></p> <p>Note: You must renew your subscription within 30 days of the expiration date to qualify for renewal pricing.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="9ea857758b0081d85" role="button" data-toggle="collapse" data-parent="#accordion-42693-3" data-target="#9ea857758b0081d85" href="#9ea857758b0081d85" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">How do I renew my Visual Studio standard subscription purchased through Volume Licensing? </span></a></div></div><div id="9ea857758b0081d85" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">If your organization purchased your subscription through your organization&#8217;s Microsoft Volume Licensing agreement, your organization will need to process a renewal with your reseller.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="57cabb17296d94a74" role="button" data-toggle="collapse" data-parent="#accordion-42693-3" data-target="#57cabb17296d94a74" href="#57cabb17296d94a74" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">How do I renew my Visual Studio Cloud subscription?</span></a></div></div><div id="57cabb17296d94a74" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix"> <p>Both monthly and annual cloud subscriptions renew automatically until you cancel them, so there’s no need to take any action to renew them.</p> </div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="76d7b4b12916efdf7" role="button" data-toggle="collapse" data-parent="#accordion-42693-3" data-target="#76d7b4b12916efdf7" href="#76d7b4b12916efdf7" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Can I upgrade/downgrade my subscription level in the future? </span></a></div></div><div id="76d7b4b12916efdf7" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix">In some cases, upgrading is available. Downgrading is also available. For detailed information about your options, download the <a data-bi-id="Visual Studio subscriptions white paper" data-bi-area="body" data-bi-name="body_faq_tab3_Visual Studio subscriptions white paper" href="https://visualstudio.microsoft.com/wp-content/uploads/2020/03/Visual-Studio-Licensing-Whitepaper-Mar-2020.pdf">Visual Studio subscriptions white paper</a>.</div></div></div><div class="fusion-panel panel-default"><div class="panel-heading"><div class="panel-title toggle"><a aria-expanded="false" aria-controls="ae833d5a8fa22e443" role="button" data-toggle="collapse" data-parent="#accordion-42693-3" data-target="#ae833d5a8fa22e443" href="#ae833d5a8fa22e443" data-id-prefix="FAQ" data-bi-id="FAQ_item_expand"><span class="fusion-toggle-icon-wrapper" aria-hidden="true"><i class="vscom-icon" aria-hidden="true"></i></span><span class="fusion-toggle-heading">Is Visual Studio pricing different in other currencies</span></a></div></div><div id="ae833d5a8fa22e443" class="panel-collapse collapse " role="region"><div class="panel-body toggle-content fusion-clearfix"> <p>No. Pricing is the same converted in all currencies.</p> </div></div></div></div></div><div class="fusion-text fusion-text-16 vscom-no-faq-results"><p>0 results found.</p> </div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-28 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-17"><p><span class="strong-text">Didn&#8217;t find what you were looking for?</span> <a data-bi-area="body" data-bi-name="body_FAQ_Get help" data-bi-id="Get help" href="/subscriptions/support/#talktous"> See support options</a></p> </div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-14 fusion-flex-container has-pattern-background has-mask-background fusion-parallax-none vscom-builder-tabs-content--main-0 dev-lane nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:90px;--awb-padding-bottom:90px;--awb-background-image:url(&quot;https://visualstudio.microsoft.com/wp-content/uploads/2024/12/VisualStudioDevEssentials_img-scaled.webp&quot;);--awb-background-size:cover;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width:calc( 1600px + );margin-left: calc(- / 2 );margin-right: calc(- / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-29 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-margin-bottom-large:15px;--awb-width-medium:100%;--awb-order-medium:0;--awb-width-small:100%;--awb-order-small:0;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-11 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two"><h2 class="fusion-title-heading title-heading-center fusion-responsive-typography-calculated" style="margin:0;--fontSize:;line-height:;">Visual Studio Dev Essentials</h2></div><div class="fusion-text fusion-text-18 dev-lane" style="--awb-content-alignment:center;"><p>Get all these free tools and services, plus Pluralsight training, Azure credit, downloads, and more – for free.</p> </div><div class="fusion-text fusion-text-19 vscom-btn-box--center" style="--awb-content-alignment:center;"><p><a class="vscom-btn-secondary vscom-btn-fill-grow fill-violet" href="/dev-essentials/" data-bi-area="body" data-bi-name="body_Visual Studio Dev Essentials_Join now" data-bi-id="Join now">Join now</a></p> </div></div></div></div></div> </div> </div> </div> </div> <!-- fusion-row --> </main> <!-- #main --> <script>window.performance && performance.mark && performance.mark("MainAreaEnd")</script> </div> <!-- wrapper --> <div id="social-experiment-footer" class="vscom-social-media vscom-social-media--dividers"> <div class="vscom-social-media-inner"> <div class="vscom-social-media-column flex-start"> <span class="vscom-social-media-text">Follow us</span> <a data-bi-id="footer-follow-social-media" data-bi-name="twitter-x" href="https://twitter.com/visualstudio" target="_blank" rel="nofollow noopener"><img src="https://visualstudio.microsoft.com/wp-content/uploads/2024/01/X-logo.svg" alt="Visual Studio on Twitter" /></a> <a data-bi-id="footer-follow-social-media" data-bi-name="facebook" href="https://www.facebook.com/visualstudio/" target="_blank" rel="nofollow noopener"><img src="https://visualstudio.microsoft.com/wp-content/uploads/2024/01/Facebook.svg" alt="Visual Studio on Facebook" /></a> <a data-bi-id="footer-follow-social-media" data-bi-name="linkedin" href="https://www.linkedin.com/showcase/microsoft-visual-studio" target="_blank" rel="nofollow noopener"><img src="https://visualstudio.microsoft.com/wp-content/uploads/2024/01/Linkedin.svg" alt="Visual Studio on Linkedin" /></a> <a data-bi-id="footer-follow-social-media" data-bi-name="youtube" href="https://www.youtube.com/user/VisualStudio/featured" target="_blank" rel="nofollow noopener"><img src="https://visualstudio.microsoft.com/wp-content/uploads/2024/01/Youtube.svg" alt="Visual Studio on Youtube" /></a> <a data-bi-id="footer-follow-social-media" data-bi-name="tiktok" href="https://www.tiktok.com/@visualstudio" target="_blank" rel="nofollow noopener"><img src="https://visualstudio.microsoft.com/wp-content/uploads/2024/10/Tiktok.svg" alt="Visual Studio on TikTok" /></a> <a data-bi-id="footer-follow-social-media" data-bi-name="bluesky" href="https://bsky.app/profile/visualstudio.com" target="_blank" rel="nofollow noopener"><img src="https://visualstudio.microsoft.com/wp-content/uploads/2025/03/footer-social-bluesky.svg" alt="Visual Studio on Bluesky" /></a> </div> <div class="vscom-social-media-column flex-end vscom-social-media-column--col-sm"> <a data-bi-id="footer-follow-sites" href="https://visualstudio.microsoft.com/dev-essentials/">Dev Essentials</a> <span class="vscom-media-link-divider"></span> <a data-bi-id="footer-follow-sites" href="https://developercommunity.microsoft.com/VisualStudio" target="_blank" rel="nofollow noopener">Developer Community</a> <span class="vscom-media-link-divider"></span> </div> <div class="vscom-social-media-column flex-end"> <span class="vscom-social-media-text">Blogs:</span> <a data-bi-id="footer-follow-blogs" href="https://devblogs.microsoft.com/visualstudio" target="_blank" rel="nofollow noopener">Visual Studio</a> <a data-bi-id="footer-follow-blogs" href="https://devblogs.microsoft.com/dotnet" target="_blank" rel="nofollow noopener">.NET</a> <a data-bi-id="footer-follow-blogs" href="https://devblogs.microsoft.com/cppblog" target="_blank" rel="nofollow noopener">C++</a> </div> </div> </div> <a class="fusion-one-page-text-link fusion-page-load-link"></a> <!-- W3TC-include-js-head --> <!-- Fix for Multi Language picker options loading on 404 page --> <script>var domReadyScripts =[{"handle":"vscom","src":"https:\/\/visualstudio.microsoft.com\/wp-content\/plugins\/vscom-core\/assets\/js\/vscom.min.js","ver":1694020635,"deps":["classlist-polyfill"]},{"handle":"classlist-polyfill","src":"https:\/\/visualstudio.microsoft.com\/wp-content\/themes\/Avada-Child-Theme\/assets\/js\/classList.min.js","ver":1667498206},{"handle":"vscom-one-toggle-table-js","src":"https:\/\/visualstudio.microsoft.com\/wp-content\/plugins\/vscom-fusion-extension\/js\/vscom-one-toggle-table.min.js","ver":1735582150},{"handle":"vscom-express-select-js","src":"https:\/\/visualstudio.microsoft.com\/wp-content\/plugins\/vscom-fusion-extension\/js\/vscom-express-select.min.js","ver":1738698587}];</script><script id="vscom-dom-ready-inline" type="text/javascript">var VSCOM_Language = {"dropdown":"<select id=\"js-lang-picker\" class=\"vs-language-picker\" aria-label=\"Select Language\"><option value=\"https:\/\/visualstudio.microsoft.com\/vs\/pricing\/\" selected=\"selected\">English<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/zh-hans\/vs\/pricing\/\" data-lang-code=\"zh-hans\">\u7b80\u4f53\u4e2d\u6587 (Chinese, Simplified)<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/zh-hant\/vs\/pricing\/\" data-lang-code=\"zh-hant\">\u7e41\u9ad4\u4e2d\u6587 (Chinese, Traditional)<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/fr\/vs\/pricing\/\" data-lang-code=\"fr\">Fran\u00e7ais<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/de\/vs\/pricing\/\" data-lang-code=\"de\">Deutsch<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/it\/vs\/pricing\/\" data-lang-code=\"it\">Italiano<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/ja\/vs\/pricing\/\" data-lang-code=\"ja\">\u65e5\u672c\u8a9e (Japanese)<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/ru\/vs\/pricing\/\" data-lang-code=\"ru\">\u0420\u0443\u0441\u0441\u043a\u0438\u0439 (Russian)<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/es\/vs\/pricing\/\" data-lang-code=\"es\">Espa\u00f1ol<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/cs\/vs\/pricing\/\" data-lang-code=\"cs\">\u010ce\u0161tina<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/ko\/vs\/pricing\/\" data-lang-code=\"ko\">\ud55c\uad6d\uc5b4 (Korean)<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/pl\/vs\/pricing\/\" data-lang-code=\"pl\">polski<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/pt-br\/vs\/pricing\/\" data-lang-code=\"pt-br\">Portugu\u00eas (Brasil)<\/option><option value=\"https:\/\/visualstudio.microsoft.com\/tr\/vs\/pricing\/\" data-lang-code=\"tr\">T\u00fcrk\u00e7e<\/option><\/select>"};var microsoftUhfSettings = {"loginUrl":"https:\/\/app.vsaex.visualstudio.com\/go\/profile?wt.mc_id=o~msft~vscom~vssignin","logoutUrl":"https:\/\/app.vssps.visualstudio.com\/_signout?mkt=en-us&_ga=1.265116815.1812220160.1467138837","profileEndpoint":"https:\/\/app.vssps.visualstudio.com\/_apis\/profile\/profiles\/me","clientId":"d03813425c8362d0","label_profile":"Visual Studio profile","connectionDataEndpoint":"https:\/\/app.vssps.visualstudio.com\/_apis\/connectionData","ga":{"vsid_dimension":"dimension12"}};</script><link rel='stylesheet' id='vscom-grid-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-grid.min.css?ver=1727975384' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-tab-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-tabs.min.css?ver=1736879160' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-sticky-header-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-sticky-header.min.css?ver=1741813989' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-one-toggle-table-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-one-toggle-table.min.css?ver=1738698587' type='text/css' media='all' /> <link rel='stylesheet' id='vscom-express-select-css-css' href='https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/css/vscom-express-select.min.css?ver=1735582150' type='text/css' media='all' /> <script type="text/javascript" id="ajax-filter-js-extra"> /* <![CDATA[ */ var ajaxFilter = {"ajax_url":"https:\/\/visualstudio.microsoft.com\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-whatsnew/js/ajax-filter.js" id="ajax-filter-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-dom-ready-js/js/vscomDomReady.min.js?ver=1667498194" id="vscom-dom-ready-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/assets/js/common.min.js?1742319959" id="vscom-common-script-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/assets/js/temp/pricing.min.js?1737654770" id="vscom-pricing-temp-script-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/vscom-builder-tabs.min.js?ver=1734028688" id="vscom-builder-tabs-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/dropdown-menu.min.js?ver=6.7.2" id="vscom-dropdown-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/vscom-tabs.min.js?ver=1740079183" id="vscom-tab-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/vscom-sticky-header.min.js?ver=1741634582" id="vscom-sticky-header-js-js"></script> <script type="text/javascript" id="vscom-pricing-faq-js-js-extra"> /* <![CDATA[ */ var VSCOM_Pricing_FAQ_Data = {"form":{"search_faq":"Search FAQ","noResultsText":"0 results found."}}; /* ]]> */ </script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-core/assets/js/vscom-pricing-faq.min.js?ver=1738179524" id="vscom-pricing-faq-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/plugins/vscom-fusion-extension/js/vscom-toggle.min.js?ver=1742319959" id="vscom-toggle-js-js"></script> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/uploads/fusion-scripts/f27e0a4c76a7507f6965fcf66977a8f1.min.js?ver=3.11.14" id="fusion-scripts-js"></script> <script>var sliderBackgrounds = [];</script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script><script src="https://www.microsoft.com/onerfstatics/marketingsites-wcus-prod/shell/_scrf/js/themes=default/54-af9f9f/d4-fb1f57/e1-a50eee/e7-954872/d8-97d509/f0-251fe2/46-be1318/77-04a268/11-240c7b/63-077520/a4-34de62/e2-608e3c/db-bc0148/dc-7e9864/6d-c07ea1/6f-dafe8c/f6-aa5278/f1-99b817/6d-1e7ed0/b7-cadaa7/c4-898cf2/ca-40b7b0/4e-ee3a55/3e-f5c39b/c3-6454d7/f9-7592d3/d0-e64f3e/92-10345d/79-499886/7e-cda2d3/58-ab4971/57-c14418/e0-3c9860/de-884374/1f-100dea/33-abe4df/2b-8e0ae6?ver=2.0&_cf=02242021_3231&iife=1"></script><script src="https://mem.gfx.ms/meversion?partner=VisualStudio&market=en-us&uhf=1" defer></script> <!--[if lte IE 8]> <script type="text/javascript" src="https://visualstudio.microsoft.com/wp-content/themes/Avada/assets/js/respond.js"></script> <![endif]--> <div id="footerArea" class="uhf" data-m='{"cN":"footerArea","cT":"Area_coreuiArea","id":"a2Body","sN":2,"aN":"Body"}'> <div id="footerRegion" data-region-key="footerregion" data-m='{"cN":"footerRegion","cT":"Region_coreui-region","id":"r1a2","sN":1,"aN":"a2"}' > <div id="footerUniversalFooter" data-m='{"cN":"footerUniversalFooter","cT":"Module_coreui-universalfooter","id":"m1r1a2","sN":1,"aN":"r1a2"}' data-module-id="Category|footerRegion|coreui-region|footerUniversalFooter|coreui-universalfooter"> <footer id="uhf-footer" class="c-uhff context-uhf" data-uhf-mscc-rq="false" data-footer-footprint="/VisualStudio/VisualStudioFooterMsft, fromService: True" data-m='{"cN":"Uhf footer_cont","cT":"Container","id":"c1m1r1a2","sN":1,"aN":"m1r1a2"}'> <nav class="c-uhff-nav" aria-label="Footer Resource links" data-m='{"cN":"Footer nav_cont","cT":"Container","id":"c1c1m1r1a2","sN":1,"aN":"c1m1r1a2"}'> <div class="c-uhff-nav-row"> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn1_cont","cT":"Container","id":"c1c1c1m1r1a2","sN":1,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">What&#39;s new</div> <ul class="c-list f-bare"> <li> <a aria-label="Surface Pro What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/surface/devices/surface-pro-11th-edition" data-m='{"cN":"Footer_WhatsNew_NewSurfacePro_nav","id":"n1c1c1c1m1r1a2","sN":1,"aN":"c1c1c1m1r1a2"}'>Surface Pro</a> </li> <li> <a aria-label="Surface Laptop What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/surface/devices/surface-laptop-7th-edition" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptop_nav","id":"n2c1c1c1m1r1a2","sN":2,"aN":"c1c1c1m1r1a2"}'>Surface Laptop</a> </li> <li> <a aria-label="Surface Laptop Studio 2 What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/d/Surface-Laptop-Studio-2/8rqr54krf1dz" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptopStudio2_nav","id":"n3c1c1c1m1r1a2","sN":3,"aN":"c1c1c1m1r1a2"}'>Surface Laptop Studio 2</a> </li> <li> <a aria-label="Surface Laptop Go 3 What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/d/Surface-Laptop-Go-3/8p0wwgj6c6l2" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptopGo3_nav","id":"n4c1c1c1m1r1a2","sN":4,"aN":"c1c1c1m1r1a2"}'>Surface Laptop Go 3</a> </li> <li> <a aria-label="Microsoft Copilot What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-copilot" data-m='{"cN":"Footer_WhatsNew_CopilotMicrosoft_nav","id":"n5c1c1c1m1r1a2","sN":5,"aN":"c1c1c1m1r1a2"}'>Microsoft Copilot</a> </li> <li> <a aria-label="AI in Windows What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/windows/copilot-ai-features" data-m='{"cN":"Whatsnew_AIinWindows_nav","id":"n6c1c1c1m1r1a2","sN":6,"aN":"c1c1c1m1r1a2"}'>AI in Windows</a> </li> <li> <a aria-label="Explore Microsoft products What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-products-and-apps" data-m='{"cN":"Footer_WhatsNew_ExploreMicrosoftProducts_nav","id":"n7c1c1c1m1r1a2","sN":7,"aN":"c1c1c1m1r1a2"}'>Explore Microsoft products</a> </li> <li> <a aria-label="Windows 11 apps What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/windows/windows-11-apps" data-m='{"cN":"Footer_WhatsNew_Windows_11_apps_nav","id":"n8c1c1c1m1r1a2","sN":8,"aN":"c1c1c1m1r1a2"}'>Windows 11 apps</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn2_cont","cT":"Container","id":"c2c1c1m1r1a2","sN":2,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Microsoft Store</div> <ul class="c-list f-bare"> <li> <a aria-label="Account profile Microsoft Store" class="c-uhff-link" href="https://account.microsoft.com/" data-m='{"cN":"Footer_StoreandSupport_AccountProfile_nav","id":"n1c2c1c1m1r1a2","sN":1,"aN":"c2c1c1m1r1a2"}'>Account profile</a> </li> <li> <a aria-label="Download Center Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/download" data-m='{"cN":"Footer_StoreandSupport_DownloadCenter_nav","id":"n2c2c1c1m1r1a2","sN":2,"aN":"c2c1c1m1r1a2"}'>Download Center</a> </li> <li> <a aria-label="Microsoft Store support Microsoft Store" class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2139749" data-m='{"cN":"Footer_StoreandSupport_SalesAndSupport_nav","id":"n3c2c1c1m1r1a2","sN":3,"aN":"c2c1c1m1r1a2"}'>Microsoft Store support</a> </li> <li> <a aria-label="Returns Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/returns" data-m='{"cN":"Footer_StoreandSupport_Returns_nav","id":"n4c2c1c1m1r1a2","sN":4,"aN":"c2c1c1m1r1a2"}'>Returns</a> </li> <li> <a aria-label="Order tracking Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/order-tracking" data-m='{"cN":"Footer_StoreandSupport_OrderTracking_nav","id":"n5c2c1c1m1r1a2","sN":5,"aN":"c2c1c1m1r1a2"}'>Order tracking</a> </li> <li> <a aria-label="Certified Refurbished Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/certified-refurbished-products" data-m='{"cN":"Footer_StoreandSupport_StoreLocations_nav","id":"n6c2c1c1m1r1a2","sN":6,"aN":"c2c1c1m1r1a2"}'>Certified Refurbished</a> </li> <li> <a aria-label="Microsoft Store Promise Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020" data-m='{"cN":"Footer_StoreandSupport_MicrosoftPromise_nav","id":"n7c2c1c1m1r1a2","sN":7,"aN":"c2c1c1m1r1a2"}'>Microsoft Store Promise</a> </li> <li> <a aria-label="Flexible Payments Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/payment-financing-options?icid=footer_financing_vcc" data-m='{"cN":"Footer_StoreandSupport_Financing_nav","id":"n8c2c1c1m1r1a2","sN":8,"aN":"c2c1c1m1r1a2"}'>Flexible Payments</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn3_cont","cT":"Container","id":"c3c1c1m1r1a2","sN":3,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Education</div> <ul class="c-list f-bare"> <li> <a aria-label="Microsoft in education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education" data-m='{"cN":"Footer_Education_MicrosoftInEducation_nav","id":"n1c3c1c1m1r1a2","sN":1,"aN":"c3c1c1m1r1a2"}'>Microsoft in education</a> </li> <li> <a aria-label="Devices for education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/devices/overview" data-m='{"cN":"Footer_Education_DevicesforEducation_nav","id":"n2c3c1c1m1r1a2","sN":2,"aN":"c3c1c1m1r1a2"}'>Devices for education</a> </li> <li> <a aria-label="Microsoft Teams for Education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/products/teams" data-m='{"cN":"Footer_Education_MicrosoftTeamsforEducation_nav","id":"n3c3c1c1m1r1a2","sN":3,"aN":"c3c1c1m1r1a2"}'>Microsoft Teams for Education</a> </li> <li> <a aria-label="Microsoft 365 Education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/products/microsoft-365" data-m='{"cN":"Footer_Education_Microsoft365Education_nav","id":"n4c3c1c1m1r1a2","sN":4,"aN":"c3c1c1m1r1a2"}'>Microsoft 365 Education</a> </li> <li> <a aria-label="How to buy for your school Education" class="c-uhff-link" href="https://www.microsoft.com/education/how-to-buy" data-m='{"cN":"Footer_Howtobuyforyourschool_nav","id":"n5c3c1c1m1r1a2","sN":5,"aN":"c3c1c1m1r1a2"}'>How to buy for your school</a> </li> <li> <a aria-label="Educator training and development Education" class="c-uhff-link" href="https://education.microsoft.com/" data-m='{"cN":"Footer_Education_EducatorTrainingDevelopment_nav","id":"n6c3c1c1m1r1a2","sN":6,"aN":"c3c1c1m1r1a2"}'>Educator training and development</a> </li> <li> <a aria-label="Deals for students and parents Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/education" data-m='{"cN":"Footer_Education_DealsForStudentsandParents_nav","id":"n7c3c1c1m1r1a2","sN":7,"aN":"c3c1c1m1r1a2"}'>Deals for students and parents</a> </li> <li> <a aria-label="Azure for students Education" class="c-uhff-link" href="https://azure.microsoft.com/en-us/free/students/" data-m='{"cN":"Footer_Education_Azureforstudents_nav","id":"n8c3c1c1m1r1a2","sN":8,"aN":"c3c1c1m1r1a2"}'>Azure for students</a> </li> </ul> </div> </div> <div class="c-uhff-nav-row"> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn4_cont","cT":"Container","id":"c4c1c1m1r1a2","sN":4,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Business</div> <ul class="c-list f-bare"> <li> <a aria-label="Microsoft Cloud Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-cloud" data-m='{"cN":"Footer_Business_Microsoft_Cloud_nav","id":"n1c4c1c1m1r1a2","sN":1,"aN":"c4c1c1m1r1a2"}'>Microsoft Cloud</a> </li> <li> <a aria-label="Microsoft Security Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/security" data-m='{"cN":"Footer_Business_Microsoft Security_nav","id":"n2c4c1c1m1r1a2","sN":2,"aN":"c4c1c1m1r1a2"}'>Microsoft Security</a> </li> <li> <a aria-label="Dynamics 365 Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/dynamics-365" data-m='{"cN":"Footer_Business_MicrosoftDynamics365_nav","id":"n3c4c1c1m1r1a2","sN":3,"aN":"c4c1c1m1r1a2"}'>Dynamics 365</a> </li> <li> <a aria-label="Microsoft 365 Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-365/business" data-m='{"cN":"Footer_Business_M365_nav","id":"n4c4c1c1m1r1a2","sN":4,"aN":"c4c1c1m1r1a2"}'>Microsoft 365</a> </li> <li> <a aria-label="Microsoft Power Platform Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/power-platform" data-m='{"cN":"Footer_DeveloperAndIT_Power Platform_nav","id":"n5c4c1c1m1r1a2","sN":5,"aN":"c4c1c1m1r1a2"}'>Microsoft Power Platform</a> </li> <li> <a aria-label="Microsoft Teams Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m='{"cN":"Footer_Business_Microsoft365_nav","id":"n6c4c1c1m1r1a2","sN":6,"aN":"c4c1c1m1r1a2"}'>Microsoft Teams</a> </li> <li> <a aria-label="Microsoft 365 Copilot Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-365/copilot/copilot-for-work" data-m='{"cN":"Footer_CopilotMicrosoft365_nav","id":"n7c4c1c1m1r1a2","sN":7,"aN":"c4c1c1m1r1a2"}'>Microsoft 365 Copilot</a> </li> <li> <a aria-label="Small Business Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore" data-m='{"cN":"Footer_Business-SmallBusiness_nav","id":"n8c4c1c1m1r1a2","sN":8,"aN":"c4c1c1m1r1a2"}'>Small Business</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn5_cont","cT":"Container","id":"c5c1c1m1r1a2","sN":5,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Developer &amp; IT</div> <ul class="c-list f-bare"> <li> <a aria-label="Azure Developer &amp; IT" class="c-uhff-link" href="https://azure.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftAzure_nav","id":"n1c5c1c1m1r1a2","sN":1,"aN":"c5c1c1m1r1a2"}'>Azure</a> </li> <li> <a aria-label="Microsoft Developer Developer &amp; IT" class="c-uhff-link" href="https://developer.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftDeveloper_nav","id":"n2c5c1c1m1r1a2","sN":2,"aN":"c5c1c1m1r1a2"}'>Microsoft Developer</a> </li> <li> <a aria-label="Microsoft Learn Developer &amp; IT" class="c-uhff-link" href="https://learn.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftLearn_nav","id":"n3c5c1c1m1r1a2","sN":3,"aN":"c5c1c1m1r1a2"}'>Microsoft Learn</a> </li> <li> <a aria-label="Explore ISV Success Developer &amp; IT" class="c-uhff-link" href="https://www.microsoft.com/isv/isv-success?ocid=cmm3atxvn98" data-m='{"cN":"Footer_DeveloperAndIT_ExploreISVSuccess_nav","id":"n4c5c1c1m1r1a2","sN":4,"aN":"c5c1c1m1r1a2"}'>Explore ISV Success</a> </li> <li> <a aria-label="Microsoft Tech Community Developer &amp; IT" class="c-uhff-link" href="https://techcommunity.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftTechCommunity_nav","id":"n5c5c1c1m1r1a2","sN":5,"aN":"c5c1c1m1r1a2"}'>Microsoft Tech Community</a> </li> <li> <a aria-label="Azure Marketplace Developer &amp; IT" class="c-uhff-link" href="https://azuremarketplace.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_AzureMarketplace_nav","id":"n6c5c1c1m1r1a2","sN":6,"aN":"c5c1c1m1r1a2"}'>Azure Marketplace</a> </li> <li> <a aria-label="AppSource Developer &amp; IT" class="c-uhff-link" href="https://appsource.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_AppSource_nav","id":"n7c5c1c1m1r1a2","sN":7,"aN":"c5c1c1m1r1a2"}'>AppSource</a> </li> <li> <a aria-label="Visual Studio Developer &amp; IT" class="c-uhff-link" href="https://visualstudio.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftVisualStudio_nav","id":"n8c5c1c1m1r1a2","sN":8,"aN":"c5c1c1m1r1a2"}'>Visual Studio</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn6_cont","cT":"Container","id":"c6c1c1m1r1a2","sN":6,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Company</div> <ul class="c-list f-bare"> <li> <a aria-label="Careers Company" class="c-uhff-link" href="https://careers.microsoft.com/" data-m='{"cN":"Footer_Company_Careers_nav","id":"n1c6c1c1m1r1a2","sN":1,"aN":"c6c1c1m1r1a2"}'>Careers</a> </li> <li> <a aria-label="About Microsoft Company" class="c-uhff-link" href="https://www.microsoft.com/about" data-m='{"cN":"Footer_Company_AboutMicrosoft_nav","id":"n2c6c1c1m1r1a2","sN":2,"aN":"c6c1c1m1r1a2"}'>About Microsoft</a> </li> <li> <a aria-label="Company news Company" class="c-uhff-link" href="https://news.microsoft.com/" data-m='{"cN":"Footer_Company_CompanyNews_nav","id":"n3c6c1c1m1r1a2","sN":3,"aN":"c6c1c1m1r1a2"}'>Company news</a> </li> <li> <a aria-label="Privacy at Microsoft Company" class="c-uhff-link" href="https://privacy.microsoft.com/en-us" data-m='{"cN":"Footer_Company_PrivacyAtMicrosoft_nav","id":"n4c6c1c1m1r1a2","sN":4,"aN":"c6c1c1m1r1a2"}'>Privacy at Microsoft</a> </li> <li> <a aria-label="Investors Company" class="c-uhff-link" href="https://www.microsoft.com/investor/default.aspx" data-m='{"cN":"Footer_Company_Investors_nav","id":"n5c6c1c1m1r1a2","sN":5,"aN":"c6c1c1m1r1a2"}'>Investors</a> </li> <li> <a aria-label="Diversity and inclusion Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/diversity/" data-m='{"cN":"Footer_Company_DiversityAndInclusion_nav","id":"n6c6c1c1m1r1a2","sN":6,"aN":"c6c1c1m1r1a2"}'>Diversity and inclusion</a> </li> <li> <a aria-label="Accessibility Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/accessibility" data-m='{"cN":"Footer_Company_Accessibility_nav","id":"n7c6c1c1m1r1a2","sN":7,"aN":"c6c1c1m1r1a2"}'>Accessibility</a> </li> <li> <a aria-label="Sustainability Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/sustainability/" data-m='{"cN":"Footer_Company_Sustainability_nav","id":"n8c6c1c1m1r1a2","sN":8,"aN":"c6c1c1m1r1a2"}'>Sustainability</a> </li> </ul> </div> </div> </nav> <div class="c-uhff-base"> <a id="locale-picker-link" aria-label="Content Language Selector. Currently set to English (United States)" class="c-uhff-link c-uhff-lang-selector c-glyph glyph-world" href="#" data-m='{"cN":"locale_picker(US)_nav","id":"n7c1c1m1r1a2","sN":7,"aN":"c1c1m1r1a2"}'>English (United States)</a> <a data-m='{"id":"n8c1c1m1r1a2","sN":8,"aN":"c1c1m1r1a2"}' href="https://aka.ms/yourcaliforniaprivacychoices" class='c-uhff-link c-uhff-ccpa'> <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43"> <title>Your Privacy Choices Opt-Out Icon</title> <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"/> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"/> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"/> </svg> <span>Your Privacy Choices</span> </a> <noscript> <a data-m='{"id":"n9c1c1m1r1a2","sN":9,"aN":"c1c1m1r1a2"}' href="https://aka.ms/yourcaliforniaprivacychoices" class='c-uhff-link c-uhff-ccpa'> <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43"> <title>Your Privacy Choices Opt-Out Icon</title> <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"/> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"/> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"/> </svg> <span>Your Privacy Choices</span> </a> </noscript> <a data-m='{"id":"n10c1c1m1r1a2","sN":10,"aN":"c1c1m1r1a2"}' href="https://go.microsoft.com/fwlink/?linkid=2259814" class="c-uhff-link c-uhff-consumer"> <span>Consumer Health Privacy</span> </a> <nav aria-label="Microsoft corporate links"> <ul class="c-list f-bare" data-m='{"cN":"Corp links_cont","cT":"Container","id":"c11c1c1m1r1a2","sN":11,"aN":"c1c1m1r1a2"}'> <li id="c-uhff-footer_contactus"> <a class="c-uhff-link" href="https://visualstudio.microsoft.com/support/" data-mscc-ic="false" data-m='{"cN":"Footer_ContactUs_nav","id":"n1c11c1c1m1r1a2","sN":1,"aN":"c11c1c1m1r1a2"}'>Contact us</a> </li> <li id="c-uhff-footer_privacyandcookies"> <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-mscc-ic="false" data-m='{"cN":"Footer_PrivacyandCookies_nav","id":"n2c11c1c1m1r1a2","sN":2,"aN":"c11c1c1m1r1a2"}'>Privacy &amp; cookies</a> </li> <li class=" x-hidden" id="c-uhff-footer_managecookies"> <a class="c-uhff-link" href="#" data-mscc-ic="false" data-m='{"cN":"Footer_ManageCookies_nav","id":"n3c11c1c1m1r1a2","sN":3,"aN":"c11c1c1m1r1a2"}'>Manage cookies</a> </li> <li id="c-uhff-footer_termsofuse"> <a class="c-uhff-link" href="https://azure.microsoft.com/en-us/support/legal/" data-mscc-ic="false" data-m='{"cN":"Footer_TermsOfUse_nav","id":"n4c11c1c1m1r1a2","sN":4,"aN":"c11c1c1m1r1a2"}'>Terms of use</a> </li> <li id="c-uhff-footer_trademarks"> <a class="c-uhff-link" href="https://www.microsoft.com/trademarks" data-mscc-ic="false" data-m='{"cN":"Footer_Trademarks_nav","id":"n5c11c1c1m1r1a2","sN":5,"aN":"c11c1c1m1r1a2"}'>Trademarks</a> </li> <li id="c-uhff-footer_aboutourads"> <a class="c-uhff-link" href="https://choice.microsoft.com/" data-mscc-ic="false" data-m='{"cN":"Footer_Aboutourads_nav","id":"n6c11c1c1m1r1a2","sN":6,"aN":"c11c1c1m1r1a2"}'>About our ads</a> </li> <li>&#169; Microsoft 2025</li> </ul> </nav> </div> </footer> <script id="uhf-footer-ccpa"> const globalPrivacyControlEnabled = navigator.globalPrivacyControl; const GPC_DataSharingOptIn = (globalPrivacyControlEnabled) ? false : checkThirdPartyAdsOptOutCookie(); if(window.onGPCLoaded) { window.onGPCLoaded(); } function checkThirdPartyAdsOptOutCookie() { try { const ThirdPartyAdsOptOutCookieName = '3PAdsOptOut'; var cookieValue = getCookie(ThirdPartyAdsOptOutCookieName); return cookieValue != 1; } catch { return true; } } function getCookie(cookieName) { var cookieValue = document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)'); return (cookieValue) ? cookieValue[2] : ''; } </script> </div> </div> </div> <div class="lpChatInviteContainer"> <h2>Live chat with a Microsoft Visual Studio representative.</h2> <p>Need help finding the right solution?</p> <p>A Microsoft specialist is ready to assist you.</p> <div class="lpInviteButtons"> <button class="accept-btn button-default">Chat Now</button> <button class="reject-btn button-default">No Thanks</button> </div> </div> <div class="lpChatFrameContainer"> <iframe id="lp-iframe" width="0" height="0" src="https://publisher.liveperson.net/iframe-le-tag/iframe-cs.html?lpsite=60270350&lpsection=cloudplatform-leadgen-en-us-visualstudio&buttons=lpChatButton" title="LivePerson Chat"></iframe> </div> <!-- Usabilla feedback button --> <div id="usabilla-button" class="vscom-usabilla-button"> <a tabindex="0" id="usbl-integrated-button" data-bi-id="Usabilla" href="javascript:" class="vscom-usabilla-link" role="button" onclick="custom_vs_usabilla_call()" onkeypress="if(event.keyCode==32||event.keyCode==13){event.preventDefault();var bt = document.getElementById('usbl-integrated-button');bt.click(event);};"> <p class="vscom-usabilla-text"> Feedback <img class="vscom-usabilla-icon" src="https://visualstudio.microsoft.com/wp-content/themes/Avada-Child-Theme/assets/img/edit-outline.svg" alt="" /> </p> </a> </div> <script type="text/javascript"> function custom_vs_usabilla_call() { window.lightningjs||function(n){var e="lightningjs";function t(e,t){var r,i,a,o,d,c;return t&&(t+=(/\?/.test(t)?"&":"?")+"lv=1"),n[e]||(r=window,i=document,a=e,o=i.location.protocol,d="load",c=0,function(){n[a]=function(){var t=arguments,i=this,o=++c,d=i&&i!=r&&i.id||0;function s(){return s.id=o,n[a].apply(s,arguments)}return(e.s=e.s||[]).push([o,d,t]),s.then=function(n,t,r){var i=e.fh[o]=e.fh[o]||[],a=e.eh[o]=e.eh[o]||[],d=e.ph[o]=e.ph[o]||[];return n&&i.push(n),t&&a.push(t),r&&d.push(r),s},s};var e=n[a]._={};function s(){e.P(d),e.w=1,n[a]("_load")}e.fh={},e.eh={},e.ph={},e.l=t?t.replace(/^\/\//,("https:"==o?o:"http:")+"//"):t,e.p={0:+new Date},e.P=function(n){e.p[n]=new Date-e.p[0]},e.w&&s(),r.addEventListener?r.addEventListener(d,s,!1):r.attachEvent("onload",s);var l=function(){function n(){return["<!DOCTYPE ",o,"><",o,"><head></head><",t,"><",r,' src="',e.l,'"></',r,"></",t,"></",o,">"].join("")}var t="body",r="script",o="html",d=i[t];if(!d)return setTimeout(l,100);e.P(1);var c,s=i.createElement("div"),h=s.appendChild(i.createElement("div")),u=i.createElement("iframe");s.style.display="none",d.insertBefore(s,d.firstChild).id="lightningjs-"+a,u.frameBorder="0",u.id="lightningjs-frame-"+a,/MSIE[ ]+6/.test(navigator.userAgent)&&(u.src="javascript:false"),u.allowTransparency="true",h.appendChild(u);try{u.contentWindow.document.open()}catch(n){e.domain=i.domain,c="javascript:var d=document.open();d.domain='"+i.domain+"';",u.src=c+"void(0);"}try{var p=u.contentWindow.document;p.write(n()),p.close()}catch(e){u.src=c+'d.write("'+n().replace(/"/g,String.fromCharCode(92)+'"')+'");d.close();'}e.P(2)};e.l&&l()}()),n[e].lv="1",n[e]}var r=window.lightningjs=t(e);r.require=t,r.modules=n}({});window.usabilla_live = lightningjs.require("usabilla_live", "//w.usabilla.com/c1a9f67c29cb.js"); window.usabilla_live("hide"); window.usabilla_live("click"); //document.getElementById("usbl-integrated-button").addEventListener("click",function(){ //window.usabilla_live("click"); //}); } </script> <!-- Implementation of the 3PDS (Third-Party Data Sharing) process is followed by embedding the Usabilla Live code --> <script type="text/javascript"> // Check if GPC_DataSharingOptIn is a boolean before setting the property to 1DS if (typeof GPC_DataSharingOptIn === 'boolean') { awa.sku.getPropertyManager().getPropertiesContext().web.gpcDataSharingOptIn = GPC_DataSharingOptIn } </script> <!-- end usabilla live embed code --> <script src="/wp-content/themes/Avada-Child-Theme/assets/js/vscom-usabilla-a11y.js"></script> <script>window.performance && performance.mark && performance.mark("BodyAreaEnd")</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10