{"collectionById":{"d4a5b68c-8afd-4bbe-a7ac-e9a8422fedde":{"id":"d4a5b68c-8afd-4bbe-a7ac-e9a8422fedde","name":"Blog Articles","fieldSchemas":[{"id":"402ba26f-8f6d-4f5f-bf20-62e6549f4ad4","name":"Slug","type":"slug","role":"slug"},{"id":"1f58afa6-2748-4188-b4a4-f1e54e37eca9","name":"Hero Image","type":"image"},{"id":"3084d9ba-ab55-4e5a-931b-b9db3d09105f","name":"Article Content","type":"rich_text"},{"id":"b7712ee6-f9fd-4781-8c5c-e7e10ce8f81e","name":"Publish Date","type":"date"},{"id":"f2ba59b9-49cc-4ec6-9416-bda99d4c8383","name":"Title","type":"plain_text","role":"primary"}],"itemById":{"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7":{"id":"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7","index":"!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO","collectionId":"d4a5b68c-8afd-4bbe-a7ac-e9a8422fedde","fields":[{"id":"51886cbf-986b-4f5d-ad7e-1bbcc42089db","value":"Support for .NET 8 and .NET 9 ends on 10 November 2026: what must production teams upgrade?","itemId":"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7","fieldSchemaId":"f2ba59b9-49cc-4ec6-9416-bda99d4c8383"},{"id":"5e6a3bb1-1b00-4653-a3a3-cb14ddaf8d5a","value":"support-for-net-8-and-net-9-ends-on-10-november-2026-what-must-production-teams-upgrade","itemId":"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7","fieldSchemaId":"402ba26f-8f6d-4f5f-bf20-62e6549f4ad4"},{"id":"43aa6103-fcbe-4a09-bec5-156795415f41","value":"2026-09-03","itemId":"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7","fieldSchemaId":"b7712ee6-f9fd-4781-8c5c-e7e10ce8f81e"},{"id":"0175c82d-70e5-4f8d-b460-381a8c017f2c","value":"{\"image\":\"5907e0f5ec7986c9872ae23a31bee010e8ac6957\",\"imageThumbnail\":\"6683dfcfba30905d2656ccb36a55c53330162eb5\",\"originalImageHeight\":816,\"originalImageWidth\":1456,\"altText\":\"\",\"fileName\":\"roro665_illustration_for_article_about_Support_for_.NET_8_and_3187883d-27c0-4462-bb01-f2f37de04ed5_1.png\"}","itemId":"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7","fieldSchemaId":"1f58afa6-2748-4188-b4a4-f1e54e37eca9"},{"id":"96a94d8a-4ad5-4d1f-8236-48bc9d724da3","value":"{\"root\":{\"children\":[{\"children\":[{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft’s current .NET support policy\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" lists the same end-of-support date for .NET 8 LTS and .NET 9 STS: 10 November 2026. .NET 10 LTS remains supported until 14 November 2028. .NET 8 and 9 are already in maintenance support, which means Microsoft is providing security updates only. Customers must also remain current on released patches to qualify for support.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"For production teams already migrating, the immediate risk is a definition of completion that covers the application code while missing the runtime, dependencies, containers, build environment or self-contained releases.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Changing \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"TargetFramework\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" to \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"net10.0\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" and producing a successful build does not prove that a production system has been upgraded. The work is complete when the supported version can be built, deployed, operated and recovered across every in-scope deployment route.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Treat the migration as a production release\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"heading\",\"version\":1,\"tag\":\"h2\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Applications running on .NET 8 or 9 will not stop on 11 November. Microsoft will, however, stop providing fixes, updates and online technical assistance\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" for those releases. Any vulnerability discovered after that point will not receive a .NET 8 or 9 fix through normal Microsoft servicing, although teams may sometimes be able to apply a compensating mitigation while completing the upgrade.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":1,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Running an unsupported release may also create an exception under a company’s security policy, customer commitments or software-support requirements. Until the migration is released, teams should keep their .NET 8 and 9 installations on the latest available patches.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Management should define the scope by deployed workloads rather than repositories or completed development tickets. Before the migration is signed off, each team should be able to confirm that:\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"every in-scope .NET 8 or 9 application has moved to a supported version;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"every environment that runs it uses an operating system and architecture supported by .NET 10 and provides the required runtime;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":2},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"direct, transitive and internal dependencies remain compatible and adequately maintained;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":3},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"container and self-contained artifacts have been rebuilt;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":4},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"CI/CD produces the intended .NET 10 artifact from a clean environment;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":5},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"that artifact has passed production-relevant tests and has a workable rollback or roll-forward recovery route.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":6}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"list\",\"version\":1,\"listType\":\"bullet\",\"start\":1,\"tag\":\"ul\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"This prevents a migration from appearing complete while an overlooked background service, installer, disaster-recovery host or customer-specific deployment still contains .NET 8 or 9.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Can applications move directly to .NET 10?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"heading\",\"version\":1,\"tag\":\"h2\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"In most cases, yes. A .NET 8 application does not need to be released on .NET 9 before it moves to .NET 10. Since .NET 9 reaches end of support on the same day, treating it as the final destination would not extend the support window.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"A team moving from .NET 8 should review the changes introduced in both \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\".NET 9\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/core/compatibility/9.0\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" and \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\".NET 10\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/core/compatibility/10\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\". A team already running .NET 9 needs to review the .NET 10 changes.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft classifies breaking changes as source incompatibilities, binary incompatibilities and behavioural changes. Compilation will expose many source problems, but it will not reliably reveal binary or behavioural problems. Authentication, serialization, database access, configuration, background processing and external integrations therefore require functional testing.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft also describes the .NET 10 compatibility list as incomplete, so it should be treated as a starting point\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" rather than a replacement for application-specific tests.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":1,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Large systems may still require a staged release. Shared libraries should be reviewed in dependency order, but because \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\".NET 10 continues to support .NET Standard 2.0 and 2.1\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/standard/net-standard\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", a compatible library does not need to be retargeted solely because a consuming application moves to .NET 10. Libraries that do require changes can move before applications, and independently deployed services can be released separately. This is a sequencing decision rather than a requirement to operate temporarily on .NET 9.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"What must production teams upgrade?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"heading\",\"version\":1,\"tag\":\"h2\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"  \",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Retargeting the application is only the first step. Production readiness depends on five connected areas:\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Runtime and hosting.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" Framework-dependent applications need .NET 10 in every environment that runs them, including relevant IIS hosting bundles and managed cloud settings. The operating system version and architecture must also appear in \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft’s .NET 10 support matrix\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"; the ability to install the runtime does not by itself establish a supported production configuration. Teams should verify which runtime the deployed process actually resolves.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":1},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Dependencies.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" Managed packages and internal libraries must support the new target. Database providers, authentication components and other independently versioned packages also need to remain within any support policy required by the organisation. Native dependencies must be compatible with the target operating system, architecture and container base. Any blocker affecting several applications needs a named owner and a decision on whether to upgrade, replace or isolate it. Using \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft’s package-list command\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-package-list\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", teams with the .NET 10 SDK can run \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"dotnet package list --outdated\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"dotnet package list --deprecated\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" and \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"dotnet package list --vulnerable --include-transitive\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" as separate checks. The equivalent command on .NET 9 and earlier SDKs begins \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"dotnet list package\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\".\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":2},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Containers.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" Build and runtime images must be updated, rebuilt and tested. As \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft’s .NET 10 container guidance\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/core/compatibility/containers/10.0/default-images-use-ubuntu\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" explains, default Linux tags that do not specify an operating system now use Ubuntu 24.04 instead of Debian, which may affect operating-system packages and native dependencies. Kubernetes manifests, Helm charts and recovery configurations must also reference the new images.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":3},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Self-contained deployments.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" Under \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft’s self-contained deployment model\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/core/deploying/\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", the application bundles its own runtime, so installing .NET 10 on the host has no effect. Every supported operating system, architecture and distribution channel used by the application requires a new artifact. Future runtime security patches will also require rebuilding and republishing.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":4},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"CI/CD.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" The pipeline must have access to an appropriate .NET 10 SDK. Version selection may be controlled through \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"global.json\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", pipeline tasks, build-agent images or Docker build stages. Publish profiles, infrastructure code and deployment definitions must produce and reference the intended artifact. Completion should be proven by a clean pipeline build and tests against the exact package or image that will reach production.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":5}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"list\",\"version\":1,\"textFormat\":1,\"listType\":\"bullet\",\"start\":1,\"tag\":\"ul\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"From a management perspective, the migration is complete only when every supported deployment route produces an artifact that can be deployed, operated and recovered on .NET 10.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Measure production readiness, not migration activity\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"heading\",\"version\":1,\"tag\":\"h2\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"The final part of a migration often contains more uncertainty than the initial retargeting. The remaining work may sit in one unsupported package, a brittle integration, missing regression tests or a deployment path owned by another team.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"A useful management view should report:\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"which production workloads have been released on .NET 10;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"the business criticality of the workloads that remain;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":2},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"what blocks each remaining workload;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":3},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"who owns every blocker and when a decision is required;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":4},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"what test evidence supports release approval;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":5},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"which deployment window and recovery route have been agreed;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":6},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"which workloads are expected to remain on .NET 8 or 9 after 10 November.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":7}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"list\",\"version\":1,\"listType\":\"bullet\",\"start\":1,\"tag\":\"ul\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Raw workload counts can be misleading. Migrating ten minor jobs does not compensate for leaving the main transactional platform unsupported. Progress should therefore be assessed against business criticality and residual production risk, not only the number of completed projects or pull requests.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Database schema changes, message contracts or independently deployed services may make rollback unsafe even when the previous application artifact remains available. Those releases need backward-compatible changes that preserve rollback or a tested roll-forward recovery route. Where a rollback to .NET 8 or 9 remains technically possible after the deadline, it would restore an unsupported production state and should be treated as a time-limited exception with a defined route back to .NET 10.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"When a custom AI migration harness is justified\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"heading\",\"version\":1,\"tag\":\"h2\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Microsoft now provides a \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"GitHub Copilot upgrade agent\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://learn.microsoft.com/en-us/dotnet/core/porting/github-copilot-upgrade/overview\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" that can assess .NET projects, prepare an upgrade plan, apply code fixes and validate builds and tests. For one or a few applications, this agent and the normal engineering toolchain may be sufficient. \",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"A custom AI migration harness is justified when the same controlled process must be applied across many repositories, internal packages and company-specific delivery rules, and the repeated work clearly outweighs the setup and review cost.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"It should operate as a bounded engineering loop: \",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Create a structured inventory.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" Scripts collect target frameworks, dependency graphs, package risks, Dockerfiles, pipeline definitions and test commands.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":1},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Divide the work into reviewable changes.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" AI proposes a sequence based on dependency order, official compatibility guidance and the company’s approved package and architecture rules.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":2},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Apply one defined change.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" The model may update project files, package references, obsolete APIs, container tags or pipeline configuration within an agreed scope.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":3},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Run deterministic checks.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" The process runs the builds, analyzers, tests, package audits and container checks defined for that workstream. The result is evaluated according to the project’s existing quality and security policy.\",\"type\":\"text\",\"version\":1},{\"type\":\"linebreak\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":4},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Require senior review.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" A developer reviews behaviour, architecture, permissions, data access and production assumptions before the change can proceed.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"textFormat\":1,\"value\":5}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"list\",\"version\":1,\"textFormat\":1,\"listType\":\"number\",\"start\":1,\"tag\":\"ol\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"This can reduce the manual effort spent locating and repeating predictable changes across many services. It does not remove the need for senior judgement where behaviour depends on undocumented business rules, external systems or weak test coverage.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Management should judge the process by accepted production migrations rather than generated changes. If AI produces patches faster but creates more review and correction work, it has moved the bottleneck rather than added delivery capacity.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"When the migration needs additional senior capacity\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"heading\",\"version\":1,\"tag\":\"h2\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"For teams that are falling behind, the problem usually isn't a lack of general .NET knowledge. The remaining tasks require the same senior developers who are also responsible for architecture, reviews, incidents and committed product releases.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"The application may compile on .NET 10 but still be unreleasable. One dependency may block several services, container and pipeline work may remain unfinished, or existing tests may not provide enough confidence.  \",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"At that point, assigning more migration work to the internal technical leads can protect the deadline only by delaying other critical delivery.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Blocshop can add one to three senior .NET developers directly to the existing team and backlog for the period in which that additional ownership is needed.\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" They can take responsibility for a bounded workstream such as a blocked dependency path, a defined group of services, container and CI/CD changes, missing regression coverage or release preparation.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":1,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Work begins by isolating a workstream that can progress with limited domain onboarding and agreeing its repositories, acceptance criteria, first production-relevant deliverable and handover point. The client’s technical leads retain architectural control, while Blocshop carries the agreed work through implementation, testing and production release. \",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Blocshop’s \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\".NET and Azure work for BCC\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://www.blocshop.io/bcc\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", for example, began with a defined checkout project and developed into a long-term engagement that included migrating legacy e-commerce systems to a microservices architecture. Where repeated changes across many repositories justify it, the same team can add a controlled AI migration process while senior developers remain responsible for the accepted result.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Is one unresolved workstream now threatening the 10 November deadline or displacing your\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"product delivery?\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Book a consultation with Blocshop\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"textFormat\":1,\"rel\":null,\"target\":null,\"title\":null,\"url\":\"https://www.blocshop.io/contact-us\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" and bring the blocker consuming the most senior engineering time. \",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":1,\"textStyle\":\"\"},{\"children\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Together, we will determine whether Blocshop can take responsibility for it with limited domain onboarding, what the first production deliverable should be and what evidence would mark it complete, giving you a concrete scope before you decide whether to proceed.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"root\",\"version\":1}}","itemId":"51eca83c-e62c-4924-a9dc-ddd8b6a8eee7","fieldSchemaId":"3084d9ba-ab55-4e5a-931b-b9db3d09105f"}]},"9b94a719-87cd-42db-9acc-1a23957db2bc":{"id":"9b94a719-87cd-42db-9acc-1a23957db2bc","index":"!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO","collectionId":"d4a5b68c-8afd-4bbe-a7ac-e9a8422fedde","fields":[{"id":"cee9aca4-85ad-4ce8-a1ef-6e74589553d4","value":"3-common-problems-that-can-complicate-a-net-10-upgrade","itemId":"9b94a719-87cd-42db-9acc-1a23957db2bc","fieldSchemaId":"402ba26f-8f6d-4f5f-bf20-62e6549f4ad4"},{"id":"a526b445-89c4-4f6f-a2cd-68361f4b44db","value":"3 common problems that can complicate a .NET 10 upgrade","itemId":"9b94a719-87cd-42db-9acc-1a23957db2bc","fieldSchemaId":"f2ba59b9-49cc-4ec6-9416-bda99d4c8383"},{"id":"f30c39ff-c52b-467a-8354-be52be111660","value":"{\"image\":\"9dd849e366a069a797d0e762fe838ff24cab6670\",\"imageThumbnail\":\"0c3681fa9fd181cf08b925d2fd71550b74bd2c4b\",\"originalImageHeight\":816,\"originalImageWidth\":1456,\"altText\":\"\",\"fileName\":\"roro665_illustration_for_article_about_3_common_problems_that_550bcbef-f6c1-4f36-bb16-9b4f8dc18a3a_0.png\"}","itemId":"9b94a719-87cd-42db-9acc-1a23957db2bc","fieldSchemaId":"1f58afa6-2748-4188-b4a4-f1e54e37eca9"}]},"ba558ca2-3788-4c31-86e6-a21799b8504a":{"id":"ba558ca2-3788-4c31-86e6-a21799b8504a","index":"!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO","collectionId":"d4a5b68c-8afd-4bbe-a7ac-e9a8422fedde","fields":[{"id":"ddfd67bb-9932-4ff5-99b9-91dc69ea8242","value":"What the EU’s 2027 instant payment deadlines mean for payment providers outside the euro area","itemId":"ba558ca2-3788-4c31-86e6-a21799b8504a","fieldSchemaId":"f2ba59b9-49cc-4ec6-9416-bda99d4c8383"},{"id":"f400f253-8773-4c7f-ac79-f564d7fc4326","value":"what-the-eus-2027-instant-payment-deadlines-mean-for-payment-providers-outside-the-euro-area","itemId":"ba558ca2-3788-4c31-86e6-a21799b8504a","fieldSchemaId":"402ba26f-8f6d-4f5f-bf20-62e6549f4ad4"},{"id":"5ffb49e6-06d1-4f90-b469-eb9cfede903d","value":"{\"image\":\"572f271ec5931fbb620e0abdc318db3a05030d59\",\"imageThumbnail\":\"be00b2dc5853ea07303b1b259b16f7363686d4dd\",\"originalImageHeight\":816,\"originalImageWidth\":1456,\"altText\":\"\",\"fileName\":\"roro665_illustration_for_article_about_What_the_EUs_2027_inst_f6eb3afe-b04f-4144-94c4-449904ad39ce_3.png\"}","itemId":"ba558ca2-3788-4c31-86e6-a21799b8504a","fieldSchemaId":"1f58afa6-2748-4188-b4a4-f1e54e37eca9"}]}}}},"slugByItemId":{"43667600-e9ee-40d8-b005-a3f72ed313cb":"6-ai-integration-use-cases-enterprises-can-adopt-for-automation-and-decision-support","80345e24-6050-439b-9c3b-9e1690a6a5de":"langchain-and-langgraph-and-why-these-frameworks-are-becoming-common-in-ai-projects","7707e43f-06c7-44c4-8f6a-6598f873ff4f":"chatgpt-3-5-an-overview-and-limitations","9082b7d6-0453-4adf-95c0-91cf1b596740":"top-15-micro-saas-ideas-for-your-startup-in-2022","f09637d8-423d-43e2-b99e-390d3fcf9d9c":"estimating-user-story-points-in-agile","e3946acd-c693-4e8d-a587-4365d3f689d8":"who-should-decide-ai-behaviour-changes-in-an-sme","3c24380a-12d8-47b7-84e4-ef9c5497b89c":"build-buy-or-embed-a-cto-decision-matrix-for-ai-delivery-capability","38252502-9695-4968-8852-563d098f23c2":"legacy-net-systems-and-ai-how-to-add-capability-without-rewriting-the-core-application","52d652cb-5652-4eb8-b636-868d394e6c37":"senior-developer-cost-in-2026-and-the-value-of-temporary-senior-capacity","a7893a9c-3fb9-465c-8083-469a7b1e53a2":"ai-development-at-300-month-in-tokens-per-senior-developer","ddde2039-0c11-43c6-befd-b31168be11c8":"why-ai-coding-gets-expensive-when-context-is-badly-prepared","10ed53fe-213d-4777-898b-fda70d8fe4ac":"agent-access-in-b2b-software-identity-permissions-approvals-and-auditability","fab009c4-5519-411b-951d-357f1a09e50a":"eu-ai-act-transparency-rules-now-apply-what-software-providers-and-deployers-must-change","c6c83886-4e6e-4726-8b98-2994b5fac462":"4-types-of-system-integration-methods","7c10a08b-d604-4d4d-a009-2400c53b6b59":"the-ultimate-cto-checklist-for-planning-a-custom-software-or-ai-project-in-2026","9454dbcd-bc62-415c-bfed-d96a2bc5b6de":"digital-identity-and-payment-services-in-the-eu-in-2024-key-updates","97214077-bcd4-40ec-828a-7d09f468d2e2":"psd2-vs-psd3-the-evolution-of-payment-services-regulation","b6396e37-eb43-4db2-bca5-a03e145e6106":"a-deep-dive-into-gpt-4-vs-gpt-3-5-differences-and-ability-to-revolutionize-software-development","2a11e22a-6e89-486a-b8ff-55b31ec7c4d1":"10-ai-tools-for-developers-you-should-know-about-in-2023","0209d4a6-fddf-4ffb-a2e9-9acb2eff0266":"software-engineer-hourly-rates-in-2022-based-on-experience-and-location","0c4a3683-e9a6-438e-b603-d37be9207c56":"the-best-programming-languages-for-app-development-in-2022","307ea89a-ac2b-44a5-93b1-bae7f4971035":"16-software-development-project-ideas","825368fb-fea4-4fd5-8174-c6974a6395f5":"the-scrum-sprint-cycle-explained","f7c13630-7f06-4094-9c61-eff39839d00c":"scrum-vs-extreme-programming-xp-whats-the-difference","f70b9e85-0929-488a-ba8e-82dfb0d47772":"use-cases-vs-user-stories-relationships-and-differences","71d08135-3493-42e5-852d-4c1075789b6c":"tcp-networking-in-cordova","31fa69f4-cf69-4ebd-8250-34491671b0c8":"ai-in-a-net-application-architecture-and-where-it-belongs","5d6baaa0-37c3-4fa7-be18-6f601c838476":"threat-modeling-for-llm-apps-10-attack-paths-teams-should-address-first","3974df38-8b02-4304-a58a-838d4be2cbbb":"chatbot-vs-rag-assistant-what-changes-when-answers-must-be-grounded-in-your-systems-of-record","1fae3ba0-e5f2-472e-9ec3-a327bf8c6091":"regulatory-deadlines-software-teams-should-plan-for-in-2026-and-2027","6b86e282-05e2-4de1-a0da-50ae883730f7":"how-ai-powered-software-development-is-changing-the-role-of-the-cto","e893ce81-635b-48b0-bd01-c3f39aa1c453":"eu-and-uk-ai-regulation-compared-implications-for-software-data-and-ai-projects","d38bc66e-898e-469d-a28e-7e25efcd5e82":"ce-marking-software-under-the-eu-ai-act-who-needs-it-and-how-to-prepare-a-conformity-assessment","2a569b4b-6d39-49d7-8eda-24bbb5d0344c":"when-ai-and-gdpr-meet-navigating-the-tension-between-ai-and-data-protection","7accedf4-79c6-45c6-8cfc-65dcfa992c8b":"how-custom-ai-integrations-and-automation-improve-enterprise-workflows-and-decision-making","1f98830d-3572-40eb-b9a5-11776e6846f1":"17-ideas-for-web-apps-in-2023","b5480bfc-3980-430b-b193-71101c547238":"converting-story-points-to-hours-why-doesnt-it-work","35168ee0-162e-4ba9-8f33-51638b1deff4":"epic-story-and-tasks-in-agile","5bc932b6-8ad3-4385-85ed-0f77dccb4efe":"sprint-backlog-vs-product-backlog-most-important-differences","1bf6256f-668c-47dd-aadf-89f8b53d67a7":"sdlc-vs-agile-which-one-is-the-best","a2989e5f-e5c6-4253-af26-bf4db2e67e9c":"agile-meetings-types-goals-and-benefits","89f3ad6f-2ae9-4d8a-be50-f6bffaefc293":"daily-scrum-meetings-purpose-participants-and-guidance","7e42867d-edfc-4f00-8996-d71ad1867b84":"software-development-cost-guide-with-man-day-rate-estimates","9c52d063-769c-465f-9c61-164602619dbe":"what-is-bespoke-software-what-are-the-pros-and-cons","cb74ad7b-efe2-4458-b7a4-73f6d48d4780":"custom-software-development-trends-in-2026-how-ai-shifts-the-real-bottlenecks","0f88cfc6-008b-4645-a648-4adb2ca3f3b4":"ai-in-c-projects-which-problems-are-worth-solving-first-and-which-are-not","668a64e2-486e-4824-8626-adc7f412df53":"vibe-coding-what-do-senior-developers-verify-before-ai-generated-code-reaches-production","5f3c0247-8093-45c5-861a-a2bfa8017ec9":"3-real-life-vibe-coding-failures-and-what-they-reveal-in-production","3c95e66d-932b-4abb-b049-31e558f12589":"why-ai-slows-down-digital-banking-delivery-before-it-speeds-it-up","f28a6024-0dcd-4d0f-a308-1e078763e362":"mvp-handover-moving-from-agency-built-product-to-internal-team","3cfd1a44-094f-4680-9af8-d9d4bd0a2302":"ai-agents-in-b2b-software-your-next-user-may-not-be-a-person","10320fad-190b-4aa4-bc78-0a870a5e3d38":"cyber-resilience-act-reporting-can-your-software-team-meet-the-24-hour-deadline","51eca83c-e62c-4924-a9dc-ddd8b6a8eee7":"support-for-net-8-and-net-9-ends-on-10-november-2026-what-must-production-teams-upgrade","224fb9ca-8d37-43ac-a9d2-ad44a22b4e83":"ai-applications-in-banking-real-world-examples","7c3de3bf-2771-4653-bc57-c0c355bd8547":"generative-ai-used-for-data-conversions-and-reformatting","54d55d03-8f64-4a4e-94a6-397cf873c405":"the-quiet-cost-of-ai-shadow-compute-budgets-and-the-new-devops-blind-spot","2b1fba2a-f1fa-434d-a9b7-619b86112157":"generative-ai-powered-etl-a-fresh-approach-to-data-integration-and-analytics","005ad826-7eb1-4350-ad9f-6eaa4c08b356":"iso-20022-explained-a-comprehensive-guide-for-financial-institution-managers","f96af80b-e4a6-4181-9c21-73b3a921193a":"15-useful-web-app-development-tools-for-2022","9a0f833f-0c6f-4cb4-a00b-29d304043e98":"software-development-budget-estimation","08bb6769-ad5a-4824-ab63-9698c3761cf2":"product-backlog-prioritization-techniques-tips","d61588ea-98f0-4080-93bb-02aba4ef0f3f":"top-9-bespoke-software-solutions-examples","2357e217-a465-4d2d-ad0e-6133dc117bba":"15-fantastic-saas-ideas-for-your-startup","acf4dd14-0957-46df-9726-3538df437b25":"the-waterfall-model-advantages-and-disadvantages","06ae7abb-88ac-4c69-b891-75fc2ac38793":"8-scrum-metrics-to-measure-the-effectiveness-of-your-team","69b6dac2-d540-496f-9839-bddba1a6804b":"software-testing-life-cycle-stlc-definition-and-phases","e0aad731-e7e7-447e-afcd-b06c4546ff3f":"the-7-stages-of-the-software-development-process","1ed1289b-bf8b-425c-a8cf-7ba4f56310c0":"agile-software-development-team-roles-and-responsibilities","8c1bb5a1-bda0-4455-84d5-54b9b6ce7510":"ai-laws-in-2026-the-current-euus-landscape-and-how-it-shapes-software-development","8899263d-99d9-43c5-9f5c-ce875acb011c":"ci-cd-for-ai-applications-production-delivery-governance-and-testing","f9992957-ab35-401f-819b-b8119a904aa6":"from-feature-to-liability-when-ai-should-not-be-embedded-in-the-core-flow","d8a0e77e-234a-4ad4-a0e7-0e6cae899e91":"why-most-ai-features-never-make-it-past-version-one","d4492648-d4e6-492e-9d95-fa4c8dde8a3f":"the-first-90-days-of-moving-ai-into-the-core-development-workflow","93369250-fdb9-4653-8003-3e13444e40ff":"ai-assisted-pull-requests-what-code-review-must-catch-when-ai-helped-write-the-change","07216048-013c-440b-affc-6bc1a7b56166":"the-cost-of-waiting-on-ai-is-already-in-your-backlog","65ec3395-7d7f-4402-9612-ca9666d981a5":"how-to-hire-a-senior-developer-when-the-project-cannot-wait","a6e4a57b-e918-42a0-9157-0dcf6d7c62af":"measuring-ai-assisted-development-which-metrics-show-real-delivery-gains","ba558ca2-3788-4c31-86e6-a21799b8504a":"what-the-eus-2027-instant-payment-deadlines-mean-for-payment-providers-outside-the-euro-area","9b94a719-87cd-42db-9acc-1a23957db2bc":"3-common-problems-that-can-complicate-a-net-10-upgrade"}}