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 &amp; Standards</title> <meta name="description" content="Read the latest insights and news about Microsoft&#039;s Open Source practices, standards, and interoperability from Microsoft&#039;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&#039;s Open Source practices, standards, and interoperability from Microsoft&#039;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 &raquo; 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&amp;_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="[{&quot;Browser&quot;:&quot;anaheim&quot;,&quot;ExtensionType&quot;:&quot;windows10only&quot;,&quot;ExtensionUrl&quot;:&quot;https://www.microsoft.com/microsoft-copilot/for-individuals/copilot-app?form=MY02FX&amp;OCID=MY02FX&quot;,&quot;BackgroundColorDarkTheme&quot;:&quot;b-black&quot;,&quot;LogoUrlDarkTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RW1iGSh.png&quot;,&quot;ActionLinkBackgroundColorDarkTheme&quot;:&quot;btn-white&quot;,&quot;BackgroundColorLightTheme&quot;:&quot;b-white&quot;,&quot;LogoUrlLightTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RW1iGSh.png&quot;,&quot;ActionLinkBackgroundColorLightTheme&quot;:&quot;btn-light-blue&quot;,&quot;Title&quot;:&quot;Take the power of Copilot on the go with the free mobile app&quot;,&quot;Paragraph&quot;:&quot;Create images and get tailored answers based on your interests and needs anytime, anywhere&quot;,&quot;ActionLinkText&quot;:&quot;Get the Copilot app&quot;,&quot;ActionLinkAriaLabel&quot;:&quot;Get the Copilot app&quot;,&quot;DismissText&quot;:&quot;No, thanks&quot;,&quot;DismissAriaLabel&quot;:&quot;No, thanks&quot;,&quot;CookieExpiration&quot;:&quot;7&quot;,&quot;CurrentTheme&quot;:&quot;theme-light&quot;},{&quot;Browser&quot;:&quot;edge&quot;,&quot;ExtensionType&quot;:&quot;windows10only&quot;,&quot;ExtensionUrl&quot;:&quot;https://aka.ms/MicrosoftEdgeDownload&quot;,&quot;BackgroundColorDarkTheme&quot;:&quot;b-black&quot;,&quot;LogoUrlDarkTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RE4xdax.png&quot;,&quot;ActionLinkBackgroundColorDarkTheme&quot;:&quot;btn-white&quot;,&quot;BackgroundColorLightTheme&quot;:&quot;b-white&quot;,&quot;LogoUrlLightTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RE4xdax.png&quot;,&quot;ActionLinkBackgroundColorLightTheme&quot;:&quot;btn-light-blue&quot;,&quot;Title&quot;:&quot;Try the browser recommended by Microsoft&quot;,&quot;Paragraph&quot;:&quot;Get speed, security and privacy with Microsoft Edge&quot;,&quot;ActionLinkText&quot;:&quot;Download now&quot;,&quot;ActionLinkAriaLabel&quot;:&quot;Download now&quot;,&quot;DismissText&quot;:&quot;No thanks&quot;,&quot;DismissAriaLabel&quot;:&quot;No thanks&quot;,&quot;CookieExpiration&quot;:&quot;30&quot;,&quot;CurrentTheme&quot;:&quot;theme-light&quot;},{&quot;Browser&quot;:&quot;chrome&quot;,&quot;ExtensionType&quot;:&quot;windows10only&quot;,&quot;ExtensionUrl&quot;:&quot;https://www.microsoft.com/microsoft-copilot/for-individuals/copilot-app?form=MY02FX&amp;OCID=MY02FX&quot;,&quot;BackgroundColorDarkTheme&quot;:&quot;b-black&quot;,&quot;LogoUrlDarkTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RW1iGSh.png&quot;,&quot;ActionLinkBackgroundColorDarkTheme&quot;:&quot;btn-white&quot;,&quot;BackgroundColorLightTheme&quot;:&quot;b-white&quot;,&quot;LogoUrlLightTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RW1iGSh.png&quot;,&quot;ActionLinkBackgroundColorLightTheme&quot;:&quot;btn-light-blue&quot;,&quot;Title&quot;:&quot;Take the power of Copilot on the go with the free mobile app&quot;,&quot;Paragraph&quot;:&quot;Create images and get tailored answers based on your interests and needs anytime, anywhere&quot;,&quot;ActionLinkText&quot;:&quot;Get the Copilot app&quot;,&quot;ActionLinkAriaLabel&quot;:&quot;Get the Copilot app&quot;,&quot;DismissText&quot;:&quot;No, thanks&quot;,&quot;DismissAriaLabel&quot;:&quot;No, thanks&quot;,&quot;CookieExpiration&quot;:&quot;7&quot;,&quot;CurrentTheme&quot;:&quot;theme-light&quot;},{&quot;Browser&quot;:&quot;firefox&quot;,&quot;ExtensionType&quot;:&quot;rewards&quot;,&quot;ExtensionUrl&quot;:&quot;https://browserdefaults.microsoft.com/extn/redirect/?xid=106&amp;channel=uhf&amp;pc=U785&quot;,&quot;BackgroundColorDarkTheme&quot;:&quot;b-blue&quot;,&quot;LogoUrlDarkTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RE4mFZT.png&quot;,&quot;ActionLinkBackgroundColorDarkTheme&quot;:&quot;btn-white&quot;,&quot;BackgroundColorLightTheme&quot;:&quot;b-white&quot;,&quot;LogoUrlLightTheme&quot;:&quot;https://uhf.microsoft.com/images/banners/RE4mDoE.png&quot;,&quot;ActionLinkBackgroundColorLightTheme&quot;:&quot;btn-blue&quot;,&quot;Title&quot;:&quot;Maximize your points with the Microsoft Rewards extension&quot;,&quot;Paragraph&quot;:&quot;Quick access to your daily points and offers&quot;,&quot;ActionLinkText&quot;:&quot;Add it now&quot;,&quot;ActionLinkAriaLabel&quot;:&quot;Add it now&quot;,&quot;DismissText&quot;:&quot;No thanks&quot;,&quot;DismissAriaLabel&quot;:&quot;No thanks&quot;,&quot;CookieExpiration&quot;:&quot;30&quot;,&quot;CurrentTheme&quot;:&quot;theme-light&quot;}]" 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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>&nbsp;<span class="glyph-prepend glyph-prepend-small glyph-prepend-chevron-right" aria-hidden="true"></span> </a> </h2> <div class="card__excerpt lead"> <p>We&#8217;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>&nbsp;<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&hellip;</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>&nbsp;<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>&nbsp;<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&#039;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&#8217;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&#8217;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&#8217;s new with Microsoft in open-source and Kubernetes at KubeCon North America 2024</span>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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">&hellip;</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&#39;s new</div> <ul class="c-list f-bare"> <li> <a aria-label="Surface Pro What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/surface/devices/surface-pro-11th-edition" data-m='{"cN":"Footer_WhatsNew_NewSurfacePro_nav","id":"n1c1c1c1m1r1a2","sN":1,"aN":"c1c1c1m1r1a2"}'>Surface Pro</a> </li> <li> <a aria-label="Surface Laptop What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/surface/devices/surface-laptop-7th-edition" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptop_nav","id":"n2c1c1c1m1r1a2","sN":2,"aN":"c1c1c1m1r1a2"}'>Surface Laptop</a> </li> <li> <a aria-label="Surface Laptop Studio 2 What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/d/Surface-Laptop-Studio-2/8rqr54krf1dz" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptopStudio2_nav","id":"n3c1c1c1m1r1a2","sN":3,"aN":"c1c1c1m1r1a2"}'>Surface Laptop Studio 2</a> </li> <li> <a aria-label="Surface Laptop Go 3 What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/d/Surface-Laptop-Go-3/8p0wwgj6c6l2" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptopGo3_nav","id":"n4c1c1c1m1r1a2","sN":4,"aN":"c1c1c1m1r1a2"}'>Surface Laptop Go 3</a> </li> <li> <a aria-label="Microsoft Copilot What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-copilot" data-m='{"cN":"Footer_WhatsNew_CopilotMicrosoft_nav","id":"n5c1c1c1m1r1a2","sN":5,"aN":"c1c1c1m1r1a2"}'>Microsoft Copilot</a> </li> <li> <a aria-label="AI in Windows What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/windows/copilot-ai-features" data-m='{"cN":"Whatsnew_AIinWindows_nav","id":"n6c1c1c1m1r1a2","sN":6,"aN":"c1c1c1m1r1a2"}'>AI in Windows</a> </li> <li> <a aria-label="Explore Microsoft products What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-products-and-apps" data-m='{"cN":"Footer_WhatsNew_ExploreMicrosoftProducts_nav","id":"n7c1c1c1m1r1a2","sN":7,"aN":"c1c1c1m1r1a2"}'>Explore Microsoft products</a> </li> <li> <a aria-label="Windows 11 apps What&#39;s new" class="c-uhff-link" href="https://www.microsoft.com/windows/windows-11-apps" data-m='{"cN":"Footer_WhatsNew_Windows_11_apps_nav","id":"n8c1c1c1m1r1a2","sN":8,"aN":"c1c1c1m1r1a2"}'>Windows 11 apps</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn2_cont","cT":"Container","id":"c2c1c1m1r1a2","sN":2,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Microsoft Store</div> <ul class="c-list f-bare"> <li> <a aria-label="Account profile Microsoft Store" class="c-uhff-link" href="https://account.microsoft.com/" data-m='{"cN":"Footer_StoreandSupport_AccountProfile_nav","id":"n1c2c1c1m1r1a2","sN":1,"aN":"c2c1c1m1r1a2"}'>Account profile</a> </li> <li> <a aria-label="Download Center Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/download" data-m='{"cN":"Footer_StoreandSupport_DownloadCenter_nav","id":"n2c2c1c1m1r1a2","sN":2,"aN":"c2c1c1m1r1a2"}'>Download Center</a> </li> <li> <a aria-label="Microsoft Store support Microsoft Store" class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2139749" data-m='{"cN":"Footer_StoreandSupport_SalesAndSupport_nav","id":"n3c2c1c1m1r1a2","sN":3,"aN":"c2c1c1m1r1a2"}'>Microsoft Store support</a> </li> <li> <a aria-label="Returns Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/returns" data-m='{"cN":"Footer_StoreandSupport_Returns_nav","id":"n4c2c1c1m1r1a2","sN":4,"aN":"c2c1c1m1r1a2"}'>Returns</a> </li> <li> <a aria-label="Order tracking Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/order-tracking" data-m='{"cN":"Footer_StoreandSupport_OrderTracking_nav","id":"n5c2c1c1m1r1a2","sN":5,"aN":"c2c1c1m1r1a2"}'>Order tracking</a> </li> <li> <a aria-label="Certified Refurbished Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/certified-refurbished-products" data-m='{"cN":"Footer_StoreandSupport_StoreLocations_nav","id":"n6c2c1c1m1r1a2","sN":6,"aN":"c2c1c1m1r1a2"}'>Certified Refurbished</a> </li> <li> <a aria-label="Microsoft Store Promise Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020" data-m='{"cN":"Footer_StoreandSupport_MicrosoftPromise_nav","id":"n7c2c1c1m1r1a2","sN":7,"aN":"c2c1c1m1r1a2"}'>Microsoft Store Promise</a> </li> <li> <a aria-label="Flexible Payments Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/payment-financing-options?icid=footer_financing_vcc" data-m='{"cN":"Footer_StoreandSupport_Financing_nav","id":"n8c2c1c1m1r1a2","sN":8,"aN":"c2c1c1m1r1a2"}'>Flexible Payments</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn3_cont","cT":"Container","id":"c3c1c1m1r1a2","sN":3,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Education</div> <ul class="c-list f-bare"> <li> <a aria-label="Microsoft in education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education" data-m='{"cN":"Footer_Education_MicrosoftInEducation_nav","id":"n1c3c1c1m1r1a2","sN":1,"aN":"c3c1c1m1r1a2"}'>Microsoft in education</a> </li> <li> <a aria-label="Devices for education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/devices/overview" data-m='{"cN":"Footer_Education_DevicesforEducation_nav","id":"n2c3c1c1m1r1a2","sN":2,"aN":"c3c1c1m1r1a2"}'>Devices for education</a> </li> <li> <a aria-label="Microsoft Teams for Education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/products/teams" data-m='{"cN":"Footer_Education_MicrosoftTeamsforEducation_nav","id":"n3c3c1c1m1r1a2","sN":3,"aN":"c3c1c1m1r1a2"}'>Microsoft Teams for Education</a> </li> <li> <a aria-label="Microsoft 365 Education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/products/microsoft-365" data-m='{"cN":"Footer_Education_Microsoft365Education_nav","id":"n4c3c1c1m1r1a2","sN":4,"aN":"c3c1c1m1r1a2"}'>Microsoft 365 Education</a> </li> <li> <a aria-label="How to buy for your school Education" class="c-uhff-link" href="https://www.microsoft.com/education/how-to-buy" data-m='{"cN":"Footer_Howtobuyforyourschool_nav","id":"n5c3c1c1m1r1a2","sN":5,"aN":"c3c1c1m1r1a2"}'>How to buy for your school</a> </li> <li> <a aria-label="Educator training and development Education" class="c-uhff-link" href="https://education.microsoft.com/" data-m='{"cN":"Footer_Education_EducatorTrainingDevelopment_nav","id":"n6c3c1c1m1r1a2","sN":6,"aN":"c3c1c1m1r1a2"}'>Educator training and development</a> </li> <li> <a aria-label="Deals for students and parents Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/education" data-m='{"cN":"Footer_Education_DealsForStudentsandParents_nav","id":"n7c3c1c1m1r1a2","sN":7,"aN":"c3c1c1m1r1a2"}'>Deals for students and parents</a> </li> <li> <a aria-label="Azure for students Education" class="c-uhff-link" href="https://azure.microsoft.com/en-us/free/students/" data-m='{"cN":"Footer_Education_Azureforstudents_nav","id":"n8c3c1c1m1r1a2","sN":8,"aN":"c3c1c1m1r1a2"}'>Azure for students</a> </li> </ul> </div> </div> <div class="c-uhff-nav-row"> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn4_cont","cT":"Container","id":"c4c1c1m1r1a2","sN":4,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Business</div> <ul class="c-list f-bare"> <li> <a aria-label="Microsoft Cloud Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-cloud" data-m='{"cN":"Footer_Business_Microsoft_Cloud_nav","id":"n1c4c1c1m1r1a2","sN":1,"aN":"c4c1c1m1r1a2"}'>Microsoft Cloud</a> </li> <li> <a aria-label="Microsoft Security Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/security" data-m='{"cN":"Footer_Business_Microsoft Security_nav","id":"n2c4c1c1m1r1a2","sN":2,"aN":"c4c1c1m1r1a2"}'>Microsoft Security</a> </li> <li> <a aria-label="Dynamics 365 Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/dynamics-365" data-m='{"cN":"Footer_Business_MicrosoftDynamics365_nav","id":"n3c4c1c1m1r1a2","sN":3,"aN":"c4c1c1m1r1a2"}'>Dynamics 365</a> </li> <li> <a aria-label="Microsoft 365 Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-365/business" data-m='{"cN":"Footer_Business_M365_nav","id":"n4c4c1c1m1r1a2","sN":4,"aN":"c4c1c1m1r1a2"}'>Microsoft 365</a> </li> <li> <a aria-label="Microsoft Power Platform Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/power-platform" data-m='{"cN":"Footer_DeveloperAndIT_Power Platform_nav","id":"n5c4c1c1m1r1a2","sN":5,"aN":"c4c1c1m1r1a2"}'>Microsoft Power Platform</a> </li> <li> <a aria-label="Microsoft Teams Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m='{"cN":"Footer_Business_Microsoft365_nav","id":"n6c4c1c1m1r1a2","sN":6,"aN":"c4c1c1m1r1a2"}'>Microsoft Teams</a> </li> <li> <a aria-label="Microsoft 365 Copilot Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-365/copilot/copilot-for-work" data-m='{"cN":"Footer_CopilotMicrosoft365_nav","id":"n7c4c1c1m1r1a2","sN":7,"aN":"c4c1c1m1r1a2"}'>Microsoft 365 Copilot</a> </li> <li> <a aria-label="Small Business Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore" data-m='{"cN":"Footer_Business-SmallBusiness_nav","id":"n8c4c1c1m1r1a2","sN":8,"aN":"c4c1c1m1r1a2"}'>Small Business</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn5_cont","cT":"Container","id":"c5c1c1m1r1a2","sN":5,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Developer &amp; IT</div> <ul class="c-list f-bare"> <li> <a aria-label="Azure Developer &amp; IT" class="c-uhff-link" href="https://azure.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftAzure_nav","id":"n1c5c1c1m1r1a2","sN":1,"aN":"c5c1c1m1r1a2"}'>Azure</a> </li> <li> <a aria-label="Microsoft Developer Developer &amp; IT" class="c-uhff-link" href="https://developer.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftDeveloper_nav","id":"n2c5c1c1m1r1a2","sN":2,"aN":"c5c1c1m1r1a2"}'>Microsoft Developer</a> </li> <li> <a aria-label="Microsoft Learn Developer &amp; IT" class="c-uhff-link" href="https://learn.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftLearn_nav","id":"n3c5c1c1m1r1a2","sN":3,"aN":"c5c1c1m1r1a2"}'>Microsoft Learn</a> </li> <li> <a aria-label="Explore ISV Success Developer &amp; IT" class="c-uhff-link" href="https://www.microsoft.com/isv/isv-success?ocid=cmm3atxvn98" data-m='{"cN":"Footer_DeveloperAndIT_ExploreISVSuccess_nav","id":"n4c5c1c1m1r1a2","sN":4,"aN":"c5c1c1m1r1a2"}'>Explore ISV Success</a> </li> <li> <a aria-label="Microsoft Tech Community Developer &amp; IT" class="c-uhff-link" href="https://techcommunity.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftTechCommunity_nav","id":"n5c5c1c1m1r1a2","sN":5,"aN":"c5c1c1m1r1a2"}'>Microsoft Tech Community</a> </li> <li> <a aria-label="Azure Marketplace Developer &amp; IT" class="c-uhff-link" href="https://azuremarketplace.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_AzureMarketplace_nav","id":"n6c5c1c1m1r1a2","sN":6,"aN":"c5c1c1m1r1a2"}'>Azure Marketplace</a> </li> <li> <a aria-label="AppSource Developer &amp; IT" class="c-uhff-link" href="https://appsource.microsoft.com/en-us/" data-m='{"cN":"Footer_DeveloperAndIT_AppSource_nav","id":"n7c5c1c1m1r1a2","sN":7,"aN":"c5c1c1m1r1a2"}'>AppSource</a> </li> <li> <a aria-label="Visual Studio Developer &amp; IT" class="c-uhff-link" href="https://visualstudio.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftVisualStudio_nav","id":"n8c5c1c1m1r1a2","sN":8,"aN":"c5c1c1m1r1a2"}'>Visual Studio</a> </li> </ul> </div> <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn6_cont","cT":"Container","id":"c6c1c1m1r1a2","sN":6,"aN":"c1c1m1r1a2"}'> <div class="c-heading-4" role="heading" aria-level="2">Company</div> <ul class="c-list f-bare"> <li> <a aria-label="Careers Company" class="c-uhff-link" href="https://careers.microsoft.com/" data-m='{"cN":"Footer_Company_Careers_nav","id":"n1c6c1c1m1r1a2","sN":1,"aN":"c6c1c1m1r1a2"}'>Careers</a> </li> <li> <a aria-label="About Microsoft Company" class="c-uhff-link" href="https://www.microsoft.com/about" data-m='{"cN":"Footer_Company_AboutMicrosoft_nav","id":"n2c6c1c1m1r1a2","sN":2,"aN":"c6c1c1m1r1a2"}'>About Microsoft</a> </li> <li> <a aria-label="Company news Company" class="c-uhff-link" href="https://news.microsoft.com/" data-m='{"cN":"Footer_Company_CompanyNews_nav","id":"n3c6c1c1m1r1a2","sN":3,"aN":"c6c1c1m1r1a2"}'>Company news</a> </li> <li> <a aria-label="Privacy at Microsoft Company" class="c-uhff-link" href="https://privacy.microsoft.com/en-us" data-m='{"cN":"Footer_Company_PrivacyAtMicrosoft_nav","id":"n4c6c1c1m1r1a2","sN":4,"aN":"c6c1c1m1r1a2"}'>Privacy at Microsoft</a> </li> <li> <a aria-label="Investors Company" class="c-uhff-link" href="https://www.microsoft.com/investor/default.aspx" data-m='{"cN":"Footer_Company_Investors_nav","id":"n5c6c1c1m1r1a2","sN":5,"aN":"c6c1c1m1r1a2"}'>Investors</a> </li> <li> <a aria-label="Diversity and inclusion Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/diversity/" data-m='{"cN":"Footer_Company_DiversityAndInclusion_nav","id":"n6c6c1c1m1r1a2","sN":6,"aN":"c6c1c1m1r1a2"}'>Diversity and inclusion</a> </li> <li> <a aria-label="Accessibility Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/accessibility" data-m='{"cN":"Footer_Company_Accessibility_nav","id":"n7c6c1c1m1r1a2","sN":7,"aN":"c6c1c1m1r1a2"}'>Accessibility</a> </li> <li> <a aria-label="Sustainability Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/sustainability/" data-m='{"cN":"Footer_Company_Sustainability_nav","id":"n8c6c1c1m1r1a2","sN":8,"aN":"c6c1c1m1r1a2"}'>Sustainability</a> </li> </ul> </div> </div> </nav> <div class="c-uhff-base"> <a id="locale-picker-link" aria-label="Content Language Selector. Currently set to English (United States)" class="c-uhff-link c-uhff-lang-selector c-glyph glyph-world" href="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 &amp; 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>&#169; Microsoft 2025</li> </ul> </nav> </div> </footer> <script id="uhf-footer-ccpa"> const globalPrivacyControlEnabled = navigator.globalPrivacyControl; const GPC_DataSharingOptIn = (globalPrivacyControlEnabled) ? false : checkThirdPartyAdsOptOutCookie(); if(window.onGPCLoaded) { window.onGPCLoaded(); } function checkThirdPartyAdsOptOutCookie() { try { const ThirdPartyAdsOptOutCookieName = '3PAdsOptOut'; var cookieValue = getCookie(ThirdPartyAdsOptOutCookieName); return cookieValue != 1; } catch { return true; } } function getCookie(cookieName) { var cookieValue = document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)'); return (cookieValue) ? cookieValue[2] : ''; } </script> </div> </div> </div> <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>

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