 <!doctype html> <html id="html" lang="en"> <head> <meta charset="utf-8" /><script type="text/html" id="sf-tracking-consent-manager">
	<div id="tracking-consent-dialog" style="display:none" />
</script><script type="text/javascript" src="/WebResource.axd?d=DzHrpQl5URXarFHAtrmzFpt6hpdYvmVwc29NQZNtMGYSoltUbAFJEjMHfeT-tzVeK6OZukCFlV6BUAzSF-hYBiteasUOhQP_tGcrTDu8m-w3KCOWNLkTXCR0J5idbgmxGzpR0EpgjCZ5_eBWd3lCL6thd1nxNHa5rJpeKjowO8ZlICp89mZWQ717VGriGsdw0&amp;t=638923997240000000">

</script> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="shortcut icon" href="/favicon.ico?v=rebv1" /> <link href="https://dtzbdy9anri2p.cloudfront.net/cache/bc72837fd29facc0f03f1a83565d8947d38df468/telerik/css/style.css" rel="stylesheet" type="text/css"><link href="https://dtzbdy9anri2p.cloudfront.net/cache/ffce055d0fa86b9585d7c8fa08377521e181ce4c/telerik/css/blogs.css" rel="stylesheet" type="text/css"> <title>
	Your Source for .NET & JavaScript Developer Info – Telerik Blogs
</title> <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="https://feeds.telerik.com/blogs" /> 
<meta property="fb:pages" content="15849483986" /><meta property="og:title" content="Your Source for .NET &amp; JavaScript Developer Info – Telerik Blogs" /><meta property="og:description" content="The leading source of news and trends in .NET &amp; JS software development and productivity tips and tricks for testing, debugging, reporting, accessibility, and more." /><meta property="og:url" content="https://www.telerik.com/blogs" /><meta property="og:type" content="website" /><meta property="og:site_name" content="Telerik.com" /><style type="text/css" media="all">.Section--featured>.Section-bg{height:1030px}@media screen and (max-width:1280px){.Section--featured>.Section-bg{top:-9%}}.BlogsHeader{display:none}</style><style type="text/css" media="all">.BlogsLayout .Sidebar>a{z-index:1;position:relative;font-weight:500}.BlogsLayout .Sidebar a+details.BlogPost-Topics-Menu>summary{font-size:0;height:26px}.BlogsLayout .Sidebar a+details.BlogPost-Topics-Menu{margin-top:-31px;margin-bottom:6px}.BlogsLayout .Sidebar a~div.BlogPost-Topics-Menu{margin-top:-6px;margin-bottom:6px}.BlogsLayout .Sidebar a.is-selected{color:#000 !important;text-decoration:none !important;padding:6px 0 !important;font-weight:500;z-index:1;position:relative}</style><style type="text/css" media="all">.Blogs-Share a.counted span{opacity:1;pointer-events:none}.BlogPost-Sticky-Sidebar .Form-MVC{background:none!important;box-shadow:none !important;padding:0 !important}.Blogs-Form{width:100%}.sf-opt-in-out-already-agreed.js-already-agreed-holder{color:#555 !important}#html blockquote p{position:static;margin:0;padding:0;background:none;font-size:inherit;line-height:inherit;text-indent:0}#html blockquote p:before,#html blockquote p:after{display:none}.Meta{color:#697582 !important}#html .Meta>span+span{margin-left:.55em;padding-left:.55em}.u-mr055{margin-right:.55em}</style><link rel="canonical" href="https://www.telerik.com/blogs" /><link rel="next" href="https://www.telerik.com/blogs?page=2" /><meta name="twitter:title" content="Your Source for .NET &amp; JavaScript Developer Info – Telerik Blogs" /><meta name="twitter:description" content="The leading source of news and trends in .NET &amp; JS software development and productivity tips and tricks for testing, debugging, reporting, accessibility, and more." /><meta name="twitter:url" content="https://www.telerik.com/blogs" /><meta property="og:image" content="https://www.telerik.com/sfimages/default-source/logos/telerik1200x630.png" /><meta name="twitter:image" content="https://www.telerik.com/sfimages/default-source/logos/telerik1200x630.png" /><meta property="og:locale" content="en-US" /><meta property="fb:app_id" content="472070859628573" /><meta name="twitter:site" content="@Telerik" /><meta name="twitter:creator" content="@Telerik" /><meta name="twitter:card" content="summary_large_image" /><script type="application/json" id="sf-insight-metadata">
	{"contentMetadata":"{\"Id\":\"9bac7f37-e8d8-4b7f-b554-bf9891689ba1\",\"ContentType\":\"Page\",\"Title\":\"Blogs\",\"CanonicalTitle\":\"Blogs\",\"CanonicalUrl\":\"https://www.telerik.com/blogs\",\"DefaultLanguage\":\"en\",\"CreatedOn\":\"2015-05-11T16:35:24Z\",\"ModifiedOn\":\"2026-04-08T16:50:19.92Z\",\"SiteId\":\"b31ca85c-a1c5-4a9d-8b5d-e7b0736a8b16\",\"SiteName\":\"TelerikCom\",\"PageHierarchies\":[{\"Id\":\"2b1e6735-3166-4c50-8ba7-163446feac0e\",\"Title\":\"Progress Telerik\",\"Parent\":{\"Id\":\"20ce8493-e2c1-4625-8f09-a2a99b6a96d9\",\"Title\":\"Products Taxonomy\"}}],\"PageId\":\"9bac7f37-e8d8-4b7f-b554-bf9891689ba1\"}","videosMetadata":"[]"}
</script><script type="application/json" id="sf-insight-settings">
	{"apiServerUrl":"https://api.insight.sitefinity.com","apiKey":"76766c2b-82f4-2453-81e5-fd840f3b455b","applicationName":"TelerikCom","trackingCookieDomain":".telerik.com","keepDecTrackingCookieOnTrackingConsentRejection":false,"slidingExpirationForTrackingCookie":false,"maxAgeForTrackingCookieInDays":365,"trackYouTubeVideos":true,"crossDomainTrackingEntries":["store.progress.com","www.telerik.com"],"strategy":"Persist|False","docsHrefTestExpressions":[".*\\/docs\\/.+\\.{1}.+((\\?|\\\u0026)sfvrsn=.+){1}$",".+((\\?|\\\u0026)sf_dm_key=.+){1}$"],"sessionLengthInMinutes":30,"trackVimeoVideos":true,"useSecureCookies":true}
</script><script type="text/javascript" src="/WebResource.axd?d=HtQyXelCu6mzSPcVcvK_BnBLuTvfT4YnhIxMh-5HvNKgqByRIHbbXoW-WLawts4Fh-UeZCJ3U3bxoGXTa9IeTV0YgoErORFnWeFm4Ee4GKMjgFOUUaD27X8_kP6MXFbUOYCXuGSyPJKcRpIAXeuKlNLzK7M8ff_SiSbDuCJrAGc7qHYMaATrTTzCQGFPIhXxUg-JFb_e0_0l8itIi7oyj_QLiEUjvHa-WpKcceSkwp41&amp;t=638923997460000000">

</script><script src="https://cdn.insight.sitefinity.com/sdk/sitefinity-insight-client.min.3.1.44.js" crossorigin="" async="async">

</script><meta name="description" content="The leading source of news and trends in .NET &amp; JS software development and productivity tips and tricks for testing, debugging, reporting, accessibility, and more." /></head> <body id="telerik" class="telerik"> <script type="text/plain" class="optanon-category-2" src="//script.crazyegg.com/pages/scripts/0087/4351.js"></script> <style>
	.anti-flicker-hide {
		opacity: 0 !important;
	}
</style> <script src="/abtesting/active-ab-tests.js">
</script> <script>
	

window.ABTestingAntiflicker = window.ABTestingAntiflicker ?? {};
window.ABTestingAntiflicker.wildcardMatchUrl = function(pattern, url) {
  try {
    const urlObject = new URL(url);

	const parts = pattern.split('?', 2);
	const pathPatternPart = parts[0] || '';
	const queryPatternPart = parts[1] || '';

    const escapeForRegularExpression = (text) => {
      return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/\\\*/g, '.*');
    };

	// Build the path regular expression from the wildcard pattern
    const pathRegularExpressionPattern =
      '^' + escapeForRegularExpression(pathPatternPart) + '$';

    const pathRegularExpression = new RegExp(pathRegularExpressionPattern, 'i');

    // Compare URL path (with and without trailing slash)
    const urlWithoutQuery =
      urlObject.origin + urlObject.pathname;

    const urlWithoutTrailingSlash = urlWithoutQuery.replace(/\/+$/, '');

    const basePathMatches =
      pathRegularExpression.test(urlWithoutQuery) ||
      pathRegularExpression.test(urlWithoutTrailingSlash);

    if (!basePathMatches) {
      return false;
    }

    if (queryPatternPart.trim().length === 0) {
      return true;
    }

    // Validate query conditions from the pattern
    const queryStringParameters = new URLSearchParams(urlObject.search);
    const patternPairs = queryPatternPart.split('&').filter((s) => s.length > 0);

    for (const pairString of patternPairs) {
      const keyValueParts = pairString.split('=', 2);
      const key = keyValueParts[0];
      const valuePatternRaw = keyValueParts.length > 1 ? keyValueParts[1] : null;

      if (!key || !queryStringParameters.has(key)) {
        return false;
      }

      // Only presence required if no value specified
      if (valuePatternRaw === null) {
        continue;
      }

      const valueRegularExpressionPattern =
        '^' + escapeForRegularExpression(valuePatternRaw) + '$';

      const valueRegularExpression = new RegExp(valueRegularExpressionPattern, 'i');
      const actualValue = queryStringParameters.get(key) ?? '';

      if (!valueRegularExpression.test(actualValue)) {
        return false;
      }
    }

    return true;
  } catch (error) {
    console.error(error);
    return false;
  }
}

let shouldRunScript = false;
if (window.ABTestingAntiflicker?.wildcardMatchUrl && window.ABTestingAntiflicker?.activeABTestUrls?.length > 0) {
	for (var urlPattern of window.ABTestingAntiflicker.activeABTestUrls) {
		if (window.ABTestingAntiflicker.wildcardMatchUrl(urlPattern, window.location.href)) {
			shouldRunScript = true;
			break;
		}
	}
}

if (shouldRunScript) {
	let className = "anti-flicker-hide";
	document.body.classList.add(className);

	// Display the page after a certain Timeout
	setTimeout(() => {
		document.body.classList.remove(className);
	}, 3000);

	// Display the page after CrazyEgg A/B testing evaluation has finished and the action is not redirect
	window.CE_READY = window.CE_READY || [];
	window.CE_READY.push(function () {
		if (CE2?.ABTest?.emitter?.on) {
			CE2.ABTest.emitter.on("variant", (args) => {
				var isRedirectABTest = false;
				var testId = args?.test?.id;
				var variantId = args?.variant?.id;
				var redirectUrl = window.CE2.flows?.[testId]?.variants?.[variantId]?.redirectUrl;
				if (redirectUrl && redirectUrl !== window.location.href) {
					isRedirectABTest = true;
				}

				if (!isRedirectABTest) {
					setTimeout(() => {
						document.body.classList.remove(className);

						// Add a class to body to signify that an AB test has been executed
						// This is to be used for automated testing of the functionality
						document.body.classList.add('ab-test-executed');
					}, 200);
				}
			});
		}
		else {
			// A/B test API has changed. Display the page after shorter timeout
			setTimeout(() => {
				document.body.classList.remove(className);
			}, 500);
		}
	});

	// Display the page if the user hasn't accepted Performance cookies
	(function () {
		var script = document.createElement('script');
		script.type = 'text/plain';
		script.className = 'optanon-category-1';
		script.text = `
			if (!window.OptanonGroups.PerformanceCookies || !window.isOptanonGroupActive || !window.isOptanonGroupActive(window.OptanonGroups.PerformanceCookies, true)) {
				document.body.classList.remove("anti-flicker-hide");
			}
		`;

		var body = document.body;
		body.insertBefore(script, body.firstChild);
	})();
}

</script> <script src='https://d6vtbcy3ong79.cloudfront.net/external-assets/latest/utils/store-lead-data.min.js' type="text/plain" class="optanon-category-2"></script> 



<script defer async type="module" id="mjs-promotion-1">
	const cdn = "https://d6vtbcy3ong79.cloudfront.net";
	const id = "promotion-1";

	const response = await fetch(`/webapi/Announcements/GetPromo?url=${window.location.href}`, {
		method: "GET",
		cache: "no-cache",
	});

	const json = await response.json();
	const model = json?.content;

	if (model) {
		let version = model.scriptVersion || "stable";
		let stylesheet = cdn + "/sticky-notification/" + version + "/style.min.css";
		let javascript = cdn + "/sticky-notification/" + version + "/index.min.mjs";
		let cookieName = "promotion-" + model.id.replace("-", "");
		let imageUrl = model.image || "https://d585tldpucybw.cloudfront.net/sfimages/default-source/ninjas/sticky-notification-illustration.svg";
		let campaignName = model.campaignName || model.title;
		let html = model.htmlRawContent;
		let button = `<div><a class='tsn__cta-button' href='${model.ctaUrl}'>${model.ctaText}</a></div>`;

		if (model.ctaText && model.ctaUrl) {
			html += button;
		}

		function track(eventType) {
			try {
				if (!OptanonActiveGroups) {
					return;
				}
			} catch (e) {
				return;
			}

			if (!OptanonActiveGroups.includes("2")) {
				return;
			}

			window.dataLayer = window.dataLayer || [];

			let banner = document.querySelector(`.tsn--${id}`);
			let bannerType = "Right Side Banner";
			let bannerTopic = campaignName;
			let bannerExpandEventName = "Popup Banner Expand";
			let bannerCollapseEventName = "Popup Banner Collapse";
			let bannerImpressionEventName = "Popup Banner Impression";
			let bannerCtaClickEventName = "Popup Banner CTA Click";
			let bannerExpandedState = "expanded";
			let bannerCollapsedState = "collapsed";

			if (eventType === "impression") {
				dataLayer.push({
					event: bannerImpressionEventName,
					state: banner.classList.contains("tsn--is-expanded") ? bannerExpandedState : bannerCollapsedState,
					type: bannerType,
					promoting: bannerTopic
				});
			}
			if (eventType === "expand") {
				dataLayer.push({
					event: bannerExpandEventName,
					type: bannerType,
					promoting: bannerTopic
				});
			}
			if (eventType === "collapse") {
				dataLayer.push({
					event: bannerCollapseEventName,
					type: bannerType,
					promoting: bannerTopic
				});
			}
			if (eventType === "cta-click") {
				dataLayer.push({
					event: bannerCtaClickEventName,
					type: bannerType,
					promoting: bannerTopic,
					ctaLandingPage: window.location.href
				});
			}
		}

		async function importStyles(stylesheetUrl) {
			return new Promise((resolve, reject) => {
				const link = document.createElement("link");

				link.id = `css-${id}`;
				link.rel = "stylesheet";
				link.type = "text/css";
				link.href = stylesheetUrl;

				link.addEventListener("load", resolve);
				link.addEventListener("error", reject);

				document.body.append(link);
			});
		}

		async function initPromotion() {
			const [{ StickyNotification }] = await Promise.all([
				import(javascript),
				importStyles(stylesheet),
			]);

			StickyNotification.create({
				autoShow: true,
				autoExpand: true,
				autoCollapse: false,
				label: model.label,
				title: model.title,
				content: html,
				image: imageUrl,
				imageAlt: model.imageAltText,
				useImageAsBanner: model.useImageAsHero,
				useAltExpandButton: false,
				useAuth: model.isPersonalized,
				useCookie: true,
				cookieName: cookieName,
				modifierClass: `tsn--${id}`,
				onReady: () => track("impression"),
				onCtaClick: () => track("cta-click"),
				onManualExpand: () => track("expand"),
				onManualCollapse: () => track("collapse"),
			});
		}

		requestAnimationFrame(initPromotion);
	}
</script>



 
<link rel="preload" href="https://d6vtbcy3ong79.cloudfront.net/fonts/latest/css/metric.min.css" as="style" media="(min-width: 621px)"><link rel="preload" href="https://d6vtbcy3ong79.cloudfront.net/fonts/latest/metric/Metric-Light.woff2" as="font" crossorigin="anonymous" media="(min-width: 621px)"><link rel="preload" href="https://d6vtbcy3ong79.cloudfront.net/fonts/latest/metric/Metric-Medium.woff2" as="font" crossorigin="anonymous" media="(min-width: 621px)"><link rel="preload" href="https://d6vtbcy3ong79.cloudfront.net/fonts/latest/metric/Metric-Regular.woff2" as="font" crossorigin="anonymous" media="(min-width: 621px)"><link rel="preload" href="https://d6vtbcy3ong79.cloudfront.net/fonts/latest/metric/Metric-Semibold.woff2" as="font" crossorigin="anonymous" media="(min-width: 621px)"><link rel="preload" href="https://d6vtbcy3ong79.cloudfront.net/telerik-navigation/3.7.42/css/index.min.css" as="style"><style id="js-tlrk-nav-inline-styles">.TK-Nav--Loading,.TK-Nav--Loading *{box-sizing:border-box}.TK-Nav--Loading{overflow:hidden;background:#fff;font-family:Metric}.TK-Nav--Loading>.TK-Bar{overflow:hidden;background:#fff}.TK-Nav--Loading .TK-container{max-width:1230px;margin:0 auto;padding:0 30px}.TK-Nav--Loading .TK-TLRK-Brand{margin:0}.TK-Nav--Loading .TK-Dropdown,.TK-Nav--Loading .TK-Nav-Overlay,.TK-Nav--Loading .TK-Print{display:none}.TK-Nav--Loading .TK-Context-Menu,.TK-Nav--Loading .TK-Products-Menu-Item-Button{visibility:hidden}@media only screen and (min-width:1240px){.TK-Nav--Loading,.TK-Nav--Loading>.TK-Bar{height:60px}}@media only screen and (max-width:1239px){.TK-Nav--Loading,.TK-Nav--Loading>.TK-Bar{height:45px}}@media only screen and (max-width:1229px){.TK-Nav--Loading .TK-container{padding:0 20px}}</style><link rel="stylesheet" type="text/css" href="https://d6vtbcy3ong79.cloudfront.net/fonts/latest/css/metric.min.css" id="js-tlrk-nav-metric" class="is-loading" onload="this.classList.remove('is-loading')" onerror="this.classList.remove('is-loading')"><link rel="stylesheet" type="text/css" href="https://d6vtbcy3ong79.cloudfront.net/telerik-navigation/3.7.42/css/index.min.css" id="js-tlrk-nav-styles" class="is-loading" onload="this.classList.remove('is-loading')" onerror="this.classList.remove('is-loading')"><nav id="js-tlrk-nav" class="TK-Nav TK-Nav--Shadow TK-Nav--Loading" data-tlrk-nav-version="3.7.42" data-tlrk-nav-template="nav-main-csa-rel-component"><section class="TK-Bar"><div class="TK-container TK-Bar-container"><figure class="TK-TLRK-Brand TK-TLRK-Brand--Full"><a href="#skip-to-content" id="js-tlrk-skip-link" class="TK-Skip-Link">skip navigation</a> <a href="/" class="TK-TLRK-Logo" aria-label="Go to Homepage"><svg xmlns="http://www.w3.org/2000/svg" width="147" height="60" viewBox="0 0 400.4 60.3"><path fill="#7c878e" d="M396.7 18.4c-2 0-3.7 1.6-3.7 3.7 0 2.2 1.7 3.7 3.7 3.7s3.7-1.6 3.7-3.7c0-2.2-1.7-3.7-3.7-3.7zm0 6.8c-1.7 0-3-1.3-3-3.1s1.3-3.1 3-3.1 3 1.3 3 3.1-1.3 3.1-3 3.1z"/><path fill="#7c878e" d="M398.5 21.5c0-.9-.6-1.4-1.4-1.4h-1.8V24h1.1v-1.2h.3l.8 1.2h1.2l-.9-1.4c.4-.1.7-.5.7-1.1zm-1.6.4h-.6V21h.6c.3 0 .5.2.5.4 0 .4-.2.5-.5.5zm-103.5-7.7h-28.5v2.6h12.7v32.4h2.9V16.8h12.9zm7.4 9.1c-6.7 0-10.9 5.6-10.9 13.4 0 7.9 4.7 12.9 11.8 12.9 3 0 5.5-.7 7.4-2.2v-2.7c-2.2 1.8-4.3 2.5-7.1 2.5-5.2 0-9.2-3.6-9.2-10.4H311v-1c-.2-7.4-3.6-12.5-10.2-12.5zm-8 11.1c.7-5.5 3.9-8.6 8-8.6 5 0 7.1 4.1 7.3 8.6h-15.3zM315 12.1h2.9v37.1H315zm18.1 11.2c-6.7 0-10.9 5.6-10.9 13.4 0 7.9 4.7 12.9 11.8 12.9 3 0 5.5-.7 7.4-2.2v-2.7c-2.2 1.8-4.3 2.5-7.1 2.5-5.2 0-9.2-3.6-9.2-10.4h18.2v-1c-.1-7.4-3.6-12.5-10.2-12.5zm-8 11.1c.7-5.5 3.9-8.6 8-8.6 5 0 7.1 4.1 7.3 8.6h-15.3zm25-6.5v-4h-2.9v25.3h2.9V31.5c1.2-3.2 3.6-5.5 6.7-5.5.9 0 1.7.2 2.3.5v-2.8c-.6-.2-1.3-.3-2.2-.3-3.1-.1-5.7 2-6.8 4.5zm12.1-4h2.8v25.3h-2.8zm1.5-9.7c-1.1 0-1.9.9-1.9 1.9 0 1.1.9 1.9 1.9 1.9s1.9-.9 1.9-1.9-.8-1.9-1.9-1.9zm26.5 9.7h-3.7l-12.8 11V12.1h-2.9v37.1h2.9v-13l13.2 13h3.5l-13.8-13.8z"/><path fill="#5ce500" d="M11.2 14.9L0 21.3l17.4 10.1v20.1l11.2-6.4c.5-.3.9-1 .9-1.6V24.4L13 14.9c-.5-.3-1.3-.3-1.8 0z"/><path fill="#5ce500" d="M12.1 48.4V34.5L0 41.5zM25 .2c-.5-.3-1.3-.3-1.8 0L10.7 7.4l24.1 13.9v27.9L47.3 42c.5-.3.9-1 .9-1.6V13.6L25 .2z"/><path fill="#4b4e52" d="M117.9 22.5c-4.3 0-7.7 1.6-9.8 4.7-2.3 3.2-2.6 7-2.6 9 0 8.3 4.9 13.6 12.5 13.6 9.2 0 12.5-7.4 12.5-13.8 0-3.7-1.1-7-3.1-9.4-2.3-2.7-5.6-4.1-9.5-4.1zm0 22.4c-4.2 0-6.9-3.4-6.9-8.8 0-5.5 2.6-8.9 6.9-8.9 4.2 0 6.9 3.4 6.9 8.8 0 5.5-2.7 8.9-6.9 8.9zM74.8 13.6H61.7v35.6h5.8v-14h7.4c8 0 12.4-3.9 12.4-11-.1-3.1-1.3-10.6-12.5-10.6zM74.1 30h-6.6V18.9h7.4c4.3 0 6.4 1.8 6.4 5.5 0 4-2.1 5.6-7.2 5.6zm26.6-7.3c-2.2.3-3.9 1.4-5.2 3.5V23h-5.1v26.1h5.4V37.9c0-5.2.4-9.6 5.9-9.6.6 0 1.1.1 1.7.3l.7.2 1-5.3-.4-.2c-1.2-.5-2.6-.7-4-.6zm145 12.1c-1.3-.5-4-1.2-6.1-1.7-1-.3-1.9-.5-2.5-.7-2-.6-3-1.4-3-2.6 0-2.5 3.5-2.8 5-2.8 1.8 0 4.8.5 5.3 3.5l.1.4h5.2v-.5c-.4-5.3-4-7.8-10.8-7.8-5.1 0-10.2 2.4-10.2 7.6 0 2.8 1.9 5.2 5.2 6.3 1.3.5 3.5 1.1 5.6 1.7 1.2.3 2.4.7 3.3.9 1.6.5 2.4 1.4 2.4 2.6 0 2.4-2.9 3.3-5.6 3.3-2.5 0-5.5-.7-6.2-3.9l-.1-.4h-5.2l.1.6c.5 5.4 4.6 8.3 11.4 8.3 7.7 0 11.2-4.2 11.2-8.4-.1-3-1.8-5.2-5.1-6.4zm-94-9.6c-1.7-1.8-4.1-2.7-7-2.7-7.9 0-11.5 7-11.5 13.5 0 6.6 3.6 13.4 11.5 13.4 2.7 0 5-1 6.7-2.7 0 1.2 0 2.3-.1 2.7-.3 4.3-2.4 6.3-6.5 6.3-2.3 0-4.9-.8-5.4-3.1l-.1-.5H134l.1.7c.6 4.6 4.6 7.5 10.6 7.5 5.2 0 8.9-2 10.8-5.7.9-1.8 1.3-4.4 1.3-7.8V23.1h-5.1v2.1zm-6.6 19.3c-1.9 0-6.3-.9-6.3-8.8 0-5.2 2.5-8.4 6.4-8.4 3.1 0 6.3 2.2 6.3 8.4.1 5.5-2.3 8.8-6.4 8.8zm75.6-9.7c-1.3-.5-4-1.2-6.1-1.7-1-.3-1.9-.5-2.5-.7-2-.6-3-1.4-3-2.6 0-2.5 3.5-2.8 5-2.8 1.8 0 4.8.5 5.3 3.5l.1.4h5.2v-.5c-.4-5.3-4-7.8-10.8-7.8-5.1 0-10.2 2.4-10.2 7.6 0 2.8 1.9 5.2 5.2 6.3 1.3.5 3.5 1.1 5.6 1.7 1.2.3 2.4.7 3.3.9 1.6.5 2.4 1.4 2.4 2.6 0 2.4-2.9 3.3-5.6 3.3-2.5 0-5.5-.7-6.2-3.9l-.1-.4h-5.2l.1.6c.5 5.4 4.6 8.3 11.4 8.3 7.7 0 11.2-4.2 11.2-8.4 0-3-1.7-5.2-5.1-6.4zm-19.9 0c-.3-7.3-5-12.2-11.9-12.2-4 0-7.3 1.6-9.5 4.5-1.8 2.4-2.8 5.7-2.8 9.1 0 8.1 5 13.5 12.5 13.5 5.8 0 9.8-2.9 11.2-8.3l.2-.6h-5.4l-.1.3c-1.1 3.2-3.8 3.9-5.9 3.9-4.1 0-6.7-2.7-7-7.1h18.5l.1-.5c.1-.6.1-1.5.1-2.1v-.5zm-18.4-1.6c.5-3.6 2.9-5.9 6.5-5.9 2.7 0 5.9 1.6 6.3 5.9h-12.8zm-10.5-10.5c-2.2.3-3.9 1.4-5.2 3.5V23h-5.1v26.1h5.4V37.9c0-5.2.4-9.6 5.9-9.6.6 0 1.1.1 1.7.3l.7.2 1-5.3-.4-.2c-1.2-.5-2.6-.7-4-.6zm84.8-1.2c0-.9-.6-1.4-1.4-1.4h-1.8V24h1.1v-1.2h.3l.8 1.2h1.2l-.9-1.4c.4-.1.7-.5.7-1.1zm-1.5.4h-.6V21h.6c.3 0 .5.2.5.4 0 .4-.2.5-.5.5z"/><path fill="#4b4e52" d="M255 18.4c-2 0-3.7 1.6-3.7 3.7 0 2.2 1.7 3.7 3.7 3.7s3.7-1.6 3.7-3.7c0-2.2-1.7-3.7-3.7-3.7zm0 6.8c-1.7 0-3-1.3-3-3.1s1.3-3.1 3-3.1 3 1.3 3 3.1-1.4 3.1-3 3.1z"/></svg></a></figure><ul class="TK-Products-Menu"><li class="TK-Products-Menu-Item TK-Static"><button type="button" class="TK-Products-Menu-Item-Button" aria-label="Product Navigation">All Products <i class="TK-Arrow"></i></button><div id="js-tlrk-nav-dash" class="TK-Dash TK-Dropdown TK-Dropdown--Full TK-Dropdown--White TK-Dropdown---Mobile"><div class="TK-container"><div class="TK-row TK-Border"><div class="TK-col-5"><div class="TK-Bundles TK-BG"><p class="TK-Dash-Title">Product Bundles</p><a href="/devcraft" class="TK-Bundle"><div class="TK-Bundle-Icon TK--Desktop"><svg xmlns="http://www.w3.org/2000/svg" width="210" height="90" fill="none" viewBox="0 0 210 90"><g clip-path="url(#clip0_142_1561)"><rect width="210" height="88" y="-.667" fill="#dcecff" rx="5"/><path fill="#cdd6f9" d="M210 76.233h-44.382v-51.56H210z"/><g clip-path="url(#clip1_142_1561)"><path fill="#2b2bb2" d="M151.069 68.52h44.386v22.646c0 4.716-2.26 8.545-5.044 8.545h-34.298c-2.784 0-5.044-3.83-5.044-8.545zm-.002-40.53h44.386V13.476c0-3.023-2.26-5.477-5.044-5.477h-34.298c-2.784 0-5.044 2.454-5.044 5.477zm-24.998-15.069h-18.411v5.54h18.411z"/><path stroke="#fff" stroke-miterlimit="10" stroke-width="1.12" d="m109.802 14.936 1.766 1.51 1.764-1.51 1.763 1.51 1.766-1.51 1.764 1.51 1.766-1.51 1.766 1.51 1.768-1.51"/><path fill="#5777ea" d="M195.453 18.042h-44.382v58.191h44.382z"/><path stroke="#0357ff" d="M153.458 18.578H96.685v49.269h56.773z"/><path fill="#829dfa" d="M174.664 18.042h-67.006V68.41h67.006z"/><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" clip-path="url(#clip2_142_1561)"><path stroke="#fc3" d="m123.571 27.581-9.237-.057"/><path stroke="#fff" d="m117.767 33.647 8.914.057"/><path stroke="#cdffca" d="m132.167 33.722 8.908.051"/><path stroke="#fff" d="m117.733 39.753 18.504.115m5.492.017 29.725.183m-53.761 5.785 13.928.086m5.486.017 31.334.195m-50.782 5.808 29.97.183"/><path stroke="#cdffca" d="m153.121 52.16 29.72.183M117.62 58.06l22.648.142"/><path stroke="#fff" d="m144.338 58.22 23.557.143m4.071.017 15.843.098"/></g></g><g clip-path="url(#clip3_142_1561)"><path fill="#e26841" d="M57.489 47.81c.13.018-1.6-11.25 4.573-15.705 4.566-3.294 9.575-.097 20.417-3.418a41 41 0 0 0 5.953-2.345l2.561 3.895a24.5 24.5 0 0 1-5.337 1.998c-3.373.828-6.246.754-11.493.587-3.725-.12-6.125-.399-9.419.753a11 11 0 0 0-2.13.914c-5.45 3.266-5.252 13.302-5.125 13.32"/><path fill="#e26841" d="M57.305 44.42a12.34 12.34 0 0 1 3.422-6.972c2.582-2.531 5.671-3.041 7.997-3.394 4.924-.747 8.216.375 10.958.795 4.206.644 10.375.132 18.762-5.208l1.109 5.764a34.1 34.1 0 0 1-11.87 3.5c-10.925 1.084-17.198-3.974-24.233-.47-3.163 1.572-5.072 4.178-6.145 5.985"/><path fill="#000" d="M82.257 73.544 92.385 83.76l-8.682 3.5-10.705-11.09V62.161h9.259z"/><path fill="#e26841" d="M87.572 86.964a18.83 18.83 0 0 0-5.576-8.835A18.6 18.6 0 0 0 72.6 73.67h-.003a18.5 18.5 0 0 0-8.382.59 18.6 18.6 0 0 0-7.276 4.24v8.464z"/><path fill="#14254c" d="M72.598 86.964a7.6 7.6 0 0 0-.6-5.074 7.52 7.52 0 0 0-3.666-3.528 7.44 7.44 0 0 0-8.198 1.44 7.6 7.6 0 0 0-1.681 2.411 37 37 0 0 0-1.66 4.75z"/><path fill="#000" d="m56.911 58.307 19.27.058-1.612 15.179 3.8 12.343-21.432.049z"/><path fill="#14254c" d="M75.816 73.542H73.4a16.3 16.3 0 0 1-6.3-1.263 16.5 16.5 0 0 1-5.34-3.6 16.6 16.6 0 0 1-3.57-5.386 16.7 16.7 0 0 1-1.253-6.353V44.873a6.67 6.67 0 0 1 1.928-4.696 6.56 6.56 0 0 1 4.654-1.946h2.417c2.162 0 4.303.43 6.3 1.264a16.5 16.5 0 0 1 5.342 3.599 16.6 16.6 0 0 1 3.569 5.386 16.7 16.7 0 0 1 1.253 6.354V66.9c0 .872-.17 1.736-.501 2.541a6.6 6.6 0 0 1-1.427 2.155 6.6 6.6 0 0 1-2.137 1.44 6.5 6.5 0 0 1-2.52.505z"/><path fill="#e8ab6a" d="M64.375 58.25v-.936c0-2.894 1.14-5.67 3.17-7.717a10.78 10.78 0 0 1 7.651-3.196 10.7 10.7 0 0 1 6.609 2.274 14.7 14.7 0 0 1 .595 4.145v13.57a10.72 10.72 0 0 1-7.203 2.773c-2.87 0-5.622-1.15-7.652-3.196a10.96 10.96 0 0 1-3.17-7.717"/><path stroke="#fff" stroke-miterlimit="10" stroke-width="3.736" d="M74.721 65.125a5.02 5.02 0 0 1-3.562-1.488 5.1 5.1 0 0 1-1.477-3.593"/><path fill="#da7f27" d="M80.086 60.7h-5.209v-9.047z"/><path fill="#14254c" d="M82.4 49.558H61.209v1.27H82.4zm0 5.253H61.209v1.27H82.4zm.002 10.506H65.374v1.27h17.028zm-.002-5.252H61.209v1.27H82.4z"/><path fill="#fff" d="M69 54.154h-1.5a1 1 0 0 1-.717-.3 1.02 1.02 0 0 1-.22-1.113 1.02 1.02 0 0 1 .55-.552 1 1 0 0 1 .387-.078H69c.269 0 .526.108.716.299a1.026 1.026 0 0 1-.328 1.666 1 1 0 0 1-.388.078m11.837 0h-1.5a1 1 0 0 1-.717-.3 1.02 1.02 0 0 1-.297-.722c0-.27.107-.53.297-.722s.448-.299.716-.299h1.502c.268 0 .526.108.716.299a1.026 1.026 0 0 1-.329 1.666 1 1 0 0 1-.388.078"/><path fill="#000" d="M66.486 54.154c.56 0 1.013-.458 1.013-1.022s-.453-1.021-1.013-1.021-1.013.457-1.013 1.021.454 1.022 1.013 1.022m12.154 0c.56 0 1.013-.458 1.013-1.022s-.454-1.021-1.013-1.021c-.56 0-1.013.457-1.013 1.021s.453 1.022 1.013 1.022"/><path fill="#e26841" d="M110.225 81.406c.852.106 1.627.55 2.155 1.232s.765 1.548.66 2.407l-.232 1.913a3.76 3.76 0 0 1-1.204 2.329 3.7 3.7 0 0 1-2.425.959l-5.128.085a3.7 3.7 0 0 1-2.295-.751 3.75 3.75 0 0 1-1.353-2.015l-.622-2.31a3.3 3.3 0 0 1 .587-2.882 3.22 3.22 0 0 1 2.648-1.235l6.926.242q.143.008.283.026"/><path fill="#e26841" d="m100.539 87.046-.682-4.84a1.13 1.13 0 0 0-.381-.702l-.585-.505a1.118 1.118 0 0 0-1.829.627l-1.127 5.42z"/><path fill="#000" d="m8.475 81.297 6.926-.243a3.2 3.2 0 0 1 1.47.3c.46.214.863.534 1.178.935a3.28 3.28 0 0 1 .587 2.882l-.622 2.31a3.75 3.75 0 0 1-1.353 2.014 3.7 3.7 0 0 1-2.295.752l-5.128-.086a3.7 3.7 0 0 1-2.424-.959 3.76 3.76 0 0 1-1.204-2.328l-.232-1.914a3.28 3.28 0 0 1 .66-2.407 3.23 3.23 0 0 1 2.437-1.257"/><path fill="#000" d="m17.88 86.964.68-4.841a1.13 1.13 0 0 1 .383-.703l.584-.505a1.12 1.12 0 0 1 1.83.627l1.127 5.42zm38.564.001.363-2.978a16.3 16.3 0 0 0-.525-6.517 16.2 16.2 0 0 0-3.043-5.774 16.05 16.05 0 0 0-5.063-4.085 15.9 15.9 0 0 0-12.674-.814 16 16 0 0 0-5.536 3.404 16.2 16.2 0 0 0-3.745 5.338 16.3 16.3 0 0 0-1.34 6.398v.027l-.015 5.001z"/><path fill="#8174f2" d="M51.708 43.28a6.37 6.37 0 0 0-3.312-1.773 6.33 6.33 0 0 0-3.727.408l-5.883 2.554a38.5 38.5 0 0 1-19.345 2.974l-1.943-.205.557-10.405.55.142a38.45 38.45 0 0 0 20.456-.34l6.284-1.847a6.33 6.33 0 0 1 4.608.408 6.42 6.42 0 0 1 3.125 3.441l3.798 9.86z"/><path fill="#8174f2" d="M50.701 25.166c.853.001 1.696.17 2.484.5.787.33 1.502.812 2.104 1.42a6.6 6.6 0 0 1 1.406 2.125c.325.795.493 1.646.492 2.505l-.31 16.781-3.611-12.007a6.52 6.52 0 0 0-3.467-3.36 6.44 6.44 0 0 0-4.808-.032l-1.534.604a28.5 28.5 0 0 1-11.739 1.955l-8.275-.377.383-9.908 8.22 1.501a28.5 28.5 0 0 0 11.343-.227l5.897-1.323a6.4 6.4 0 0 1 1.415-.157"/><path fill="#0c1b38" d="M43.991 36.852c-1.6.093-3.167.503-4.61 1.207a12.2 12.2 0 0 0-3.801 2.895 12.3 12.3 0 0 0-2.414 4.142 12.4 12.4 0 0 0-.657 4.758l.68 11.86a11.7 11.7 0 0 0 3.612 7.813 11.52 11.52 0 0 0 7.944 3.183 11.52 11.52 0 0 0 7.978-3.217 11.72 11.72 0 0 0 3.58-7.877l.585-11.863q.015-.306.015-.611c0-3.265-1.286-6.397-3.575-8.705a12.16 12.16 0 0 0-9.337-3.585"/><path fill="#8174f2" d="M56.89 46.588h-24.4v6.235h24.4z"/><path fill="#e7aa6a" d="M48.966 49.75c.752 0 1.474.302 2.006.838.532.537.83 1.264.83 2.023v.684c0 .759-.298 1.486-.83 2.023a2.82 2.82 0 0 1-2.006.838H32.49V49.75z"/><path fill="#e06940" d="M39.038 50.811v5.345H36.28z"/><path fill="#fff" d="M47.222 51.977h-1.466a.996.996 0 0 0-.993 1c0 .552.445 1 .993 1h1.466a.996.996 0 0 0 .993-1c0-.552-.445-1-.993-1"/><path fill="#000" d="M47.906 53.98a.997.997 0 0 0 .992-1.001.997.997 0 0 0-.992-1.002.997.997 0 0 0-.993 1.002.997.997 0 0 0 .993 1m-12.508.001a.997.997 0 0 0 .992-1.001.997.997 0 0 0-.992-1.002.997.997 0 0 0-.993 1.002.997.997 0 0 0 .992 1"/><path fill="#fff" d="M35.247 51.977H33.78a.996.996 0 0 0-.993 1c0 .552.445.999.993.999h1.465a.996.996 0 0 0 .993-1 .996.996 0 0 0-.992-.999"/><path fill="#000" d="M35.93 53.98a.997.997 0 0 0 .993-1.002.997.997 0 0 0-.993-1 .997.997 0 0 0-.993 1 .997.997 0 0 0 .993 1.002"/><path fill="#14254c" d="M36.086 85.932c.073.162.221.52.406 1.033h15.55a39 39 0 0 0-2.256-7.143 7.52 7.52 0 0 0-4.149-3.99 7.43 7.43 0 0 0-5.73.136 7.53 7.53 0 0 0-3.956 4.184 7.62 7.62 0 0 0 .135 5.78"/><path fill="#62de7f" d="M68.085 4.022H25.682c-3.698 0-6.696 3.024-6.696 6.754s2.998 6.753 6.696 6.753h42.403c3.699 0 6.697-3.024 6.697-6.753s-2.998-6.754-6.697-6.754"/><path fill="#62de7f" d="m58.61 22.342-6.548-6.604 6.549-6.604z"/><path fill="#282f89" d="M33.606 7.685h.636v4.17h2.378v.565h-3.014zM38.53 8.89c.246 0 .488.06.706.173.21.099.39.253.522.446.118.184.197.392.23.61q.061.377.05.76H37.53c-.005.3.081.595.246.844a.83.83 0 0 0 .713.318.91.91 0 0 0 .72-.3c.102-.116.177-.254.218-.403h.566a1.2 1.2 0 0 1-.15.422q-.11.213-.283.382c-.18.175-.404.295-.648.348a2 2 0 0 1-.47.052 1.43 1.43 0 0 1-1.084-.469 1.84 1.84 0 0 1-.445-1.313 2 2 0 0 1 .448-1.351 1.48 1.48 0 0 1 1.17-.519m.917 1.528a1.5 1.5 0 0 0-.163-.602.84.84 0 0 0-.79-.42.87.87 0 0 0-.664.29 1.1 1.1 0 0 0-.284.733zm1.346-2.414h.582v.964h.545v.473h-.545v2.254a.25.25 0 0 0 .121.242q.108.042.224.036h.09q.047 0 .111-.008v.455q-.1.03-.206.042a2 2 0 0 1-.232.013.62.62 0 0 1-.545-.208.93.93 0 0 1-.146-.54V9.44h-.46v-.473h.463zm1.76 1.057a.36.36 0 0 0 .268-.199.8.8 0 0 0 .091-.393v-.04l-.008-.04h-.348v-.703h.684v.648a1.36 1.36 0 0 1-.17.701.66.66 0 0 1-.514.33zm1.494 2.276c.006.16.056.313.146.445a.9.9 0 0 0 .754.28c.196.004.39-.044.562-.14a.46.46 0 0 0 .243-.434.37.37 0 0 0-.195-.338 2.3 2.3 0 0 0-.492-.164l-.457-.116a2.2 2.2 0 0 1-.646-.247.73.73 0 0 1-.37-.651 1 1 0 0 1 .35-.793c.266-.213.6-.321.94-.303a1.3 1.3 0 0 1 1.116.458 1 1 0 0 1 .208.625h-.543a.7.7 0 0 0-.137-.358.88.88 0 0 0-.688-.229.8.8 0 0 0-.494.126.39.39 0 0 0-.167.332.41.41 0 0 0 .22.36q.178.1.377.143l.38.093q.437.083.832.294a.78.78 0 0 1 .335.7 1.07 1.07 0 0 1-.347.795 1.47 1.47 0 0 1-1.054.336 1.4 1.4 0 0 1-1.084-.348 1.33 1.33 0 0 1-.34-.866zm4.637-2.37h.545v.597c.08-.163.192-.307.33-.424a.85.85 0 0 1 .66-.247l.13.013v.613a1 1 0 0 0-.188-.016.82.82 0 0 0-.668.282 1 1 0 0 0-.234.65v1.985h-.575zm3.457 3.079a.79.79 0 0 0 .784-.436c.145-.304.217-.636.213-.973.01-.27-.042-.538-.153-.784a.87.87 0 0 0-.837-.477.82.82 0 0 0-.768.403c-.167.299-.25.638-.24.98a1.65 1.65 0 0 0 .24.917.85.85 0 0 0 .76.37m.023-3.179a1.54 1.54 0 0 1 1.119.445 1.74 1.74 0 0 1 .456 1.31 2.25 2.25 0 0 1-.403 1.38 1.46 1.46 0 0 1-1.25.544 1.4 1.4 0 0 1-1.122-.482 1.92 1.92 0 0 1-.415-1.294c-.026-.5.129-.993.437-1.387a1.47 1.47 0 0 1 1.178-.516m3.515 0c.336-.015.668.085.941.284a1.36 1.36 0 0 1 .437.977h-.561a1.05 1.05 0 0 0-.233-.53.74.74 0 0 0-.585-.212.8.8 0 0 0-.786.542c-.11.275-.162.57-.154.867-.01.306.066.61.219.874a.75.75 0 0 0 .684.354.74.74 0 0 0 .567-.22c.151-.17.252-.379.29-.604h.56a1.52 1.52 0 0 1-.482 1.004c-.28.22-.628.332-.982.317a1.3 1.3 0 0 1-1.07-.495 1.9 1.9 0 0 1-.4-1.236 2.1 2.1 0 0 1 .436-1.415 1.42 1.42 0 0 1 1.118-.507m1.875-1.183h.553v2.751l1.477-1.467h.735l-1.31 1.292 1.382 2.16h-.735l-1.068-1.74-.483.444v1.296h-.552zm3.556 0h.648v1.557l-.156 2.05h-.327l-.167-2.05zm0 4.065h.636v.671h-.637z"/></g></g><defs><clipPath id="clip0_142_1561"><path fill="#fff" d="M0 0h210v90H0z"/></clipPath><clipPath id="clip1_142_1561"><path fill="#fff" d="M82.32 7.999h125.957v79H82.32z"/></clipPath><clipPath id="clip2_142_1561"><path fill="#fff" d="M114.057 13.999h77.36v49h-77.36z"/></clipPath><clipPath id="clip3_142_1561"><path fill="#fff" d="M2.975-1.001h110.09v91H2.975z"/></clipPath></defs></svg></div><p class="TK-Bundle-Title TK-Best-Value">DevCraft</p><p class="TK-Bundle-Description">All <strong>Telerik .NET</strong> and <strong>Kendo UI </strong>JavaScript components and AI Tools in one package.</p><ul class="TK-Bundle-list TK--Desktop"><li>MCP Servers (AI Tools)</li><li>Embedded Reporting</li><li>Document Processing Libraries</li><li>SSO Account Sign-in</li></ul></a><a href="/kendo-ui" class="TK-Bundle" data-match-exact-path><div class="TK-Bundle-Icon TK--Desktop"><svg xmlns="http://www.w3.org/2000/svg" width="210" height="90" fill="none" viewBox="0 0 210 90"><g clip-path="url(#clip0_142_1689)"><rect width="210" height="85" y="9.818" fill="#dcecff" rx="5"/><g clip-path="url(#clip1_142_1689)"><path fill="#829dfa" d="M219.429 52.666c10.178 0 18.429-7.584 18.429-16.94s-8.251-16.942-18.429-16.942S201 26.369 201 35.725s8.251 16.941 18.429 16.941"/><path fill="#2d25b8" d="M201.142 35.725h18.429l-13.035-11.982c-3.332 3.063-5.394 7.299-5.394 11.982"/><path fill="#151753" d="m206.536 23.743 13.035 11.982V18.784c-5.095 0-9.702 1.895-13.035 4.959"/></g><g clip-path="url(#clip2_142_1689)"><path stroke="#fff" stroke-miterlimit="10" stroke-width="1.92" d="M107.127 98.727c26.992 0 48.873-21.88 48.873-48.872S134.119.982 107.127.982 58.255 22.863 58.255 49.855s21.88 48.872 48.872 48.872Z"/><path stroke="#829dfa" stroke-miterlimit="10" stroke-width="3.84" d="M88.101 94.88a48.8 48.8 0 0 0 19.026 3.835 48.8 48.8 0 0 0 19.027-3.834 48.9 48.9 0 0 0 15.534-10.478 49 49 0 0 0 10.477-15.534c2.48-5.85 3.835-12.273 3.835-19.026a48.8 48.8 0 0 0-3.835-19.027 48.8 48.8 0 0 0-10.477-15.533M107.127.982a48.8 48.8 0 0 0-19.026 3.835 48.8 48.8 0 0 0-15.534 10.478A49 49 0 0 0 62.09 30.828a48.8 48.8 0 0 0-3.834 19.027 48.8 48.8 0 0 0 3.834 19.026"/><path stroke="#fff" stroke-miterlimit="10" stroke-width="1.92" d="M107.127 84.06c18.892 0 34.206-15.314 34.206-34.205 0-18.892-15.314-34.206-34.206-34.206-18.891 0-34.205 15.314-34.205 34.206 0 18.891 15.314 34.206 34.205 34.206Z"/><path stroke="#62de7f" stroke-miterlimit="10" stroke-width="3.84" d="M82.935 74.047c6.192 6.191 14.74 10.014 24.192 10.014s18.001-3.835 24.192-10.014c6.192-6.192 10.014-14.74 10.014-24.192s-3.834-18-10.014-24.192c-6.191-6.192-14.74-10.014-24.192-10.014"/><path fill="#fff" d="M107.127 70.383c11.338 0 20.529-9.19 20.529-20.528s-9.191-20.529-20.529-20.529-20.528 9.191-20.528 20.529 9.19 20.528 20.528 20.528"/><path fill="#0357ff" d="M98.537 55.346v-2.5q.655.43 1.201.645.547.215 1.201.215.948 0 1.329-.567.39-.565.39-1.875V43.57h2.578v7.998q0 4.473-4.072 4.473-.752 0-1.465-.205-.712-.205-1.162-.489m8.428-.341v-2.52q1.826 1.357 3.916 1.357.996 0 1.582-.322.596-.332.596-1.016 0-.556-.332-.85-.333-.3-1.104-.585l-1.797-.605a7 7 0 0 1-1.25-.528 4.3 4.3 0 0 1-.947-.713 2.9 2.9 0 0 1-.625-1.015 4 4 0 0 1-.205-1.328q0-1.104.596-1.915t1.572-1.2q.976-.401 2.197-.401 2.12 0 3.721.957v2.5q-1.738-1.28-3.643-1.28-.869 0-1.406.313-.537.303-.537.908 0 .538.322.82.332.284 1.045.518l1.914.664q1.553.528 2.275 1.406.733.88.733 2.237 0 1.172-.635 2.012-.635.83-1.67 1.23-1.035.39-2.363.39a8 8 0 0 1-2.207-.292q-1.035-.294-1.748-.742"/></g><g clip-path="url(#clip3_142_1689)"><path fill="#e26841" d="M34.593 71.628q-.202-1.27-.202-2.556c0-9.002 7.359-16.298 16.438-16.298q1.297 0 2.578.2c8.964 1.412 15.078 9.763 13.657 18.65l-4.632 35.251-23.46-2.78-4.376-32.47z"/><path stroke="#14254c" stroke-linecap="round" stroke-miterlimit="10" stroke-width="9.265" d="M12.343 42.893c-.39 1.655-1.221 8.501 2.798 15.133.791 1.3 2.335 4.606 6.952 6.584 6.377 2.734 14.466 1.345 20.685-4.197"/><path fill="#e26841" d="M7.428 24.274 5.23 48.998l14.493 1.481-4.11-25.522-8.188-.683zm22.577-5.318a.88.88 0 0 1 .32-.543l.477-.387a.897.897 0 0 1 1.45.526l.952 5.095a4.16 4.16 0 0 1-1.62 4.11l-3.483 2.588z"/><path fill="#000" d="m65.5 41.763-7.995 1.266v12.135l7.09 10.48 10.58-4.487-9.512-8.267-.167-11.127z"/><path fill="#e26841" d="M44.677 17.783a5.39 5.39 0 0 0-3.668-4.143l-.964-.307c-2.645-.846-4.218-3.538-3.638-6.23L37.939-.05l3.137.198-1.456 5.35c-.73 2.678.718 5.466 3.34 6.437a5.375 5.375 0 0 1 3.527 5.06l-.05 10.267-1.758-9.48z"/><path fill="#e26841" d="M41.668 20.216a5.43 5.43 0 0 0-3.577-2.26l-3.316-.548c-2.452-.407-4.312-2.414-4.512-4.871l-.706-8.752 3.454-.017.179 6.474a5.38 5.38 0 0 0 3.987 5.037l2.335.633a5.4 5.4 0 0 1 3.58 3.137l3.342 8.051-4.769-6.89z"/><path fill="#000" d="M60.018 39.741h-16.83v7.46a4.97 4.97 0 0 1-1.89 3.897l-8.307 6.59 13.57 9.914 12.283-14.718 1.171-13.146z"/><path fill="#14254c" d="M65.5 34.934c0-6.98-5.707-12.638-12.747-12.638h-4.59c-2.816 0-5.1 2.263-5.1 5.054v12.894c0 6.982 5.709 12.643 12.748 12.64h4.591c2.815 0 5.1-2.265 5.097-5.056z"/><path fill="#e9ac6a" d="M58.425 49.091a9.55 9.55 0 0 0 6.348-2.4V34.938c0-1.217-.179-2.425-.527-3.593a9.55 9.55 0 0 0-5.824-1.97c-5.267 0-9.536 4.233-9.536 9.455v.81c0 5.22 4.272 9.452 9.536 9.452z"/><path stroke="#fff" stroke-miterlimit="10" stroke-width=".67" d="M58.78 45.533c-4.41-.081-3.824-3.334-3.824-3.334"/><path fill="#dc7f1b" d="M59.175 33.926v7.837h4.59z"/><path stroke="#14254c" stroke-miterlimit="10" stroke-width=".777" d="M43.443 32.663H64.89m-21.447 4.548H65.5m-17.721 9.103h17.72m-22.056-4.551H65.5"/><path fill="#fff" d="M53.629 34.286h-1.046a.74.74 0 0 0-.741.735v.05c0 .405.332.734.741.734h1.046c.41 0 .741-.329.741-.734v-.05a.74.74 0 0 0-.741-.735m10.403 0h-1.046a.74.74 0 0 0-.741.735v.05c0 .405.332.734.74.734h1.047c.41 0 .74-.329.74-.734v-.05a.74.74 0 0 0-.74-.735"/><path fill="#000" d="M54.017 36.088a.774.774 0 0 0 .776-.77.774.774 0 0 0-.776-.77.774.774 0 0 0-.777.77c0 .425.347.77.776.77m10.239 0a.774.774 0 0 0 .777-.77.774.774 0 0 0-.777-.77.774.774 0 0 0-.777.77c0 .425.348.77.777.77"/><path fill="#e9ac6a" d="m34.678 26.092 17.158.968 45.622-.933 33.009-.909a1.13 1.13 0 0 0 1.102-1.121 1.13 1.13 0 0 0-1.105-1.124l-33.003-.79-45.619-.982-17.158.947v3.941z"/><path fill="#000" d="M99.332 21.933h-1.88a.805.805 0 0 0-.809.802v2.84c0 .443.362.802.809.802h1.88a.805.805 0 0 0 .809-.802v-2.84a.805.805 0 0 0-.809-.802m31.636.665h-1.904a.685.685 0 0 0-.688.683v1.592c0 .377.308.682.688.682h1.904a.685.685 0 0 0 .689-.682V23.28a.685.685 0 0 0-.689-.683m-96.19 3.504v-3.959L4.04 20.85v6.512z"/><path fill="#000" d="M36.313 15.947h-1.52a.653.653 0 0 0-.657.65V31.9c0 .36.294.65.656.65h1.52a.653.653 0 0 0 .657-.65V16.597a.653.653 0 0 0-.656-.65"/><path fill="#e26841" d="M7.946 16.632c-1.42.145-2.455 1.406-2.305 2.815l.158 1.507a2.96 2.96 0 0 0 2.847 2.64l4.096.149a2.965 2.965 0 0 0 2.959-2.118l.533-1.804q.11-.372.102-.758c-.02-1.417-1.195-2.547-2.624-2.527l-5.537.082q-.115 0-.226.014z"/><path fill="#e26841" d="M15.765 19.299a.9.9 0 0 1 .416-.477l.542-.29a.9.9 0 0 1 .43-.108c.496 0 .894.401.894.892l-.023 5.176a4.17 4.17 0 0 1-2.361 3.735l-3.905 1.897 4.01-10.831z"/><path stroke="#1c2f54" stroke-linecap="round" stroke-miterlimit="10" stroke-width="9.265" d="M29.015 47.276c.117 2.718.876 12.524 8.434 19.312 2.543 2.388 3.89 4.099 7.277 4.979 2.15.534 6.885 1.714 11.65-.796a14.54 14.54 0 0 0 6.276-6.739"/><path fill="#e26841" d="M21.83 17.806a2.56 2.56 0 0 0-1.659 3.232l2.692 8.197 7.57-.59.349-9.442a2.5 2.5 0 0 0-.05-.61c-.287-1.389-1.655-2.28-3.053-1.996l-5.566 1.133q-.14.03-.28.073z"/><path fill="#e26841" d="m22.354 27.205-.091 26.586 14.718-3.907-6.422-23.222-8.205.546z"/><path fill="#000" d="m54.575 55.164 10.022 10.48 10.582-4.487-10.684-8.267z"/></g><g clip-path="url(#clip4_142_1689)"><path fill="#fff" d="M185.833 19.59h-8.666c-6.444 0-11.667 5.474-11.667 12.225v9.081c0 6.752 5.223 12.225 11.667 12.225h8.666c6.444 0 11.667-5.473 11.667-12.225v-9.081c0-6.751-5.223-12.225-11.667-12.225"/><mask id="mask0_142_1689" width="33" height="35" x="165" y="19" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M185.833 19.59h-8.666c-6.444 0-11.667 5.474-11.667 12.225v9.081c0 6.752 5.223 12.225 11.667 12.225h8.666c6.444 0 11.667-5.473 11.667-12.225v-9.081c0-6.751-5.223-12.225-11.667-12.225"/></mask><g mask="url(#mask0_142_1689)"><path fill="#3654dd" d="M172.847 33.059c1.738 0 3.146-1.477 3.146-3.298s-1.408-3.297-3.146-3.297-3.147 1.476-3.147 3.297 1.409 3.298 3.147 3.298"/><path fill="#cdffca" d="m187.9 30.582-12.8 13.51-4.263-4.502-5.337 5.63v10.37h31.997V40.715z"/></g></g><g clip-path="url(#clip5_142_1689)"><path fill="#fff" d="M230.77 59.795h-57.673c-5.985 0-10.837 4.891-10.837 10.925s4.852 10.925 10.837 10.925h57.673c5.985 0 10.837-4.891 10.837-10.925s-4.852-10.925-10.837-10.925" opacity=".5"/><mask id="mask1_142_1689" width="80" height="23" x="162" y="59" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M230.77 59.795h-57.673c-5.985 0-10.837 4.891-10.837 10.925s4.852 10.925 10.837 10.925h57.673c5.985 0 10.837-4.891 10.837-10.925s-4.852-10.925-10.837-10.925"/></mask><g mask="url(#mask1_142_1689)"><path fill="#829dfa" d="M211.193 71.644a5.6 5.6 0 0 1-1.346-.043 5 5 0 0 1-.294-.057c-2.82-.621-4.669-3.387-7.541-5.164v.025c-1.311-.822-2.833-1.44-4.761-1.555-6.884-.403-9.634 7.527-16.087 7.06-4.859-.35-9.2-8.671-12.4-9.882-3.199-1.209-6.764.002-6.764.002v19.765h57.23V68.501c-3.296.787-4.7 2.852-8.037 3.143"/></g></g></g><defs><clipPath id="clip0_142_1689"><path fill="#fff" d="M0 0h210v90H0z"/></clipPath><clipPath id="clip1_142_1689"><path fill="#fff" d="M201 16.666h37v36h-37z"/></clipPath><clipPath id="clip2_142_1689"><path fill="#fff" d="M58 9.666h102v80H58z"/></clipPath><clipPath id="clip3_142_1689"><path fill="#fff" d="M-.5 1.363h142v98H-.5z"/></clipPath><clipPath id="clip4_142_1689"><path fill="#fff" d="M165.5 19.59h32v36h-32z"/></clipPath><clipPath id="clip5_142_1689"><path fill="#fff" d="M162 59.795h80v22h-80z"/></clipPath></defs></svg></div><p class="TK-Bundle-Title">Kendo UI</p><p class="TK-Bundle-Description">Bundle of AI Tools plus four <strong>JavaScript UI libraries </strong>built natively for jQuery, Angular, React and Vue.</p></a></div><div class="TK-BtnProducts TK--Desktop"><a href="/all-products" class="TK-Dash-Featured-Link">See All Products</a></div></div><div class="TK-col-19 TK-pr30"><div class="TK-row"><div class="TK-col-6"><div class="TK-Dash-Group"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" d="M3.333 11.667a.833.833 0 0 1-.65-1.359l8.25-8.5a.417.417 0 0 1 .717.384l-1.6 5.016a.833.833 0 0 0 .783 1.125h5.834a.833.833 0 0 1 .65 1.359l-8.25 8.5a.416.416 0 0 1-.717-.384l1.6-5.016a.833.833 0 0 0-.783-1.125z"/></svg><div><p class="TK-Dash-GroupTitle">Kendo UI</p><p class="TK-Dash-GroupDesc">Build JavaScript UI</p></div></div><hr class="TK-Dash-Separator"><div class="TK-row"><div class="TK-col-24 TK-Dash-Col--Indented"><p class="TK-Dash-Title TK--Desktop">Javascript</p><div class="TK-Dash-Links"><a href="/kendo-angular-ui" class="TK-Dash-Link" data-match-exact-path>UI for Angular</a> <a href="/kendo-vue-ui" class="TK-Dash-Link" data-match-exact-path>UI for Vue</a> <a href="/kendo-jquery-ui" class="TK-Dash-Link" data-match-exact-path>UI for jQuery</a> <a href="/kendo-react-ui" class="TK-Dash-Link" data-match-exact-path>KendoReact</a></div></div></div></div><div class="TK-col-12"><div class="TK-Dash-Group"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" d="M15 13.333 18.333 10 15 6.667m-10 0L1.667 10 5 13.333m7.083-10L7.917 16.667"/></svg><div><p class="TK-Dash-GroupTitle">Telerik</p><p class="TK-Dash-GroupDesc">Build modern .NET business apps</p></div></div><hr class="TK-Dash-Separator"><div class="TK-row"><div class="TK-col-12 TK-Dash-Col--Indented"><div class=""><p class="TK-Dash-Title">.Net Web</p><div class="TK-Dash-Links"><a href="/blazor-ui" class="TK-Dash-Link" data-match-exact-path>UI for Blazor</a> <a href="/aspnet-core-ui" class="TK-Dash-Link" data-match-exact-path>UI for ASP.NET Core</a> <a href="/aspnet-mvc" class="TK-Dash-Link" data-match-exact-path>UI for ASP.NET MVC</a> <a href="/products/aspnet-ajax.aspx" class="TK-Dash-Link" data-match-exact-path>UI for ASP.NET AJAX</a></div><p class="TK-Dash-Title">Cross-Platform</p><div class="TK-Dash-Links"><a href="/maui-ui" class="TK-Dash-Link" data-match-exact-path>UI for MAUI</a></div></div></div><div class="TK-col-12 TK-Dash-Col--IndentedInner"><p class="TK-Dash-Title">Desktop</p><div class="TK-Dash-Links"><a href="/products/winforms.aspx" class="TK-Dash-Link" data-match-exact-path>UI for WinForms</a> <a href="/products/wpf/overview.aspx" class="TK-Dash-Link" data-match-exact-path>UI for WPF</a> <a href="/winui" class="TK-Dash-Link" data-match-exact-path>UI for Win UI</a></div><p class="TK-Dash-Title">Reporting and Documents</p><div class="TK-Dash-Links"><a href="/products/reporting.aspx" class="TK-Dash-Link" data-match-exact-path>Reporting</a> <a href="/report-server" class="TK-Dash-Link" data-match-exact-path>Report Server</a> <a href="/document-processing-libraries" class="TK-Dash-Link" data-match-exact-path>Document Processing Library</a></div></div></div></div><div class="TK-col-6"><div class="TK-Dash-Group"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path stroke="#000" d="m5.853 13.845.08.221.22.08 2.37.855-2.37.855-.22.08-.08.221-.856 2.37-.854-2.37-.08-.22-.221-.08L1.472 15l2.37-.855.22-.08.08-.221.855-2.37zm8.306-7.033.08.203.201.079 4.197 1.656-4.197 1.656-.2.08-.08.202-1.657 4.198-1.655-4.197-.08-.203-.202-.08L6.37 8.75l4.197-1.656.203-.08.079-.202 1.655-4.198zM4.277 2.926l.08.22.22.08 1.455.526-1.455.527-.22.08-.08.22-.527 1.454-.525-1.454-.08-.22-.221-.08-1.451-.525 1.455-.523.742-.266-.338-.338.418-1.156z"/></svg><div><p class="TK-Dash-GroupTitle">AI for Developers & IT</p><p class="TK-Dash-GroupDesc">Ensure AI program success</p></div></div><hr class="TK-Dash-Separator"><div class="TK-row"><div class="TK-col-24 TK-Dash-Col--Indented"><p class="TK-Dash-Title TK--Desktop">AI for UI</p><div class="TK-Dash-Links"><a href="/ai-components" class="TK-Dash-Link TK-New" data-match-exact-path>AI-Ready Components</a> <a href="/mcp-servers" class="TK-Dash-Link TK-New" data-match-exact-path>Agentic UI Generator</a> <a href="/mcp-servers" class="TK-Dash-Link TK-New" data-match-exact-path>Coding Assistants</a></div><p class="TK-Dash-Title TK--Desktop">AI Engineering</p><div class="TK-Dash-Links"><a href="/ai-observability-platform" class="TK-Dash-Link TK-New" data-match-exact-path>AI Observability</a></div></div></div></div></div><div class="TK-row"><div class="TK-col-24"><div class="TK-Dash-Group"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><g stroke="#000" stroke-miterlimit="10" clip-path="url(#clip0_151_4520)"><path d="M17.15 17.865H2.85m.65-9.132 6.5 3.75 6.5-3.75M10 .316v11.693"/></g><defs><clipPath id="clip0_151_4520"><path fill="#fff" d="M0 0h20v20H0z"/></clipPath></defs></svg><div><p class="TK-Dash-GroupTitle">Additional Tools</p><p class="TK-Dash-GroupDesc">Enhance the developer and designer experience</p></div></div><hr class="TK-Dash-Separator"><div class="TK-row"><div class="TK-col-6 TK-Dash-Col--Indented"><p class="TK-Dash-Title">Testing &amp; Mocking</p><div class="TK-Dash-Links"><a href="/teststudio" class="TK-Dash-Link" data-match-exact-path>Test Studio</a> <a href="/products/mocking.aspx" class="TK-Dash-Link" data-match-exact-path>JustMock</a></div></div><div class="TK-col-6 TK-Dash-Col--Indented"><p class="TK-Dash-Title">Debugging</p><div class="TK-Dash-Links"><a href="/fiddler" class="TK-Dash-Link" data-match-exact-path>Fiddler</a> <a href="/fiddler/fiddler-everywhere" class="TK-Dash-Link TK-Dash-Link--Indented" data-match-exact-path>Fiddler Everywhere</a> <a href="/fiddler/fiddler-classic" class="TK-Dash-Link TK-Dash-Link--Indented" data-match-exact-path>Fiddler Classic</a> <a href="/fiddler/fiddler-everywhere-reporter" class="TK-Dash-Link TK-Dash-Link--Indented" data-match-exact-path>Fiddler Everywhere Reporter</a> <a href="/fiddlercore" class="TK-Dash-Link TK-Dash-Link--Indented" data-match-exact-path>FiddlerCore</a></div></div><div class="TK-col-6 TK-Dash-Col--IndentedInner"><p class="TK-Dash-Title">UI Tools</p><div class="TK-Dash-Links"><a href="/themebuilder" class="TK-Dash-Link" data-match-exact-path>ThemeBuilder</a> <a href="/page-templates-and-ui-blocks" class="TK-Dash-Link" data-match-exact-path>Page Templates and Building Blocks</a></div><p class="TK-Dash-Title">CMS</p><div class="TK-Dash-Links"><a href="https://www.progress.com/sitefinity-cms" class="TK-Dash-Link" data-match-exact-path>Sitefinity</a></div></div><div class="TK-col-6 TK-Dash-Col--Indented"><p class="TK-Dash-Title">Free Tools</p><div class="TK-Dash-Links"><a href="/kendo-react-ui/free-react-components" class="TK-Dash-Link">KendoReact Free</a> <a href="https://converter.telerik.com" class="TK-Dash-Link">VB.NET to C# Converter</a> <a href="/teststudio/testing-framework" class="TK-Dash-Link" data-match-exact-path>Testing Framework</a></div></div></div></div></div><div class="TK-BtnProducts TK--Mobile"><hr class="TK-Dash-Separator"><a href="/all-products" class="TK-Dash-Featured-Link">See All Products</a></div></div></div></div></div><div class="TK-Dash-Extension TK--Mobile"></div></li></ul><div class="TK-Drawer" id="js-tlrk-nav-drawer"><ul class="TK-Context-Menu TK-Menu"><li class="TK-Menu-Item"><a href="/support/demos" class="TK-Menu-Item-Link" data-match-exact-path>Demos</a></li><li class="TK-Menu-Item"><a href="/blogs" class="TK-Menu-Item-Link" data-match-starts-with-path>Blogs</a></li><li class="TK-Menu-Item"><a href="/support" class="TK-Menu-Item-Link" data-match-exact-path data-match-pattern data-pattern="telerik.com/support/kb/aspnet-ajax|telerik.com/support/kb/silverlight|telerik.com/support/kb/justmock">Docs &amp; Support</a></li><li class="TK-Menu-Item"><a href="/purchase.aspx" class="TK-Menu-Item-Link" data-match-exact-path>Pricing</a></li></ul><ul class="TK-Aside-Menu"><li class="TK-Aside-Menu-Item TK-Aside-Menu-Button--Search"><a href="/search" class="TK-Aside-Menu-Link js-tlrk-nav-search-link" title="Search" data-match-exact-path><svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="15" height="15" viewBox="0 0 512 512" xml:space="preserve"><path d="M504.4,464L378.9,338.5c25.6-34.8,40.8-77.7,40.8-124.2c0-115.7-94.1-209.8-209.8-209.8C94.2,4.5,0,98.6,0,214.3 C0,330,94.2,424.1,209.9,424.1c50.5,0,96.9-17.9,133.1-47.8l124.5,124.5c5.1,5.1,11.8,7.6,18.4,7.6s13.3-2.5,18.4-7.6 C514.6,490.7,514.6,474.2,504.4,464z M52.2,214.3c0-87,70.7-157.7,157.7-157.7s157.7,70.7,157.7,157.7c0,41-15.7,78.3-41.4,106.4 c-0.3,0.3-0.7,0.6-1,0.9c-0.7,0.7-1.3,1.4-1.9,2.2c-28.7,29.7-68.9,48.2-113.4,48.2C122.9,372,52.2,301.3,52.2,214.3z"></path></svg></a></li><li class="TK-Aside-Menu-Item"><a href="https://store.progress.com/shopping-cart" data-empty-url="/purchase.aspx?filter&#x3D;web" class="TK-Aside-Menu-Link js-tlrk-nav-shopping-cart-counter-container" aria-label="Shopping cart" title="Shopping cart" data-match-exact-path><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M11.75 14.5a1 1 0 111-1 1 1 0 01-1 1zm-8.25 0a1 1 0 111-1 1 1 0 01-1 1zm8.18-3H4.25A1.752 1.752 0 012.5 9.75v-8a.25.25 0 00-.25-.25H.75a.75.75 0 010-1.5h1.5A1.752 1.752 0 014 1.75v.75h8.78a1.75 1.75 0 011.72 2.093l-1.1 5.5a1.754 1.754 0 01-1.72 1.407zM4 4v5.75a.25.25 0 00.25.25h7.43a.251.251 0 00.245-.2l1.1-5.5a.251.251 0 00-.245-.3z" transform="translate(.75 .75)"/></svg> <span class="TK-Aside-Menu-Link-Text">Shopping cart</span></a></li><li class="TK-Aside-Menu-Item TK--Auth TK-dn" id="js-tlrk-nav-auth-container"><button type="button" class="TK-Aside-Menu-Button"><span class="TK-Avatar"><img width="20" height="20" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="{[AvatarUrl]}" onerror="this.onerror=null;this.src='/sfimages/default-source/avatars/avatar.webp'" alt="Your Avatar" class="TK-Avatar-Media" id="js-tlrk-nav-avatar-image"> </span><span class="TK-Aside-Menu-Button-Text">Your Account <i class="TK-Arrow"></i></span></button><ul class="TK-Dropdown TK-Dropdown--Gray TK-Dropdown--Small TK-Dropdown--Mobile"><li><a href="/account" class="TK-Dropdown-Link" data-match-exact-path><span>Account Overview</span></a></li><li><a href="/account/your-licenses" class="TK-Dropdown-Link" data-match-starts-with-path><span>Your Licenses</span></a></li><li><a href="/account/downloads" class="TK-Dropdown-Link" data-match-starts-with-path><span>Downloads</span></a></li><li><a href="/account/support-center" class="TK-Dropdown-Link" data-match-starts-with-path><span>Support Center</span></a></li><li><a href="/forums/profile/mine" class="TK-Dropdown-Link" data-match-exact-path><span>Forum Profile</span></a></li><li><a href="/account/payment-methods" class="TK-Dropdown-Link" data-match-starts-with-path><span>Payment Methods</span></a></li><li><a href="/account/profile" class="TK-Dropdown-Link" data-match-exact-path><span>Edit Profile</span></a></li><li><a data-href="{[LogoutUrl]}" class="TK-Dropdown-Link" id="js-tlrk-nav-log-out" rel="nofollow"><span class="TK-Dropdown-Link-Spacer">Log out</span></a></li></ul></li><li class="TK-Aside-Menu-Item TK--Not-Auth" id="js-tlrk-nav-not-auth-container"><a href="/account" title="Your Account" class="TK-Aside-Menu-Button TK-tac" data-match-exact-path><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path xmlns="http://www.w3.org/2000/svg" d="M13.75 14.5a.751.751 0 01-.75-.75v-.5a5.75 5.75 0 10-11.5 0v.5a.75.75 0 01-1.5 0v-.5a7.175 7.175 0 011.319-4.159A7.262 7.262 0 014.69 6.476 3.717 3.717 0 013.5 3.75a3.75 3.75 0 117.5 0 3.716 3.716 0 01-1.19 2.726 7.263 7.263 0 013.371 2.615A7.175 7.175 0 0114.5 13.25v.5a.751.751 0 01-.75.75zm-6.5-13A2.25 2.25 0 109.5 3.75 2.253 2.253 0 007.25 1.5z" transform="translate(.75 .75)"/></svg> <span class="TK-Aside-Menu-Button-Text">Login</span></a></li><li class="TK-Aside-Menu-Item TK-bn"><a href="/contact" class="TK-Aside-Menu-Button TK-Button--CTA-Sec" title="Contact Us" data-match-starts-with-path><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M12.75 14.5h-11A1.752 1.752 0 010 12.753v-7.37a.092.092 0 01.005-.026.1.1 0 000-.023.782.782 0 01.01-.093.63.63 0 01.02-.071l.007-.021V5.14a.828.828 0 01.036-.088.673.673 0 01.045-.078.078.078 0 00.009-.02.069.069 0 01.01-.02.1.1 0 01.028-.019.1.1 0 00.019-.015.68.68 0 01.077-.076.124.124 0 00.015-.024.106.106 0 01.019-.016L6.2.354a1.736 1.736 0 012.1 0l5.9 4.431a.1.1 0 01.018.02.118.118 0 00.017.019.591.591 0 01.076.075.109.109 0 00.02.018.1.1 0 01.019.017.077.077 0 01.01.02.088.088 0 00.01.02c.017.026.031.053.045.078a.9.9 0 01.039.1l.007.021a.5.5 0 01.03.164.1.1 0 000 .023.092.092 0 01.005.027v7.37A1.752 1.752 0 0112.75 14.5zM1.5 6.883v5.87a.253.253 0 00.25.247h11a.253.253 0 00.249-.25V6.883L8.3 10.412a1.737 1.737 0 01-2.1 0zM7.25 1.5a.248.248 0 00-.15.053L2 5.383l5.1 3.83a.253.253 0 00.15.052.245.245 0 00.15-.053l5.1-3.829-5.1-3.83a.248.248 0 00-.15-.053z" transform="translate(.75 .75)"/></svg> <span class="TK-Aside-Menu-Button-Text">Contact Us</span></a></li><li class="TK-Aside-Menu-Item TK-bn"><a href="/download" class="TK-Button TK-Button--CTA">Get A Free Trial</a></li></ul></div><div class="TK-Drawer-Extension"></div><div class="TK-Aside TK--Mobile"><ul class="TK-Aside-Menu"><li class="TK-Aside-Menu-Item TK-Aside-Menu-Button--Search"><a href="/search" class="TK-Aside-Menu-Link js-tlrk-nav-search-link" title="Search" data-match-exact-path><svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="15" height="15" viewBox="0 0 512 512" xml:space="preserve"><path d="M504.4,464L378.9,338.5c25.6-34.8,40.8-77.7,40.8-124.2c0-115.7-94.1-209.8-209.8-209.8C94.2,4.5,0,98.6,0,214.3 C0,330,94.2,424.1,209.9,424.1c50.5,0,96.9-17.9,133.1-47.8l124.5,124.5c5.1,5.1,11.8,7.6,18.4,7.6s13.3-2.5,18.4-7.6 C514.6,490.7,514.6,474.2,504.4,464z M52.2,214.3c0-87,70.7-157.7,157.7-157.7s157.7,70.7,157.7,157.7c0,41-15.7,78.3-41.4,106.4 c-0.3,0.3-0.7,0.6-1,0.9c-0.7,0.7-1.3,1.4-1.9,2.2c-28.7,29.7-68.9,48.2-113.4,48.2C122.9,372,52.2,301.3,52.2,214.3z"></path></svg></a></li><li class="TK-Aside-Menu-Item"><button type="button" aria-label="Main Navigation" class="TK-Aside-Menu-Button TK-Aside-Menu-Button--Toggle-Drawer" id="js-tlrk-nav-drawer-button"><svg id="menu" viewBox="0 0 100 80" class="WUG-Svg WUG-Svg-Hamburger" width="22" height="16"><line x1="10" y1="40" x2="90" y2="40"></line><line x1="10" y1="40" x2="90" y2="40"></line><line x1="10" y1="40" x2="90" y2="40"></line></svg></button></li></ul></div></div></section><button type="button" class="TK-Nav-Overlay" id="js-tlrk-nav-overlay">close mobile menu</button></nav><script async type="module" src="https://d6vtbcy3ong79.cloudfront.net/telerik-navigation/3.7.42/js/index.min.mjs"></script><div id="ContentPlaceholder1_T53129E6C012_Col00" class="sf_colsIn PageWrapper no-tlrk" data-sf-element="EmptyWrapper" data-placeholder-label="EmptyWrapper"><section class="Section u-pt5 u-pb3 u-zi5 BlogsHeader" data-sf-element="Section" data-placeholder-label="Section">
  <div id="ContentPlaceholder1_T19FA31EB023_Col00" class="sf_colsIn container u-tac" data-sf-element="Section Content" data-placeholder-label="Section Content">

<a href="/blogs"><img title="Telerik blogs" src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/svg/blogs-ninjasa0020c9284b44432a37b7f0f41d28d1d.svg?sfvrsn=5bb648bd_3" alt="Telerik blogs" /></a>

  </div>
</section>
<div id="ContentPlaceholder1_T19FA31EB002_Col00" class="sf_colsIn" data-sf-element="EmptyWrapper" data-placeholder-label="EmptyWrapper"><div class="Section Section--featured u-oh u-pt10 u-pb1 tlrk u-xl-pt4 u-m-pt3" data-sf-element="Section" data-placeholder-label="Section Banner">
  <div id="ContentPlaceholder1_C140_Col00" class="sf_colsIn Section-bg Section-bg--n u-xl-ha u-bg-blue" data-sf-element="Section Background" data-placeholder-label="Section Background">

        <img loading="lazy" class="u-xl-mt2" src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/banner/blogs-hero-banner-new28a38102b09ee498fb7e2f50849a76a8a.svg?sfvrsn=76d6592e_1" title="blogs hero banner" alt="blogs hero banner"
         
          />
</div>
  <div id="ContentPlaceholder1_C140_Col01" class="sf_colsIn container" data-sf-element="Section Content" data-placeholder-label="Section Content"><div class="row u-mb8 u-xl-mb4 u-l-mb4 u-m-mb3 u-bg-" data-sf-element="Row">
  <div id="ContentPlaceholder1_C143_Col00" class="sf_colsIn col-9 u-xl-col-10" data-sf-element="Column 1" data-placeholder-label="Column 1">

<h1 class="u-c-white u-xl-mb0 u-s-mb1">Telerik &amp; Kendo UI Blog</h1>

<p class="-fs30">Your Source for .NET &amp; JavaScript Developer Info.</p></div>
</div>
<div class="row row--highlighted" data-sf-element="Row">
  <div id="ContentPlaceholder1_C146_Col00" class="sf_colsIn col-8 u-m-col-12 u-m-mb3" data-sf-element="Column 1" data-placeholder-label="Column 1">

<div class="Elevated u-br10 u-oh BlogPost-Featured u-mb0">
  <div class="Embed" style="padding-bottom: 38.7%">
    <div class="Section-bg">
	<img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-kendo-uit-light-770x298-featured.png?sfvrsn=1e75e699_2" loading="lazy" class="u-full" alt="" />
    </div>
  </div>
  <div class="u-tint-white u-p2 u-pt4 u-pr u-dfc u-xl-pt1">
    <div class="u-mb1 u-xl-mb0">
        <span>
                <a class='Tag u-fs11' href='/blogs/artificial-intelligence'>
                  AI
                </a> 
                <a class='Tag u-fs11' href='/blogs/web'>
                  Web
                </a> 
                <a class='Tag u-fs11' href='/blogs/web-blazor'>
                  Blazor
                </a> 
                <a class='Tag u-fs11' href='/blogs/web-angular'>
                  Angular
                </a> 
                <a class='Tag u-fs11' href='/blogs/web-react'>
                  React
                </a> 
        </span>
    </div>
    <h2 class="u-fs36 u-fs40 u-mb3">
      <a href='/blogs/progress-telerik-agentic-ui-generator-vs-syncfusion-agentic-ui-builder'>Progress Telerik Agentic UI Generator vs. Syncfusion Agentic UI Builder</a>
    </h2>
    <div class="Meta u-mta u-pr6 u-xl-mr2 u-s-pr4">
       <span class="u-mr055 u-pt0 u-vam">
         <div class="sfitemDetails sfdetails">
          by <a href='/blogs/author/hassan-djirdeh'>Hassan Djirdeh</a>
        </div>
       </span>
      <span class="u-ml0 u-mt1 u-mr055">
        <span class="icon-date u-fs20 u-vam"></span>
        <span class="u-vam">April 08, 2026</span>
      </span>
      <span class="u-ml0 u-mt1">10 min read</span>
      <a href="#" class="ShareButton js-open-sharer u-pb1 u-mt1 u-vam">
        <span class="icon-share u-fs20 u-vam"></span>
        <span class="u-vam">Share</span>
      </a>
      <div class="Blogs-Share">     
        <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-url='http://www.telerik.com/blogs/progress-telerik-agentic-ui-generator-vs-syncfusion-agentic-ui-builder'> <span></span> </a>
        <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-url='http://www.telerik.com/blogs/progress-telerik-agentic-ui-generator-vs-syncfusion-agentic-ui-builder'> <span></span> </a> 
        <a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-url='http://www.telerik.com/blogs/progress-telerik-agentic-ui-generator-vs-syncfusion-agentic-ui-builder'> <span></span> </a>
        <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/progress-telerik-agentic-ui-generator-vs-syncfusion-agentic-ui-builder' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
      </div>
    </div>
  </div>
</div></div>
  <div id="ContentPlaceholder1_C146_Col01" class="sf_colsIn col-4 u-m-col-12" data-sf-element="Column 2" data-placeholder-label="Column 2">




<div class="Elevated u-br10 u-oh BlogPost-Featured u-mb0">
  <div class="Embed" style="padding-bottom: 38.7%">
    <div class="Section-bg">
  <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/all-mascotst-dark-770x298-featured.png?sfvrsn=b3241b2e_2" loading="lazy" class="u-full" alt="" />
    </div>
  </div>
  <div class="u-tint-white u-p2 u-pt0 u-pr u-dfc">
    <div>
        <span>
                <a class='Tag u-fs11' href='/blogs/artificial-intelligence'>
                  AI
                </a> 
                <a class='Tag u-fs11' href='/blogs/web'>
                  Web
                </a> 
                <a class='Tag u-fs11' href='/blogs/design'>
                  Design
                </a> 
        </span>
    </div>
    <h2 class="u-fs22 u-mb2 h3">
      <a href='/blogs/workflows-age-ai-how-design-development-changed-what-comes-next'>Workflows in the Age of AI: How Design &amp; Development Workflows Changed in 2025—and What Comes Next</a>
    </h2>
    <div class="Meta u-mta u-pr2">
       <span class="u-mr055 u-mt1 u-vam">
         <div class="sfitemDetails sfdetails">
          by <a href='/blogs/author/kathryn-grayson-nanz'>Kathryn Grayson Nanz</a>
        </div>
       </span>
      <span class="u-ml0 u-mt1 u-vam u-mr055">
        <span class="icon-date u-fs20 u-vam"></span>
        <span class="u-vam">April 07, 2026</span>
      </span>
      <span class="u-mt1 u-vam u-ml0">3 min read</span>
      <a href="#" class="ShareButton icon-share u-fs20 js-open-sharer u-pb1 u-mt1 u-vam" title="share"></a>
      <div class="Blogs-Share">     
        <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-url='http://www.telerik.com/blogs/workflows-age-ai-how-design-development-changed-what-comes-next'  > <span></span> </a>
        <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-url='http://www.telerik.com/blogs/workflows-age-ai-how-design-development-changed-what-comes-next'    > <span></span> </a> 
        <a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-url='http://www.telerik.com/blogs/workflows-age-ai-how-design-development-changed-what-comes-next'    > <span></span> </a>
        <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/workflows-age-ai-how-design-development-changed-what-comes-next' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
      </div>
    </div>
  </div>
</div>




<div class="Elevated u-br10 u-oh BlogPost-Featured u-mb0">
  <div class="Embed" style="padding-bottom: 38.7%">
    <div class="Section-bg">
  <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/ait-telerik-tb-770x298-featured.png?sfvrsn=2ae9d57e_4" loading="lazy" class="u-full" alt="AI with Telerik Ninja" />
    </div>
  </div>
  <div class="u-tint-white u-p2 u-pt0 u-pr u-dfc">
    <div>
        <span>
                <a class='Tag u-fs11' href='/blogs/artificial-intelligence'>
                  AI
                </a> 
                <a class='Tag u-fs11' href='/blogs/web'>
                  Web
                </a> 
        </span>
    </div>
    <h2 class="u-fs22 u-mb2 h3">
      <a href='/blogs/what-weve-learned-designing-dev-tools-ai'>What We’ve Learned Designing Dev Tools in the Age of AI</a>
    </h2>
    <div class="Meta u-mta u-pr2">
       <span class="u-mr055 u-mt1 u-vam">
         <div class="sfitemDetails sfdetails">
          by <a href='/blogs/author/alyssa-nicoll'>Alyssa Nicoll</a>
        </div>
       </span>
      <span class="u-ml0 u-mt1 u-vam u-mr055">
        <span class="icon-date u-fs20 u-vam"></span>
        <span class="u-vam">April 08, 2026</span>
      </span>
      <span class="u-mt1 u-vam u-ml0">7 min read</span>
      <a href="#" class="ShareButton icon-share u-fs20 js-open-sharer u-pb1 u-mt1 u-vam" title="share"></a>
      <div class="Blogs-Share">     
        <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-url='http://www.telerik.com/blogs/what-weve-learned-designing-dev-tools-ai'  > <span></span> </a>
        <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-url='http://www.telerik.com/blogs/what-weve-learned-designing-dev-tools-ai'    > <span></span> </a> 
        <a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-url='http://www.telerik.com/blogs/what-weve-learned-designing-dev-tools-ai'    > <span></span> </a>
        <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/what-weve-learned-designing-dev-tools-ai' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
      </div>
    </div>
  </div>
</div></div>
</div>
</div>
</div>
</div>
<section class="Section u-pt5 u-pb0 u-zi2" data-sf-element="Section" data-placeholder-label="Section">
  <div id="ContentPlaceholder1_T19FA31EB024_Col00" class="sf_colsIn container" data-sf-element="Section Content" data-placeholder-label="Section Content"><div id="ContentPlaceholder1_T19FA31EB004_Col00" class="sf_colsIn" data-sf-element="GridContainer" data-placeholder-label="GridContainer"><div class="BlogsLayout row row--equal u-small-db" data-sf-element="Row">
  <div id="ContentPlaceholder1_T19FA31EB003_Col00" class="sf_colsIn col-9" data-sf-element="Column 1" data-placeholder-label="Column 1">

            <div class="sfContentBlock">
                <h2 class="BlogSection-Title u-mt0 h4">Latest</h2>
            </div>


<div id="scrollAnchor"></div>     
<div>
    <ul class="List BlogPost-list" itemtype="http://schema.org/Blog">

          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/artificial-intelligence'>
                              AI
                            </a> 
                        <a class='Tag' href='/blogs/productivity'>
                              Productivity
                            </a> 
                        <a class='Tag' href='/blogs/productivity-document-processing'>
                              Document Processing
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/creating-custom-ai-agent-telerik-tools-6-embedding-conversational-invisible-agents' >Creating a Custom AI Agent with Telerik Tools 6: Embedding Conversational and Invisible Agents</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-document-processingt2-light-270x123-thumbnail.png?sfvrsn=e2550dce_2" alt="" title="Telerik-Document-ProcessingT2-light-270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Different kinds of AI-enabled applications need different UIs. Progress has the components you need for all of them.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/peter-vogel.jpg?sfvrsn=7b921c95_1' alt='Peter Vogel' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/peter-vogel'>Peter Vogel</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 13, 2026
                                </span>
                                <span class="u-ml0 u-mt1">10 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Creating a Custom AI Agent with Telerik Tools 6: Embedding Conversational and Invisible Agents' data-sharer-url='http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-6-embedding-conversational-invisible-agents' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Creating a Custom AI Agent with Telerik Tools 6: Embedding Conversational and Invisible Agents'  data-sharer-url='http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-6-embedding-conversational-invisible-agents'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Creating a Custom AI Agent with Telerik Tools 6: Embedding Conversational and Invisible Agents'  data-sharer-url='http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-6-embedding-conversational-invisible-agents' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-6-embedding-conversational-invisible-agents' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/web'>
                              Web
                            </a> 
                        <a class='Tag' href='/blogs/web-blazor'>
                              Blazor
                            </a> 
                        <a class='Tag' href='/blogs/web-aspnet-core'>
                              ASP.NET Core
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/streaming-server-events-sse-blazor' >Streaming Server Events with SSE and Blazor</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-blazort6-light-270x123-thumbnail.png?sfvrsn=a3080c0b_2" alt="" title="Telerik-BlazorT6-light-270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Understand the SSE standard, the .NET 10  changes to simplify SSE endpoints and how to add real-time events to your Blazor clients.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/authors/hectorperez_1000.png?sfvrsn=28c464ed_2' alt='' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/hector-perez'>H&#233;ctor P&#233;rez</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 12, 2026
                                </span>
                                <span class="u-ml0 u-mt1">9 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Streaming Server Events with SSE and Blazor' data-sharer-url='http://www.telerik.com/blogs/streaming-server-events-sse-blazor' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Streaming Server Events with SSE and Blazor'  data-sharer-url='http://www.telerik.com/blogs/streaming-server-events-sse-blazor'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Streaming Server Events with SSE and Blazor'  data-sharer-url='http://www.telerik.com/blogs/streaming-server-events-sse-blazor' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/streaming-server-events-sse-blazor' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/mobile'>
                              Mobile
                            </a> 
                        <a class='Tag' href='/blogs/mobile-net-maui'>
                              .NET MAUI/Hybrid
                            </a> 
                        <a class='Tag' href='/blogs/desktop'>
                              Desktop
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/how-to-verify-network-connectivity-net-maui' >How to Verify Network Connectivity in .NET MAUI</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/net-mauit2-dark-270x123-thumbnail.png?sfvrsn=c0dca3de_2" alt="" title="NET-MAUIT2-dark-270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Learn the key steps to checking network connectivity in the various platforms available to your .NET MAUI app.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/leomarisreyesr.jpg?sfvrsn=cdaad6ea_0' alt='LeomarisReyes' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/leomaris-reyes'>Leomaris Reyes</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 11, 2026
                                </span>
                                <span class="u-ml0 u-mt1">6 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='How to Verify Network Connectivity in .NET MAUI' data-sharer-url='http://www.telerik.com/blogs/how-to-verify-network-connectivity-net-maui' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='How to Verify Network Connectivity in .NET MAUI'  data-sharer-url='http://www.telerik.com/blogs/how-to-verify-network-connectivity-net-maui'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='How to Verify Network Connectivity in .NET MAUI'  data-sharer-url='http://www.telerik.com/blogs/how-to-verify-network-connectivity-net-maui' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/how-to-verify-network-connectivity-net-maui' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/web'>
                              Web
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/how-build-semantic-search-documentation-nestjs-qdrant-xenova' >How to Build Semantic Search for Documentation with NestJS, Qdrant and Xenova</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/how-tot2-light-270x123.png?sfvrsn=9f40563e_3" alt="" title="How-ToT2-light-270x123"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                In this post, we’ll build a semantic documentation search API that lets users ask natural-language questions instead of matching exact keywords.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/authors/chris-nwamba.jpg?sfvrsn=4b029463_2' alt='' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/christian-nwamba'>Christian Nwamba</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 08, 2026
                                </span>
                                <span class="u-ml0 u-mt1">15 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='How to Build Semantic Search for Documentation with NestJS, Qdrant and Xenova' data-sharer-url='http://www.telerik.com/blogs/how-build-semantic-search-documentation-nestjs-qdrant-xenova' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='How to Build Semantic Search for Documentation with NestJS, Qdrant and Xenova'  data-sharer-url='http://www.telerik.com/blogs/how-build-semantic-search-documentation-nestjs-qdrant-xenova'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='How to Build Semantic Search for Documentation with NestJS, Qdrant and Xenova'  data-sharer-url='http://www.telerik.com/blogs/how-build-semantic-search-documentation-nestjs-qdrant-xenova' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/how-build-semantic-search-documentation-nestjs-qdrant-xenova' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/design'>
                              Design
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/design-principles-unpacked-no-4-balance' >Design Principles Unpacked, No. 4: Balance</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/designt-dark-270x123.png?sfvrsn=72088654_4" alt="" title="DesignT-dark-270x123"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Balance creates stability, but it's not the finish line. Harmony composes differences toward a shared purpose—in layouts, teams and life.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/authors/tb-picture-teonbeijl.png?sfvrsn=38da3c26_2' alt='' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/teon-beijl'>Teon Beijl</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 07, 2026
                                </span>
                                <span class="u-ml0 u-mt1">4 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Design Principles Unpacked, No. 4: Balance' data-sharer-url='http://www.telerik.com/blogs/design-principles-unpacked-no-4-balance' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Design Principles Unpacked, No. 4: Balance'  data-sharer-url='http://www.telerik.com/blogs/design-principles-unpacked-no-4-balance'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Design Principles Unpacked, No. 4: Balance'  data-sharer-url='http://www.telerik.com/blogs/design-principles-unpacked-no-4-balance' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/design-principles-unpacked-no-4-balance' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/web'>
                              Web
                            </a> 
                        <a class='Tag' href='/blogs/web-aspnet-core'>
                              ASP.NET Core
                            </a> 
                        <a class='Tag' href='/blogs/productivity'>
                              Productivity
                            </a> 
                        <a class='Tag' href='/blogs/productivity-testing'>
                              Testing
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/creating-more-realistic-tests-memory-databases-aspnet-core' >Creating More Realistic Tests with In-Memory Databases in ASP.NET Core</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/justmockt2-light-tb-270x123-thumbnail.png?sfvrsn=c9af693f_2" alt="" title="JustMockT2-light-TB 270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Testing ASP.NET Core APIs with in-memory SQLite and JustMock enables validation of real-world scenarios like pagination, keys and rules without a real database.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/assis-zang-bio.jpg?sfvrsn=330c48e1_2' alt='assis-zang-bio' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/assis-zang'>Assis Zang</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 06, 2026
                                </span>
                                <span class="u-ml0 u-mt1">10 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Creating More Realistic Tests with In-Memory Databases in ASP.NET Core' data-sharer-url='http://www.telerik.com/blogs/creating-more-realistic-tests-memory-databases-aspnet-core' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Creating More Realistic Tests with In-Memory Databases in ASP.NET Core'  data-sharer-url='http://www.telerik.com/blogs/creating-more-realistic-tests-memory-databases-aspnet-core'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Creating More Realistic Tests with In-Memory Databases in ASP.NET Core'  data-sharer-url='http://www.telerik.com/blogs/creating-more-realistic-tests-memory-databases-aspnet-core' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/creating-more-realistic-tests-memory-databases-aspnet-core' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/artificial-intelligence'>
                              AI
                            </a> 
                        <a class='Tag' href='/blogs/productivity'>
                              Productivity
                            </a> 
                        <a class='Tag' href='/blogs/productivity-document-processing'>
                              Document Processing
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/creating-custom-ai-agent-telerik-tools-5-creating-interactive-ui-javascript' >Creating a Custom AI Agent with Telerik Tools 5: Creating an Interactive UI in JavaScript</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-document-processingt2-dark-270x123-thumbnail.png?sfvrsn=f25cf4cc_2" alt="" title="Telerik-Document-ProcessingT2-dark-270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                If you’re going to give your users access to an AI-enabled backend in JavaScript, you need to give them an AI-appropriate frontend.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/peter-vogel.jpg?sfvrsn=7b921c95_1' alt='Peter Vogel' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/peter-vogel'>Peter Vogel</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 06, 2026
                                </span>
                                <span class="u-ml0 u-mt1">10 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Creating a Custom AI Agent with Telerik Tools 5: Creating an Interactive UI in JavaScript' data-sharer-url='http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-5-creating-interactive-ui-javascript' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Creating a Custom AI Agent with Telerik Tools 5: Creating an Interactive UI in JavaScript'  data-sharer-url='http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-5-creating-interactive-ui-javascript'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Creating a Custom AI Agent with Telerik Tools 5: Creating an Interactive UI in JavaScript'  data-sharer-url='http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-5-creating-interactive-ui-javascript' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-5-creating-interactive-ui-javascript' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/web'>
                              Web
                            </a> 
                        <a class='Tag' href='/blogs/web-blazor'>
                              Blazor
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/routing-management-creating-notfound-pages-blazor' >Routing Management and Creating NotFound Pages in Blazor</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/blazort6-dark-270x123-thumbnail.png?sfvrsn=c25e2a9_2" alt="" title="BlazorT6-dark-270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Route handling got better in .NET 10. Let’s see how to create context for managing information on an error page and show users specific error pages.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/authors/hectorperez_1000.png?sfvrsn=28c464ed_2' alt='' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/hector-perez'>H&#233;ctor P&#233;rez</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 05, 2026
                                </span>
                                <span class="u-ml0 u-mt1">7 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Routing Management and Creating NotFound Pages in Blazor' data-sharer-url='http://www.telerik.com/blogs/routing-management-creating-notfound-pages-blazor' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Routing Management and Creating NotFound Pages in Blazor'  data-sharer-url='http://www.telerik.com/blogs/routing-management-creating-notfound-pages-blazor'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Routing Management and Creating NotFound Pages in Blazor'  data-sharer-url='http://www.telerik.com/blogs/routing-management-creating-notfound-pages-blazor' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/routing-management-creating-notfound-pages-blazor' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/mobile'>
                              Mobile
                            </a> 
                        <a class='Tag' href='/blogs/mobile-net-maui'>
                              .NET MAUI/Hybrid
                            </a> 
                        <a class='Tag' href='/blogs/desktop'>
                              Desktop
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/integrating-haptic-feedback-net-maui' >Integrating Haptic Feedback in .NET MAUI</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/net-mauit2-light-270x123-thumbnail.png?sfvrsn=fcf87593_2" alt="" title="NET-MAUIT2-light-270x123 Thumbnail"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Learn how to give your users interactive feedback with long or short haptic vibration in your .NET MAUI application.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/leomarisreyesr.jpg?sfvrsn=cdaad6ea_0' alt='LeomarisReyes' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/leomaris-reyes'>Leomaris Reyes</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  May 04, 2026
                                </span>
                                <span class="u-ml0 u-mt1">4 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='Integrating Haptic Feedback in .NET MAUI' data-sharer-url='http://www.telerik.com/blogs/integrating-haptic-feedback-net-maui' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='Integrating Haptic Feedback in .NET MAUI'  data-sharer-url='http://www.telerik.com/blogs/integrating-haptic-feedback-net-maui'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='Integrating Haptic Feedback in .NET MAUI'  data-sharer-url='http://www.telerik.com/blogs/integrating-haptic-feedback-net-maui' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/integrating-haptic-feedback-net-maui' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
          <li itemprop="blogPost" >
              <div class="BlogPost">
                <div class="Info">
                      <span>
                        <a class='Tag' href='/blogs/artificial-intelligence'>
                              AI
                            </a> 
                      </span>
                  <h3 class="h2 u-mb3 u-fs31">
                      <a href='/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills' >AI Crash Course: MCP Servers, Agents, AI Assistants and Skills</a>
                     
                  </h3>
                      <div class="row">
                        <div class="col-4 -l-full -l-mb2">
                           <div class="post-thumb">
                             <img src="https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/ait-kendo-dark-list-image-540x246.png?sfvrsn=a3b023a4_2" alt="" title="AIT-Kendo-Dark-List Image 540x246"  style=height:auto;width:100%;max-height:220px;max-width:870px; />                              
                           </div>
                        </div>
                        <div class="col-8 -l-full">
                             <div class="u-pb2" >
                                Many of the popular developer tools and libraries now offer their own MCP (or Model Context Protocol) servers, AI agents or assistants or AI skills—but what’s the difference between these, and where do the fit into your AI workflow? Let’s break it down.
                             </div>
                              <div class="Meta">
                                   <span class="u-mr055">
                                    <div class="sfitemDetails sfdetails">
                                        <img src='https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/kathryn-grayson-nanz.jpg?sfvrsn=d89eb2cb_1' alt='' loading="lazy" width="32" height="32" />
                                      by <a href='/blogs/author/kathryn-grayson-nanz'>Kathryn Grayson Nanz</a>
                                    </div>
                                   </span>
                                <span class="icon-date u-ml0 u-mr055">
                                  April 30, 2026
                                </span>
                                <span class="u-ml0 u-mt1">5 min read</span>
                                <span class="u-pr share-icon" aria-label="Social share">
                                  <a href="#" class="js-open-sharer icon-share"> Share</a>
                                  <div class="Blogs-Share js-count-them">
                                    <a href="#" class="icon-facebook-full js-share-facebook" data-tlrk-plugin="sharer" data-sharer-media="facebook" data-sharer-text='AI Crash Course: MCP Servers, Agents, AI Assistants and Skills' data-sharer-url='http://www.telerik.com/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills' > <span></span> </a>
                                    <a href="#" class="icon-twitter-full js-share-twitter" data-tlrk-plugin="sharer" data-sharer-media="twitter" data-sharer-text='AI Crash Course: MCP Servers, Agents, AI Assistants and Skills'  data-sharer-url='http://www.telerik.com/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills'> <span></span> </a>
                                    <br><a href="#" class="icon-linkedin-full  js-share-linkedin"  data-tlrk-plugin="sharer" data-sharer-media="linkedin" data-sharer-text='AI Crash Course: MCP Servers, Agents, AI Assistants and Skills'  data-sharer-url='http://www.telerik.com/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills' > <span></span> </a>
                                    <a href='https://www.reddit.com/submit?url=http://www.telerik.com/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills' class="icon-reddit-full js-share-reddit popupMeJS" > <span></span> </a>
                                  </div>
                                </span>
                              </div>
                          </div>
                       </div>
                </div>
              </div>
            </li>
    </ul>
  
   <style>
         .post-thumb {
           height: 123px;
           overflow: hidden;
           max-width: 270px;
         }
         .post-thumb .top-image {
          /*
           min-height: 123px !important;
           min-width: 100% !important;
           width: auto !important;
           min-height: 123px !important;
           width: auto !important;
           margin-top: 0 !important;
           height: 123px !important;
           max-width: inherit;
           margin-left: -40%;
          */
                min-height: 123px !important;
                min-width: 100% !important;
                width: auto !important;
                margin-left: -40% !important;
                margin-top: 0 !important;
                height: 123px !important;
                max-width: 820px;
         }
         .BlogPost {
           padding-bottom: 50px;
         }
        .BlogPost .Blogs-Share a {
          z-index: 1;
          background-color: #fff;
          width: 40px !important;
          height: 40px !important;
          line-height: 40px !important;
        }

        .BlogPost [class*=" icon-"]:before, .BlogPost [class^=icon-]:before {
        font-size: 18px;
        }



        @media screen and (max-width: 1024px) {
          .-l-full {
            width: 100%;
          }
          .-l-mb2 {
            margin-bottom: 20px;
          }



        }



        @media screen and (max-width: 800px) {
          .share-icon {
              display: block !important;
              margin-left: 0 !important;
              margin-top: 10px !important;
          }

          .BlogPost .Meta .icon-date {
            display: block;
            margin-left: 0;
            margin-top: 15px;
          }



        }

        @media screen and (max-width: 420px) {
          .share-icon {
              display: block !important;
              margin-left: 0 !important;
              margin-top: 10px !important;
          }
          .BlogPost {
           padding-bottom: 30px;
          }


        }
      </style>
      <script>
        
        document.addEventListener("DOMContentLoaded", function(){



           $('.BlogPost, .BlogPost-Featured').on('click', '.js-open-sharer', function (e) {

             e.preventDefault();
             var $sharer = $(this).next('.Blogs-Share');
             if($sharer.css('display') != 'block') {
               $sharer.fadeIn();
               $(this).addClass('is-active-icon-share');
             } else {
               $sharer.fadeOut();
               $(this).removeClass('is-active-icon-share');
             }



         $('.popupMeJS').on('click', function(event) {
         var width  = 575,
         height = 400,
         left   = ($(window).width()  - width)  / 2,
         top    = ($(window).height() - height) / 2,
         urlToOpen    = $(this).attr('href') ,
         opts   = 'scrollbars=1,status=1' +
         ',width='  + width  +
         ',height=' + height +
         ',top='    + top    +
         ',left='   + left;

         window.open(urlToOpen, 'share', opts);
         return false;
         });


         });
         $(document).ready(function(){
           var currentUrl = window.location.href;
           var urlContainPageQuery = currentUrl.indexOf('?page') > -1;
           var urlContainTag = currentUrl.indexOf('/tag/') > -1;
           var urlContainAuthor = currentUrl.indexOf('/author/') > -1;
           if(urlContainPageQuery && !urlContainTag && !urlContainAuthor){
             var offTop = $('#scrollAnchor').offset().top - 130;
             $('html, body').scrollTop(offTop);
             $('html, body').animate({scrollTop:offTop + 1}, 'fast'); // IE bugfix
           }
         });
          
          
}); 
         
      </script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Blog","blogPost":[{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-6-embedding-conversational-invisible-agents"},"headline":"Creating a Custom AI Agent with Telerik Tools 6: Embedding Conversational and Invisible Agents","description":"Different kinds of AI-enabled applications need different UIs. Progress has the components you need for all of them.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-document-processingt2-light-1200x303-blog-cover---top-image.png?sfvrsn=d41822e4_2","height":303,"width":1200},"datePublished":"2026-05-13","dateModified":"2026-05-13","author":{"@type":"Person","name":"Peter Vogel"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/streaming-server-events-sse-blazor"},"headline":"Streaming Server Events with SSE and Blazor","description":"Understand the SSE standard, the .NET 10  changes to simplify SSE endpoints and how to add real-time events to your Blazor clients.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-blazort6-light-1200x303-blog-cover---top-image.png?sfvrsn=173061b9_2","height":303,"width":1200},"datePublished":"2026-05-12","dateModified":"2026-05-12","author":{"@type":"Person","name":"Héctor Pérez"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/how-to-verify-network-connectivity-net-maui"},"headline":"How to Verify Network Connectivity in .NET MAUI","description":"Learn the key steps to checking network connectivity in the various platforms available to your .NET MAUI app.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/net-mauit2-dark-1200x303-blog-cover---top-image.png?sfvrsn=59ddbd94_2","height":303,"width":1200},"datePublished":"2026-05-11","dateModified":"2026-05-11","author":{"@type":"Person","name":"Leomaris Reyes"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/how-build-semantic-search-documentation-nestjs-qdrant-xenova"},"headline":"How to Build Semantic Search for Documentation with NestJS, Qdrant and Xenova","description":"In this post, we’ll build a semantic documentation search API that lets users ask natural-language questions instead of matching exact keywords.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/how-tot2-light-1200x303.png?sfvrsn=54fc2ebe_4","height":303,"width":1200},"datePublished":"2026-05-08","dateModified":"2026-05-08","author":{"@type":"Person","name":"Christian Nwamba"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/design-principles-unpacked-no-4-balance"},"headline":"Design Principles Unpacked, No. 4: Balance","description":"Balance creates stability, but it's not the finish line. Harmony composes differences toward a shared purpose—in layouts, teams and life.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/designt-dark-1200x303.png?sfvrsn=8a493527_4","height":303,"width":1200},"datePublished":"2026-05-07","dateModified":"2026-05-07","author":{"@type":"Person","name":"Teon Beijl"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/creating-more-realistic-tests-memory-databases-aspnet-core"},"headline":"Creating More Realistic Tests with In-Memory Databases in ASP.NET Core","description":"Testing ASP.NET Core APIs with in-memory SQLite and JustMock enables validation of real-world scenarios like pagination, keys and rules without a real database.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/justmockt2-light-tb-1200x303-blog-cover---top-image.png?sfvrsn=14d7b26c_1","height":303,"width":1200},"datePublished":"2026-05-06","dateModified":"2026-05-06","author":{"@type":"Person","name":"Assis Zang"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/creating-custom-ai-agent-telerik-tools-5-creating-interactive-ui-javascript"},"headline":"Creating a Custom AI Agent with Telerik Tools 5: Creating an Interactive UI in JavaScript","description":"If you’re going to give your users access to an AI-enabled backend in JavaScript, you need to give them an AI-appropriate frontend.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/telerik-document-processingt2-dark-1200x303-blog-cover---top-image.png?sfvrsn=2ab541bd_2","height":303,"width":1200},"datePublished":"2026-05-06","dateModified":"2026-05-06","author":{"@type":"Person","name":"Peter Vogel"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/routing-management-creating-notfound-pages-blazor"},"headline":"Routing Management and Creating NotFound Pages in Blazor","description":"Route handling got better in .NET 10. Let’s see how to create context for managing information on an error page and show users specific error pages.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/blazort6-dark-1200x303-blog-cover---top-image.png?sfvrsn=7781f2e2_2","height":303,"width":1200},"datePublished":"2026-05-05","dateModified":"2026-05-05","author":{"@type":"Person","name":"Héctor Pérez"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/integrating-haptic-feedback-net-maui"},"headline":"Integrating Haptic Feedback in .NET MAUI","description":"Learn how to give your users interactive feedback with long or short haptic vibration in your .NET MAUI application.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/net-mauit2-light-1200x303-blog-cover---top-image.png?sfvrsn=c25f5cf0_2","height":303,"width":1200},"datePublished":"2026-05-04","dateModified":"2026-05-04","author":{"@type":"Person","name":"Leomaris Reyes"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}},{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.telerik.com/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills"},"headline":"AI Crash Course: MCP Servers, Agents, AI Assistants and Skills","description":"Let’s sort out the differences between MCP servers, AI agents or assistants, and AI skills.","image":{"@type":"ImageObject","url":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/templates/ait-kendo-dark-top-image-1200x303.png?sfvrsn=d652e359_2","height":303,"width":1200},"datePublished":"2026-04-30","dateModified":"2026-04-30","author":{"@type":"Person","name":"Kathryn Grayson Nanz"},"publisher":{"@type":"Organization","name":"Telerik","alternateName":"Телерик","url":"http://www.telerik.com/","sameAs":["https://www.facebook.com/Telerik","https://twitter.com/Telerik","https://plus.google.com/+Telerik","https://www.linkedin.com/company/telerik","https://github.com/telerik","https://www.youtube.com/user/TelerikInc"],"logo":{"@type":"ImageObject","url":"https://telerik-media.s3.amazonaws.com/assets/progress-telerik-logo-black.png"}}}]}</script>
  



  <div class="TK-Pager TK-Pager--Server TK-Pager--Has-Next ">

  <div class="TK-Pager-Links">
                <a href="https://www.telerik.com/blogs?page=1" class="TK-Pager-Link is-active" data-page="1">1</a>
          <a href="https://www.telerik.com/blogs?page=2" class="TK-Pager-Link" data-page="2">2</a>
          <a href="https://www.telerik.com/blogs?page=3" class="TK-Pager-Link" data-page="3">3</a>
          <a href="https://www.telerik.com/blogs?page=4" class="TK-Pager-Link" data-page="4">4</a>
          <a href="https://www.telerik.com/blogs?page=5" class="TK-Pager-Link" data-page="5">5</a>
          <a href="https://www.telerik.com/blogs?page=6" class="TK-Pager-Link" data-page="6">6</a>
          <a href="https://www.telerik.com/blogs?page=7" class="TK-Pager-Link" data-page="7">7</a>
          <a href="https://www.telerik.com/blogs?page=8" class="TK-Pager-Link" data-page="8">8</a>
          <a href="https://www.telerik.com/blogs?page=9" class="TK-Pager-Link" data-page="9">9</a>
          <a href="https://www.telerik.com/blogs?page=10" class="TK-Pager-Link" data-page="10">10</a>
                <a href="https://www.telerik.com/blogs?page=11" class="TK-Pager-Link" data-page="11">...</a>
  </div>

      <div class="TK-Pager-Next">
        <a href="https://www.telerik.com/blogs?page=2" class="TK-Pager-Next-Link" data-page="2" aria-label="Next">Next</a>
      </div>
  </div>
  
</div></div>
  <div id="ContentPlaceholder1_T19FA31EB003_Col01" class="sf_colsIn col-3" data-sf-element="Column 2" data-placeholder-label="Column 2"><div id="ContentPlaceholder1_T19FA31EB022_Col00" class="sf_colsIn Sidebar" data-sf-element="EmptyWrapper" data-placeholder-label="EmptyWrapper">






<h5 class="u-ttu u-ff-sans2 u-fs18 u-mb2">Topics</h5>					<a href="/blogs/web">Web</a>
			<details class="BlogPost-Topics-Menu" >
				<summary>
					Web
				</summary>
				<ul class="List">
						<li>
							<a href="/blogs/web-blazor">Blazor</a>
						</li>
						<li>
							<a href="/blogs/web-aspnet-core">ASP.NET Core</a>
						</li>
						<li>
							<a href="/blogs/web-aspnet-mvc">ASP.NET MVC</a>
						</li>
						<li>
							<a href="/blogs/web-aspnet-ajax">ASP.NET AJAX</a>
						</li>
						<li>
							<a href="/blogs/web-angular">Angular</a>
						</li>
						<li>
							<a href="/blogs/web-react">React</a>
						</li>
						<li>
							<a href="/blogs/web-jquery">jQuery</a>
						</li>
						<li>
							<a href="/blogs/web-vue">Vue</a>
						</li>
				</ul>
			</details>
			<a href="/blogs/mobile">Mobile</a>
			<details class="BlogPost-Topics-Menu" >
				<summary>
					Mobile
				</summary>
				<ul class="List">
						<li>
							<a href="/blogs/mobile-net-maui">.NET MAUI/Hybrid</a>
						</li>
				</ul>
			</details>
			<a href="/blogs/desktop">Desktop</a>
			<details class="BlogPost-Topics-Menu" >
				<summary>
					Desktop
				</summary>
				<ul class="List">
						<li>
							<a href="/blogs/desktop-blazor-net-maui">.NET MAUI/Blazor Hybrid</a>
						</li>
						<li>
							<a href="/blogs/desktop-wpf">WPF</a>
						</li>
						<li>
							<a href="/blogs/desktop-winforms">WinForms</a>
						</li>
						<li>
							<a href="/blogs/desktop-winui">WinUI</a>
						</li>
				</ul>
			</details>
			<a href="/blogs/design">Design</a>
			<details class="BlogPost-Topics-Menu" >
				<summary>
					Design
				</summary>
				<ul class="List">
						<li>
							<a href="/blogs/design-ux">UX</a>
						</li>
						<li>
							<a href="/blogs/design-systems">Design Systems</a>
						</li>
				</ul>
			</details>
			<a href="/blogs/productivity">Productivity</a>
			<details class="BlogPost-Topics-Menu" >
				<summary>
					Productivity
				</summary>
				<ul class="List">
						<li>
							<a href="/blogs/productivity-reporting">Reporting</a>
						</li>
						<li>
							<a href="/blogs/productivity-testing">Testing</a>
						</li>
						<li>
							<a href="/blogs/productivity-debugging">Debugging</a>
						</li>
						<li>
							<a href="/blogs/productivity-document-processing">Document Processing</a>
						</li>
				</ul>
			</details>
			<a href="/blogs/people">People</a>
			<details class="BlogPost-Topics-Menu" >
				<summary>
					People
				</summary>
				<ul class="List">
						<li>
							<a href="/blogs/people-accessibility">Accessibility</a>
						</li>
						<li>
							<a href="/blogs/people-humanity">Humanity</a>
						</li>
				</ul>
			</details>
			<div class="BlogPost-Topics-Menu">
				<a href="/blogs/release">Release</a>
			</div>
			<div class="BlogPost-Topics-Menu">
				<a href="/blogs/artificial-intelligence">AI</a>
			</div>

<aside class="SearchAside">
  <tk-site-search
    data-redirect='true'
    data-tag-input-placeholder='search blogs...'
    data-tag-input-button-class='TK-Tag-Input-Aside-Button'
    data-redirect-uri='/blogs/search?filter=source%3Dtelerik.com/blogs'>
  </tk-site-search>
</aside>





  <aside class="Blogs-Share">
    <h5 class="u-ttu u-ff-sans2 u-fs18 u-mb2 Sidebar-follow-us">Follow us</h5>
    <a aria-label="facebook" alt="Facebook social share icon" title="Facebook social share icon" href="https://www.facebook.com/Telerik" class="icon-facebook-full"></a>
    <a aria-label="twitter" alt="Twitter social share icon" title="Twitter social share icon" href="https://twitter.com/telerik" class="icon-twitter-full icon   "></a>
    <a aria-label="linkedin" alt="Linkedin social share icon" title="Linkedin social share icon" href="https://www.linkedin.com/company/telerik" class="icon-linkedin-full   "></a>
    <a aria-label="github"alt="GitHub social share icon" title="GitHub social share icon" href="https://github.com/telerik" class="icon-github-full "></a>
    <a aria-label="rss" alt="RSS social share icon" title="RSS social share icon" href="https://feeds.telerik.com/blogs" class="icon-rss "></a>
    <a aria-label="twitch" alt="Twitch social share icon" title="Twitch social share icon" href="https://www.twitch.tv/codeitlive" class="icon-github-full icon-twitch"></a>
  </aside>

<div>
      <h5 class="u-ttu u-ff-sans2 u-fs18 u-mb2" ID="MostPopular">Most Popular</h5>
      <ul class="List BlogPost-list u-mb6" itemtype="http://schema.org/Blog">
    
              <li itemprop="blogPost" >
                  <div class="BlogPost--small">
                    <div class="Info">
                          <span class="Tag-Simple">
                                AI
                            </span>
                      <a href='/blogs/ai-crash-course-mcp-servers-agents-ai-assistants-skills' >AI Crash Course: MCP Servers, Agents, AI Assistants and Skills</a>
                      <div class="Meta">
                        <span class="u-c-grey">
                            <span class="icon-date u-fs16 u-vam"></span>
                            <span class="u-vam">April 30, 2026</span>
                        </span>
                      </div>
                    </div>
                  </div>
                </li>
              <li itemprop="blogPost" >
                  <div class="BlogPost--small">
                    <div class="Info">
                          <span class="Tag-Simple">
                                Web
                            </span>
                          <span class="Tag-Simple">
                                ASP.NET Core
                            </span>
                          <span class="Tag-Simple">
                                Productivity
                            </span>
                          <span class="Tag-Simple">
                                Testing
                            </span>
                      <a href='/blogs/creating-more-realistic-tests-memory-databases-aspnet-core' >Creating More Realistic Tests with In-Memory Databases in ASP.NET Core</a>
                      <div class="Meta">
                        <span class="u-c-grey">
                            <span class="icon-date u-fs16 u-vam"></span>
                            <span class="u-vam">May 06, 2026</span>
                        </span>
                      </div>
                    </div>
                  </div>
                </li>
              <li itemprop="blogPost" >
                  <div class="BlogPost--small">
                    <div class="Info">
                          <span class="Tag-Simple">
                                Design
                            </span>
                          <span class="Tag-Simple">
                                People
                            </span>
                      <a href='/blogs/design-principles-unpacked-no-3-affordance' >Design Principles Unpacked, No. 3: Affordance</a>
                      <div class="Meta">
                        <span class="u-c-grey">
                            <span class="icon-date u-fs16 u-vam"></span>
                            <span class="u-vam">April 23, 2026</span>
                        </span>
                      </div>
                    </div>
                  </div>
                </li>
        </ul>
  
</div><div id="ContentPlaceholder1_T19FA31EB039_Col00" class="sf_colsIn Sidebar-StickyWrap" data-sf-element="EmptyWrapper" data-placeholder-label="EmptyWrapper"><div id="ContentPlaceholder1_T19FA31EB033_Col00" class="sf_colsIn Blogs-Form" data-sf-element="EmptyWrapper" data-placeholder-label="EmptyWrapper">

<div class="SubscribeBox u-mb1"><div class="u-cf"><div class="inbox-svg"><!--?xml version="1.0" encoding="utf-8"?-->
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 41 41"><g><line style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" x1="9.89" y1="16.48" x2="22.91" y2="16.48"></line><line style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" x1="9.89" y1="21.36" x2="31.05" y2="21.36"></line><line style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" x1="14.85" y1="26.25" x2="26.08" y2="26.25"></line><polyline style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" points="40 18.11 20.47 29.5 0.94 18.11"></polyline><polyline style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" points="4.19 20.06 4.19 9.97 36.74 9.97 36.74 20.06"></polyline><polyline style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" points="4.19 15.1 0.94 18.11 0.94 40 40 40 40 18.11 36.74 15.1"></polyline><path style="fill:none;stroke:#000;stroke-width:2px;stroke-miterlimit:10;" d="M31.13,10,23.81,3.22a4.89,4.89,0,0,0-6.6,0L9.89,10"></path></g>
</svg>
 </div><h5 class="u-fs22 u-lh1 u-fw5 u-mb0 u-oh u-small-mt2 js-title">Latest Stories <br class="u-db u-small-dn" />in Your Inbox</h5></div></div>

<p class="Text--b0 u-fs16 u-mb1 js-subtitle">Subscribe to be the first to get our expert-written articles and tutorials for developers!</p><p class="Text--b0 u-fs14 u-mb2">All fields are required</p>



<div data-sf-role="form-container" id="form--1" class="Form-MVC js-Form-MVC u-m0 u-p0 u-bn u-bsn">
	<input type="hidden" data-sf-role="form-id" value="36641b2f-c2f3-40e8-a637-0b003d073c18" name="FormId" />
	<input type="hidden" data-sf-role="marketo-settings" value="{&quot;syncFormFieldsToLeadFields&quot;:false,&quot;doSpecificWebCalls&quot;:false}" name="MarketoSettings" />



			<div class="sf-loader-wrapper">
				<img class="sf-loader" data-sf-role="loading-img" src='/WebResource.axd?d=kLXF93zSE8rrtGGHz2_yENa_6Lh0cf364-N6JEmTS4fjQ3tSlOs9pAtFf0jnnxfRzIUQspCl2ZViyDefeySgdSECj2B837xh7UDhfY1Sg2OqlE6Nk-aC3V6GcK5dlrjJbCcCZrzuftFkOGV3f1GPz0UNpDfwPZG8yX-UPuLia_4HAoVScUyN584zmoK3bcZ9dvz3NrGIH52cGfs2JmtPIg2&amp;t=638923997260000000' alt="Loading animation" style="display:none;" />
			</div>
			<div class="sf-form-resolution js-main-error-message-wrapper">
				<div class="sf-success-message" data-sf-role="success-message" style="display: none;"></div>
				<p class="sf-error-message js-main-error-message-container" data-sf-role="error-message" style="display: none;"></p>
			</div>
				<form>
						<input type="hidden" value="B6XixLUZlGNKekW2O3OjuGns5sXpn4cGxUVJIsTdjZNLGHz5fCjGgs7Nn/i7d2CNAX1osO+9fBKnONYloJGUEcvolARrnXBfcjWv3HWszuAaDW/TWbgud9ebdaj/XinKoAtRb3PHuvIDkDqJGqonrFQ3t92Izg/fcv0CscXdHPhlTQM3BKoWnj1/1yHquKeIjgdZjVIdDYLO8JWvW2TDZCoDckPujsE2sJ6tWWjsubPLZEBeHJWkD1MVLreEdPpTne/83c7rKmCchs1W1nSLG4QoNZxek4PQP0zPzpLebizL4u896SQC/u+6LD8vhBfkYQS+wD6ApEUDhYVDa/L9d+4ENdNV8Mgxzb7V/Z5OGg3mY+qvWDHYFuXtoNHv6wbXvPvPdWlBOJEFuavUmg0Fuqc1UdL3pf84j3ZTtXrg5M5cvsV0sWovIgIafHff5X3/PSKy7E/vT0mgNqLzB+OePuFr/XWx9drT9BjPcdnqQsE/6jXo7E9vpv+DYxt7LZtCWjasOj5XJNSrUqH3MaBI6zgae4KTMLPdDe28RQiY+qYB84wOspiMVridQBWJHASVO527dmb1lRDGqt068pIhOvGXTYvz6ec3Ca9/n6Tc45ANBevcuYv3QNsqI0b+NpezKGIqfGzbxNbDCfuZcxpZ4tDBL6yYCjOqGSF+2pBk0eVIcHxZK4GTdT5eYz97tJZlNgze1R59RxJbAWtWmejKHgdbBQ3uhVgQaAWYOchjjFi56SbiHhKh+WoNLbVNIoAxKmaAAq6RdeMWSFtJZ5yS1dRlC7fRniMAKxS2dbp452bPItR5Aa1x3+3jFPygCimWRdmunGFe8jDH1YU7s90wO+g6q0JU9QJxXmgKvAfOVK8Qxq/UJmeqcY6QcC7/11YfL2JvbG9vMXS1y6W8t4jNqXWIMlk7qdRLioaEYtj223FPyEaJfQZuLKY/wA5A6uS5EIpYVIjnX1HWSsy7XXENvpvDMRRsv1pc3q5stysVdpNJMSC3lbPbHFhcXw43kyyHcveH2YWZGkgJqClnbdJnCWMj4oCP6gEfSbZK2IID0HQhpdEL23egsWriZ3CqI17MCzHBySak+p7nzcLnVXRZqj9+GXMhzF1fLKT1bzLrVF3V1/FINOogxx2vd5d0Cfg1gQYuPFoB0fnkLkR3QxRKXuzXvjTtEB3sX1R+0WEr++VX/7+P58tqXXBG5V9iYJ74xMhI5zRoMFWK/FLwxXm/G5ZZTlsvSzBNW2TyxP15MpK7ya4/tzFMT2HUWDl+o5jcUGsD1LhR0+D3E1zEKWUAdFQwd7Y82uLDcM7n3H7d3bLhSiIafKKrBfxLWsVYcrtsCDnPtA57LnD5ls/kWHokOWIGtw8qQo8djhZVV8jS27Fc5BFqRgsXbDZIcRXlN3LuzMmtsKDmHvlmXkkEPriYAZkLRbx7ymb16cuzjiPagtkiBRXjpU+52anQBrHpAFodxrBVme52ofiMpyW8IxGofPZfCj95nPD7IrdAADT1U9YxijC8MGD4/PprRhB0o9kpb5jjp1BjivZMpIvhKw74suegXZ0/wsL+2WFgXtxiccjHt21iPqp28O4xgLrh2liK9GThkKDdERhlxEPf+m4xmTQ4kk+K7NyDScqPZOKI7f67AaP+Nz589YRIwOrnGNxpSOu2as1z1WHTzIF/eeu0eK2H9Z/hzhpx0NOrh7BId2IVguBE06qJm03pKcuNkqkqBehoBmduHPCcKSQXIDICeD4KSWtFxiNy7d8xPeosBjNC5YfeFtcMFoUSOcDXlBghqB5ZBULQQRuGnZEtwmY9lSyKZ0gwBiYgq5PPzIOSlVHdbU1BuOd08N2b6Gg9oYEYy3I4yqi3Mr/6r6AsNSTwkTmFb2m5Ovsn933yZ6ttf+wxOH4TSkRohZ6njOirSdB3EfBeshye7FFmy7JAnkRFmRt4HnH+3uHZgTLLpr51Mg7zlo8sTRnQFvGAVwqiZtBwF/Tclw/yL61JEUgMs1YVZH+qU8ImfiG0o7TM01fq9X4Zs8pH9ylgYa83JdEmmUbwlErnEDgB8B8o8aACWxbiVmEEGs9ATCIYRruJC274wNEBZFtj7IqMXg0tskqeiRn4fLFGFtennumqxjiU1YOVdtn3aHX8UL6QDwEf3vU0d41YPZPWqzCiricvhtOM6tvan1M60/JjMSroaOnAwdJK5E/2ql+PrA9E//OGOLaSxeaFf2C/Kzfnxyxmtx8RVN3z0HUMox9mlUkTl9RDcOpSKHQDuptTvVuVLSjRbIa0zFJN2L2UGGVMrGGWc36yjvz0U3eMjCCxA0D1rd87aSh9AW19YNGukE7DJfA90tr5TEHlEERObO67KkvdF3F6zTOx1wcKwAvn3O7DT0Wr1PuoQwlLr+TNvBAgOVlAReqYL8BhvWTwcO0n0nDloHaAfnCW" name="serializedSettings" />
					<div data-sf-role="fields-container">

						




<div class="sf-fieldWrp" data-sf-role="email-text-field-container" >
	<input data-sf-role="violation-restrictions" type="hidden" value='{"maxLength":"64", "minLength": "0"}' />
	<input data-sf-role="violation-messages" type="hidden" value='{"maxLength":"The email is too long.", "required": "The email is required.", "invalid": "Entry is not valid!", "regularExpression": "The email is invalid."}' />
			<label for='Email-1'>Email</label>

	<input id='Email-1' data-sf-role="email-text-field-input" type="email" name="Email" value="" required="required" pattern="^[\-\w+u0027]+(\.[\-\w+u0027]+)*@\w+([\-.]\w+)*\.[A-Za-z]{2,}$" maxlength="64"  />


	<p data-sf-role="error-message" role="alert" aria-live="assertive"></p>
</div>




	<div class="sf-fieldWrp" data-sf-role="dropdown-list-field-container">
		<input type="hidden" data-sf-role="violation-messages" value='{ "required": "The country is required."}' />
		<label for='Country-1' class='required'>Country/Territory</label>


		<input type="hidden" value="DynamicListFieldController" name="countryFieldName" />

		<select id='Country-1' name="DynamicListFieldController" title="Country dropdown" required='required' data-sf-role="dropdown-list-field-select" class="js-country-field">
				<option value="">Select country/territory</option>
									<option data-country-code="us" value="United States" >United States</option>
						<option data-country-code="af" value="Afghanistan" >Afghanistan</option>
						<option data-country-code="al" value="Albania" >Albania</option>
						<option data-country-code="dz" value="Algeria" >Algeria</option>
						<option data-country-code="as" value="American Samoa" >American Samoa</option>
						<option data-country-code="ad" value="Andorra" >Andorra</option>
						<option data-country-code="ao" value="Angola" >Angola</option>
						<option data-country-code="ai" value="Anguilla" >Anguilla</option>
						<option data-country-code="AQ" value="Antarctica" >Antarctica</option>
						<option data-country-code="ag" value="Antigua and Barbuda" >Antigua and Barbuda</option>
						<option data-country-code="ar" value="Argentina" >Argentina</option>
						<option data-country-code="am" value="Armenia" >Armenia</option>
						<option data-country-code="aw" value="Aruba" >Aruba</option>
						<option data-country-code="au" value="Australia" >Australia</option>
						<option data-country-code="at" value="Austria" >Austria</option>
						<option data-country-code="az" value="Azerbaijan" >Azerbaijan</option>
						<option data-country-code="bs" value="Bahamas" >Bahamas</option>
						<option data-country-code="bh" value="Bahrain" >Bahrain</option>
						<option data-country-code="bd" value="Bangladesh" >Bangladesh</option>
						<option data-country-code="bb" value="Barbados" >Barbados</option>
						<option data-country-code="be" value="Belgium" >Belgium</option>
						<option data-country-code="bz" value="Belize" >Belize</option>
						<option data-country-code="bj" value="Benin" >Benin</option>
						<option data-country-code="bm" value="Bermuda" >Bermuda</option>
						<option data-country-code="bt" value="Bhutan" >Bhutan</option>
						<option data-country-code="bo" value="Bolivia" >Bolivia</option>
						<option data-country-code="ba" value="Bosnia and Herzegovina" >Bosnia and Herzegovina</option>
						<option data-country-code="bw" value="Botswana" >Botswana</option>
						<option data-country-code="BV" value="Bouvet Island" >Bouvet Island</option>
						<option data-country-code="br" value="Brazil" >Brazil</option>
						<option data-country-code="IO" value="British Indian Ocean Terr." >British Indian Ocean Terr.</option>
						<option data-country-code="bn" value="Brunei Darussalam" >Brunei Darussalam</option>
						<option data-country-code="bg" value="Bulgaria" >Bulgaria</option>
						<option data-country-code="bf" value="Burkina Faso" >Burkina Faso</option>
						<option data-country-code="bi" value="Burundi" >Burundi</option>
						<option data-country-code="kh" value="Cambodia" >Cambodia</option>
						<option data-country-code="cm" value="Cameroon" >Cameroon</option>
						<option data-country-code="ca" value="Canada" >Canada</option>
						<option data-country-code="cv" value="Cape Verde" >Cape Verde</option>
						<option data-country-code="ky" value="Cayman Islands" >Cayman Islands</option>
						<option data-country-code="cf" value="Central African Republic" >Central African Republic</option>
						<option data-country-code="td" value="Chad" >Chad</option>
						<option data-country-code="cl" value="Chile" >Chile</option>
						<option data-country-code="cn" value="China" >China</option>
						<option data-country-code="cx" value="Christmas Island" >Christmas Island</option>
						<option data-country-code="cc" value="Cocos (Keeling) Islands" >Cocos (Keeling) Islands</option>
						<option data-country-code="co" value="Colombia" >Colombia</option>
						<option data-country-code="km" value="Comoros" >Comoros</option>
						<option data-country-code="cg" value="Congo (Brazzaville)" >Congo (Brazzaville)</option>
						<option data-country-code="CD" value="Congo, the democratic republic of the" >Congo, the democratic republic of the</option>
						<option data-country-code="ck" value="Cook Islands" >Cook Islands</option>
						<option data-country-code="cr" value="Costa Rica" >Costa Rica</option>
						<option data-country-code="ci" value="Cote d&#39;Ivoire" >Cote d&#39;Ivoire</option>
						<option data-country-code="hr" value="Croatia (Hrvatska)" >Croatia (Hrvatska)</option>
						<option data-country-code="CW" value="Curacao" >Curacao</option>
						<option data-country-code="cy" value="Cyprus" >Cyprus</option>
						<option data-country-code="cz" value="Czech Republic" >Czech Republic</option>
						<option data-country-code="dk" value="Denmark" >Denmark</option>
						<option data-country-code="dj" value="Djibouti" >Djibouti</option>
						<option data-country-code="dm" value="Dominica" >Dominica</option>
						<option data-country-code="do" value="Dominican Republic" >Dominican Republic</option>
						<option data-country-code="ec" value="Ecuador" >Ecuador</option>
						<option data-country-code="eg" value="Egypt" >Egypt</option>
						<option data-country-code="sv" value="El Salvador" >El Salvador</option>
						<option data-country-code="gq" value="Equatorial Guinea" >Equatorial Guinea</option>
						<option data-country-code="er" value="Eritrea" >Eritrea</option>
						<option data-country-code="ee" value="Estonia" >Estonia</option>
						<option data-country-code="sz" value="Eswatini" >Eswatini</option>
						<option data-country-code="et" value="Ethiopia" >Ethiopia</option>
						<option data-country-code="fk" value="Falkland Islands" >Falkland Islands</option>
						<option data-country-code="fo" value="Faroe Islands" >Faroe Islands</option>
						<option data-country-code="fj" value="Fiji" >Fiji</option>
						<option data-country-code="fi" value="Finland" >Finland</option>
						<option data-country-code="fr" value="France" >France</option>
						<option data-country-code="gf" value="French Guiana" >French Guiana</option>
						<option data-country-code="pf" value="French Polynesia" >French Polynesia</option>
						<option data-country-code="TF" value="French Southern Terr." >French Southern Terr.</option>
						<option data-country-code="ga" value="Gabon" >Gabon</option>
						<option data-country-code="gm" value="Gambia" >Gambia</option>
						<option data-country-code="ge" value="Georgia" >Georgia</option>
						<option data-country-code="de" value="Germany" >Germany</option>
						<option data-country-code="gh" value="Ghana" >Ghana</option>
						<option data-country-code="gi" value="Gibraltar" >Gibraltar</option>
						<option data-country-code="gr" value="Greece" >Greece</option>
						<option data-country-code="gl" value="Greenland" >Greenland</option>
						<option data-country-code="gd" value="Grenada" >Grenada</option>
						<option data-country-code="gp" value="Guadeloupe" >Guadeloupe</option>
						<option data-country-code="gu" value="Guam" >Guam</option>
						<option data-country-code="gt" value="Guatemala" >Guatemala</option>
						<option data-country-code="GG" value="Guernsey" >Guernsey</option>
						<option data-country-code="gn" value="Guinea" >Guinea</option>
						<option data-country-code="gw" value="Guinea-Bissau" >Guinea-Bissau</option>
						<option data-country-code="gy" value="Guyana" >Guyana</option>
						<option data-country-code="ht" value="Haiti" >Haiti</option>
						<option data-country-code="HM" value="Heard and McDonald Is." >Heard and McDonald Is.</option>
						<option data-country-code="hn" value="Honduras" >Honduras</option>
						<option data-country-code="hk" value="Hong Kong" >Hong Kong</option>
						<option data-country-code="hu" value="Hungary" >Hungary</option>
						<option data-country-code="is" value="Iceland" >Iceland</option>
						<option data-country-code="in" value="India" >India</option>
						<option data-country-code="id" value="Indonesia" >Indonesia</option>
						<option data-country-code="iq" value="Iraq" >Iraq</option>
						<option data-country-code="ie" value="Ireland" >Ireland</option>
						<option data-country-code="il" value="Israel" >Israel</option>
						<option data-country-code="it" value="Italy" >Italy</option>
						<option data-country-code="jm" value="Jamaica" >Jamaica</option>
						<option data-country-code="jp" value="Japan" >Japan</option>
						<option data-country-code="JE" value="Jersey" >Jersey</option>
						<option data-country-code="jo" value="Jordan" >Jordan</option>
						<option data-country-code="kz" value="Kazakhstan" >Kazakhstan</option>
						<option data-country-code="ke" value="Kenya" >Kenya</option>
						<option data-country-code="ki" value="Kiribati" >Kiribati</option>
						<option data-country-code="kw" value="Kuwait" >Kuwait</option>
						<option data-country-code="kg" value="Kyrgyzstan" >Kyrgyzstan</option>
						<option data-country-code="LA" value="Lao People&#39;s Dem. Rep." >Lao People&#39;s Dem. Rep.</option>
						<option data-country-code="lv" value="Latvia" >Latvia</option>
						<option data-country-code="lb" value="Lebanon" >Lebanon</option>
						<option data-country-code="ls" value="Lesotho" >Lesotho</option>
						<option data-country-code="lr" value="Liberia" >Liberia</option>
						<option data-country-code="ly" value="Libya" >Libya</option>
						<option data-country-code="li" value="Liechtenstein" >Liechtenstein</option>
						<option data-country-code="lt" value="Lithuania" >Lithuania</option>
						<option data-country-code="lu" value="Luxembourg" >Luxembourg</option>
						<option data-country-code="mo" value="Macao" >Macao</option>
						<option data-country-code="mg" value="Madagascar" >Madagascar</option>
						<option data-country-code="mw" value="Malawi" >Malawi</option>
						<option data-country-code="my" value="Malaysia" >Malaysia</option>
						<option data-country-code="mv" value="Maldives" >Maldives</option>
						<option data-country-code="ml" value="Mali" >Mali</option>
						<option data-country-code="mt" value="Malta" >Malta</option>
						<option data-country-code="IM" value="Man, Isle of" >Man, Isle of</option>
						<option data-country-code="mh" value="Marshall Islands" >Marshall Islands</option>
						<option data-country-code="mq" value="Martinique" >Martinique</option>
						<option data-country-code="mr" value="Mauritania" >Mauritania</option>
						<option data-country-code="mu" value="Mauritius" >Mauritius</option>
						<option data-country-code="yt" value="Mayotte" >Mayotte</option>
						<option data-country-code="mx" value="Mexico" >Mexico</option>
						<option data-country-code="fm" value="Micronesia" >Micronesia</option>
						<option data-country-code="md" value="Moldova" >Moldova</option>
						<option data-country-code="mc" value="Monaco" >Monaco</option>
						<option data-country-code="mn" value="Mongolia" >Mongolia</option>
						<option data-country-code="me" value="Montenegro" >Montenegro</option>
						<option data-country-code="ms" value="Montserrat" >Montserrat</option>
						<option data-country-code="ma" value="Morocco" >Morocco</option>
						<option data-country-code="mz" value="Mozambique" >Mozambique</option>
						<option data-country-code="mm" value="Myanmar" >Myanmar</option>
						<option data-country-code="na" value="Namibia" >Namibia</option>
						<option data-country-code="nr" value="Nauru" >Nauru</option>
						<option data-country-code="np" value="Nepal" >Nepal</option>
						<option data-country-code="nl" value="Netherlands" >Netherlands</option>
						<option data-country-code="nc" value="New Caledonia" >New Caledonia</option>
						<option data-country-code="nz" value="New Zealand" >New Zealand</option>
						<option data-country-code="ni" value="Nicaragua" >Nicaragua</option>
						<option data-country-code="ne" value="Niger" >Niger</option>
						<option data-country-code="ng" value="Nigeria" >Nigeria</option>
						<option data-country-code="nu" value="Niue" >Niue</option>
						<option data-country-code="nf" value="Norfolk Island" >Norfolk Island</option>
						<option data-country-code="mk" value="North Macedonia" >North Macedonia</option>
						<option data-country-code="mp" value="Northern Mariana Is." >Northern Mariana Is.</option>
						<option data-country-code="no" value="Norway" >Norway</option>
						<option data-country-code="om" value="Oman" >Oman</option>
						<option data-country-code="pk" value="Pakistan" >Pakistan</option>
						<option data-country-code="pw" value="Palau" >Palau</option>
						<option data-country-code="PS" value="Palestine, State Of" >Palestine, State Of</option>
						<option data-country-code="pa" value="Panama" >Panama</option>
						<option data-country-code="pg" value="Papua New Guinea" >Papua New Guinea</option>
						<option data-country-code="py" value="Paraguay" >Paraguay</option>
						<option data-country-code="pe" value="Peru" >Peru</option>
						<option data-country-code="ph" value="Philippines" >Philippines</option>
						<option data-country-code="pn" value="Pitcairn" >Pitcairn</option>
						<option data-country-code="pl" value="Poland" >Poland</option>
						<option data-country-code="pt" value="Portugal" >Portugal</option>
						<option data-country-code="pr" value="Puerto Rico" >Puerto Rico</option>
						<option data-country-code="qa" value="Qatar" >Qatar</option>
						<option data-country-code="kr" value="Republic of Korea (South Korea)" >Republic of Korea (South Korea)</option>
						<option data-country-code="re" value="Reunion" >Reunion</option>
						<option data-country-code="ro" value="Romania" >Romania</option>
						<option data-country-code="rw" value="Rwanda" >Rwanda</option>
						<option data-country-code="gs" value="S.Georgia and S.Sandwich Is." >S.Georgia and S.Sandwich Is.</option>
						<option data-country-code="kn" value="Saint Kitts and Nevis" >Saint Kitts and Nevis</option>
						<option data-country-code="lc" value="Saint Lucia" >Saint Lucia</option>
						<option data-country-code="ws" value="Samoa" >Samoa</option>
						<option data-country-code="sm" value="San Marino" >San Marino</option>
						<option data-country-code="st" value="Sao Tome and Principe" >Sao Tome and Principe</option>
						<option data-country-code="sa" value="Saudi Arabia" >Saudi Arabia</option>
						<option data-country-code="sn" value="Senegal" >Senegal</option>
						<option data-country-code="rs" value="Serbia" >Serbia</option>
						<option data-country-code="sc" value="Seychelles" >Seychelles</option>
						<option data-country-code="sl" value="Sierra Leone" >Sierra Leone</option>
						<option data-country-code="sg" value="Singapore" >Singapore</option>
						<option data-country-code="sk" value="Slovakia" >Slovakia</option>
						<option data-country-code="si" value="Slovenia" >Slovenia</option>
						<option data-country-code="sb" value="Solomon Islands" >Solomon Islands</option>
						<option data-country-code="so" value="Somalia" >Somalia</option>
						<option data-country-code="za" value="South Africa" >South Africa</option>
						<option data-country-code="SS" value="South Sudan" >South Sudan</option>
						<option data-country-code="es" value="Spain" >Spain</option>
						<option data-country-code="lk" value="Sri Lanka" >Sri Lanka</option>
						<option data-country-code="sh" value="St. Helena" >St. Helena</option>
						<option data-country-code="pm" value="St. Pierre and Miquelon" >St. Pierre and Miquelon</option>
						<option data-country-code="vc" value="St. Vincent and Grenadines" >St. Vincent and Grenadines</option>
						<option data-country-code="sd" value="Sudan" >Sudan</option>
						<option data-country-code="sr" value="Suriname" >Suriname</option>
						<option data-country-code="SJ" value="Svalbard and Jan Mayen Is." >Svalbard and Jan Mayen Is.</option>
						<option data-country-code="se" value="Sweden" >Sweden</option>
						<option data-country-code="ch" value="Switzerland" >Switzerland</option>
						<option data-country-code="tw" value="Taiwan" >Taiwan</option>
						<option data-country-code="tj" value="Tajikistan" >Tajikistan</option>
						<option data-country-code="tz" value="Tanzania" >Tanzania</option>
						<option data-country-code="th" value="Thailand" >Thailand</option>
						<option data-country-code="TL" value="Timor-Leste" >Timor-Leste</option>
						<option data-country-code="tg" value="Togo" >Togo</option>
						<option data-country-code="tk" value="Tokelau" >Tokelau</option>
						<option data-country-code="to" value="Tonga" >Tonga</option>
						<option data-country-code="tt" value="Trinidad and Tobago" >Trinidad and Tobago</option>
						<option data-country-code="tn" value="Tunisia" >Tunisia</option>
						<option data-country-code="tr" value="Turkey" >Turkey</option>
						<option data-country-code="tm" value="Turkmenistan" >Turkmenistan</option>
						<option data-country-code="tc" value="Turks and Caicos Islands" >Turks and Caicos Islands</option>
						<option data-country-code="tv" value="Tuvalu" >Tuvalu</option>
						<option data-country-code="UM" value="U.S. Minor Outlying Is." >U.S. Minor Outlying Is.</option>
						<option data-country-code="ug" value="Uganda" >Uganda</option>
						<option data-country-code="ua" value="Ukraine" >Ukraine</option>
						<option data-country-code="ae" value="United Arab Emirates" >United Arab Emirates</option>
						<option data-country-code="gb" value="United Kingdom" >United Kingdom</option>
						<option data-country-code="uy" value="Uruguay" >Uruguay</option>
						<option data-country-code="uz" value="Uzbekistan" >Uzbekistan</option>
						<option data-country-code="vu" value="Vanuatu" >Vanuatu</option>
						<option data-country-code="va" value="Vatican (Holy See)" >Vatican (Holy See)</option>
						<option data-country-code="ve" value="Venezuela" >Venezuela</option>
						<option data-country-code="vn" value="Viet Nam" >Viet Nam</option>
						<option data-country-code="VG" value="Virgin Islands (British)" >Virgin Islands (British)</option>
						<option data-country-code="vi" value="Virgin Islands (U.S.)" >Virgin Islands (U.S.)</option>
						<option data-country-code="wf" value="Wallis and Futuna Is." >Wallis and Futuna Is.</option>
						<option data-country-code="eh" value="Western Sahara" >Western Sahara</option>
						<option data-country-code="ye" value="Yemen" >Yemen</option>
						<option data-country-code="zm" value="Zambia" >Zambia</option>
						<option data-country-code="zw" value="Zimbabwe" >Zimbabwe</option>

		</select>
		<p data-sf-role="error-message" role="alert" aria-live="assertive"></p>
	</div>

    <div class="sf-fieldWrp js-states-field-container" data-sf-role="dropdown-list-field-container" style="display:none" data-countrycomponent="">
        <input type="hidden" data-sf-role="violation-messages" value='{ "required": "State/Province is required."}' />
        <input type="hidden" data-sf-role="required-validator" value='True' class="js-is-state-required" />

        <input type="hidden" data-sf-role="state-data" value='{"Canada":[{"Text":"Alberta","Value":"AB","AlternativeValue":"AB","UnderLegalRegulation":false},{"Text":"British Columbia","Value":"BC","AlternativeValue":"BC","UnderLegalRegulation":false},{"Text":"Manitoba","Value":"MB","AlternativeValue":"MB","UnderLegalRegulation":false},{"Text":"New Brunswick","Value":"NB","AlternativeValue":"NB","UnderLegalRegulation":false},{"Text":"Newfoundland and Labrador","Value":"NL","AlternativeValue":"NL","UnderLegalRegulation":false},{"Text":"Northwest Territories","Value":"NT","AlternativeValue":"NT","UnderLegalRegulation":false},{"Text":"Nova Scotia","Value":"NS","AlternativeValue":"NS","UnderLegalRegulation":false},{"Text":"Nunavut","Value":"NU","AlternativeValue":"NU","UnderLegalRegulation":false},{"Text":"Ontario","Value":"ON","AlternativeValue":"ON","UnderLegalRegulation":false},{"Text":"Prince Edward Island","Value":"PE","AlternativeValue":"PE","UnderLegalRegulation":false},{"Text":"Quebec","Value":"QC","AlternativeValue":"QC","UnderLegalRegulation":false},{"Text":"Saskatchewan","Value":"SK","AlternativeValue":"SK","UnderLegalRegulation":false},{"Text":"Yukon","Value":"YT","AlternativeValue":"YT","UnderLegalRegulation":false}],"United States":[{"Text":"Alabama","Value":"AL","AlternativeValue":"AL","UnderLegalRegulation":false},{"Text":"Alaska","Value":"AK","AlternativeValue":"AK","UnderLegalRegulation":false},{"Text":"Arizona","Value":"AZ","AlternativeValue":"AZ","UnderLegalRegulation":false},{"Text":"Arkansas","Value":"AR","AlternativeValue":"AR","UnderLegalRegulation":false},{"Text":"California","Value":"CA","AlternativeValue":"CA","UnderLegalRegulation":true},{"Text":"Colorado","Value":"CO","AlternativeValue":"CO","UnderLegalRegulation":false},{"Text":"Connecticut","Value":"CT","AlternativeValue":"CT","UnderLegalRegulation":false},{"Text":"Delaware","Value":"DE","AlternativeValue":"DE","UnderLegalRegulation":false},{"Text":"District of Columbia","Value":"DC","AlternativeValue":"DC","UnderLegalRegulation":false},{"Text":"Florida","Value":"FL","AlternativeValue":"FL","UnderLegalRegulation":false},{"Text":"Georgia","Value":"GA","AlternativeValue":"GA","UnderLegalRegulation":false},{"Text":"Hawaii","Value":"HI","AlternativeValue":"HI","UnderLegalRegulation":false},{"Text":"Idaho","Value":"ID","AlternativeValue":"ID","UnderLegalRegulation":false},{"Text":"Illinois","Value":"IL","AlternativeValue":"IL","UnderLegalRegulation":false},{"Text":"Indiana","Value":"IN","AlternativeValue":"IN","UnderLegalRegulation":false},{"Text":"Iowa","Value":"IA","AlternativeValue":"IA","UnderLegalRegulation":false},{"Text":"Kansas","Value":"KS","AlternativeValue":"KS","UnderLegalRegulation":false},{"Text":"Kentucky","Value":"KY","AlternativeValue":"KY","UnderLegalRegulation":false},{"Text":"Louisiana","Value":"LA","AlternativeValue":"LA","UnderLegalRegulation":false},{"Text":"Maine","Value":"ME","AlternativeValue":"ME","UnderLegalRegulation":false},{"Text":"Maryland","Value":"MD","AlternativeValue":"MD","UnderLegalRegulation":false},{"Text":"Massachusetts","Value":"MA","AlternativeValue":"MA","UnderLegalRegulation":false},{"Text":"Michigan","Value":"MI","AlternativeValue":"MI","UnderLegalRegulation":false},{"Text":"Minnesota","Value":"MN","AlternativeValue":"MN","UnderLegalRegulation":false},{"Text":"Mississippi","Value":"MS","AlternativeValue":"MS","UnderLegalRegulation":false},{"Text":"Missouri","Value":"MO","AlternativeValue":"MO","UnderLegalRegulation":false},{"Text":"Montana","Value":"MT","AlternativeValue":"MT","UnderLegalRegulation":false},{"Text":"Nebraska","Value":"NE","AlternativeValue":"NE","UnderLegalRegulation":false},{"Text":"Nevada","Value":"NV","AlternativeValue":"NV","UnderLegalRegulation":false},{"Text":"New Hampshire","Value":"NH","AlternativeValue":"NH","UnderLegalRegulation":false},{"Text":"New Jersey","Value":"NJ","AlternativeValue":"NJ","UnderLegalRegulation":false},{"Text":"New Mexico","Value":"NM","AlternativeValue":"NM","UnderLegalRegulation":false},{"Text":"New York","Value":"NY","AlternativeValue":"NY","UnderLegalRegulation":false},{"Text":"North Carolina","Value":"NC","AlternativeValue":"NC","UnderLegalRegulation":false},{"Text":"North Dakota","Value":"ND","AlternativeValue":"ND","UnderLegalRegulation":false},{"Text":"Ohio","Value":"OH","AlternativeValue":"OH","UnderLegalRegulation":false},{"Text":"Oklahoma","Value":"OK","AlternativeValue":"OK","UnderLegalRegulation":false},{"Text":"Oregon","Value":"OR","AlternativeValue":"OR","UnderLegalRegulation":false},{"Text":"Pennsylvania","Value":"PA","AlternativeValue":"PA","UnderLegalRegulation":false},{"Text":"Puerto Rico","Value":"PR","AlternativeValue":"PR","UnderLegalRegulation":false},{"Text":"Rhode Island","Value":"RI","AlternativeValue":"RI","UnderLegalRegulation":false},{"Text":"South Carolina","Value":"SC","AlternativeValue":"SC","UnderLegalRegulation":false},{"Text":"South Dakota","Value":"SD","AlternativeValue":"SD","UnderLegalRegulation":false},{"Text":"Tennessee","Value":"TN","AlternativeValue":"TN","UnderLegalRegulation":false},{"Text":"Texas","Value":"TX","AlternativeValue":"TX","UnderLegalRegulation":false},{"Text":"US ARMY EUROPE","Value":"AE","AlternativeValue":"AE","UnderLegalRegulation":false},{"Text":"Utah","Value":"UT","AlternativeValue":"UT","UnderLegalRegulation":false},{"Text":"Vermont","Value":"VT","AlternativeValue":"VT","UnderLegalRegulation":false},{"Text":"Virgin Islands","Value":"VI","AlternativeValue":"VI","UnderLegalRegulation":false},{"Text":"Virginia","Value":"VA","AlternativeValue":"VA","UnderLegalRegulation":false},{"Text":"Washington","Value":"WA","AlternativeValue":"WA","UnderLegalRegulation":false},{"Text":"West Virginia","Value":"WV","AlternativeValue":"WV","UnderLegalRegulation":false},{"Text":"Wisconsin","Value":"WI","AlternativeValue":"WI","UnderLegalRegulation":false},{"Text":"Wyoming","Value":"WY","AlternativeValue":"WY","UnderLegalRegulation":false}]}' class="js-state-data" />
        <label for='State-1' class='required'>State/Province</label>


        <select id='State-1' disabled data-sf-role="dropdown-list-field-select" name="StatesListFieldController" class="js-states-drop-down">
                <option value="">Select</option>
        </select>
        <p data-sf-role="error-message" role="alert" aria-live="assertive"></p>
		<div id="StateLegalLabel-1" class="js-states-legal-label states-legal-label -mt1 -mb1 u-mt1 u-mb1" style="display: none">
					<small><p> Progress collects the Personal Information set out in our <a href='https://www.progress.com/legal/privacy-policy' target="_blank">Privacy Policy</a> and <a href='https://www.progress.com/legal/california-resident-privacy-notice' target="_blank">the Supplemental Privacy notice for residents of California and other US States </a> and uses it for the purposes stated in that policy.</p><p>You can also ask us not to share your Personal Information to third parties here: <a href='https://forms.progress.com/ccpa-subscription' target="_blank">Do Not Sell or Share My Info</a></p></small>

		</div>
    </div>


<div class="u-dn js-blog-field sf-fieldWrp" data-sf-role="text-field-container">
    <input data-sf-role="violation-restrictions" type="hidden" value='{"maxLength":"255", "minLength": "0"}' />
    <input data-sf-role="violation-messages" type="hidden" value='{"maxLength":"Blog field must be less than 255 characters", "required": "Blog field input is required", "invalid": "Entry is not valid!", "regularExpression": "Blog field input is invalid"}' />
    <label for='Textbox-1'>Blog</label>
    <input id='Textbox-1' data-sf-role="text-field-input" type="text" name="TextFieldController" value="telerik_blogs_rss" pattern=".{0,255}"  maxlength="255"  />


    <p data-sf-role="error-message" role="alert" aria-live="assertive"></p>
</div>




	<div class="ElectricMessage u sfFormCheckboxlist sf-fieldWrp sf-Checkboxes sf-opt-in-out js-opt-in-out-container" data-countrycomponent="">
		<input type="hidden" data-sf-role="optinout-data" value='["Zambia","Viet Nam","United Arab Emirates","Turkey","Taiwan","Switzerland","Spain","South Africa","Slovenia","Slovakia","Serbia","Romania","Qatar","Poland","Norway","New Zealand","Netherlands","Nepal","Mozambique","Malta","Lithuania","Liechtenstein","Greece","Gibraltar","Ghana","Germany","China","Cayman Islands","Jersey","Japan","Canada","Jamaica","Italy","Israel","Bulgaria","India","Brazil","Iceland","Hungary","Hong Kong","Dominican Republic","Denmark","Belgium","Czech Republic","Cyprus","Bangladesh","Costa Rica","Austria","Australia","Argentina","Colombia","Albania"]' />
		<input type="checkbox" name="skipPrefillOnCountryChange" style="display: none;" />
		<input type="hidden" data-sf-role="trial-data" value='False' />
		<input type="hidden" data-sf-role="isOptOutMessageAdded" value='True' />



		<div style="display: none" class="sf-opt-in-out-agree js-i-agree-holder">
				<label style="padding: 0 0 12px 0!important">
					<p>By submitting this form, I understand and acknowledge my data will be processed in accordance with Progress' <a href="https://www.progress.com/legal/privacy-policy" target="_blank">Privacy Policy</a>.</p>
				</label>

			<label for="OptInOutField-1">
				<input type="checkbox" id="OptInOutField-1" name="OptInOutFieldController" value="0" class="js-i-agree-checkbox" />
				<p>I agree to receive marketing communications from Progress Software or its <a href="https://www.progress.com/partners/partner-locator" target="_blank">Partners</a>, containing information about Progress Software’s products, services and/or events. I understand I may opt out from marketing communication at any time.</p>
			</label>
		</div>
		<div style="display: none" class="sf-opt-out-message js-opt-out-holder">
			<p class="u-fs14 -fs14" >By submitting this form, you understand and agree that your personal data will be processed by Progress Software or its <a href="https://www.progress.com/partners/partner-directory" target="_blank">Partners</a> as described in our <a href="https://www.progress.com/legal/privacy-policy" target="_blank">Privacy Policy</a>. You may opt out from marketing communication at any time <a href='https://forms.progress.com/SubscriptionMgt-English' target="_blank">here</a> or through the opt out option placed in the e-mail communication sent by us or our Partners.</p>
		</div>

		<div style="display: none" class="sf-opt-in-out-already-agreed js-already-agreed-holder">
				<p class="u-fs14 -fs14">
      We see that you have already chosen to receive marketing materials from us. If you wish to change this at any time you may do so by clicking <a href="https://forms.progress.com/SubscriptionMgt-English">here</a>.
    </p>
		</div>

		<div style="display: none" class="sf-opt-in-out-message-holder js-customer-message-holder">
				<p class="u-fs14 -fs14">Thank you for your continued interest in Progress. Based on either your previous activity on our websites or our ongoing relationship, we will keep you updated on our products, solutions, services, company news and events. If you decide that you want to be removed from our mailing lists at any time, you can change your contact preferences by clicking <a href="https://forms.progress.com/SubscriptionMgt-English">here</a>.</p>
		</div>

		<input type="checkbox" name="OptInOutFieldController" value="" class="-dn u-dn js-empty-value-check-box" style="display: none;">
		<input type="checkbox" name="OptInOutFieldController" value="1" class="-dn u-dn js-disagree-value-check-box" style="display: none;">
	</div>



<div class="-dn u-dn js-recaptcha-container">
	<input type="hidden" class="js-recaptcha-token-input" name="recaptcha" />
	<input type="hidden" class="js-recaptcha-buttons-selector" value="button[type=&quot;submit&quot;],input[type=&quot;submit&quot;]" />
	<input type="hidden" class="js-recaptcha-V3-action" value="Submit" />
</div>





<div class="sf-fieldWrp">
    <button type="submit" class="Btn Btn--prim3  u-fs22 u-db u-mt2"  >Subscribe</button>
</div>



					</div>

						<input type="hidden" name="pageurl" />
					<input type="hidden" value="4d59940e-e1d9-4a92-a306-164d5b033835" name="WidgetInstanceId" />

					<input type="hidden" data-sf-role="ajax-submit-url" value="/widgettemplateformsubmit/CommonForm/TemplateAjaxSubmit?widgetInstanceId=4d59940e-e1d9-4a92-a306-164d5b033835" />
					<input type="hidden" data-sf-role="redirect-url" />
					<input type="hidden" data-sf-role="widget-id" name="WidgetId" />
				</form>














</div>

</div>
</div>
</div>
</div>
</div>
</div>


  </div>
</section>
</div>


<footer class="TK-Footer" data-tlrk-nav-version="3.7.42" data-tlrk-nav-template="footer-big-rel-markup"><div class="TK-container"><div class="TK-row TK-No-Print"><div class="TK-col-8 TK--Footer-Desktop"><div class="TK-Footer-Featured-Item"><div class="TK-Footer-H">Complete .NET Toolbox</div><a href="/devcraft" class="TK-Footer-Featured-Link">Telerik DevCraft</a></div><div class="TK-Footer-Featured-Item"><div class="TK-Footer-H">Complete JavaScript Toolbox</div><a href="/kendo-ui" class="TK-Footer-Featured-Link">Kendo UI</a></div><div class="TK-Footer-Featured-Item"><div class="TK-Footer-H">Complete AI Toolbox</div><a href="/mcp-servers" class="TK-Footer-Featured-Link">MCP Servers</a> <a href="/ai-components" class="TK-Footer-Featured-Link">AI-Ready Components</a></div></div><div class="TK-col-16"><div class="TK-row"><div class="TK-col-6 TK--Footer-Desktop"><div class="TK-Footer-H TK--Footer-Desktop">Get Products</div><ul class="TK-Footer-List"><li class="TK-Footer-List-Item"><a href="/download" class="TK-Footer-Link">Free Trials</a></li><li class="TK-Footer-List-Item"><a href="/purchase.aspx" class="TK-Footer-Link">Pricing</a></li></ul></div><div class="TK-col-6 TK--Footer-Desktop"><div class="TK-Footer-H TK--Footer-Desktop">Resources</div><ul class="TK-Footer-List"><li class="TK-Footer-List-Item"><a href="/developer" class="TK-Footer-Link">Developer Experience Hub</a></li><li class="TK-Footer-List-Item"><a href="/support/demos" class="TK-Footer-Link">Demos</a></li><li class="TK-Footer-List-Item"><a href="/documentation" class="TK-Footer-Link">Documentation</a></li><li class="TK-Footer-List-Item"><a href="/support/whats-new/release-history" class="TK-Footer-Link">Release History</a></li><li class="TK-Footer-List-Item"><a href="/forums" class="TK-Footer-Link">Forums</a></li><li class="TK-Footer-List-Item"><a href="/blogs" class="TK-Footer-Link">Blogs</a></li><li class="TK-Footer-List-Item"><a href="/webinars" class="TK-Footer-Link">Webinars</a></li><li class="TK-Footer-List-Item"><a href="/services" class="TK-Footer-Link">Professional Services</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/partners/partner-locator?Products&#x3D;KendoUI+and+Telerik" class="TK-Footer-Link">Partners</a></li><li class="TK-Footer-List-Item"><a href="/support/video-courses" class="TK-Footer-Link">Virtual Classroom</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/events" class="TK-Footer-Link">Events</a></li><li class="TK-Footer-List-Item"><a href="/faqs" class="TK-Footer-Link">FAQs</a></li></ul></div><div class="TK-col-6 TK--Footer-Desktop"><div class="TK-Footer-H TK--Footer-Desktop">Recognition</div><ul class="TK-Footer-List"><li class="TK-Footer-List-Item"><a href="/about/success-stories" class="TK-Footer-Link">Success Stories</a></li><li class="TK-Footer-List-Item"><a href="/about/testimonials" class="TK-Footer-Link">Testimonials</a></li></ul></div><div class="TK-col-6 TK--Footer-Desktop"><div class="TK-Footer-H TK--Footer-Desktop">Get in touch</div><ul class="TK-Footer-List"><li class="TK-Footer-List-Item"><a href="/contact" class="TK-Footer-Link">Contact Us</a></li><li><ul class="TK-Footer-List--inner"><li class="TK-Footer-List-Item"><a href="tel:+18886790442" class="TK-Footer-Phone-Link u-db">USA: <span class="TK-wsn">+1 888 679 0442</span></a></li><li class="TK-Footer-List-Item"><a href="tel:+441344838186" class="TK-Footer-Phone-Link u-db">UK: <span class="TK-wsn">+44 13 4483 8186</span></a></li><li class="TK-Footer-List-Item"><a href="tel:+914069019447" class="TK-Footer-Phone-Link u-db">India: <span class="TK-wsn">+91 406 9019447</span></a></li><li class="TK-Footer-List-Item"><a href="tel:+35928099850" class="TK-Footer-Phone-Link u-db">Bulgaria: <span class="TK-wsn">+359 2 8099850</span></a></li><li class="TK-Footer-List-Item"><a href="tel:+61370688610" class="TK-Footer-Phone-Link u-db">Australia: <span class="TK-wsn">+61 3 7068 8610</span></a></li></ul></li><li><ul class="TK-Footer-List--inner TK-Footer-List-Horizontal TK-Footer-List-Social"><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.facebook.com/TelerikandKendoUI" title="Facebook" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M16 7h-1.924C13.461 7 13 7.252 13 7.889V9h3l-.238 3H13v8h-3v-8H8V9h2V7.077C10 5.055 11.064 4 13.461 4H16zM5 0a5 5 0 00-5 5v14a5 5 0 005 5h14a5 5 0 005-5V5a5 5 0 00-5-5z" fill="#000"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">105k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://x.com/telerik" title="X" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z" fill="#000"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">50k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.linkedin.com/company/telerik" title="LinkedIn" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M20 19h-3v-5.6c0-3.368-4-3.113-4 0V19h-3V8h3v1.765c1.4-2.586 7-2.777 7 2.476zM6.5 6.732a1.757 1.757 0 01-1.75-1.764A1.757 1.757 0 016.5 3.2a1.758 1.758 0 011.75 1.764A1.757 1.757 0 016.5 6.728zM5 19h3V8H5zM19 0H5a5 5 0 00-5 5v14a5 5 0 005 5h14a5 5 0 005-5V5a5 5 0 00-5-5z" fill="#000" fill-rule="evenodd"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">17k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.twitch.tv/codeitlive" title="Twitch" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 23 24.05"><path d="M1.57.02L0 4.18V20.9h5.75v3.12h3.14l3.13-3.14h4.71L23 14.61V.02zm2.09 2.07h17.25v11.5l-3.66 3.66H11.5l-3.13 3.13v-3.13H3.66zm5.75 10.45h2.09V6.27H9.41zm5.75 0h2.09V6.27h-2.09z" fill="#000"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">4k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.youtube.com/c/telerik" title="YouTube" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="26" height="18.287" viewBox="0 0 26 18.287"><path fill="#010101" d="M25.74 3.945a5.625 5.625 0 0 0-1.034-2.581 3.718 3.718 0 0 0-2.605-1.1c-3.638-.263-9.1-.263-9.1-.263h-.011s-5.458 0-9.1.263a3.719 3.719 0 0 0-2.605 1.1A5.623 5.623 0 0 0 .26 3.945 39.324 39.324 0 0 0 0 8.154v1.972a39.323 39.323 0 0 0 .26 4.208 5.623 5.623 0 0 0 1.033 2.58 4.408 4.408 0 0 0 2.867 1.112c2.08.2 8.84.261 8.84.261s5.463-.008 9.1-.271a3.719 3.719 0 0 0 2.605-1.1 5.625 5.625 0 0 0 1.035-2.582 39.377 39.377 0 0 0 .26-4.208V8.154a39.377 39.377 0 0 0-.26-4.209Zm-15.388 8.6V5.211l6.974 3.665Z"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">14k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://github.com/telerik" title="GitHub" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,0A12.047,12.047,0,0,0,0,12,12.455,12.455,0,0,0,9.188,24V20.03a2.889,2.889,0,0,1-3.239-1.441c-.273-.46-.756-.959-1.26-.922l-.124-1.4a2.892,2.892,0,0,1,2.593,1.6,1.555,1.555,0,0,0,.9.772,1.89,1.89,0,0,0,1.181-.1,3.3,3.3,0,0,1,.827-1.691h0C6.942,16.382,5.7,14.724,5.2,13.415a5.506,5.506,0,0,1,.855-5.281A.188.188,0,0,0,6.1,7.989a4.6,4.6,0,0,1,.14-3.073,4.858,4.858,0,0,1,2.663,1l.337.2c.141.084.1.036.238.025A10.182,10.182,0,0,1,12,5.792a10.225,10.225,0,0,1,2.553.363l.109.011c-.01,0,.03-.007.1-.046,2.436-1.476,2.349-.993,3-1.206A4.682,4.682,0,0,1,17.9,7.989c-.071.218,2.112,2.217.9,5.426-.494,1.309-1.74,2.968-4.866,3.434h0a3.086,3.086,0,0,1,.879,2.2V24A12.454,12.454,0,0,0,24,12,12.047,12.047,0,0,0,12,0Z"></path></svg></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://discord.gg/pQXvHhjb7e" title="Discord" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="19" viewBox="0 0 24 19"><path d="M15.335 0c-.233.416-.444.846-.634 1.285a18.474 18.474 0 0 0-5.48 0c-.186-.44-.4-.87-.634-1.285a19.93 19.93 0 0 0-4.94 1.524C.525 6.154-.32 10.665.1 15.114a19.84 19.84 0 0 0 6.057 3.043c.492-.659.926-1.361 1.298-2.093a13.114 13.114 0 0 1-2.042-.974c.171-.124.338-.254.5-.378a14.208 14.208 0 0 0 12.11 0c.162.134.329.263.5.378-.653.387-1.336.712-2.047.98.372.73.807 1.433 1.298 2.092a19.832 19.832 0 0 0 6.057-3.039c.497-5.16-.85-9.633-3.556-13.594A19.623 19.623 0 0 0 15.34.009L15.335 0zM7.99 12.376c-1.179 0-2.157-1.07-2.157-2.394s.94-2.399 2.152-2.399c1.213 0 2.177 1.08 2.157 2.399-.019 1.319-.95 2.394-2.152 2.394zm7.952 0c-1.184 0-2.153-1.07-2.153-2.394s.94-2.399 2.153-2.399c1.212 0 2.171 1.08 2.152 2.399-.019 1.319-.95 2.394-2.152 2.394z"/></svg></a></li></ul></li></ul></div></div><div class="TK-row TK-row--M2 TK--Footer-Mobile"><div class="TK-col-24"><ul class="TK-Footer-List"><li class="TK-Footer-List-Item"><a href="/contact" class="TK-Footer-Link">Contact Us</a></li><li><ul class="TK-Footer-List--inner TK-Footer-List-Horizontal TK-Footer-List-Social"><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.facebook.com/TelerikandKendoUI" title="Facebook" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M16 7h-1.924C13.461 7 13 7.252 13 7.889V9h3l-.238 3H13v8h-3v-8H8V9h2V7.077C10 5.055 11.064 4 13.461 4H16zM5 0a5 5 0 00-5 5v14a5 5 0 005 5h14a5 5 0 005-5V5a5 5 0 00-5-5z" fill="#000"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">105k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://x.com/telerik" title="X" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z" fill="#000"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">50k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.linkedin.com/company/telerik" title="LinkedIn" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M20 19h-3v-5.6c0-3.368-4-3.113-4 0V19h-3V8h3v1.765c1.4-2.586 7-2.777 7 2.476zM6.5 6.732a1.757 1.757 0 01-1.75-1.764A1.757 1.757 0 016.5 3.2a1.758 1.758 0 011.75 1.764A1.757 1.757 0 016.5 6.728zM5 19h3V8H5zM19 0H5a5 5 0 00-5 5v14a5 5 0 005 5h14a5 5 0 005-5V5a5 5 0 00-5-5z" fill="#000" fill-rule="evenodd"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">17k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.twitch.tv/codeitlive" title="Twitch" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 23 24.05"><path d="M1.57.02L0 4.18V20.9h5.75v3.12h3.14l3.13-3.14h4.71L23 14.61V.02zm2.09 2.07h17.25v11.5l-3.66 3.66H11.5l-3.13 3.13v-3.13H3.66zm5.75 10.45h2.09V6.27H9.41zm5.75 0h2.09V6.27h-2.09z" fill="#000"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">4k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://www.youtube.com/c/telerik" title="YouTube" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="26" height="18.287" viewBox="0 0 26 18.287"><path fill="#010101" d="M25.74 3.945a5.625 5.625 0 0 0-1.034-2.581 3.718 3.718 0 0 0-2.605-1.1c-3.638-.263-9.1-.263-9.1-.263h-.011s-5.458 0-9.1.263a3.719 3.719 0 0 0-2.605 1.1A5.623 5.623 0 0 0 .26 3.945 39.324 39.324 0 0 0 0 8.154v1.972a39.323 39.323 0 0 0 .26 4.208 5.623 5.623 0 0 0 1.033 2.58 4.408 4.408 0 0 0 2.867 1.112c2.08.2 8.84.261 8.84.261s5.463-.008 9.1-.271a3.719 3.719 0 0 0 2.605-1.1 5.625 5.625 0 0 0 1.035-2.582 39.377 39.377 0 0 0 .26-4.208V8.154a39.377 39.377 0 0 0-.26-4.209Zm-15.388 8.6V5.211l6.974 3.665Z"/></svg> <span class="TK-Footer-Social-Link-Count TK-fs16">14k+</span></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://github.com/telerik" title="GitHub" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,0A12.047,12.047,0,0,0,0,12,12.455,12.455,0,0,0,9.188,24V20.03a2.889,2.889,0,0,1-3.239-1.441c-.273-.46-.756-.959-1.26-.922l-.124-1.4a2.892,2.892,0,0,1,2.593,1.6,1.555,1.555,0,0,0,.9.772,1.89,1.89,0,0,0,1.181-.1,3.3,3.3,0,0,1,.827-1.691h0C6.942,16.382,5.7,14.724,5.2,13.415a5.506,5.506,0,0,1,.855-5.281A.188.188,0,0,0,6.1,7.989a4.6,4.6,0,0,1,.14-3.073,4.858,4.858,0,0,1,2.663,1l.337.2c.141.084.1.036.238.025A10.182,10.182,0,0,1,12,5.792a10.225,10.225,0,0,1,2.553.363l.109.011c-.01,0,.03-.007.1-.046,2.436-1.476,2.349-.993,3-1.206A4.682,4.682,0,0,1,17.9,7.989c-.071.218,2.112,2.217.9,5.426-.494,1.309-1.74,2.968-4.866,3.434h0a3.086,3.086,0,0,1,.879,2.2V24A12.454,12.454,0,0,0,24,12,12.047,12.047,0,0,0,12,0Z"></path></svg></a></li><li class="TK-Footer-List-Horizontal-Item"><a href="https://discord.gg/pQXvHhjb7e" title="Discord" class="TK-Footer-Social-Link"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="19" viewBox="0 0 24 19"><path d="M15.335 0c-.233.416-.444.846-.634 1.285a18.474 18.474 0 0 0-5.48 0c-.186-.44-.4-.87-.634-1.285a19.93 19.93 0 0 0-4.94 1.524C.525 6.154-.32 10.665.1 15.114a19.84 19.84 0 0 0 6.057 3.043c.492-.659.926-1.361 1.298-2.093a13.114 13.114 0 0 1-2.042-.974c.171-.124.338-.254.5-.378a14.208 14.208 0 0 0 12.11 0c.162.134.329.263.5.378-.653.387-1.336.712-2.047.98.372.73.807 1.433 1.298 2.092a19.832 19.832 0 0 0 6.057-3.039c.497-5.16-.85-9.633-3.556-13.594A19.623 19.623 0 0 0 15.34.009L15.335 0zM7.99 12.376c-1.179 0-2.157-1.07-2.157-2.394s.94-2.399 2.152-2.399c1.213 0 2.177 1.08 2.157 2.399-.019 1.319-.95 2.394-2.152 2.394zm7.952 0c-1.184 0-2.153-1.07-2.153-2.394s.94-2.399 2.153-2.399c1.212 0 2.171 1.08 2.152 2.399-.019 1.319-.95 2.394-2.152 2.394z"/></svg></a></li></ul></li></ul></div></div></div></div><div class="TK-row TK-row--M1"><div class="TK-col-24"><a href="https://www.progress.com" aria-label="Go to Progress.com" class="TK-PRGS-Logo-Footer"><svg xmlns="http://www.w3.org/2000/svg" width="130" height="30" viewBox="0 0 512 120"><path fill="#5ce500" d="M95.52 29.33v51a3.93 3.93 0 0 1-1.78 3.08l-1.67 1-12.72 7.35-8.59 5-1.78 1V42.6L21.23 15 43.91 1.93 46 .74a3.94 3.94 0 0 1 3.56 0L81 18.9l14.51 8.38v2.05zM58.36 48.72l-9.79-5.66-22.91-13.23a4 4 0 0 0-3.56 0L1.77 41.57 0 42.6l34.49 19.91v39.83l20.3-11.73 1.79-1a3.94 3.94 0 0 0 1.78-3.08V48.72zM0 82.43l23.86 13.78V68.63z"></path><path fill="#4b4e52" d="M148.09 27.28h-26v70.48h11.55V70.1h14.57c15.77 0 24.45-7.7 24.45-21.69 0-6.35-2.4-21.12-24.55-21.12m12.78 21.31c0 7.95-4.12 11.19-14.24 11.19h-13v-22.1h14.57c8.56 0 12.71 3.57 12.71 10.91M207 46.41l.87.42-2 10.42-1.35-.42a11.32 11.32 0 0 0-3.34-.51c-10.79 0-11.67 8.59-11.67 19v22.44h-10.64V46h10v6.24c2.73-4.2 6-6.37 10.37-6.9a14.55 14.55 0 0 1 7.76 1.07M233.29 45c-8.42 0-15.16 3.2-19.5 9.27-4.56 6.37-5.23 13.85-5.23 17.74 0 16.36 9.7 26.92 24.73 26.92 18.26 0 24.73-14.71 24.73-27.3 0-7.25-2.15-13.82-6-18.51-4.41-5.31-10.87-8.12-18.7-8.12m0 44.38c-8.37 0-13.57-6.66-13.57-17.37s5.2-17.55 13.57-17.55S247 61.23 247 71.78c0 10.83-5.24 17.56-13.66 17.56m114.55-42.93l.87.42-2 10.42-1.35-.42a11.26 11.26 0 0 0-3.33-.51c-10.78 0-11.66 8.59-11.66 19v22.44h-10.66V46h10v6.24c2.73-4.2 6-6.37 10.37-6.9a14.54 14.54 0 0 1 7.73 1.06m38.4 34.76l-.2.57c-2.23 6.36-7.57 7.7-11.65 7.7-8.09 0-13.3-5.37-13.81-14.09h36.59l.13-1a31.26 31.26 0 0 0 .12-4.12v-.93C396.93 54.78 387.48 45 374 45c-7.9 0-14.37 3.1-18.73 9a30.85 30.85 0 0 0-5.54 18c0 16 9.95 26.74 24.74 26.74 11.45 0 19.33-5.82 22.2-16.38l.33-1.2h-10.7zM361 66.05c.9-7.17 5.81-11.73 12.79-11.73 5.33 0 11.64 3.1 12.52 11.73H361zm-60.7-15.71c-3.45-3.58-8.06-5.39-13.76-5.39-15.69 0-22.83 13.81-22.83 26.63 0 13.16 7.06 26.44 22.83 26.44a18.33 18.33 0 0 0 13.35-5.42c0 2.28-.1 4.45-.16 5.38-.58 8.54-4.68 12.51-12.91 12.51-4.47 0-9.61-1.59-10.6-6l-.22-1h-10.54l.17 1.41c1.1 9.12 9.11 14.79 20.9 14.79 10.34 0 17.7-3.9 21.28-11.26 1.73-3.55 2.6-8.72 2.6-15.37V46h-10.13v4.34zm-13.11 38.15c-3.74 0-12.43-1.69-12.43-17.37 0-10.3 4.87-16.7 12.71-16.7 6.06 0 12.52 4.39 12.52 16.7 0 10.87-4.79 17.37-12.81 17.37m159.67-6.31c0 8.23-6.83 16.53-22.09 16.53-13.5 0-21.53-5.85-22.61-16.45l-.15-1.1h10.52l.21.84c1.29 6.38 7.37 7.72 12.24 7.72 5.34 0 11-1.72 11-6.54 0-2.44-1.59-4.18-4.73-5.16-1.86-.55-4.15-1.2-6.56-1.87-4.16-1.16-8.47-2.38-11.12-3.29-6.56-2.35-10.33-6.93-10.33-12.56 0-10.43 10.16-15.11 20.22-15.11 13.46 0 20.42 5.07 21.3 15.49l.09 1.07H434.5l-.14-.82c-1-6-7-6.9-10.48-6.9-3 0-10 .53-10 5.5 0 2.25 1.93 3.91 5.89 5.06 1.18.33 2.94.78 5 1.31 4.22 1.09 9.48 2.46 12.13 3.37 6.59 2.32 9.93 6.67 9.93 13m49.39 0c0 8.23-6.83 16.53-22.09 16.53-13.5 0-21.53-5.85-22.61-16.45l-.11-1.09H462l.12.74c1.29 6.38 7.37 7.72 12.24 7.72 5.34 0 11-1.72 11-6.54 0-2.44-1.59-4.18-4.72-5.16-1.86-.55-4.15-1.2-6.57-1.87-4.16-1.16-8.46-2.38-11.11-3.29-6.57-2.35-10.33-6.93-10.33-12.56 0-10.43 10.16-15.11 20.22-15.11 13.46 0 20.42 5.07 21.29 15.49l.09 1.07H483.9l-.14-.82c-1-6-7-6.9-10.48-6.9-3 0-9.95.53-9.95 5.5 0 2.25 1.93 3.91 5.89 5.06 1.18.33 2.94.78 5 1.31 4.22 1.09 9.48 2.46 12.13 3.37 6.58 2.32 9.93 6.67 9.93 13m8.43-30.78a7.37 7.37 0 1 1 7.29-7.37 7.23 7.23 0 0 1-7.29 7.37m0-13.49a6.12 6.12 0 1 0 6 6.12 5.91 5.91 0 0 0-6-6.12m-.85 7.49v2.46h-2.17v-7.74h3.62a2.58 2.58 0 0 1 2.86 2.7 2.26 2.26 0 0 1-1.49 2.34l1.77 2.7H506l-1.49-2.46h-.68zm1.21-3.49h-1.21v1.73h1.21a.86.86 0 0 0 1-.85.88.88 0 0 0-1-.89"></path></svg></a></div></div><div class="TK-row"><div class="TK-col-12"><p class="TK-Footer-About">Telerik and Kendo UI are part of Progress product portfolio. Progress is the leading provider of application development and digital experience technologies.</p></div><div class="TK-col-24"><div class="TK-row--M3 TK--Footer-Desktop"><ul class="TK-Footer-List-Horizontal"><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://www.progress.com/company">Company</a></li><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://www.progress.com/products">Technology</a></li><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://www.progress.com/company/awards">Awards</a></li><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://investors.progress.com/press-releases">Press Releases</a></li><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://www.progress.com/company/press-coverage">Media Coverage</a></li><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://www.progress.com/company/careers">Careers</a></li><li class="TK-Footer-List-Horizontal-Item"><a class="TK-Footer-Link TK-Footer-Link-Horizontal" href="https://www.progress.com/company/offices">Offices</a></li></ul></div></div></div><div class="TK-row TK-row--M2 TK--Footer-Mobile"><div class="TK-col-24"><ul class="TK-Footer-List"><li class="TK-Footer-List-Item"><a href="https://www.progress.com/company" class="TK-Footer-Link">Company</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/products" class="TK-Footer-Link">Technology</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/company/awards" class="TK-Footer-Link">Awards</a></li><li class="TK-Footer-List-Item"><a href="https://investors.progress.com/press-releases" class="TK-Footer-Link">Press Releases</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/company/press-coverage" class="TK-Footer-Link">Media Coverage</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/company/careers" class="TK-Footer-Link">Careers</a></li><li class="TK-Footer-List-Item"><a href="https://www.progress.com/company/offices" class="TK-Footer-Link">Offices</a></li></ul></div></div><div class="TK-row"><div class="TK-col-16"><p class="TK-Footer-Copy">Copyright &copy; 2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.</p><p class="TK-Footer-Copy">Progress and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See <a href="https://www.progress.com/legal/trademarks" class="TK-Footer-Link-Tiny">Trademarks</a> for appropriate markings. All rights in any other trademarks contained herein are reserved by their respective owners and their inclusion does not imply an endorsement, affiliation, or sponsorship as between Progress and the respective owners.</p></div><div class="TK-col-8 TK-tar"><ul class="TK-Footer-List-Horizontal"><li class="TK-Footer-List-Horizontal-Item TK-Footer-List-Horizontal-Item-Effect"><a href="/about/terms-of-use" class="TK-Footer-Link-Tiny">Terms of Use</a></li><li class="TK-Footer-List-Horizontal-Item TK-Footer-List-Horizontal-Item-Effect"><a href="/feedback" class="TK-Footer-Link-Tiny">Site Feedback</a></li><li class="TK-Footer-List-Horizontal-Item TK-Footer-List-Horizontal-Item-Effect"><a href="https://www.progress.com/legal/privacy-center" class="TK-Footer-Link-Tiny" target="_blank" rel="noopener">Privacy Center</a></li><li class="TK-Footer-List-Horizontal-Item TK-Footer-List-Horizontal-Item-Effect"><a href="https://www.progress.com/trust-center" class="TK-Footer-Link-Tiny" target="_blank" rel="noopener">Trust Center</a></li></ul><div class="TLRK-CCPA"><a href="https://forms.progress.com/ccpa-subscription" target="_blank" rel="nofollow noopener">Do Not Sell or Share My Personal Information</a></div><p class="TK-Footer-Power">Powered by <a href="https://www.progress.com/sitefinity-cms" class="TK-Footer-Link-Tiny">Progress Sitefinity</a></p></div></div></div></footer>





 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.1/jquery-migrate.min.js" type="text/javascript"></script><script src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.SitefinityExtensions.Forms/Scripts/recaptcha-service.js?package=PureMvc&amp;v=LTEyODEyNDkzMg%3d%3d" type="text/javascript"></script>
            <script type="text/javascript">
                var oneTrustHelper = (function () {
                    function evalGTMScript() {
                        var gtmScript = document.getElementById("GTMScript");
                        gtmScript.type = "text/javascript";
                        gtmScript.classList.remove("optanon-category-1");
                        eval(gtmScript.innerHTML);
                    };

                    return {
                        gtmFallback: function () {
                            console.warn('OneTrust not loaded.');
                            if (document.readyState !== 'loading') {
                                evalGTMScript();
                            } else {
                                document.addEventListener('readystatechange', function () {
                                    if (document.readyState === 'interactive') {
                                        evalGTMScript();
                                    }
                                });
                            };
                        }
                    };
                })();
            </script>
        
               <script onerror="oneTrustHelper.gtmFallback()" src="https://cdn.cookielaw.org/consent/3dfce4f2-dab6-4128-9f33-df7e0597da82/otSDKStub.js" data-language="en" type="text/javascript" charset="UTF-8" data-domain-script="3dfce4f2-dab6-4128-9f33-df7e0597da82"></script>
            
<script type="text/javascript">
    (function (w) {
        w.OptanonGroups = {"StrictlyNecessaryCookies":"1","PerformanceCookies":"2","FunctionalCookies":"3","TargetingCookies":"4"};

        w.isOptanonGroupActive = function (groupId, explicit) {
            if (!w.OptanonActiveGroups) return false;
            var groupMatchKey = ',' + groupId + ',';

            return w.OptanonActiveGroups.indexOf(groupMatchKey) !== -1;
        }

        function toggleSitefinityTrackingConsent() {
            var performanceCookiesGroupId = w.OptanonGroups.PerformanceCookies;
            var isPerformanceCookiesGroupIdActive = w.isOptanonGroupActive(performanceCookiesGroupId, true);

            if (w.TrackingConsentManager) {
                w.TrackingConsentManager.updateUserConsent(isPerformanceCookiesGroupIdActive);
            }
        };

        var trackingScriptsQueue = [];
        w.invokeTrackingScript = function (thisReference, trackingGroup, functionReference) {
            if (isOptanonGroupActive(trackingGroup, true)) {
                functionReference.call(thisReference);
            }
            else {
                trackingScriptsQueue.push({
                    thisReference: thisReference,
                    trackingGroup: trackingGroup,
                    functionReference: functionReference
                });
            }
        }

        var isOptanonToggled = false;
        var preferenceChangeHandlerAdded = false;

        w.OptanonWrapper = function () {
            var newTrackingScriptsQueue = [];
            for (var i = 0; i < trackingScriptsQueue.length; i++) {
                var trackingScriptData = trackingScriptsQueue[i];
                if (isOptanonGroupActive(trackingScriptData.trackingGroup, true)) {
                    trackingScriptData.functionReference.call(trackingScriptData.thisReference);
                }
                else {
                    newTrackingScriptsQueue.push(trackingScriptData);
                }
            }

            trackingScriptsQueue = newTrackingScriptsQueue;

            if (!isOptanonToggled && w.location.hash === '#cookie-settings' && true) {
                isOptanonToggled = true;
                Optanon.ToggleInfoDisplay();
            }

            if(!preferenceChangeHandlerAdded){
                
                 OneTrust.OnConsentChanged(function() {

                     // Trigger cookie check process after user makes changes to allowed cookie groups from the OneTrust cookie settings dialog.
                     $.ajax(
                     {
                         url: '/webapi/CookiePreferences/Update',
                         type: 'HEAD'
                     });
                 });

                preferenceChangeHandlerAdded = true;
            }

            toggleSitefinityTrackingConsent();
        }
    })(window);
</script>
 <script>
			// global variables
			var telerikId;
			var tlrkUser;
		</script> <script>
	(async function () {

	const response = await fetch("/webapi/UserTracking/RetrieveTelerikId", {
		method: "GET",
		cache: "no-cache",
	});

	const model = await response.json();

	telerikId = model.telerikId;
	tlrkUser = { isAuthenticated: !!telerikId };

	if (document.addEventListener) {
		window.dataLayer = window.dataLayer || [];
		dataLayer.push({ uniqueId: model.userId, telerikId });
		dataLayer.push({ event: "persistuuid" })
	}
})();
</script> <script id="GTMScript" type="text/plain" class="optanon-category-1" >
    function isMobileDevice() {
        var result = false;
        var matches = [
            /(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,
            /(Silk)\/(\d+)\.(\d+(\.\d+)?)/,
            /(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)\.?(\d+(\.\d+)?)?/,
            /(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,
            /(iPad).*OS\s+(\d+)[\._]([\d_]+)/,
            /(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,
            /(webOS)\/(\d+)\.(\d+(\.\d+)?)/,
            /(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,
            /(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,
            /(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,
            /(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,
            /(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,
            /(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/
        ];
        for (var i = 0; i < matches.length; i++) {
            result = matches[i].test(window.navigator.userAgent);
            if (result) {
                break;
            }
        }
        return result;
    }

    (function () {
        'use strict';
        window.dataLayer = window.dataLayer || []; dataLayer.push({ isTelerikMarketingWebsite: true });
        if (isMobileDevice()) {
            return;
        }
        (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-6X92');
    })();
</script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-6X92" height="0" width="0" style="display: none; visibility: hidden"></iframe> </noscript> <script type="text/plain" class="optanon-category-2">
		!function (e) { function n() { if (e && r()) { var n = t(); i(e, n) } } function i(e, n) { l.post(u, new c({ telerikId: e, uniqueId: n })) } function t() { for (var e = document.cookie.split(";"), n = "gauuid", i = 0; i < e.length; i++) { for (var t = e[i]; " " === t.charAt(0);)t = t.substring(1, t.length); if (0 === t.indexOf(n)) return t.substring(n.length, t.length).replace("=", "") } return null } function r() { var e = new Date; if (null === localStorage.getItem(a)) return o(e), !0; var n = Date.parse(localStorage.getItem(a)); if (isNaN(n)) return !1; var i = new Date(n); return i.setTime(i.getTime() + 6048e5) < e ? (o(e), !0) : !1 } function o(e) { localStorage.setItem(a, e.toISOString()) } if (window.jQuery) { var l = window.jQuery, u = window.location.origin + "/services/callhomeservice/api/userlogged", a = "call-home-client-key-user-logged", c = function (e) { this.telerikId = e.telerikId, this.uniqueId = e.uniqueId }; l(document).ready(function () { n() }), window.__callhome__ || (window.__callhome__ = {}), window.__callhome__.verify = r, window.__callhome__.init = n } }(telerikId);
	</script> <script src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.Widgets.SEO/Mvc/Scripts/Shared/referrer-policy.min.js?package=PureMvc&amp;v=LTU0Nzg3NTg3" type="text/javascript"></script><script src="https://dtzbdy9anri2p.cloudfront.net/cache/b3485d7dde1ec57a3915d1079237c8c34a5198c1/telerik/js/dist/polyfills.min.js" type="text/javascript"></script><script src="https://dtzbdy9anri2p.cloudfront.net/cache/9095bdf2115aeca1f4aa1ab08b29d89277d879bb/telerik/js/dist/all.min.js" type="text/javascript"></script><script src="/Frontend-Assembly/Telerik.Sitefinity.Frontend.Forms/Mvc/Scripts/EmailTextField/email-text-field.js?package=PureMvc&amp;v=LTE2MzYwOTg1NjM%3d" type="text/javascript"></script><script src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.Widgets.MVC.Forms/Mvc/Views/StatesListField/states-field.min.js?package=PureMvc&amp;v=NDUxODU0MDc4" type="text/javascript"></script><script src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.Widgets.MVC.Forms/Mvc/Views/OptInOutField/opt-in-out.min.js?package=PureMvc&amp;v=NDUxODU0MDc4" type="text/javascript"></script><script src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.Widgets.MVC.Forms/Mvc/Scripts/Recaptcha/recaptcha.min.js?package=PureMvc&amp;v=NDUxODU0MDc4" type="text/javascript"></script><script src="https://d585tldpucybw.cloudfront.net/jsbundle/common-form?v=1Km7tZ0xZRRK_2xZ2yNBzXDqsuagPQ9avViJk3UCjVg1" type="text/javascript"></script><script src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.Widgets.MVC.Forms/Mvc/Scripts/CommonForm/FormTracking.min.js?package=PureMvc&amp;v=NDUxODU0MDc4" type="text/javascript"></script>
<script type="text/javascript">
    
(function() {
    if (window._dataLayerTimeout) {
        clearTimeout(window._dataLayerTimeout);
    }

    window._dataLayerTaxLoadedEvent = {
		...(window._dataLayerTaxLoadedEvent || {}),
		...{"tax_pagenode_products":"progress-telerik","event":"tax_loaded"}
	};

    window._dataLayerTimeout = setTimeout(function() {
        window.dataLayer = window.dataLayer || [];
        window.dataLayer.push(window._dataLayerTaxLoadedEvent);
    }); 
})();

</script><script type="text/javascript">(function(n){var t=n.fn.text;n.fn.text=function(i){return n.isFunction(i)?t.apply(this,arguments):typeof i!="object"&&i!==undefined&&this.length==1&&n(this[0]).data().sfRole&&n(this[0]).data().sfRole=="success-message"?this.empty().html(i):t.apply(this,arguments)}})(jQuery)</script><script type="text/javascript">(function(){var t=function(t){if(t.WidgetInstanceId=="4d59940e-e1d9-4a92-a306-164d5b033835"&&t.status===200){var r=JSON.parse(t.response);if(!r.success){for(var i=$('[name="WidgetInstanceId"][value="4d59940e-e1d9-4a92-a306-164d5b033835"]').closest('[data-sf-role="form-container"]'),e=i.find('[data-sf-role="error-message"]'),o=0;o<e.length;o++){var h=$(e[o]),c=h.clone(),l=h.parent();l.find('[data-sf-role="error-message"]').remove();c.appendTo(l);c.show()}e=i.find('[data-sf-role="error-message"]');var u=n(r.error)?JSON.parse(r.error):null,s=u&&u.CustomErrors&&n(u.CustomErrors)?JSON.parse(u.CustomErrors):null;if(s)for(var a in s){var v=i.find('[name="'+a+'"]'),f=v?v.parent().children('[data-sf-role="error-message"]'):null;f&&(f.text(s[a]),f.addClass("sfError"),f.parent().addClass("sfErrorWrp"))}else{var y=i.find(".js-main-error-message-wrapper .js-main-error-message-container");y.html(r.error);y.show()}i.find('button[type="submit"],input[type="submit"]').click(function(){i.find('[data-sf-role="error-message"]').text("")})}}};function n(n){try{JSON.parse(n)}catch(t){return!1}return!0}window.MvcFormSubmitResponseHandlers=window.MvcFormSubmitResponseHandlers||[];window.MvcFormSubmitResponseHandlers.push(t)})()</script><script type="text/javascript">(function(){var t=function(t){if(t.WidgetInstanceId=="4d59940e-e1d9-4a92-a306-164d5b033835"&&t.status===200){var f=JSON.parse(t.response);if(!f.success){var s=$('[name="WidgetInstanceId"][value="4d59940e-e1d9-4a92-a306-164d5b033835"]').closest('[data-sf-role="form-container"]'),i=n(f.error)?JSON.parse(f.error):null,e="CustomValues",r=i&&i[e]&&n(i[e])?JSON.parse(i[e]):null;if(r)for(var u in r){var o=s.find('[name="'+u+'"]');if(o&&o.length)o.val(r[u]);else{var h=$("<input>").attr({type:"hidden",name:u,value:r[u]});h.appendTo(s)}}}}};function n(n){try{JSON.parse(n)}catch(t){return!1}return!0}window.MvcFormSubmitResponseHandlers=window.MvcFormSubmitResponseHandlers||[];window.MvcFormSubmitResponseHandlers.push(t)})()</script><script type="text/javascript">(function(){var n=function(n){if(n.WidgetInstanceId=="4d59940e-e1d9-4a92-a306-164d5b033835"&&n.status===200){var t=JSON.parse(n.response);t.success&&window.invokeTrackingScript(this,OptanonGroups.PerformanceCookies,function(){var i=$('[name="WidgetInstanceId"][value="4d59940e-e1d9-4a92-a306-164d5b033835"]').closest('[data-sf-role="form-container"]'),n="Email",t=n?i.find("input[name="+n+"]"):null;t&&(window.BizibleTracker=window.BizibleTracker||[],BizibleTracker.push({Email:t.val(),SendIfSame:!1}))})}};window.MvcFormSubmitResponseHandlers=window.MvcFormSubmitResponseHandlers||[];window.MvcFormSubmitResponseHandlers.push(n)})()</script><script type="text/javascript">(function(){var n=function(n){if(n.WidgetInstanceId=="4d59940e-e1d9-4a92-a306-164d5b033835"&&n.status===200){var i=JSON.parse(n.response);if(i.success){var t="/virtual/blogs";t&&typeof dataLayer!="undefined"&&(window.dataLayer=window.dataLayer||[],dataLayer.push({event:"virtualPageview",vpv:t}),dataLayer.push({event:"page_view",page_path:t}))}}};window.MvcFormSubmitResponseHandlers=window.MvcFormSubmitResponseHandlers||[];window.MvcFormSubmitResponseHandlers.push(n)})()</script><script type="text/javascript">
    $('#form--1').find('[name="pageurl"]').val(window.location.href);
</script><script class="optanon-category-2" type="text/plain">$(function(){function r(n){return n.split("?")[0]}let t=r("/widgettemplateformsubmit/CommonForm/TemplateAjaxSubmit");function i(){setAdWordsCookie("adWordsData","ad_words",!0,t);setAdWordsCookie("expTracking","expTracking",!0,t);window.addEventListener("onOptimizeCallbackTriggered",function(){setAdWordsCookie("expTracking","expTracking",!0,t)},!1)}if(typeof setAdWordsCookie=="function")i();else{function t(){this.readyState&&this.readyState!=="complete"&&this.readyState!=="loaded"||i()}var n=document.createElement("script");n.src="https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.SitefinityExtensions.EloquaConnector/Scripts/AdWordsCookieHelper.min.js?package=PureMvc&v=NDAwMTUzNTc%3d&v=NDAwMTUzNTc%3d";n.type="text/javascript";n.async=!0;n.addEventListener?n.addEventListener("load",t,!1):script.readyState&&(n.onreadystatechange=t);document.body.appendChild(n)}})</script><script class="optanon-category-2" type="text/plain">$(function(){var t=[],f=new Web.Forms.FormFieldManager("form--1"),n=JSON.parse('[{"type":"Email","htmlName":"Email","providerFieldName":"C_EmailAddress"},{"type":"Country","htmlName":"DynamicListFieldController","providerFieldName":"C_Country"},{"type":"State","htmlName":"StatesListFieldController","providerFieldName":"C_State_Prov"},{"type":"Email Opt-in/out","htmlName":"OptInOutFieldController","providerFieldName":"C_Electron_Message_Status1"}]'),i=JSON.parse('{"siteId":"1325","pps":"50","dlKey":"6a658360-4f8e-4a82-81df-12d57d43ef11","elqCookieWrite":"0","contactDlKey":"d3b0b8c7-0681-44c2-a213-f3586276a006","initialElqCookieWrite":"1","initialElqCookie":"0","initialPps":"70"}');i&&n&&n.length>0&&t.push(new Web.Forms.EloquaPrefillDataProvider(n,i));var r=JSON.parse('[{"fieldType":"Email Opt-in/out","prefiller":"emailOptInOut"}]'),u=new Web.Forms.FormPrefill(t,r,"form--1");u.prefill()})</script><script class="optanon-category-2" type="text/plain">(function(){var n=Web.Widgets.Mvc.Forms.Tracking,e=!navigator.sendBeacon,r=document.getElementById("form--1"),o=r.querySelector(`[data-sf-role="widget-id"]`),c=o?o.value:"",u=c;u||(u="9bac7f37-e8d8-4b7f-b554-bf9891689ba1");var t=new n.GoalConversionInfo("BlogSubscription","Telerik",u),s=new n.Sitefinity.GoalConversionFormTracker(t,"4d59940e-e1d9-4a92-a306-164d5b033835",e),f=new n.Sitefinity.TriggerableGoalConversionFormTracker(t);r.triggerableGoalConversionFormTracker=f;var h=new n.GoogleAnalyticsEventNotification("conversion-event",!e);new n.FormTracking(s,h).track();new n.FormTracking(f,h).track();var i=r.querySelector("[name='Product']");i&&i.addEventListener("change",function(){var n="";if(i.tagName.toUpperCase()==="SELECT")n=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(this.value)?this.options[this.selectedIndex].text:this.value;else{var r=i.querySelectorAll('input[type="checkbox"]:checked');if(r&&r.length>0)for(var u=0;u<r.length;u++)n+=r[u].value,u!==r.length-1&&(n+=", ")}n&&(t.productName=n);s.updateData(t);f.updateData(t)})})()</script><script type="text/plain" class="optanon-category-2">
	(function() {
				var script = 'https://s1325.t.eloqua.com/visitor/v200/svrGP?pps=70&siteid=1325';
				(function getScript(source, callback) {
					var script = document.createElement('script');
					var prior = document.getElementsByTagName('script')[0];
					script.async = 1;
					prior.parentNode.insertBefore(script, prior);
					script.onload = script.onreadystatechange = function( _, isAbort ) {
						if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) {
							script.onload = script.onreadystatechange = null;
							script = undefined;

							if(!isAbort) { if(callback) callback(); }
						}
					};
					script.src = source;
				})(script, function() {
					if (typeof GetElqCustomerGUID == 'function') {
						var userId = GetElqCustomerGUID();
						document.cookie = 'elqUserId=' + userId + ';secure; path=/;SameSite=Lax;';
					}
				});
			})();
</script><script type="application/json" id="PersonalizationTracker">
	{"IsPagePersonalizationTarget":false,"IsUrlPersonalizationTarget":false,"PageId":"9bac7f37-e8d8-4b7f-b554-bf9891689ba1"}
</script><script type="text/javascript" src="/WebResource.axd?d=NjxTqR2bqTw1rewxxlkHPhr-2awQiGC1t4afxFkRlQ9hya2sD15bGrdgIYxV5oymd7lM20nXinlfNQ7rubKudQ2RDNHnt0G9zqYW8HltmFjcKKorrcw5dV0tBFxsPvDHJP04y9syTz7mNZS4jPK7kvcqYvWCXk_9LL20Ml6lJlZfLS7RIWZnqaGGXv0sk0sXw5161BHGhvkqb9uCayn9Kq57pV9u23lE6Pml2fnEAC01&amp;t=638923998120000000">

</script> <script type="application/ld+json">
		{
  "@context": "https://schema.org",
  "@type": "Organization",
  "url": "https://www.telerik.com/",
  "sameAs": [
    "https://x.com/telerik",
    "https://www.youtube.com/c/telerik",
    "https://www.linkedin.com/company/telerik",
    "https://en.wikipedia.org/wiki/Telerik",
    "https://github.com/telerik",
    "https://www.facebook.com/telerik",
    "https://www.twitch.tv/codeitlive"
  ],
  "logo": "https://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/author-images/progress-blog-default-logo-transparent.png",
  "name": "Progress Telerik",
  "description": "Save time building sleek web, mobile and desktop apps with professional .NET UI Components, JavaScript UI Libraries, Reporting and Automated Testing solutions.",
  "telephone": "+1 800 213 3407",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "15 Wayside Rd, Suite 400",
    "addressLocality": "Burlington",
    "addressCountry": "US",
    "postalCode": "01803"
  }
}
	</script> <script type="text/plain" class="optanon-category-2"> !function () { function loadEloqua() { if (void 0 === window._elqQ || window._elqQ.constructor !== Array || "elqSetSiteId" !== window._elqQ[0][0] || "1325" !== window._elqQ[0][1]) { window.dataLayer = window.dataLayer || [], window._elqQ = window._elqQ || [], window._elqQ.push(["elqSetSiteId", "1325"]), window._elqQ.push(["elqTrackPageView", window.location.href]), window.dataLayer.push({ event: "elqQ_loaded" }); var s = document.createElement("script"); s.type = "text/javascript", s.async = !0, s.src = "//img.en25.com/i/elqCfg.min.js"; var x = document.getElementsByTagName("script")[0]; x.parentNode.insertBefore(s, x) } } function loadGA() { window._gaq = window._gaq || [], window._gaq.push(["_setAccount","UA-111455-1"], ["_setDomainName", ".telerik.com"], ["_addIgnoredRef", "telerik.com"], ["_trackPageview"]); var ga = document.createElement("script"); ga.type = "text/javascript", ga.async = !0, ga.src = ("https:" == document.location.protocol ? "https://" : "http://") + "stats.g.doubleclick.net/dc.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s) } isMobileDevice() && (loadGA(), loadEloqua()) }();</script> <script type="text/javascript" defer src='https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.SitefinityExtensions.EloquaConnector/Scripts/BrowserSessionStorage.min.js?package=PureMvc&amp;v=NDAwMTUzNTc%3d&amp;v=NDAwMTUzNTc%3d'></script> <script type="text/javascript" defer src='https://d585tldpucybw.cloudfront.net/Frontend-Assembly/Web.SitefinityExtensions.EloquaConnector/Scripts/SetBrowserSessionStorage.min.js?package=PureMvc&amp;v=NDAwMTUzNTc%3d&amp;v=NDAwMTUzNTc%3d)'></script> </body> </html>
