CINXE.COM
Microsoft Open Source Blog | Open Source Insights & Standards
<!DOCTYPE html> <html lang="en-US" class="no-js"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <link rel="shortcut icon" href="https://c.s-microsoft.com/favicon.ico?v2" type="image/x-icon" /> <link rel="dns-prefetch" href="//target.microsoft.com"> <link rel="dns-prefetch" href="//microsoftmscompoc.tt.omtrdc.net"> <link rel="preload" href="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js" as="script"> <link rel="preload" href="https://opensource.microsoft.com/blog/wp-content/plugins/ms-metrics/assets/js/at.2.9.0.js" as="script"> <meta name="awa-pageType" content="Homepage"> <meta name="awa-market" content="en-us"> <meta name="awa-env" content="Production"> <meta name="awa-pgidx" content="1"> <meta name="awa-pgtot" content="37"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO plugin v24.5 - https://yoast.com/wordpress/plugins/seo/ --> <title>Microsoft Open Source Blog | Open Source Insights & Standards</title> <meta name="description" content="Read the latest insights and news about Microsoft's Open Source practices, standards, and interoperability from Microsoft's team of experts." /> <link rel="canonical" href="https://opensource.microsoft.com/blog/" /> <link rel="next" href="https://opensource.microsoft.com/blog/page/2/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Microsoft Open Source Blog" /> <meta property="og:description" content="Read the latest insights and news about Microsoft's Open Source practices, standards, and interoperability from Microsoft's team of experts." /> <meta property="og:url" content="https://opensource.microsoft.com/blog/" /> <meta property="og:site_name" content="Microsoft Open Source Blog" /> <meta property="og:image" content="https://opensource.microsoft.com/blog/wp-content/uploads/2019/04/V_1O61BK.jpg" /> <meta property="og:image:width" content="400" /> <meta property="og:image:height" content="400" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@OpenAtMicrosoft" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://opensource.microsoft.com/blog/","url":"https://opensource.microsoft.com/blog/","name":"Microsoft Open Source Blog | Open Source Insights & Standards","isPartOf":{"@id":"https://opensource.microsoft.com/blog/#website"},"about":{"@id":"https://opensource.microsoft.com/blog/#organization"},"description":"Read the latest insights and news about Microsoft's Open Source practices, standards, and interoperability from Microsoft's team of experts.","breadcrumb":{"@id":"https://opensource.microsoft.com/blog/#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://opensource.microsoft.com/blog/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https://opensource.microsoft.com/blog/#website","url":"https://opensource.microsoft.com/blog/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft – open source, standards, interoperability","publisher":{"@id":"https://opensource.microsoft.com/blog/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://opensource.microsoft.com/blog/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://opensource.microsoft.com/blog/#organization","name":"Microsoft Open Source Blog","url":"https://opensource.microsoft.com/blog/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://opensource.microsoft.com/blog/#/schema/logo/image/","url":"https://opensource.microsoft.com/blog/wp-content/uploads/2019/08/Microsoft-Logo.png","contentUrl":"https://opensource.microsoft.com/blog/wp-content/uploads/2019/08/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https://opensource.microsoft.com/blog/#/schema/logo/image/"},"sameAs":["https://x.com/OpenAtMicrosoft"]}]}</script> <meta name="msvalidate.01" content="80EBD59DFC5B9D027F57C3C9A1DF271A" /> <meta name="google-site-verification" content="gLTp8RABG1VnYHDuPl0AUG6u-qOKJfbxHXtSdcb87E0" /> <!-- / Yoast SEO plugin. --> <script> // Define Adobe Target Property var at_property = "beedee45-3f39-f022-9e83-653d86f7267c"; // Workspace Name ! function () { window.tt_getCookie = function (t) { var e = RegExp(t + "[^;]+").exec(document.cookie); return decodeURIComponent(e ? e.toString().replace(/^[^=]+./, "") : "") } var t = tt_getCookie("MC1"), e = tt_getCookie("MSFPC"); function o(t) { return t.split("=")[1].slice(0, 32) } var n = ""; if ("" != t) n = o(t); else if ("" != e) n = o(e); if (n.length > 0) var r = n; if (n.length > 0 && at_property != "") { window.targetPageParams = function () { return { "mbox3rdPartyId": r, "at_property": at_property } } } else if (at_property != "") { window.targetPageParams = function () { return { "at_property": at_property } } } }(); // ContentSquare functions function isEmpty(val) { return (val === undefined || val == null || val.length <= 0) ? true : false; } function key(obj) { return Object.keys(obj) .map(function(k) { return k + "" + obj[k]; }) .join(""); } function distinct(arr) { var result = arr.reduce(function(acc, e) { acc[key(e)] = e; return acc;}, {}); return Object.keys(result) .map(function(k) { return result[k]; }); } // Adobe Analytics data collection / ContentSquare ttMeta Object **DO NOT ALTER** var tnt_response = ""; document.addEventListener("at-request-succeeded", function (e) { if (e.detail.analyticsDetails != undefined) { /*** 1DS ***/ window.check1DS = function (j) { // function to check either 1DS or JSLL if ( (typeof analytics !== 'undefined') && typeof analytics.isInitialized === 'function' && analytics.isInitialized()) { // Check for 1DS tnt_response = e.detail; //ContentUpdate Event with Target Friendly names if (e.detail.responseTokens != undefined) { //checks for friendly name data from response tokens console.log("1DS - present with response tokens"); //ContentUpdate Event with tnta analytics.captureContentUpdate( { actionType: "A", behavior: "12", content: JSON.stringify({}), pageTags: { tnta: (tnt_response && tnt_response.analyticsDetails[0] ? tnt_response.analyticsDetails[0].payload.tnta : ''), //a4t data payload } } ) var tt_activityCount = e.detail.responseTokens.length; for (i = 0; i < tt_activityCount; i++) { //1DS Content Update console.log('1DS - started captureContentCall - i=' + i); analytics.captureContentUpdate( { actionType: "A", behavior: "12", content: JSON.stringify({}), pageTags: { tnta: '', // null out tnta to prevent duplicate A4T hits at_activity_name: (tnt_response && tnt_response.responseTokens[i] ? tnt_response.responseTokens[i]["activity.name"] : ''), //friendly name target activity at_exp_name: (tnt_response && tnt_response.responseTokens[i] ? tnt_response.responseTokens[i]["experience.name"] : ''), // friendly name target experience at_activity_id: (tnt_response && tnt_response.responseTokens[i] ? tnt_response.responseTokens[i]["activity.id"] : ''), at_exp_id: (tnt_response && tnt_response.responseTokens[i] ? tnt_response.responseTokens[i]["experience.id"] : '') } } ) } console.log('1DS - completed captureContentCall'); // ttMETA object set for ContentSquare pickup window.ttMETA = typeof(window.ttMETA) != "undefined" ? window.ttMETA : []; var tokens = e.detail.responseTokens; if (isEmpty(tokens)) { return; } var uniqueTokens = distinct(tokens); uniqueTokens.forEach(function(token) { window.ttMETA.push({ 'CampaignName': token["activity.name"], 'CampaignId': token["activity.id"], 'RecipeName': token["experience.name"], 'RecipeId': token["experience.id"], 'OfferId': token["option.id"], 'OfferName': token["option.name"] }); }); } else { console.log("1DS - present, no response tokens"); } } else { console.log('1DS - looping 1DS check'); if(j < 40) { j++; setTimeout(function(){check1DS(j)}, 250); console.log('1DS - looping 1DS check - loop j=' + j); } } }; check1DS(1); /*** /1DS ***/ } }); </script> <script> function adobeTargetTracking() { var s = document.createElement( 'script' ); var src = "https://opensource.microsoft.com/blog/wp-content/plugins/ms-metrics/assets/js/at.2.9.0.js"; s.setAttribute( 'src', src ); document.body.appendChild( s ); } </script> <!-- Adobe Target --> <link rel='dns-prefetch' href='//wcpstatic.microsoft.com' /> <link rel='dns-prefetch' href='//opensource.microsoft.com' /> <link rel='dns-prefetch' href='//js.monitor.azure.com' /> <link rel="alternate" type="application/rss+xml" title="Microsoft Open Source Blog » Feed" href="https://opensource.microsoft.com/blog/feed/" /> <link rel='stylesheet' id='wp-block-library-css' href='https://opensource.microsoft.com/blog/wp-includes/css/dist/block-library/style.min.css?ver=6.7.2' type='text/css' media='all' /> <style id='co-authors-plus-coauthors-style-inline-css' type='text/css'> .wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline} </style> <style id='co-authors-plus-avatar-style-inline-css' type='text/css'> .wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto} </style> <style id='co-authors-plus-image-style-inline-css' type='text/css'> .wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto} </style> <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='elasticpress-related-posts-style-inline-css' type='text/css'> .editor-styles-wrapper .wp-block-elasticpress-related-posts ul,.wp-block-elasticpress-related-posts ul{list-style-type:none;padding:0}.editor-styles-wrapper .wp-block-elasticpress-related-posts ul li a>div{display:inline} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}.wp-block-quote{--wp--preset--font-size--small: var(--font-size-20);--wp--preset--font-size--medium: var(--font-size-24);--wp--preset--font-size--large: var(--font-size-42);}.wp-block-msxcm-cta-block{--wp--preset--color--material-color-brand-light-bg-fabric-white: #fff8f3;--wp--preset--color--material-color-brand-dark-bg-fabric-green: #225b62;--wp--preset--color--material-color-brand-dark: #243a5e;}:root { --wp--style--global--content-size: 724px;--wp--style--global--wide-size: 1000px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: underline;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.wp-block-quote.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.wp-block-quote.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.wp-block-quote.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-light-bg-fabric-white-color{color: var(--wp--preset--color--material-color-brand-light-bg-fabric-white) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-dark-bg-fabric-green-color{color: var(--wp--preset--color--material-color-brand-dark-bg-fabric-green) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-dark-color{color: var(--wp--preset--color--material-color-brand-dark) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-light-bg-fabric-white-background-color{background-color: var(--wp--preset--color--material-color-brand-light-bg-fabric-white) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-dark-bg-fabric-green-background-color{background-color: var(--wp--preset--color--material-color-brand-dark-bg-fabric-green) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-dark-background-color{background-color: var(--wp--preset--color--material-color-brand-dark) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-light-bg-fabric-white-border-color{border-color: var(--wp--preset--color--material-color-brand-light-bg-fabric-white) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-dark-bg-fabric-green-border-color{border-color: var(--wp--preset--color--material-color-brand-dark-bg-fabric-green) !important;}.wp-block-msxcm-cta-block.has-material-color-brand-dark-border-color{border-color: var(--wp--preset--color--material-color-brand-dark) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='mscm-moray-css' href='https://opensource.microsoft.com/blog/wp-content/themes/cloud-marketing-moray/dist/css/moray-style.css?ver=1742314731' type='text/css' media='all' /> <link rel='stylesheet' id='mscm-styles-css' href='https://opensource.microsoft.com/blog/wp-content/themes/cloud-marketing-moray/dist/css/style.css?ver=1742314731' type='text/css' media='all' /> <link rel='stylesheet' id='msx-theme-toggle-css' href='https://opensource.microsoft.com/blog/wp-content/themes/xtheme/dist/css/theme-toggle.css?ver=1742314751' type='text/css' media='all' /> <link rel='stylesheet' id='msx-theme-uhf-css' href='https://opensource.microsoft.com/blog/wp-content/themes/xtheme/dist/css/uhf.css?ver=1742314751' type='text/css' media='all' /> <link rel='stylesheet' id='frontend-styles-css' href='https://opensource.microsoft.com/blog/wp-content/themes/xtheme/dist/css/frontend-styles.css?ver=1742314751' type='text/css' media='all' /> <link rel='stylesheet' id='fluent-icons-css' href='https://opensource.microsoft.com/blog/wp-content/themes/xtheme/dist/css/fluent-icons.css?ver=1742314751' type='text/css' media='all' /> <link rel='stylesheet' id='moray-scoped-css' href='https://opensource.microsoft.com/blog/wp-content/plugins/ms-cloud-marketing-modules/dist/css/moray-scoped.css?ver=1742314552' type='text/css' media='all' /> <link rel='stylesheet' id='msxcm-styles-css' href='https://opensource.microsoft.com/blog/wp-content/plugins/ms-cloud-marketing-modules/dist/css/frontend.css?ver=1742314552' type='text/css' media='all' /> <style id='akismet-widget-style-inline-css' type='text/css'> .a-stats { --akismet-color-mid-green: #357b49; --akismet-color-white: #fff; --akismet-color-light-grey: #f6f7f7; max-width: 350px; width: auto; } .a-stats * { all: unset; box-sizing: border-box; } .a-stats strong { font-weight: 600; } .a-stats a.a-stats__link, .a-stats a.a-stats__link:visited, .a-stats a.a-stats__link:active { background: var(--akismet-color-mid-green); border: none; box-shadow: none; border-radius: 8px; color: var(--akismet-color-white); cursor: pointer; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif; font-weight: 500; padding: 12px; text-align: center; text-decoration: none; transition: all 0.2s ease; } /* Extra specificity to deal with TwentyTwentyOne focus style */ .widget .a-stats a.a-stats__link:focus { background: var(--akismet-color-mid-green); color: var(--akismet-color-white); text-decoration: none; } .a-stats a.a-stats__link:hover { filter: brightness(110%); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 2px rgba(0, 0, 0, 0.16); } .a-stats .count { color: var(--akismet-color-white); display: block; font-size: 1.5em; line-height: 1.4; padding: 0 13px; white-space: nowrap; } </style> <script type="text/javascript" src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js" id="wcp-consent-js"></script> <script type="text/javascript" src="https://js.monitor.azure.com/scripts/c/ms.analytics-web-3.min.js" id="oneds-tracking-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <link rel="https://api.w.org/" href="https://opensource.microsoft.com/blog/wp-json/" /><!-- Stream WordPress user activity plugin v4.1.1 --> <link rel="stylesheet" href="https://www.microsoft.com/onerfstatics/marketingsites-eus-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&_cf=02242021_3231" type="text/css" media="all" /><link rel='manifest' href='https://opensource.microsoft.com/blog/wp-content/themes/cloud-marketing-moray/manifest.webmanifest' /> <!-- Facebook Pixel Code --> <script> function facebookTracking() { !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;t.type='ms-delay-type';t.setAttribute('data-ms-type','text/javascript'); s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '10154859804840582'); fbq('track', 'PageView'); } </script> <!-- End Facebook Pixel Code --> <!-- LinkedIn Code --> <script type="text/javascript"> var _linkedin_data_partner_id = "7850"; function linkedinTracking(){ var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s); } </script> <!-- End LinkedIn Code --> <!-- Google DoubleClick Code --> <script> function doubleclickTracking() { var random = Math.floor(Math.random() * 10000000000); var img = document.createElement('img'); img.src = 'https://googleads.g.doubleclick.net/pagead/viewthroughconversion/862646735/?guid=ON&script=0&random=' + random; img.width = 1; img.height = 1; img.style = 'display:none;'; document.body.appendChild(img); } </script> <!-- End Google DoubleClick Code --> <!-- Microsoft Advertising UET Code --> <script> function microsoftAds() { (function(w, d, t, r, u) { var f, n, i; w[u] = w[u] || [], f = function() { var o = { ti: "4000034" }; o.q = w[u], w[u] = new UET(o), w[u].push("pageLoad") }, n = d.createElement(t), n.src = r, n.async = 1, n.onload = n.onreadystatechange = function() { var s = this.readyState; s && s !== "loaded" && s !== "complete" || (f(), n.onload = n.onreadystatechange = null) }, i = d.getElementsByTagName(t)[0], i.parentNode.insertBefore(n, i) })(window, document, "script", "//bat.bing.com/bat.js", "uetq"); } </script> <!-- End Microsoft Advertising UET Code --> <!-- Clarity Code --> <script type="text/javascript"> function clarityTracking() { (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; t.type='ms-delay-type';t.setAttribute('data-ms-type','text/javascript'); y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "coq1htdyvw"); } </script> <!-- End Clarity Code --> <script src="https://www.microsoft.com/onerfstatics/marketingsites-eus-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/77-380647/db-bc0148/dc-7e9864/6d-c07ea1/6f-dafe8c/f6-aa5278/b5-71fe28/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/38-b93a9e/de-884374/1f-100dea/33-abe4df/2b-8e0ae6?ver=2.0&_cf=02242021_3231&iife=1"></script> </head> <body class="home blog microsoft-uhf opensource is_subsite"> <div id="ms-cookie-banner"></div> <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 id="epb" class="x-hidden x-hidden-vp-mobile-st uhfc-universal-context context-uhf" data-m='{"cN":"epb_cont","cT":"Container","id":"c1m1r1a1","sN":1,"aN":"m1r1a1"}'> <div class="c-uhfh-alert f-information epb-container theme-light" role="dialog" aria-label="Promotional Banner" data-m='{"cT":"Container","id":"c1c1m1r1a1","sN":1,"aN":"c1m1r1a1"}' data-pb="[{"Browser":"anaheim","ExtensionType":"windows10only","ExtensionUrl":"https://www.microsoft.com/microsoft-copilot/for-individuals/copilot-app?form=MY02FX&OCID=MY02FX","BackgroundColorDarkTheme":"b-black","LogoUrlDarkTheme":"https://uhf.microsoft.com/images/banners/RW1iGSh.png","ActionLinkBackgroundColorDarkTheme":"btn-white","BackgroundColorLightTheme":"b-white","LogoUrlLightTheme":"https://uhf.microsoft.com/images/banners/RW1iGSh.png","ActionLinkBackgroundColorLightTheme":"btn-light-blue","Title":"Take the power of Copilot on the go with the free mobile app","Paragraph":"Create images and get tailored answers based on your interests and needs anytime, anywhere","ActionLinkText":"Get the Copilot app","ActionLinkAriaLabel":"Get the Copilot app","DismissText":"No, thanks","DismissAriaLabel":"No, thanks","CookieExpiration":"7","CurrentTheme":"theme-light"},{"Browser":"edge","ExtensionType":"windows10only","ExtensionUrl":"https://aka.ms/MicrosoftEdgeDownload","BackgroundColorDarkTheme":"b-black","LogoUrlDarkTheme":"https://uhf.microsoft.com/images/banners/RE4xdax.png","ActionLinkBackgroundColorDarkTheme":"btn-white","BackgroundColorLightTheme":"b-white","LogoUrlLightTheme":"https://uhf.microsoft.com/images/banners/RE4xdax.png","ActionLinkBackgroundColorLightTheme":"btn-light-blue","Title":"Try the browser recommended by Microsoft","Paragraph":"Get speed, security and privacy with Microsoft Edge","ActionLinkText":"Download now","ActionLinkAriaLabel":"Download now","DismissText":"No thanks","DismissAriaLabel":"No thanks","CookieExpiration":"30","CurrentTheme":"theme-light"},{"Browser":"chrome","ExtensionType":"windows10only","ExtensionUrl":"https://www.microsoft.com/microsoft-copilot/for-individuals/copilot-app?form=MY02FX&OCID=MY02FX","BackgroundColorDarkTheme":"b-black","LogoUrlDarkTheme":"https://uhf.microsoft.com/images/banners/RW1iGSh.png","ActionLinkBackgroundColorDarkTheme":"btn-white","BackgroundColorLightTheme":"b-white","LogoUrlLightTheme":"https://uhf.microsoft.com/images/banners/RW1iGSh.png","ActionLinkBackgroundColorLightTheme":"btn-light-blue","Title":"Take the power of Copilot on the go with the free mobile app","Paragraph":"Create images and get tailored answers based on your interests and needs anytime, anywhere","ActionLinkText":"Get the Copilot app","ActionLinkAriaLabel":"Get the Copilot app","DismissText":"No, thanks","DismissAriaLabel":"No, thanks","CookieExpiration":"7","CurrentTheme":"theme-light"},{"Browser":"firefox","ExtensionType":"rewards","ExtensionUrl":"https://browserdefaults.microsoft.com/extn/redirect/?xid=106&channel=uhf&pc=U785","BackgroundColorDarkTheme":"b-blue","LogoUrlDarkTheme":"https://uhf.microsoft.com/images/banners/RE4mFZT.png","ActionLinkBackgroundColorDarkTheme":"btn-white","BackgroundColorLightTheme":"b-white","LogoUrlLightTheme":"https://uhf.microsoft.com/images/banners/RE4mDoE.png","ActionLinkBackgroundColorLightTheme":"btn-blue","Title":"Maximize your points with the Microsoft Rewards extension","Paragraph":"Quick access to your daily points and offers","ActionLinkText":"Add it now","ActionLinkAriaLabel":"Add it now","DismissText":"No thanks","DismissAriaLabel":"No thanks","CookieExpiration":"30","CurrentTheme":"theme-light"}]" data-pb-g="true"> <div> <div class="c-paragraph"> <img alt="" data-src="" src="" class="f-img-lzy" /> <span class="c-text-group pb-content"> <span class="epb-launch pb-content-heading"></span> <span class="epb-text pb-content-text"></span> </span> </div> <span class="c-group"> <button id="close-epb" class="c-action-trigger c-action-cancel c-glyph-cancel" data-m='{"cN":"PB-dismiss_nonnav","id":"nn1c1c1m1r1a1","sN":1,"aN":"c1c1m1r1a1"}'></button> <a id="epbTryNow" href="" target="_blank" class="epb-launch c-action-trigger c-action-open" data-m='{"cN":"PB-launch_nav","id":"n2c1c1m1r1a1","sN":2,"aN":"c1c1m1r1a1"}'></a> </span> </div> </div> </div> <a id="uhfSkipToMain" class="m-skip-to-main" href="javascript:void(0)" data-href="#mainContent" tabindex="0" data-m='{"cN":"Skip to content_nonnav","id":"nn2c1m1r1a1","sN":2,"aN":"c1m1r1a1"}'>Skip to main content</a> <header class="c-uhfh context-uhf no-js c-sgl-stck c-category-header " itemscope="itemscope" data-header-footprint="/MSCloudBlogs/OpenSourceHeader, fromService: True" data-magict="true" itemtype="http://schema.org/Organization"> <div class="theme-light js-global-head f-closed global-head-cont" data-m='{"cN":"Universal Header_cont","cT":"Container","id":"c3c1m1r1a1","sN":3,"aN":"c1m1r1a1"}'> <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":"nn1c3c1m1r1a1","sN":1,"aN":"c3c1m1r1a1"}'></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":"nn2c3c1m1r1a1","sN":2,"aN":"c3c1m1r1a1"}'></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":"c3c3c1m1r1a1","sN":3,"aN":"c3c1m1r1a1"}'> <img alt="" itemprop="logo" class="c-image" src="https://uhf.microsoft.com/images/microsoft/RE1Mu3b.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":"nn4c3c1m1r1a1","sN":4,"aN":"c3c1m1r1a1"}'></button> <span data-global-title="Microsoft home" class="js-mobile-title">Open Source</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":"nn5c3c1m1r1a1","sN":5,"aN":"c3c1m1r1a1"}'></button> </div> <div class="c-show-pipe x-hidden-vp-mobile-st"> <a id="uhfCatLogo" class="c-logo c-cat-logo" href="https://opensource.microsoft.com/" aria-label="Open Source" itemprop="url" data-m='{"cN":"CatNav_Open Source_nav","id":"n6c3c1m1r1a1","sN":6,"aN":"c3c1m1r1a1"}'> <span>Open Source</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="Open Source" data-m='{"cN":"Open Source_nonnav","id":"nn7c3c1m1r1a1","sN":7,"aN":"c3c1m1r1a1"}'> Open Source </button> </div> <nav id="uhf-g-nav" aria-label="Contextual menu" class="c-uhfh-gnav" data-m='{"cN":"Category nav_cont","cT":"Container","id":"c8c3c1m1r1a1","sN":8,"aN":"c3c1m1r1a1"}'> <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://opensource.microsoft.com/" data-m='{"cN":"CatNav_Home_nav","id":"n1c8c3c1m1r1a1","sN":1,"aN":"c8c3c1m1r1a1"}' > Home </a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_0" class="c-uhf-nav-link" href="http://opensource.microsoft.com/collaborate/" data-m='{"cN":"CatNav_get-involved-cat-menu-item_nav","id":"n2c8c3c1m1r1a1","sN":2,"aN":"c8c3c1m1r1a1"}'>Get involved</a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_1" class="c-uhf-nav-link" href="https://opensource.microsoft.com/projects/" data-m='{"cN":"CatNav_projects-cat-menu-item_nav","id":"n3c8c3c1m1r1a1","sN":3,"aN":"c8c3c1m1r1a1"}'>Projects</a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_2" class="c-uhf-nav-link" href="https://opensource.microsoft.com/ecosystem/" data-m='{"cN":"CatNav_ecosystem-cat-menu-item_nav","id":"n4c8c3c1m1r1a1","sN":4,"aN":"c8c3c1m1r1a1"}'>Ecosystem</a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_3" class="c-uhf-nav-link" href="https://opensource.microsoft.com/program/" data-m='{"cN":"CatNav_our-program-cat-menu-item_nav","id":"n5c8c3c1m1r1a1","sN":5,"aN":"c8c3c1m1r1a1"}'>Our program</a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_4" class="c-uhf-nav-link" href="https://jobs.careers.microsoft.com/global/en/search?keywords=open%20source" data-m='{"cN":"CatNav_jobs-cat-menu-item_nav","id":"n6c8c3c1m1r1a1","sN":6,"aN":"c8c3c1m1r1a1"}'>Jobs</a> </li> <li class="single-link js-nav-menu uhf-menu-item"> <a id="c-shellmenu_5" class="c-uhf-nav-link" href="https://opensource.microsoft.com/blog/" data-m='{"cN":"CatNav_blog-cat-menu-item_nav","id":"n7c8c3c1m1r1a1","sN":7,"aN":"c8c3c1m1r1a1"}'>Blog</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":"nn8c8c3c1m1r1a1","sN":8,"aN":"c8c3c1m1r1a1"}' 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> </ul> </nav> <div class="c-uhfh-actions" data-m='{"cN":"Header actions_cont","cT":"Container","id":"c9c3c1m1r1a1","sN":9,"aN":"c3c1m1r1a1"}'> <div class="wf-menu"> <nav id="uhf-c-nav" aria-label="All Microsoft menu" data-m='{"cN":"GlobalNav_cont","cT":"Container","id":"c1c9c3c1m1r1a1","sN":1,"aN":"c9c3c1m1r1a1"}'> <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":"nn1c1c9c3c1m1r1a1","sN":1,"aN":"c1c9c3c1m1r1a1"}'> <span>All Microsoft</span></button> <ul class="f-multi-column f-multi-column-6" aria-hidden="true" data-m='{"cN":"More_cont","cT":"Container","id":"c2c1c9c3c1m1r1a1","sN":2,"aN":"c1c9c3c1m1r1a1"}'> <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":"M365_cont","cT":"Container","id":"c1c2c1c9c3c1m1r1a1","sN":1,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_6" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/microsoft-365" data-m='{"cN":"W0Nav_M365_nav","id":"n1c1c2c1c9c3c1m1r1a1","sN":1,"aN":"c1c2c1c9c3c1m1r1a1"}'>Microsoft 365</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Teams_cont","cT":"Container","id":"c2c2c1c9c3c1m1r1a1","sN":2,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="l0_Teams" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m='{"cN":"W0Nav_Teams_nav","id":"n1c2c2c1c9c3c1m1r1a1","sN":1,"aN":"c2c2c1c9c3c1m1r1a1"}'>Teams</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Copilot_cont","cT":"Container","id":"c3c2c1c9c3c1m1r1a1","sN":3,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_8" class="js-subm-uhf-nav-link" href="https://copilot.microsoft.com/" data-m='{"cN":"W0Nav_Copilot_nav","id":"n1c3c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c2c1c9c3c1m1r1a1"}'>Copilot</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Windows_cont","cT":"Container","id":"c4c2c1c9c3c1m1r1a1","sN":4,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_9" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/windows/" data-m='{"cN":"W0Nav_Windows_nav","id":"n1c4c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c2c1c9c3c1m1r1a1"}'>Windows</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Surface_cont","cT":"Container","id":"c5c2c1c9c3c1m1r1a1","sN":5,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_10" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/surface" data-m='{"cN":"W0Nav_Surface_nav","id":"n1c5c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c2c1c9c3c1m1r1a1"}'>Surface</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Xbox_cont","cT":"Container","id":"c6c2c1c9c3c1m1r1a1","sN":6,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_11" class="js-subm-uhf-nav-link" href="https://www.xbox.com/" data-m='{"cN":"W0Nav_Xbox_nav","id":"n1c6c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c2c1c9c3c1m1r1a1"}'>Xbox</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Deals_cont","cT":"Container","id":"c7c2c1c9c3c1m1r1a1","sN":7,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_12" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/sale?icid=gm_nav_L0_salepage" data-m='{"cN":"W0Nav_Deals_nav","id":"n1c7c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c2c1c9c3c1m1r1a1"}'>Deals</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Small Business_cont","cT":"Container","id":"c8c2c1c9c3c1m1r1a1","sN":8,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="l0_SmallBusiness" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/business" data-m='{"cN":"W0Nav_Small Business_nav","id":"n1c8c2c1c9c3c1m1r1a1","sN":1,"aN":"c8c2c1c9c3c1m1r1a1"}'>Small Business</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"Support_cont","cT":"Container","id":"c9c2c1c9c3c1m1r1a1","sN":9,"aN":"c2c1c9c3c1m1r1a1"}'> <a id="l1_support" class="js-subm-uhf-nav-link" href="https://support.microsoft.com/en-us" data-m='{"cN":"W0Nav_Support_nav","id":"n1c9c2c1c9c3c1m1r1a1","sN":1,"aN":"c9c2c1c9c3c1m1r1a1"}'>Support</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c10c2c1c9c3c1m1r1a1","sN":10,"aN":"c2c1c9c3c1m1r1a1"}'> <span id="uhf-navspn-shellmenu_16-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c10c2c1c9c3c1m1r1a1"}'>Software</span> <button id="uhf-navbtn-shellmenu_16-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c10c2c1c9c3c1m1r1a1","sN":2,"aN":"c10c2c1c9c3c1m1r1a1"}'>Software</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_16-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_WindowsApps_cont","cT":"Container","id":"c3c10c2c1c9c3c1m1r1a1","sN":3,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_17" class="js-subm-uhf-nav-link" href="https://apps.microsoft.com/home" data-m='{"cN":"GlobalNav_More_Software_WindowsApps_nav","id":"n1c3c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c10c2c1c9c3c1m1r1a1"}'>Windows Apps</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_AI_cont","cT":"Container","id":"c4c10c2c1c9c3c1m1r1a1","sN":4,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_18" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/ai" data-m='{"cN":"GlobalNav_More_Software_AI_nav","id":"n1c4c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c10c2c1c9c3c1m1r1a1"}'>AI</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_Outlook_cont","cT":"Container","id":"c5c10c2c1c9c3c1m1r1a1","sN":5,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_19" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-365/outlook/email-and-calendar-software-microsoft-outlook" data-m='{"cN":"GlobalNav_More_Software_Outlook_nav","id":"n1c5c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c10c2c1c9c3c1m1r1a1"}'>Outlook</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_OneDrive_cont","cT":"Container","id":"c6c10c2c1c9c3c1m1r1a1","sN":6,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_20" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage" data-m='{"cN":"GlobalNav_More_Software_OneDrive_nav","id":"n1c6c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c10c2c1c9c3c1m1r1a1"}'>OneDrive</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_Microsoft Teams_cont","cT":"Container","id":"c7c10c2c1c9c3c1m1r1a1","sN":7,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_21" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m='{"cN":"GlobalNav_More_Software_Microsoft Teams_nav","id":"n1c7c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c10c2c1c9c3c1m1r1a1"}'>Microsoft Teams</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_OneNote_cont","cT":"Container","id":"c8c10c2c1c9c3c1m1r1a1","sN":8,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_22" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-365/onenote/digital-note-taking-app" data-m='{"cN":"GlobalNav_More_Software_OneNote_nav","id":"n1c8c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c8c10c2c1c9c3c1m1r1a1"}'>OneNote</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_Edge_cont","cT":"Container","id":"c9c10c2c1c9c3c1m1r1a1","sN":9,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_23" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/edge" data-m='{"cN":"GlobalNav_More_Software_Edge_nav","id":"n1c9c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c9c10c2c1c9c3c1m1r1a1"}'>Microsoft Edge</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Software_Skype_cont","cT":"Container","id":"c10c10c2c1c9c3c1m1r1a1","sN":10,"aN":"c10c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_24" class="js-subm-uhf-nav-link" href="https://www.skype.com/en/" data-m='{"cN":"GlobalNav_More_Software_Skype_nav","id":"n1c10c10c2c1c9c3c1m1r1a1","sN":1,"aN":"c10c10c2c1c9c3c1m1r1a1"}'>Skype</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cN":"PCsAndDevices_cont","cT":"Container","id":"c11c2c1c9c3c1m1r1a1","sN":11,"aN":"c2c1c9c3c1m1r1a1"}'> <span id="uhf-navspn-shellmenu_25-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"cN":"GlobalNav_PCsAndDevices_nonnav","id":"nn1c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c11c2c1c9c3c1m1r1a1"}'>PCs & Devices </span> <button id="uhf-navbtn-shellmenu_25-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"cN":"GlobalNav_PCsAndDevices_nonnav","id":"nn2c11c2c1c9c3c1m1r1a1","sN":2,"aN":"c11c2c1c9c3c1m1r1a1"}'>PCs & Devices </button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_25-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_PCsAndDevices_PCsAndTablets_cont","cT":"Container","id":"c3c11c2c1c9c3c1m1r1a1","sN":3,"aN":"c11c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_26" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/pc?icid=CNavDevicesPC" data-m='{"cN":"GlobalNav_More_PCsAndDevices_PCsAndTablets_nav","id":"n1c3c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c11c2c1c9c3c1m1r1a1"}'>Computers</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_PCsAndDevices_ShopXbox_cont","cT":"Container","id":"c4c11c2c1c9c3c1m1r1a1","sN":4,"aN":"c11c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_27" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/xbox?icid=CNavDevicesXbox" data-m='{"cN":"GlobalNav_More_PCsAndDevices_ShopXbox_nav","id":"n1c4c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c11c2c1c9c3c1m1r1a1"}'>Shop Xbox</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_PCsAndDevices_Accessories_cont","cT":"Container","id":"c5c11c2c1c9c3c1m1r1a1","sN":5,"aN":"c11c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_28" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/accessories?icid=CNavDevicesAccessories" data-m='{"cN":"GlobalNav_More_PCsAndDevices_Accessories_nav","id":"n1c5c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c11c2c1c9c3c1m1r1a1"}'>Accessories</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_PCsAndDevices_VMAndMixedReality_cont","cT":"Container","id":"c6c11c2c1c9c3c1m1r1a1","sN":6,"aN":"c11c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_29" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/virtualreality?icid=CNavVirtualReality" data-m='{"cN":"GlobalNav_More_PCsAndDevices_VMAndMixedReality_nav","id":"n1c6c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c11c2c1c9c3c1m1r1a1"}'>VR & mixed reality</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_PCsAndDevicesCertifiedRefurbished_cont","cT":"Container","id":"c7c11c2c1c9c3c1m1r1a1","sN":7,"aN":"c11c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_30" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/certified-refurbished-products" data-m='{"cN":"GlobalNav_More_PCsAndDevicesCertifiedRefurbished_nav","id":"n1c7c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c11c2c1c9c3c1m1r1a1"}'>Certified Refurbished</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_PCsAndDevices_Trade-in-for-cash_cont","cT":"Container","id":"c8c11c2c1c9c3c1m1r1a1","sN":8,"aN":"c11c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_31" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/microsoft-trade-in" data-m='{"cN":"GlobalNav_More_PCsAndDevices_Trade-in-for-cash_nav","id":"n1c8c11c2c1c9c3c1m1r1a1","sN":1,"aN":"c8c11c2c1c9c3c1m1r1a1"}'>Trade-in for cash</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c12c2c1c9c3c1m1r1a1","sN":12,"aN":"c2c1c9c3c1m1r1a1"}'> <span id="uhf-navspn-shellmenu_32-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c12c2c1c9c3c1m1r1a1","sN":1,"aN":"c12c2c1c9c3c1m1r1a1"}'>Entertainment</span> <button id="uhf-navbtn-shellmenu_32-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c12c2c1c9c3c1m1r1a1","sN":2,"aN":"c12c2c1c9c3c1m1r1a1"}'>Entertainment</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_32-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Entertainment_XboxGamePassUltimate_cont","cT":"Container","id":"c3c12c2c1c9c3c1m1r1a1","sN":3,"aN":"c12c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_33" class="js-subm-uhf-nav-link" href="https://www.xbox.com/en-us/games/store/xbox-game-pass-ultimate/cfq7ttc0khs0?icid=CNavAllXboxGamePassUltimate" data-m='{"cN":"GlobalNav_More_Entertainment_XboxGamePassUltimate_nav","id":"n1c3c12c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c12c2c1c9c3c1m1r1a1"}'>Xbox Game Pass Ultimate</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Entertainment_PC_Game_Pass_cont","cT":"Container","id":"c4c12c2c1c9c3c1m1r1a1","sN":4,"aN":"c12c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_34" class="js-subm-uhf-nav-link" href="https://www.xbox.com/en-us/games/store/pc-game-pass/cfq7ttc0kgq8?icid=CNavAllPCGamePass" data-m='{"cN":"GlobalNav_More_Entertainment_PC_Game_Pass_nav","id":"n1c4c12c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c12c2c1c9c3c1m1r1a1"}'>PC Game Pass</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Entertainment_XboxGames_cont","cT":"Container","id":"c5c12c2c1c9c3c1m1r1a1","sN":5,"aN":"c12c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_35" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/xboxgames?icid=CNavGamesXboxGames" data-m='{"cN":"GlobalNav_More_Entertainment_XboxGames_nav","id":"n1c5c12c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c12c2c1c9c3c1m1r1a1"}'>Xbox games</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Entertainment_PCGames_cont","cT":"Container","id":"c6c12c2c1c9c3c1m1r1a1","sN":6,"aN":"c12c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_36" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/games/windows?icid=CNavGamesWindowsGames" data-m='{"cN":"GlobalNav_More_Entertainment_PCGames_nav","id":"n1c6c12c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c12c2c1c9c3c1m1r1a1"}'>PC and Windows games</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Entertainment_MoviesAndTV_cont","cT":"Container","id":"c7c12c2c1c9c3c1m1r1a1","sN":7,"aN":"c12c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_37" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/movies-and-tv?icid=TopNavMoviesTv" data-m='{"cN":"GlobalNav_More_Entertainment_MoviesAndTV_nav","id":"n1c7c12c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c12c2c1c9c3c1m1r1a1"}'>Movies & TV</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c13c2c1c9c3c1m1r1a1","sN":13,"aN":"c2c1c9c3c1m1r1a1"}'> <span id="uhf-navspn-shellmenu_38-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c13c2c1c9c3c1m1r1a1"}'>Business</span> <button id="uhf-navbtn-shellmenu_38-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c13c2c1c9c3c1m1r1a1","sN":2,"aN":"c13c2c1c9c3c1m1r1a1"}'>Business</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_38-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_Microsoft_Cloud_cont","cT":"Container","id":"c3c13c2c1c9c3c1m1r1a1","sN":3,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_39" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-cloud" data-m='{"cN":"GlobalNav_More_Business_Microsoft_Cloud_nav","id":"n1c3c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c13c2c1c9c3c1m1r1a1"}'>Microsoft Cloud</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_Microsoft Security_cont","cT":"Container","id":"c4c13c2c1c9c3c1m1r1a1","sN":4,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_40" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/security" data-m='{"cN":"GlobalNav_More_Business_Microsoft Security_nav","id":"n1c4c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c13c2c1c9c3c1m1r1a1"}'>Microsoft Security</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_MicrosoftDynamics365_cont","cT":"Container","id":"c5c13c2c1c9c3c1m1r1a1","sN":5,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_41" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/dynamics-365" data-m='{"cN":"GlobalNav_More_Business_MicrosoftDynamics365_nav","id":"n1c5c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c13c2c1c9c3c1m1r1a1"}'>Dynamics 365</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_Microsoft365forbusiness_cont","cT":"Container","id":"c6c13c2c1c9c3c1m1r1a1","sN":6,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_42" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/microsoft-365/business" data-m='{"cN":"GlobalNav_More_Business_Microsoft365forbusiness_nav","id":"n1c6c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c13c2c1c9c3c1m1r1a1"}'>Microsoft 365 for business</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_MicrosoftPowerPlatform_cont","cT":"Container","id":"c7c13c2c1c9c3c1m1r1a1","sN":7,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_43" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/power-platform" data-m='{"cN":"GlobalNav_More_Business_MicrosoftPowerPlatform_nav","id":"n1c7c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c13c2c1c9c3c1m1r1a1"}'>Microsoft Power Platform</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_Windows365_cont","cT":"Container","id":"c8c13c2c1c9c3c1m1r1a1","sN":8,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_44" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/windows-365" data-m='{"cN":"GlobalNav_More_Business_Windows365_nav","id":"n1c8c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c8c13c2c1c9c3c1m1r1a1"}'>Windows 365</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_MicrosoftIndustry_cont","cT":"Container","id":"c9c13c2c1c9c3c1m1r1a1","sN":9,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_45" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/industry" data-m='{"cN":"GlobalNav_More_Business_MicrosoftIndustry_nav","id":"n1c9c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c9c13c2c1c9c3c1m1r1a1"}'>Microsoft Industry</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Business_SmallBusiness_cont","cT":"Container","id":"c10c13c2c1c9c3c1m1r1a1","sN":10,"aN":"c13c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_46" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore" data-m='{"cN":"GlobalNav_More_Business_SmallBusiness_nav","id":"n1c10c13c2c1c9c3c1m1r1a1","sN":1,"aN":"c10c13c2c1c9c3c1m1r1a1"}'>Small Business</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c14c2c1c9c3c1m1r1a1","sN":14,"aN":"c2c1c9c3c1m1r1a1"}'> <span id="uhf-navspn-shellmenu_47-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c14c2c1c9c3c1m1r1a1"}'>Developer & IT </span> <button id="uhf-navbtn-shellmenu_47-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c14c2c1c9c3c1m1r1a1","sN":2,"aN":"c14c2c1c9c3c1m1r1a1"}'>Developer & IT </button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_47-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_Azure_cont","cT":"Container","id":"c3c14c2c1c9c3c1m1r1a1","sN":3,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_48" class="js-subm-uhf-nav-link" href="https://azure.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_Azure_nav","id":"n1c3c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c14c2c1c9c3c1m1r1a1"}'>Azure</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_MicrosoftDeveloper_cont","cT":"Container","id":"c4c14c2c1c9c3c1m1r1a1","sN":4,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_49" class="js-subm-uhf-nav-link" href="https://developer.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_MicrosoftDeveloper_nav","id":"n1c4c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c14c2c1c9c3c1m1r1a1"}'>Microsoft Developer</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_MicrosoftLearn_cont","cT":"Container","id":"c5c14c2c1c9c3c1m1r1a1","sN":5,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_50" class="js-subm-uhf-nav-link" href="https://learn.microsoft.com/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_MicrosoftLearn_nav","id":"n1c5c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c14c2c1c9c3c1m1r1a1"}'>Microsoft Learn</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_ExploreISVSuccess_cont","cT":"Container","id":"c6c14c2c1c9c3c1m1r1a1","sN":6,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_51" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/isv/isv-success?ocid=cmm3atxvn98" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_ExploreISVSuccess_nav","id":"n1c6c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c14c2c1c9c3c1m1r1a1"}'>Explore ISV Success</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_MicrosoftTechCommunity_cont","cT":"Container","id":"c7c14c2c1c9c3c1m1r1a1","sN":7,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_52" class="js-subm-uhf-nav-link" href="https://techcommunity.microsoft.com/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_MicrosoftTechCommunity_nav","id":"n1c7c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c14c2c1c9c3c1m1r1a1"}'>Microsoft Tech Community</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_AzureMarketplace_cont","cT":"Container","id":"c8c14c2c1c9c3c1m1r1a1","sN":8,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_53" class="js-subm-uhf-nav-link" href="https://azuremarketplace.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_AzureMarketplace_nav","id":"n1c8c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c8c14c2c1c9c3c1m1r1a1"}'>Azure Marketplace</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_AppSource_cont","cT":"Container","id":"c9c14c2c1c9c3c1m1r1a1","sN":9,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_54" class="js-subm-uhf-nav-link" href="https://appsource.microsoft.com/en-us/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_AppSource_nav","id":"n1c9c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c9c14c2c1c9c3c1m1r1a1"}'>AppSource</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_DeveloperAndIT_VisualStudio_cont","cT":"Container","id":"c10c14c2c1c9c3c1m1r1a1","sN":10,"aN":"c14c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_55" class="js-subm-uhf-nav-link" href="https://visualstudio.microsoft.com/" data-m='{"cN":"GlobalNav_More_DeveloperAndIT_VisualStudio_nav","id":"n1c10c14c2c1c9c3c1m1r1a1","sN":1,"aN":"c10c14c2c1c9c3c1m1r1a1"}'>Visual Studio</a> </li> </ul> </li> <li class="f-sub-menu js-nav-menu nested-menu" data-m='{"cT":"Container","id":"c15c2c1c9c3c1m1r1a1","sN":15,"aN":"c2c1c9c3c1m1r1a1"}'> <span id="uhf-navspn-shellmenu_56-span" style="display:none" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn1c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c15c2c1c9c3c1m1r1a1"}'>Other</span> <button id="uhf-navbtn-shellmenu_56-button" type="button" f-multi-parent="true" aria-expanded="false" data-m='{"id":"nn2c15c2c1c9c3c1m1r1a1","sN":2,"aN":"c15c2c1c9c3c1m1r1a1"}'>Other</button> <ul aria-hidden="true" aria-labelledby="uhf-navspn-shellmenu_56-span"> <li class="js-nav-menu single-link" data-m='{"cN":"More_Other_Microsoft Rewards_cont","cT":"Container","id":"c3c15c2c1c9c3c1m1r1a1","sN":3,"aN":"c15c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_57" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/rewards" data-m='{"cN":"GlobalNav_More_Other_Microsoft Rewards_nav","id":"n1c3c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c3c15c2c1c9c3c1m1r1a1"}'>Microsoft Rewards </a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Other_FreeDownloadsAndSecurity_cont","cT":"Container","id":"c4c15c2c1c9c3c1m1r1a1","sN":4,"aN":"c15c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_58" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/download" data-m='{"cN":"GlobalNav_More_Other_FreeDownloadsAndSecurity_nav","id":"n1c4c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c4c15c2c1c9c3c1m1r1a1"}'>Free downloads & security</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Other_Education_cont","cT":"Container","id":"c5c15c2c1c9c3c1m1r1a1","sN":5,"aN":"c15c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_59" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/education" data-m='{"cN":"GlobalNav_More_Other_Education_nav","id":"n1c5c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c5c15c2c1c9c3c1m1r1a1"}'>Education</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Other_GiftCards_cont","cT":"Container","id":"c6c15c2c1c9c3c1m1r1a1","sN":6,"aN":"c15c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_60" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/en-us/store/b/gift-cards" data-m='{"cN":"GlobalNav_More_Other_GiftCards_nav","id":"n1c6c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c6c15c2c1c9c3c1m1r1a1"}'>Gift cards</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Other_Licensing_cont","cT":"Container","id":"c7c15c2c1c9c3c1m1r1a1","sN":7,"aN":"c15c2c1c9c3c1m1r1a1"}'> <a id="Licensing" class="js-subm-uhf-nav-link" href="https://www.microsoft.com/licensing/" data-m='{"cN":"GlobalNav_More_Other_Licensing_nav","id":"n1c7c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c7c15c2c1c9c3c1m1r1a1"}'>Licensing</a> </li> <li class="js-nav-menu single-link" data-m='{"cN":"More_Other_Unlocked_stories_cont","cT":"Container","id":"c8c15c2c1c9c3c1m1r1a1","sN":8,"aN":"c15c2c1c9c3c1m1r1a1"}'> <a id="shellmenu_62" class="js-subm-uhf-nav-link" href="https://unlocked.microsoft.com/" data-m='{"cN":"GlobalNav_More_Other_Unlocked_stories_nav","id":"n1c8c15c2c1c9c3c1m1r1a1","sN":1,"aN":"c8c15c2c1c9c3c1m1r1a1"}'>Unlocked stories</a> </li> </ul> </li> <li class="f-multi-column-info"> <a data-m='{"id":"n16c2c1c9c3c1m1r1a1","sN":16,"aN":"c2c1c9c3c1m1r1a1"}' 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="https://opensource.microsoft.com/blog/?s=" method="GET" data-seAutoSuggest='{"isAutosuggestDisabled":true,"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":"c3c1c9c3c1m1r1a1","sN":3,"aN":"c1c9c3c1m1r1a1"}' 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="s" placeholder="Search Open Source blog" data-m='{"cN":"SearchBox_nav","id":"n1c3c1c9c3c1m1r1a1","sN":1,"aN":"c3c1c9c3c1m1r1a1"}' data-toggle="tooltip" data-placement="right" title="Search Open Source blog" /> <button id="search" aria-label="Search Open Source blog" class="c-glyph" data-m='{"cN":"Search_nav","id":"n2c3c1c9c3c1m1r1a1","sN":2,"aN":"c3c1c9c3c1m1r1a1"}' 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 Open Source blog</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":"c3c3c1c9c3c1m1r1a1","sN":3,"aN":"c3c1c9c3c1m1r1a1"}'></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":"nn4c1c9c3c1m1r1a1","sN":4,"aN":"c1c9c3c1m1r1a1"}' id="cancel-search" class="cancel-search" aria-label="Cancel Search"> <span>Cancel</span> </button> </div> </div> </div> </header> </div> </div> </div> <main id="mainContent" class="front-page"> <div class="front-page__header position-relative"> <div class="pt-4 pt-md-5 pb-0 mb-0 z-2 position-relative"> <div class="container"> <div class="front-page__header-inner d-md-flex flex-row align-items-center justify-content-center"> <h1 class="front-page__title text-center mb-4 mb-md-5 text-md-left"> Microsoft Open Source Blog </h1> </div> </div> </div> <div class="container position-relative z-2"> <div class="front-page__navigation-search mb-4 mb-md-5 align-items-center justify-content-center d-flex flex-column flex-md-row"> <div id="primary-navigation" class="primary-navigation mr-md-2" data-bi-an="Filter Navigation"> <button type="button" id="primary-navigation-toggle" class="primary-navigation__toggle text-body" data-open="false" aria-expanded="false" > Navigate blog by <span class="glyph-prepend glyph-prepend-chevron-down glyph-prepend-xsmall"></span> </button> <span class="primary-navigation__label font-weight-semibold"> Navigate blog by: </span> <div id="primary-navigation-container" class="primary-navigation__container" data-open="false" aria-hidden=""> <div class="no-gutters d-md-flex navigation navigation--primary"> <div class="menu-primary-menu-container"> <div id="menu-primary-menu" class="menu"> <div class="dropdown mb-md-0 menu-item-column "> <button type="button" class="dropdown-toggle menu-item--depth-0 " id="content-type-label" data-mount="dropdown" aria-expanded="false" aria-controls="content-type" > Content type </button> <ul class="dropdown-menu sub-menu sub-menu--main" id="content-type" aria-labelledby="content-type-label" > <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/content-type/news/"> News </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/content-type/events/"> Events </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/content-type/project-updates/"> Project updates </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/content-type/tutorials-and-demos/"> Tutorials and demos </a> </li> </ul> </div> <div class="dropdown mb-md-0 menu-item-column "> <button type="button" class="dropdown-toggle menu-item--depth-0 " id="topics-label" data-mount="dropdown" aria-expanded="false" aria-controls="topics" > Topics </button> <ul class="dropdown-menu sub-menu sub-menu--main" id="topics" aria-labelledby="topics-label" > <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/ai-machine-learning/"> AI + Machine Learning </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/analytics/"> Analytics </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/application-development/"> Application Development </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/big-data/"> Big Data </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/cloud/"> Cloud </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/containers/"> Containers </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/databases/"> Databases </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/deep-learning/"> Deep Learning </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/devops/"> DevOps </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/infrastructure/"> Infrastructure </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/iot/"> IoT </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/it-trends/"> IT Trends </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/programming-languages/"> Programming Languages </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/standards/"> Standards </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/topic/tools/"> Tools </a> </li> </ul> </div> <div class="dropdown mb-md-0 menu-item-column "> <button type="button" class="dropdown-toggle menu-item--depth-0 " id="programming-languages-label" data-mount="dropdown" aria-expanded="false" aria-controls="programming-languages" > Programming languages </button> <ul class="dropdown-menu sub-menu sub-menu--main" id="programming-languages" aria-labelledby="programming-languages-label" > <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/net/"> .NET </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/bash/"> Bash </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/golang/"> Golang </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/java/"> Java </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/javascript/"> JavaScript </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/node-js/"> Node.js </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/python/"> Python </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/pytorch/"> PyTorch </a> </li> <li class="menu-item menu-item-type-taxonomy menu-item--depth-1"> <a href="https://opensource.microsoft.com/blog/programming-language/typescript/"> Typescript </a> </li> </ul> </div> </div> </div> </div> </div> </div> <div id="header-search" class="header-search w-100 mt-3 mt-md-0"> <div id="header-search-content" class="header-search__content"> <div itemscope itemtype="http://schema.org/WebSite"> <form role="search" id="searchform-1" action="https://opensource.microsoft.com/blog/" class="search-form" > <meta itemprop="target" content="https://opensource.microsoft.com/blog/?s={s}" /> <label for="searchform-1-field" class="sr-only"> Search the site </label> <div class="search-form__input border d-flex align-items-center"> <input itemprop="query-input" class="form-control border-0 flex-grow-1 h-100" type="search" id="searchform-1-field" name="s" placeholder="Search the blog" value=""> <button class="btn btn-link-secondary m-0" type="submit"> <span class="sr-only">Submit</span> <span class="svg" aria-hidden="true" role="img"> <svg xmlns="http://www.w3.org/2000/svg" width="13" height="12" fill="none" viewBox="0 0 12 13"><path fill="#4C4C51" d="M4.833.097a4.833 4.833 0 0 1 3.753 7.879l3.268 3.267a.5.5 0 0 1-.651.756l-.057-.049L7.88 8.683A4.833 4.833 0 1 1 4.833.097m0 1a3.833 3.833 0 1 0 0 7.666 3.833 3.833 0 0 0 0-7.666" /></svg> </span> </button> </div> </form> </div> </div> </div> </div> </div> <div class="container position-relative z-1"> <div class="featured-content d-md-flex z-1 position-relative"> <article class="featured-content__post is-entire-card-clickable card card--featured flex-column-reverse flex-sm-row flex-row align-items-center"> <div class="card__content w-sm-col-6 position-relative pr-md-4"> <div class="card__meta flex-wrap d-flex flex-row small"> <div class="card__categories font-weight-semibold" data-bi-an="post-categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/project-updates/" data-bi-cn="Project updates" data-bi-ct="cta link" > Project updates </a> </li> </ul> </div> <span class="card__meta-divider d-md-inline">•</span> <div class="card__date font-weight-semibold"> <span>Mar 26</span> </div> <span class="card__meta-divider d-md-inline">•</span> <div class="card__read-time font-weight-semibold"> <span>10 min read</span> </div> </div> <h2 class="card__title mt-2 font-weight-semibold"> <a href="https://opensource.microsoft.com/blog/2025/03/26/hyperlight-wasm-fast-secure-and-os-free/" data-bi-ct="title link" data-bi-id="97273" data-bi-cn="Hyperlight Wasm: Fast, secure, and OS-free" > <span>Hyperlight Wasm: Fast, secure, and OS-free</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h2> <div class="card__excerpt lead"> <p>We’re announcing the release of Hyperlight Wasm: a Hyperlight virtual machine “micro-guest” that can run wasm component workloads written in many programming languages.</p> </div> </div> <div class="card__image w-sm-col-6 position-relative border-radius-30 bg-blur-10 aspect-ratio-16-9 w-100"> <img width="650" height="356" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055-650x356.webp" class="aspect-ratio-16-9 d-block w-100 h-100 img-object-cover border-radius-20 wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_055.webp 1170w" sizes="(max-width: 650px) 100vw, 650px" /> <div class="featured-content-img-bg"></div> </div> </article> </div> </div> </div> <div class="front-page__posts-container pt-sm-5 pb-sm-5 pt-4 pb-4"> <div class="container position-relative z-1"> <div data-load-more-content class="front-page__posts row" data-bi-an="Recent Article" itemscope itemtype="https://schema.org/Blog"> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-97206" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-97206 post type-post status-publish format-standard has-post-thumbnail hentry content-type-news topic-ai-machine-learning topic-programming-languages programming-languages-javascript review-flag-1593580428-734 review-flag-1593580419-521 review-flag-1-1593580432-963 review-flag-2-1593580437-411 review-flag-free-1593619513-693 review-flag-new-1593580248-669 review-flag-vm-1593580807-312"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Build a Hyperlight C guest to securely execute JavaScript" data-bi-id="97206" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="212" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-388x212.png" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="" decoding="async" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize.webp 1170w" sizes="(max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/news/" data-bi-id="346" data-bi-cn="News" data-bi-ct="post categories" > News </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2025-03-10T07:00:00-07:00">Mar 10</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 7 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Build a Hyperlight C guest to securely execute JavaScript" data-bi-id="97206" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2025/03/10/build-a-hyperlight-c-guest-to-securely-execute-javascript/" > <span>Build a Hyperlight C guest to securely execute JavaScript</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">This article will show you how to create a “guest” application that uses the Hyperlight library and have fun with…</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-97104" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-97104 post type-post status-publish format-standard has-post-thumbnail hentry content-type-events content-type-tutorials-and-demos topic-application-development review-flag-1593580428-734 review-flag-1593580415-931 review-flag-1-1593580432-963 review-flag-5-1593580453-725 review-flag-9-1593580473-997 review-flag-lever-1593580265-989 review-flag-micro-1680215167-604 review-flag-new-1593580248-669 review-flag-vm-1593580807-312"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Hyperlight: Achieving 0.0009-second micro-VM execution time" data-bi-id="97104" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="259" src="https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-388x259.jpg" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="Cheerful and successful indian woman programmer at work inside modern office, tech support worker with laptop typing on keyboard smiling" decoding="async" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-388x259.jpg 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-1024x683.jpg 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-768x512.jpg 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-1536x1024.jpg 1536w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-2048x1365.jpg 2048w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-450x300.jpg 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/02/MSC24-India-business-Adobe-550638570-rgb-650x433.jpg 650w" sizes="(max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/events/" data-bi-id="352" data-bi-cn="Events" data-bi-ct="post categories" > Events </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2025-02-11T07:00:00-08:00">Feb 11</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 4 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Hyperlight: Achieving 0.0009-second micro-VM execution time" data-bi-id="97104" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2025/02/11/hyperlight-creating-a-0-0009-second-micro-vm-execution-time/" > <span>Hyperlight: Achieving 0.0009-second micro-VM execution time</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">In this post, we’ll take the demo application and show how it demonstrates one way you can use Hyperlight. </p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96771" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96771 post type-post status-publish format-standard has-post-thumbnail hentry review-flag-1593580362-584 review-flag-1593580428-734 review-flag-1593580771-946 review-flag-1-1593580432-963 review-flag-2-1593580437-411 review-flag-alway-1593580310-39 review-flag-and-o-1593580423-446 review-flag-lever-1593580265-989 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="DocumentDB: Open-Source Announcement" data-bi-id="96771" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="259" src="https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-388x259.jpg" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="Computer programmer working with male colleague in office" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-388x259.jpg 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-1024x683.jpg 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-768x513.jpg 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-1536x1025.jpg 1536w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-2048x1367.jpg 2048w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-450x300.jpg 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2025/01/CLO25-Security-Lifestyle-Getty-1084167628-650x434.jpg 650w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__date"> <time datetime="2025-01-23T08:30:00-08:00">Jan 23</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 5 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="DocumentDB: Open-Source Announcement" data-bi-id="96771" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/" > <span>DocumentDB: Open-Source Announcement</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">We are excited to announce the official release of DocumentDB—an open-source document database platform.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div id="front-page-banner" class="col-12 mb-4"> <div class="site-banner d-md-flex align-items-center position-relative overflow-hidden h-100 py-md-5 px-3 px-md-5" data-bi-an="CTA Block" class="wp-block-mscm-site-banner"> <div class="col-md-9 p-0 d-md-flex align-items-center"> <div class="banner__heading"> <h2 class="text-md-right font-weight-semibold mb-0"> Microsoft Open Source </h2> </div> <div class="banner__content pt-4 mt-4 pt-md-0 mt-md-0 pl-md-4 ml-md-4"> <p>Open Source enables Microsoft products and services to bring choice, technology and community to our customers. Together, in the open, it's an exciting time to use technology to build hacks, apps, and services.</p> </div> </div> </div> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96558" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96558 post type-post status-publish format-standard has-post-thumbnail hentry content-type-project-updates topic-ai-machine-learning topic-cloud topic-containers review-flag-1593580428-734 review-flag-1593580419-521 review-flag-2-1593580437-411 review-flag-3-1593580442-169 review-flag-alway-1593580310-39 review-flag-free-1593619513-693 review-flag-integ-1593580288-449 review-flag-lever-1593580265-989 review-flag-new-1593580248-669 review-flag-vm-1593580807-312"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="What’s new with Microsoft in open-source and Kubernetes at KubeCon North America 2024" data-bi-id="96558" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="212" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008-388x212.png" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="Developer looking at code" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO24-Azure-Manufacturing-008.webp 1170w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/project-updates/" data-bi-id="361" data-bi-cn="Project updates" data-bi-ct="post categories" > Project updates </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-11-12T11:00:00-08:00">November 12, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 8 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="What’s new with Microsoft in open-source and Kubernetes at KubeCon North America 2024" data-bi-id="96558" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/11/12/whats-new-with-microsoft-in-open-source-and-kubernetes-at-kubecon-north-america-2024/" > <span>What’s new with Microsoft in open-source and Kubernetes at KubeCon North America 2024</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">At Microsoft, we are committed to innovation in the cloud-native ecosystem through contributions and leadership from engineers across Azure.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96526" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96526 post type-post status-publish format-standard has-post-thumbnail hentry content-type-news content-type-tutorials-and-demos topic-cloud topic-tools programming-languages-rust review-flag-1593580428-734 review-flag-1593580415-931 review-flag-1-1593580432-963 review-flag-2-1593580437-411 review-flag-5-1593580453-725 review-flag-inter-1680213152-551 review-flag-iot-1680213327-385 review-flag-new-1593580248-669 review-flag-vm-1593580807-312"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Introducing Hyperlight: Virtual machine-based security for functions at scale" data-bi-id="96526" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="212" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001-388x212.png" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC21_homeGaming_Surface_001.webp 1170w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/tutorials-and-demos/" data-bi-id="340" data-bi-cn="Tutorials and demos" data-bi-ct="post categories" > Tutorials and demos </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-11-07T08:00:00-08:00">November 7, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 6 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Introducing Hyperlight: Virtual machine-based security for functions at scale" data-bi-id="96526" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/11/07/introducing-hyperlight-virtual-machine-based-security-for-functions-at-scale/" > <span>Introducing Hyperlight: Virtual machine-based security for functions at scale</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">The Microsoft Azure Core Upstream team is excited to announce the Hyperlight project.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96496" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96496 post type-post status-publish format-standard has-post-thumbnail hentry tag-linux content-type-news topic-cloud review-flag-1-1593580432-963 review-flag-free-1593619513-693 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Flatcar accepted into CNCF at incubating level" data-bi-id="96496" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="258" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/10/Open-Source-Blog-388x258.webp" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="Women smiling at conference table" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/10/Open-Source-Blog-388x258.webp 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/10/Open-Source-Blog-450x300.webp 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/10/Open-Source-Blog.webp 650w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/news/" data-bi-id="346" data-bi-cn="News" data-bi-ct="post categories" > News </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-10-29T09:00:00-07:00">October 29, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 4 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Flatcar accepted into CNCF at incubating level" data-bi-id="96496" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/10/29/flatcar-accepted-into-cncf-at-incubating-level/" > <span>Flatcar accepted into CNCF at incubating level</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">Flatcar provides a lightweight Linux OS specifically tailored for hosting container workloads.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96438" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96438 post type-post status-publish format-standard has-post-thumbnail hentry tag-azure-kubernetes-service tag-community-partners tag-github tag-kubernetes tag-azure content-type-news topic-application-development topic-iot programming-languages-rust review-flag-2-1593580437-411 review-flag-integ-1593580288-449 review-flag-inter-1680213152-551 review-flag-iot-1680213327-385 review-flag-never-1593580314-283 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Detect and react intelligently to changes in data with Drasi" data-bi-id="96438" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="212" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037-388x212.png" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/CLO19_Ubisoft_Azure_037.webp 1170w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/news/" data-bi-id="346" data-bi-cn="News" data-bi-ct="post categories" > News </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-10-22T08:00:00-07:00">October 22, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 8 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Detect and react intelligently to changes in data with Drasi" data-bi-id="96438" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/10/22/detect-and-react-intelligently-to-changes-in-data-with-drasi/" > <span>Detect and react intelligently to changes in data with Drasi</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">This introductory post will focus on the core concepts of Drasi, and its major components such as Sources.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96386" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96386 post type-post status-publish format-standard has-post-thumbnail hentry content-type-tutorials-and-demos topic-containers programming-languages-rust review-flag-1593580428-734 review-flag-1593580419-521 review-flag-1-1593580432-963 review-flag-2-1593580437-411 review-flag-5-1593580453-725 review-flag-anywh-1593580318-567 review-flag-integ-1593580288-449 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Distributing WebAssembly components using OCI registries " data-bi-id="96386" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="259" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image-388x259.jpg" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="developer on computer" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image-388x259.jpg 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image-1024x683.jpg 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image-768x512.jpg 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image-450x300.jpg 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image-650x433.jpg 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/9.19-featured-image.jpg 1260w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/tutorials-and-demos/" data-bi-id="340" data-bi-cn="Tutorials and demos" data-bi-ct="post categories" > Tutorials and demos </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-09-25T08:00:00-07:00">September 25, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 8 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Distributing WebAssembly components using OCI registries " data-bi-id="96386" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/09/25/distributing-webassembly-components-using-oci-registries/" > <span>Distributing WebAssembly components using OCI registries </span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">As the cloud-native space keeps evolving at a rapid pace, WebAssembly is emerging as a promising alternative to containers.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96360" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96360 post type-post status-publish format-standard has-post-thumbnail hentry tag-docker content-type-tutorials-and-demos topic-containers review-flag-integ-1593580288-449 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Project Copacetic: Quick and efficient container image patching" data-bi-id="96360" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="298" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013-388x298.jpg" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="Developer evaluating data from intelligent apps built in Azure in the context of FinTech. Persona" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013-388x298.jpg 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013-1024x788.jpg 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013-768x591.jpg 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013-450x346.jpg 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013-650x500.jpg 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/09/CLO24-Azure-Fintech-013.jpg 1200w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/tutorials-and-demos/" data-bi-id="340" data-bi-cn="Tutorials and demos" data-bi-ct="post categories" > Tutorials and demos </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-09-18T08:00:00-07:00">September 18, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 4 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Project Copacetic: Quick and efficient container image patching" data-bi-id="96360" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/09/18/project-copacetic-quick-and-efficient-container-image-patching/" > <span>Project Copacetic: Quick and efficient container image patching</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">Project Copacetic simplifies container image patching with a CLI tool and Docker Desktop extension.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96315" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96315 post type-post status-publish format-standard has-post-thumbnail hentry tag-canonical tag-community-partners tag-linux tag-microsoft tag-azure tag-red-hat tag-suse content-type-events content-type-news topic-application-development topic-cloud programming-languages-net programming-languages-postgresql programming-languages-webassembly review-flag-1593580428-734 review-flag-1593580415-931 review-flag-2-1593580437-411 review-flag-3-1593580442-169 review-flag-9-1593580473-997 review-flag-micro-1680215167-604 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Microsoft at Open Source Summit Europe 2024: Driving collaboration and innovation" data-bi-id="96315" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="259" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020-388x259.jpg" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="Colleagues collaborating in the courtyard." decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020-388x259.jpg 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020-1024x683.jpg 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020-768x512.jpg 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020-450x300.jpg 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020-650x433.jpg 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/08/CLO23_WorkAnywhere_020.jpg 1260w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/events/" data-bi-id="352" data-bi-cn="Events" data-bi-ct="post categories" > Events </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-08-28T08:00:00-07:00">August 28, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 4 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Microsoft at Open Source Summit Europe 2024: Driving collaboration and innovation" data-bi-id="96315" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/08/28/microsoft-at-open-source-summit-europe-2024-driving-collaboration-and-innovation/" > <span>Microsoft at Open Source Summit Europe 2024: Driving collaboration and innovation</span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">Connect with other open source enthusiasts at Open Source Summit Europe 2024 in Vienna, Austria.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-96261" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-96261 post type-post status-publish format-standard has-post-thumbnail hentry content-type-project-updates review-flag-1593580428-734 review-flag-1593580419-521 review-flag-1-1593580432-963 review-flag-2-1593580437-411 review-flag-3-1593580442-169 review-flag-4-1593580448-609 review-flag-5-1593580453-725 review-flag-new-1593580248-669"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="5 things we learned from sponsoring a sampling of our open source dependencies " data-bi-id="96261" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="212" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb-388x212.png" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/MSC24-Japan-business-Getty-1024531730-rgb.webp 1170w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/project-updates/" data-bi-id="361" data-bi-cn="Project updates" data-bi-ct="post categories" > Project updates </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-06-27T08:00:00-07:00">June 27, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 5 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="5 things we learned from sponsoring a sampling of our open source dependencies " data-bi-id="96261" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/06/27/5-things-we-learned-from-sponsoring-a-sampling-of-our-open-source-dependencies/" > <span>5 things we learned from sponsoring a sampling of our open source dependencies </span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">Microsoft is experimenting with and investing in sustainability of the open source ecosystem sponsorships.</p> </div> <div class="opensource-card-bg"></div> </article> </div> <div class="col-md-4 col-sm-6 col-12 mb-4 has-bg"> <article id="post-95272" class="card material-card h-100 mb-2 shadow-1 is-entire-card-clickable text-body border-radius-30 post-95272 post type-post status-publish format-standard has-post-thumbnail hentry content-type-news review-flag-1593580428-734 review-flag-1-1593580432-963 review-flag-2-1593580437-411 review-flag-4-1593580448-609 review-flag-new-1593580248-669 review-flag-partn-1593580279-545"> <div class="card__image"> <div class="d-flex card__image-link px-2 pt-2 pb-0" data-bi-cn="Open sourcing MS-DOS 4.0 " data-bi-id="95272" data-bi-ct="image link" > <div class="embed-responsive embed-responsive-16by9"> <img width="388" height="212" src="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-388x212.png" class="card-img embed-responsive-item border-radius-10 img-object-cover aspect-ratio-16-9 wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-388x212.png 388w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-1024x560.png 1024w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-768x420.png 768w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-450x246.png 450w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize-650x356.webp 650w, https://opensource.microsoft.com/blog/wp-content/uploads/2024/06/1920-Panel8-FeatureHeader-Modernize.webp 1170w" sizes="auto, (max-width: 388px) 100vw, 388px" /> </div> </div> </div> <div class="card__content card-body p-4"> <div class="card__meta small font-weight-bold d-flex flex-wrap"> <div class="card__categories" data-bi-an="Post Categories"> <ul class="list-inline d-sm-inline m-0"> <li class="list-inline-item"> <a href="https://opensource.microsoft.com/blog/content-type/news/" data-bi-id="346" data-bi-cn="News" data-bi-ct="post categories" > News </a> </li> </ul> </div> <span class="d-inline-block mx-2">•</span> <div class="card__date"> <time datetime="2024-04-25T14:30:00-07:00">April 25, 2024</time> </div> <span class="d-inline-block mx-2">•</span> <div class="card__read-time"> 2 min read </div> </div> <h3 class="h4 m-0 my-g"> <a class="card__link" data-bi-cn="Open sourcing MS-DOS 4.0 " data-bi-id="95272" data-bi-ct="title link" href="https://opensource.microsoft.com/blog/2024/04/25/open-sourcing-ms-dos-4-0/" > <span>Open sourcing MS-DOS 4.0 </span> <span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h3> <p class="card__excerpt text-body lead">In partnership with IBM, we’re releasing the source code to MS-DOS 4.00 under the MIT license to support open innovation.</p> </div> <div class="opensource-card-bg"></div> </article> </div> </div> <div class="front-page__navigation"> <nav class="pagination navigation" aria-label="Posts pagination" > <ul class='pagination nav-links'><li class="page-item disabled"><span class="prev page-link">Previous</span></li> <li class="page-item active" aria-current="page"><a class="page-link"><span>1</span></a></li> <li class="page-item"><a class="page-link" href="https://opensource.microsoft.com/blog/page/2/">2</a></li> <li class="page-item"><a class="page-link" href="https://opensource.microsoft.com/blog/page/3/">3</a></li> <li class="page-item disabled ellipsis"><span class="page-link text-body">…</span></li> <li class="page-item"><a class="page-link" href="https://opensource.microsoft.com/blog/page/37/">37</a></li> <li class="page-item"><a class="next page-link" href="https://opensource.microsoft.com/blog/page/2/">Next</a></li></ul> </nav> </div> </div> </div> </main> <footer class="feature-cta-wrapper"> <div class="container"> <div class="opensource-feature-cta-bg"> <section class="feature feature--cta feature--global-cta col-12 col-md-5 " data-bi-an="Global CTA"> <div class="card-wrapper-grid"> <div class="card-body align-self-center mx-auto"> <h2 id="global-cta-heading">Microsoft Open Source</h2> <div class="mb-3"> <p>Open Source enables Microsoft products and services to bring choice, technology and community to our customers.</p> </div> <div class="link-group mb-5"> <a aria-label="Explore projects" data-bi-cn="Explore projects" data-bi-ct="cta link" href="https://opensource.microsoft.com/projects/" class="cta" > Explore projects </a> </div> </div> </div> </section> </div> <section class="footer-social text-center" role="region" aria-label="social media links" data-bi-an="Global CTA Social"> <h2 class="text-white base font-weight-normal align-middle mr-g d-md-inline-block mb-3 mb-md-0"> Connect with us on social </h2> <ul class="list-inline mb-0 d-inline-flex align-middle"> <li class="list-inline-item mr-g icon-x"> <a class="d-flex text-body" aria-label="Follow on X" data-bi-cn="Follow on X" data-bi-ct="follow link" data-bi-bhvr="126" href="https://twitter.com/OpenAtMicrosoft" target="_blank"> <span class="svg" aria-hidden="true" role="img"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><circle cx="12.24" cy="12" r="11.635" fill="#041530" /><path fill="#fff" d="m13.348 11.11 4.332-4.928h-1.026L12.89 10.46 9.888 6.182H6.422l4.543 6.469-4.543 5.166H7.45L11.42 13.3l3.173 4.518h3.464zm-5.53-4.17h1.578l2.956 4.136.459.645 3.842 5.376h-1.577z" /></svg> </span> </a> </li> </ul> </section> </div> </footer> <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="/MSCloudBlogs/MSEnterpriseMobilityandSecurityFooter, 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's new</div> <ul class="c-list f-bare"> <li> <a aria-label="Surface Pro What'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'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'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'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'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'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'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'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 & IT</div> <ul class="c-list f-bare"> <li> <a aria-label="Azure Developer & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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="http://www.microsoft.com/en-us/locale.aspx" 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_sitemap"> <a class="c-uhff-link" href="https://www.microsoft.com/en-us/sitemap1.aspx" data-mscc-ic="false" data-m='{"cN":"Footer_Sitemap_nav","id":"n1c11c1c1m1r1a2","sN":1,"aN":"c11c1c1m1r1a2"}'>Sitemap</a> </li> <li id="c-uhff-footer_contactus"> <a class="c-uhff-link" href="https://support.microsoft.com/contactus" data-mscc-ic="false" data-m='{"cN":"Footer_ContactUs_nav","id":"n2c11c1c1m1r1a2","sN":2,"aN":"c11c1c1m1r1a2"}'>Contact Microsoft</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":"n3c11c1c1m1r1a2","sN":3,"aN":"c11c1c1m1r1a2"}'>Privacy </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":"n4c11c1c1m1r1a2","sN":4,"aN":"c11c1c1m1r1a2"}'>Manage cookies</a> </li> <li id="c-uhff-footer_termsofuse"> <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?LinkID=206977" data-mscc-ic="false" data-m='{"cN":"Footer_TermsOfUse_nav","id":"n5c11c1c1m1r1a2","sN":5,"aN":"c11c1c1m1r1a2"}'>Terms of use</a> </li> <li id="c-uhff-footer_trademarks"> <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2196228" data-mscc-ic="false" data-m='{"cN":"Footer_Trademarks_nav","id":"n6c11c1c1m1r1a2","sN":6,"aN":"c11c1c1m1r1a2"}'>Trademarks</a> </li> <li id="c-uhff-footer_safetyandeco"> <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2196227" data-mscc-ic="false" data-m='{"cN":"Footer_SafetyAndEco_nav","id":"n7c11c1c1m1r1a2","sN":7,"aN":"c11c1c1m1r1a2"}'>Safety & eco</a> </li> <li id="c-uhff-recycling"> <a class="c-uhff-link" href="https://www.microsoft.com/en-us/legal/compliance/recycling" data-mscc-ic="false" data-m='{"cN":"Recycling_nav","id":"n8c11c1c1m1r1a2","sN":8,"aN":"c11c1c1m1r1a2"}'>Recycling</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":"n9c11c1c1m1r1a2","sN":9,"aN":"c11c1c1m1r1a2"}'>About our ads</a> </li> <li>© 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> <script> function onConsentChanged( categoryPreferences ) { Metrics_3P_Scripts(); // If any categories are disabled, clear all cookies if ( ! siteConsent.getConsentFor( WcpConsent.consentCategories.Analytics ) ) { Metrics_Clear_Cookies( 'Analytics' ); } if ( ! siteConsent.getConsentFor( WcpConsent.consentCategories.Advertising ) ) { Metrics_Clear_Cookies( 'Advertising' ); } if ( ! siteConsent.getConsentFor( WcpConsent.consentCategories.SocialMedia ) ) { Metrics_Clear_Cookies( 'SocialMedia' ); } } function Metrics_Clear_Cookies( category ) { var all_cookies = document.cookie.split(";"); // array of cookie names to clear const cookie_names = [ '_clck', '_clsk', '_fbp', '_uetvid', 'mbox', 'AnalyticsSyncHistory', 'bcookie', 'bscookie', 'li_sugr', 'lidc', 'li_gc', 'UserMatchHistory', ]; for ( var i = 0; i < all_cookies.length; i++ ) { var cookie_name = all_cookies[i].split("=")[0].trim(); if ( cookie_names.includes( cookie_name ) ) { document.cookie = cookie_name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } } } function Metrics_3P_Scripts(){ // if GPC_DataSharingOptIn is set and true set Metrics_3POptIn var Metrics_3P_OptIn = false; if ( typeof GPC_DataSharingOptIn !== 'undefined' && GPC_DataSharingOptIn ) { Metrics_3P_OptIn = true; } else { Metrics_3P_OptIn = false; Metrics_Clear_Cookies(); } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.Analytics ) && Metrics_3P_OptIn ) { if ( typeof microsoftAds === "function" ) { microsoftAds(); } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.Advertising ) ) { if ( typeof adobeTargetTracking === "function" ) { adobeTargetTracking(); } if ( typeof clarityTracking === "function" ) { clarityTracking(); } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.SocialMedia ) ) { if ( typeof facebookTracking === "function" ) { facebookTracking(); } if ( typeof linkedinTracking === "function" ) { linkedinTracking(); } } } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.SocialMedia ) ) { } } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.Advertising ) && Metrics_3P_OptIn ) { if ( typeof doubleclickTracking === "function" ) { doubleclickTracking(); } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.SocialMedia ) ) { } } if ( siteConsent.getConsentFor( WcpConsent.consentCategories.SocialMedia ) && Metrics_3P_OptIn ) { } } window.WcpConsent && WcpConsent.init( "en-US", "ms-cookie-banner", function (err, _siteConsent) { if ( ! err ) { siteConsent = _siteConsent; //siteConsent is used to get the current consent var consentRequiredElementExists = document.getElementById( "c-uhff-footer_managecookies" ) && siteConsent.isConsentRequired; if ( consentRequiredElementExists ) { document.getElementById( "c-uhff-footer_managecookies" ).classList.remove("x-hidden"); document.getElementById( "c-uhff-footer_managecookies" ).onclick = function() { siteConsent.manageConsent(); }; } Metrics_3P_Scripts(); } else { console.log( "Error initializing WcpConsent: " + err ); } }, onConsentChanged ); </script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/plugins/microsoft-performance/dist/js/frontend.js?ver=5f3e306fb3070a77a1af" id="ms_performance_frontend-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/themes/cloud-marketing-moray/dist/js/moray-scripts.js?ver=1742314731" id="mscm-moray-script-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" id="mscm-frontend-script-js-extra"> /* <![CDATA[ */ var cloudblogs = {"i18n":{"more":"more","less":"less","more_tags":"View more tags","less_tags":"View less tags","requiredField":"This field is required"}}; /* ]]> */ </script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/themes/cloud-marketing-moray/dist/js/frontend.js?ver=1742314731" id="mscm-frontend-script-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-includes/js/dist/dom-ready.min.js?ver=f77871ff7694fffea381" id="wp-dom-ready-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-includes/js/dist/a11y.min.js?ver=3156534cc54473497e14" id="wp-a11y-js"></script> <script type="text/javascript" id="msx-frontend-js-extra"> /* <![CDATA[ */ var msx = {"darkModeToggle":"1","i18n":{"loadMore":"Load more","loading":"Loading","loadingStart":"Loading more. Please wait.","loadingEnd":"Loading complete. %d items added.","loadMoreAriaLabel":"Load more results","light":"Switch the site theme to: dark","dark":"Switch the site theme to: light","toggleOptionLight":"Light","toggleOptionDark":"Dark","more":"more","less":"less","more_tags":"Load more taxonomies","less_tags":"Load less taxonomies"}}; /* ]]> */ </script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/themes/xtheme/dist/js/frontend.js?ver=1742314751" id="msx-frontend-js"></script> <script type="text/javascript" id="msx-loadmore-js-extra"> /* <![CDATA[ */ var msxLoadMore = {"url":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts","posts":"{\"error\":\"\",\"m\":\"\",\"p\":0,\"post_parent\":\"\",\"subpost\":\"\",\"subpost_id\":\"\",\"attachment\":\"\",\"attachment_id\":0,\"name\":\"\",\"pagename\":\"\",\"page_id\":0,\"second\":\"\",\"minute\":\"\",\"hour\":\"\",\"day\":0,\"monthnum\":0,\"year\":0,\"w\":0,\"category_name\":\"\",\"tag\":\"\",\"cat\":\"\",\"tag_id\":\"\",\"author\":\"\",\"author_name\":\"\",\"feed\":\"\",\"tb\":\"\",\"paged\":0,\"meta_key\":\"\",\"meta_value\":\"\",\"preview\":\"\",\"s\":\"\",\"sentence\":\"\",\"title\":\"\",\"fields\":\"\",\"menu_order\":\"\",\"embed\":\"\",\"category__in\":[],\"category__not_in\":[],\"category__and\":[],\"post__in\":[],\"post__not_in\":[97273],\"post_name__in\":[],\"tag__in\":[],\"tag__not_in\":[],\"tag__and\":[],\"tag_slug__in\":[],\"tag_slug__and\":[],\"post_parent__in\":[],\"post_parent__not_in\":[],\"author__in\":[],\"author__not_in\":[],\"search_columns\":[],\"ep_integrate\":true,\"ep_facet\":true,\"aggs\":{\"name\":\"terms\",\"use-filter\":true,\"aggs\":{\"category\":{\"terms\":{\"size\":10000,\"field\":\"terms.category.slug\"}},\"post_tag\":{\"terms\":{\"size\":10000,\"field\":\"terms.post_tag.slug\"}},\"content-type\":{\"terms\":{\"size\":10000,\"field\":\"terms.content-type.slug\"}},\"topic\":{\"terms\":{\"size\":10000,\"field\":\"terms.topic.slug\"}},\"programming-languages\":{\"terms\":{\"size\":10000,\"field\":\"terms.programming-languages.slug\"}},\"review-flag\":{\"terms\":{\"size\":10000,\"field\":\"terms.review-flag.slug\"}},\"classifai-image-tags\":{\"terms\":{\"size\":10000,\"field\":\"terms.classifai-image-tags.slug\"}},\"post_type\":{\"terms\":{\"size\":10000,\"field\":\"post_type.raw\"}}}},\"ignore_sticky_posts\":false,\"suppress_filters\":false,\"cache_results\":true,\"update_post_term_cache\":true,\"update_menu_item_cache\":false,\"lazy_load_term_meta\":true,\"update_post_meta_cache\":true,\"post_type\":\"\",\"posts_per_page\":12,\"nopaging\":false,\"comments_per_page\":\"20\",\"no_found_rows\":false,\"order\":\"DESC\",\"ep_aggregations\":{\"terms\":{\"doc_count\":435,\"programming-languages\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[{\"key\":\"node-js\",\"doc_count\":25},{\"key\":\"java\",\"doc_count\":23},{\"key\":\"python\",\"doc_count\":16},{\"key\":\"javascript\",\"doc_count\":13},{\"key\":\"pytorch\",\"doc_count\":12},{\"key\":\"net\",\"doc_count\":10},{\"key\":\"postgresql\",\"doc_count\":10},{\"key\":\"r\",\"doc_count\":7},{\"key\":\"golang\",\"doc_count\":6},{\"key\":\"rust\",\"doc_count\":6},{\"key\":\"typescript\",\"doc_count\":6},{\"key\":\"bash\",\"doc_count\":4},{\"key\":\"php\",\"doc_count\":3},{\"key\":\"webassembly\",\"doc_count\":3},{\"key\":\"angular\",\"doc_count\":1},{\"key\":\"arduino\",\"doc_count\":1},{\"key\":\"asp-net\",\"doc_count\":1},{\"key\":\"django\",\"doc_count\":1}]},\"topic\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[{\"key\":\"cloud\",\"doc_count\":297},{\"key\":\"application-development\",\"doc_count\":130},{\"key\":\"containers\",\"doc_count\":113},{\"key\":\"devops\",\"doc_count\":83},{\"key\":\"ai-machine-learning\",\"doc_count\":49},{\"key\":\"big-data\",\"doc_count\":43},{\"key\":\"it-trends\",\"doc_count\":43},{\"key\":\"databases\",\"doc_count\":35},{\"key\":\"tools\",\"doc_count\":22},{\"key\":\"iot\",\"doc_count\":15},{\"key\":\"standards\",\"doc_count\":14},{\"key\":\"infrastructure\",\"doc_count\":12},{\"key\":\"analytics\",\"doc_count\":11},{\"key\":\"programming-languages\",\"doc_count\":11},{\"key\":\"deep-learning\",\"doc_count\":7}]},\"review-flag\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[{\"key\":\"new-1593580145-501\",\"doc_count\":233},{\"key\":\"new-1593580248-669\",\"doc_count\":233},{\"key\":\"numer-1593580208-661\",\"doc_count\":226},{\"key\":\"1593580428-734\",\"doc_count\":160},{\"key\":\"and-o-1593580203-799\",\"doc_count\":160},{\"key\":\"2-1593580437-411\",\"doc_count\":146},{\"key\":\"1-1593580432-963\",\"doc_count\":135},{\"key\":\"1593580198-397\",\"doc_count\":120},{\"key\":\"3-1593580442-169\",\"doc_count\":100},{\"key\":\"free-1593580141-373\",\"doc_count\":94},{\"key\":\"free-1593619513-693\",\"doc_count\":94},{\"key\":\"1593580419-521\",\"doc_count\":87},{\"key\":\"4-1593580448-609\",\"doc_count\":74},{\"key\":\"absol-1593580177-670\",\"doc_count\":73},{\"key\":\"5-1593580453-725\",\"doc_count\":68},{\"key\":\"micro-1680215156-135\",\"doc_count\":66},{\"key\":\"micro-1680215167-604\",\"doc_count\":66},{\"key\":\"busin-1593580159-972\",\"doc_count\":62},{\"key\":\"virtu-1593580239-890\",\"doc_count\":57},{\"key\":\"vm-1593580807-312\",\"doc_count\":57},{\"key\":\"1593580415-931\",\"doc_count\":54},{\"key\":\"lever-1593580155-895\",\"doc_count\":54},{\"key\":\"lever-1593580265-989\",\"doc_count\":54},{\"key\":\"8-1593580468-572\",\"doc_count\":53},{\"key\":\"alway-1593580310-39\",\"doc_count\":52},{\"key\":\"9-1593580473-997\",\"doc_count\":51},{\"key\":\"machi-1680214097-949\",\"doc_count\":49},{\"key\":\"machi-1680214156-53\",\"doc_count\":48},{\"key\":\"7-1593580463-151\",\"doc_count\":46},{\"key\":\"6-1593580457-852\",\"doc_count\":42},{\"key\":\"seaso-1593580221-144\",\"doc_count\":40},{\"key\":\"integ-1593580164-28\",\"doc_count\":38},{\"key\":\"integ-1593580288-449\",\"doc_count\":38},{\"key\":\"partn-1593580284-292\",\"doc_count\":37},{\"key\":\"1593580771-946\",\"doc_count\":36},{\"key\":\"prici-1593580235-304\",\"doc_count\":36},{\"key\":\"partn-1593580279-545\",\"doc_count\":34},{\"key\":\"inter-1680213140-430\",\"doc_count\":24},{\"key\":\"sprin-1593580746-499\",\"doc_count\":24},{\"key\":\"iot-1680213327-385\",\"doc_count\":23},{\"key\":\"never-1593580314-283\",\"doc_count\":19},{\"key\":\"anywh-1593580318-567\",\"doc_count\":18},{\"key\":\"previ-1593580230-74\",\"doc_count\":17},{\"key\":\"gener-1593580226-425\",\"doc_count\":16},{\"key\":\"publi-1593580761-124\",\"doc_count\":16},{\"key\":\"1593580362-584\",\"doc_count\":14},{\"key\":\"quote-1593580186-108\",\"doc_count\":14},{\"key\":\"and-o-1593580423-446\",\"doc_count\":12},{\"key\":\"on-pr-1593580243-586\",\"doc_count\":12},{\"key\":\"ai-1680214255-563\",\"doc_count\":11},{\"key\":\"artif-1680214273-578\",\"doc_count\":11},{\"key\":\"conte-1593580182-472\",\"doc_count\":10},{\"key\":\"fall-1593580732-697\",\"doc_count\":10},{\"key\":\"ga-1593580756-435\",\"doc_count\":9},{\"key\":\"gener-1593580751-533\",\"doc_count\":9},{\"key\":\"marke-1680212564-449\",\"doc_count\":9},{\"key\":\"ml-1680214110-748\",\"doc_count\":9},{\"key\":\"perce-1593580194-202\",\"doc_count\":9},{\"key\":\"perce-1706214400-122\",\"doc_count\":9},{\"key\":\"summe-1593580727-123\",\"doc_count\":8},{\"key\":\"bundl-1593580151-456\",\"doc_count\":6},{\"key\":\"bundl-1593580256-792\",\"doc_count\":6},{\"key\":\"disab-1706240514-786\",\"doc_count\":5},{\"key\":\"forre-1680212576-278\",\"doc_count\":5},{\"key\":\"on-pr-1593580816-668\",\"doc_count\":5},{\"key\":\"conte-1593580323-303\",\"doc_count\":4},{\"key\":\"disco-1593580331-745\",\"doc_count\":4},{\"key\":\"inter-1680213152-551\",\"doc_count\":4},{\"key\":\"priva-1593580766-136\",\"doc_count\":4},{\"key\":\"bias-1593580190-442\",\"doc_count\":3},{\"key\":\"disab-1706240524-342\",\"doc_count\":3},{\"key\":\"disab-1706240532-905\",\"doc_count\":3},{\"key\":\"idc-1680212589-997\",\"doc_count\":3},{\"key\":\"on-pr-1593580826-861\",\"doc_count\":3},{\"key\":\"usd-1593580801-199\",\"doc_count\":3},{\"key\":\"bundl-1593580260-199\",\"doc_count\":2},{\"key\":\"click-1593580716-186\",\"doc_count\":2},{\"key\":\"disco-1593580349-52\",\"doc_count\":2},{\"key\":\"exclu-1593580168-365\",\"doc_count\":2},{\"key\":\"exclu-1593580297-613\",\"doc_count\":2},{\"key\":\"link-1593580217-341\",\"doc_count\":2},{\"key\":\"on-pr-1593580811-9\",\"doc_count\":2},{\"key\":\"on-pr-1593580830-261\",\"doc_count\":2},{\"key\":\"24-7-1680212837-865\",\"doc_count\":1},{\"key\":\"24-7-1680212856-322\",\"doc_count\":1},{\"key\":\"black-1593580405-683\",\"doc_count\":1},{\"key\":\"e-boo-1680212922-568\",\"doc_count\":1},{\"key\":\"ebook-1680212942-577\",\"doc_count\":1},{\"key\":\"enter-1593580327-903\",\"doc_count\":1},{\"key\":\"facia-1593580652-299\",\"doc_count\":1},{\"key\":\"gartn-1680212582-275\",\"doc_count\":1},{\"key\":\"gover-1593580213-942\",\"doc_count\":1},{\"key\":\"infor-1680214019-396\",\"doc_count\":1},{\"key\":\"it-i-1680213996-92\",\"doc_count\":1},{\"key\":\"man-1593580366-446\",\"doc_count\":1},{\"key\":\"manma-1593580387-719\",\"doc_count\":1},{\"key\":\"white-1593580400-904\",\"doc_count\":1},{\"key\":\"winte-1593580741-41\",\"doc_count\":1}]},\"content-type\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[{\"key\":\"news\",\"doc_count\":123},{\"key\":\"project-updates\",\"doc_count\":98},{\"key\":\"tutorials-and-demos\",\"doc_count\":67},{\"key\":\"events\",\"doc_count\":32}]},\"post_type\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[{\"key\":\"post\",\"doc_count\":435}]},\"category\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[]},\"classifai-image-tags\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[]},\"post_tag\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[{\"key\":\"microsoft\",\"doc_count\":189},{\"key\":\"azure\",\"doc_count\":183},{\"key\":\"kubernetes\",\"doc_count\":78},{\"key\":\"linux\",\"doc_count\":71},{\"key\":\"community-partners\",\"doc_count\":49},{\"key\":\"red-hat\",\"doc_count\":29},{\"key\":\"github\",\"doc_count\":28},{\"key\":\"onnx-runtime\",\"doc_count\":25},{\"key\":\"docker\",\"doc_count\":24},{\"key\":\"azure-kubernetes-service\",\"doc_count\":19},{\"key\":\"onnx\",\"doc_count\":19},{\"key\":\"visual-studio\",\"doc_count\":19},{\"key\":\"terraform\",\"doc_count\":15},{\"key\":\"visual-studio-code\",\"doc_count\":15},{\"key\":\"ansible\",\"doc_count\":12},{\"key\":\"azure-marketplace\",\"doc_count\":11},{\"key\":\"spark\",\"doc_count\":11},{\"key\":\"apache\",\"doc_count\":10},{\"key\":\"mysql\",\"doc_count\":10},{\"key\":\"helm\",\"doc_count\":9},{\"key\":\"cloudera\",\"doc_count\":8},{\"key\":\"hashicorp\",\"doc_count\":8},{\"key\":\"spring\",\"doc_count\":8},{\"key\":\"windows\",\"doc_count\":8},{\"key\":\"onnx-runtime-training\",\"doc_count\":6},{\"key\":\"azure-container-service\",\"doc_count\":5},{\"key\":\"dapr\",\"doc_count\":5},{\"key\":\"linux-foundation\",\"doc_count\":5},{\"key\":\"suse\",\"doc_count\":5},{\"key\":\"apache-spark\",\"doc_count\":4},{\"key\":\"azurestack\",\"doc_count\":4},{\"key\":\"openshift\",\"doc_count\":4},{\"key\":\"transformer\",\"doc_count\":4},{\"key\":\"vs-code\",\"doc_count\":4},{\"key\":\"canonical\",\"doc_count\":3},{\"key\":\"deepspeed\",\"doc_count\":3},{\"key\":\"on-device-training\",\"doc_count\":3},{\"key\":\"android\",\"doc_count\":2},{\"key\":\"azure-functions\",\"doc_count\":2},{\"key\":\"browser\",\"doc_count\":2},{\"key\":\"elastic\",\"doc_count\":2},{\"key\":\"federated-learning\",\"doc_count\":2},{\"key\":\"gpt-2\",\"doc_count\":2},{\"key\":\"personalization\",\"doc_count\":2},{\"key\":\"powershell\",\"doc_count\":2},{\"key\":\"quantization\",\"doc_count\":2},{\"key\":\"azure-migrate\",\"doc_count\":1},{\"key\":\"data-science\",\"doc_count\":1},{\"key\":\"intellicode\",\"doc_count\":1},{\"key\":\"oracle\",\"doc_count\":1},{\"key\":\"tensorrt\",\"doc_count\":1},{\"key\":\"web-inference\",\"doc_count\":1},{\"key\":\"web-training\",\"doc_count\":1}]}}}}","current_page":"1","max_page":"37","posts_per_page":"12","template":"partials\/content\/content-front-card","classes":"","exclude":"97273"}; /* ]]> */ </script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/themes/xtheme/dist/js/load-more.js?ver=1742314751" id="msx-loadmore-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/plugins/ms-cloud-marketing-modules/dist/js/frontend.js?ver=1742314552" id="msxcm-frontend-js"></script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/plugins/ms-oembeds/assets/js/vendor/focus-within.js?ver=1.3.10" id="ms-oembed-focus-within-js"></script> <script type="text/javascript" id="ms-oembed-gif-script-js-extra"> /* <![CDATA[ */ var msgifs = {"play":"Play animated gif","pause":"Pause animated gif"}; /* ]]> */ </script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/plugins/ms-oembeds/dist/js/ms-oembed-lib-gif.js?ver=76f838e8af84044e0283" id="ms-oembed-gif-script-js"></script> <script type="text/javascript" id="microsoft-uhf-js-extra"> /* <![CDATA[ */ var microsoftUhfSettings = {"homePath":"\/blog\/","loginUrl":"","logoutUrl":"","scripts":[],"inline":[]}; /* ]]> */ </script> <script type="text/javascript" src="https://opensource.microsoft.com/blog/wp-content/plugins/ms-uhf/assets/microsoft-uhf.js?ver=0.5.3" id="microsoft-uhf-js"></script> <!-- JSLL tracking --> <script> // 1DS initialization const analytics = new oneDS.ApplicationInsights(); var config = { instrumentationKey: "b341ec446e65436485df678003ce82f7-1d36a7a4-ef54-4cf0-93eb-ba18b3241d36-7404", propertyConfiguration: { gpcDataSharingOptIn: ( typeof GPC_DataSharingOptIn !== "undefined" ) ? GPC_DataSharingOptIn : true, callback: { userConsentDetails: ( typeof siteConsent !== "undefined" ) ? siteConsent.getConsent : WcpConsent.siteConsent }, }, webAnalyticsConfiguration:{ coreData: {"pageName":"Microsoft Open Source Blog","pageType":"Homepage"}, urlCollectQuery: true, urlCollectHash: true, autoCapture: { scroll: true, pageView: true, onLoad: true, onUnload: true, click: true, scroll: true, resize: true, jsError: true } } }; // Initialize OneDS SDK analytics.initialize( config, [] ); </script> </body> </html>