{"id":3170,"date":"2025-09-22T15:35:04","date_gmt":"2025-09-22T15:35:04","guid":{"rendered":"https:\/\/xceed.com\/?p=3170"},"modified":"2026-08-26T14:58:56","modified_gmt":"2026-08-26T18:58:56","slug":"async-virtualization-that-actually-feels-instant","status":"publish","type":"post","link":"https:\/\/xceed.com\/fr\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/","title":{"rendered":"Virtualisation asynchrone qui semble vraiment instantan\u00e9e"},"content":{"rendered":"<h1 class=\"wp-block-heading\">WPF DataGrid Performance at Scale<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If your <a href=\"https:\/\/xceed.com\/fr\/produits\/wpf\/datagrid-pour-wpf\/\">DataGrid WPF<\/a> starts to hitch the moment you hit a few hundred thousand rows, the bottleneck isn\u2019t just \u201ctoo much data\u201d\u2014it\u2019s how the grid handles it. Async data virtualization and row recycling eliminate UI stalls by keeping the render thread free while data loads in the background.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What causes freezes in WPF grids<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Synchronous data fetches on the UI thread<\/li>\n\n\n\n<li>Excessive layout passes during fast scroll<\/li>\n\n\n\n<li>Row template churn without recycling<\/li>\n\n\n\n<li>Binding overhead from heavyweight cell templates<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Our test setup<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dataset: 1,000,000 rows, mixed column types, server-side filter capability<\/li>\n\n\n\n<li>Interactions: fast scroll (mouse + scrollbar), multi-column group, filter text entry<\/li>\n\n\n\n<li>Environment: Release build, x64, .NET 8, hardware acceleration enabled<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What changed with async virtualization<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data requests happen off the UI thread<\/li>\n\n\n\n<li>Rows recycle; visual tree churn is minimized<\/li>\n\n\n\n<li>Placeholders render immediately; data fills progressively<\/li>\n\n\n\n<li>Input stays responsive even under heavy fetch<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Expected performance profile<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scrolling retains visual continuity with stable 60 FPS<\/li>\n\n\n\n<li>Input latency stays under ~50 ms while data loads<\/li>\n\n\n\n<li>Memory usage remains bounded due to page\/windowing<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Implementation pattern (simplified)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use an async-friendly collection and page\/window manager<\/li>\n\n\n\n<li>Kick off data fetch on background threads<\/li>\n\n\n\n<li>Bind to virtualization-aware views<\/li>\n\n\n\n<li>Enable row recycling and lightweight cell templates<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Developer checklist<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Turn on row virtualization and recycling<\/li>\n\n\n\n<li>Move data fetches off the UI thread<\/li>\n\n\n\n<li>Use lightweight cell templates and value converters sparingly<\/li>\n\n\n\n<li>Group\/filter via async-capable, incremental sources<\/li>\n\n\n\n<li>Measure with ETW\/WPA to confirm UI thread headroom<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Why it matters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Users feel stutter more than they notice raw milliseconds. Smoothness is the difference between \u201cgood enough\u201d and \u201cwe\u2019re buying this.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Try Xceed DataGrid for WPF with async virtualization and see the difference in under an hour. Start your 45-day trial: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/xceed.com\/fr\/proces\/%2a%2a\/\">https:\/\/xceed.com\/trial\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does async virtualization work with grouping and filtering? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes\u2014use incremental sources so group\/filters compute off the UI thread and hydrate progressively.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will virtualization change my data model? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No; you wrap sources in a virtualization-aware layer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I measure if it\u2019s working? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Profile UI thread time with ETW\/WPA; you should see input\/render threads with headroom during fast scroll.<\/p>","protected":false},"excerpt":{"rendered":"<p>La vitesse du DataGrid WPF d\u00e9pend de la r\u00e9cup\u00e9ration et du rendu. Utilisez la virtualisation de donn\u00e9es asynchrone pour lib\u00e9rer le thread d'interface utilisateur et le recyclage des lignes pour r\u00e9duire les changements visuels. Dans .NET 8 avec 1 000 000 de lignes, nous avons observ\u00e9 un d\u00e9filement fluide et rapide, environ 60 FPS, une entr\u00e9e inf\u00e9rieure \u00e0 50 ms, et une m\u00e9moire limit\u00e9e gr\u00e2ce \u00e0 la pagination fen\u00eatr\u00e9e. Activez la virtualisation\/le recyclage, r\u00e9cup\u00e9rez les donn\u00e9es hors UI, gardez les mod\u00e8les l\u00e9gers, et v\u00e9rifiez avec ETW\/WPA. La fluidit\u00e9 prime.<\/p>","protected":false},"author":12,"featured_media":3171,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[60],"tags":[347,356,349,355,351,354,350,348,357,352,74,72],"products":[795],"class_list":["post-3170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-asyncvirtualization","tag-datagrid","tag-dotnet8","tag-lowlatency","tag-rowrecycling","tag-rowvirtualization","tag-smoothscrolling","tag-uiperformance","tag-virtualization","tag-wpfperformance","tag-dotnet","tag-wpf","products-datagrid-for-wpf"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Async Virtualization That Actually Feels Instant - Xceed Software<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/xceed.com\/fr\/blog\/tutoriels\/async-virtualization-that-actually-feels-instant\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Async Virtualization That Actually Feels Instant - Xceed Software\" \/>\n<meta property=\"og:description\" content=\"WPF DataGrid speed hinges on fetch and render. Use async data virtualization to free the UI thread and row recycling to cut visual churn. In .NET 8 with 1,000,000 rows, we saw smooth fast scroll, ~60 FPS, sub-50 ms input, and bounded memory via windowed paging. Turn on virtualization\/recycling, fetch off-UI, keep templates light, and verify with ETW\/WPA. Smoothness wins.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/xceed.com\/fr\/blog\/tutoriels\/async-virtualization-that-actually-feels-instant\/\" \/>\n<meta property=\"og:site_name\" content=\"Xceed Software\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-22T15:35:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-26T18:58:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/xceed.com\/wp-content\/uploads\/2025\/09\/unnamed-file.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Christopher Radford\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christopher Radford\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/\"},\"author\":{\"name\":\"Christopher Radford\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/79a6cce48b70a88e6701fef086d7c351\"},\"headline\":\"Async Virtualization That Actually Feels Instant\",\"datePublished\":\"2025-09-22T15:35:04+00:00\",\"dateModified\":\"2026-08-26T18:58:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/\"},\"wordCount\":359,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/unnamed-file.png\",\"keywords\":[\"#asyncvirtualization\",\"#datagrid\",\"#dotnet8\",\"#lowlatency\",\"#rowrecycling\",\"#rowvirtualization\",\"#smoothscrolling\",\"#uiperformance\",\"#virtualization\",\"#wpfperformance\",\"dotnet\",\"WPF\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/\",\"name\":\"Async Virtualization That Actually Feels Instant - Xceed Software\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/unnamed-file.png\",\"datePublished\":\"2025-09-22T15:35:04+00:00\",\"dateModified\":\"2026-08-26T18:58:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#primaryimage\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/unnamed-file.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/unnamed-file.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/async-virtualization-that-actually-feels-instant\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/xceed.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Async Virtualization That Actually Feels Instant\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"name\":\"Xceed Software\",\"description\":\"Provides tools for .NET, Windows Forms, WPF, Silverlight, and ASP.NET developers to create better applications.\",\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/xceed.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\",\"name\":\"Xceed Software\",\"alternateName\":\"Xceed Software\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Untitled-design-24.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Untitled-design-24.png\",\"width\":512,\"height\":512,\"caption\":\"Xceed Software\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/79a6cce48b70a88e6701fef086d7c351\",\"name\":\"Christopher Radford\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g\",\"caption\":\"Christopher Radford\"},\"sameAs\":[\"http:\\\/\\\/www.localhost:10003\"],\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/blog\\\/author\\\/radfordc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Async Virtualization That Actually Feels Instant - Xceed Software","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/xceed.com\/fr\/blog\/tutoriels\/async-virtualization-that-actually-feels-instant\/","og_locale":"fr_CA","og_type":"article","og_title":"Async Virtualization That Actually Feels Instant - Xceed Software","og_description":"WPF DataGrid speed hinges on fetch and render. Use async data virtualization to free the UI thread and row recycling to cut visual churn. In .NET 8 with 1,000,000 rows, we saw smooth fast scroll, ~60 FPS, sub-50 ms input, and bounded memory via windowed paging. Turn on virtualization\/recycling, fetch off-UI, keep templates light, and verify with ETW\/WPA. Smoothness wins.","og_url":"https:\/\/xceed.com\/fr\/blog\/tutoriels\/async-virtualization-that-actually-feels-instant\/","og_site_name":"Xceed Software","article_published_time":"2025-09-22T15:35:04+00:00","article_modified_time":"2026-08-26T18:58:56+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/xceed.com\/wp-content\/uploads\/2025\/09\/unnamed-file.png","type":"image\/png"}],"author":"Christopher Radford","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Christopher Radford","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#article","isPartOf":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/"},"author":{"name":"Christopher Radford","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/79a6cce48b70a88e6701fef086d7c351"},"headline":"Async Virtualization That Actually Feels Instant","datePublished":"2025-09-22T15:35:04+00:00","dateModified":"2026-08-26T18:58:56+00:00","mainEntityOfPage":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/"},"wordCount":359,"commentCount":0,"publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"image":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2025\/09\/unnamed-file.png","keywords":["#asyncvirtualization","#datagrid","#dotnet8","#lowlatency","#rowrecycling","#rowvirtualization","#smoothscrolling","#uiperformance","#virtualization","#wpfperformance","dotnet","WPF"],"articleSection":["Tutorials"],"inLanguage":"fr-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/","url":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/","name":"Async Virtualization That Actually Feels Instant - Xceed Software","isPartOf":{"@id":"https:\/\/xceed.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#primaryimage"},"image":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2025\/09\/unnamed-file.png","datePublished":"2025-09-22T15:35:04+00:00","dateModified":"2026-08-26T18:58:56+00:00","breadcrumb":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/"]}]},{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#primaryimage","url":"https:\/\/xceed.com\/wp-content\/uploads\/2025\/09\/unnamed-file.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2025\/09\/unnamed-file.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/xceed.com\/blog\/tutorials\/async-virtualization-that-actually-feels-instant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/xceed.com\/"},{"@type":"ListItem","position":2,"name":"Async Virtualization That Actually Feels Instant"}]},{"@type":"WebSite","@id":"https:\/\/xceed.com\/fr\/#website","url":"https:\/\/xceed.com\/fr\/","name":"Xceed Software","description":"Fournit des outils aux d\u00e9veloppeurs .NET, Windows Forms, WPF, Silverlight et ASP.NET pour cr\u00e9er de meilleures applications.","publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/xceed.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/xceed.com\/fr\/#organization","name":"Xceed Software","alternateName":"Xceed Software","url":"https:\/\/xceed.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/07\/Untitled-design-24.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/07\/Untitled-design-24.png","width":512,"height":512,"caption":"Xceed Software"},"image":{"@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/79a6cce48b70a88e6701fef086d7c351","name":"Christopher Radford","image":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/secure.gravatar.com\/avatar\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g","caption":"Christopher Radford"},"sameAs":["http:\/\/www.localhost:10003"],"url":"https:\/\/xceed.com\/fr\/blog\/author\/radfordc\/"}]}},"_links":{"self":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/comments?post=3170"}],"version-history":[{"count":1,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3170\/revisions"}],"predecessor-version":[{"id":4218,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3170\/revisions\/4218"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/media\/3171"}],"wp:attachment":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/media?parent=3170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/categories?post=3170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/tags?post=3170"},{"taxonomy":"products","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/products?post=3170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}