{"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":"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"}]},"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"}]},"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":"c8d9b187-2462-40d0-a1f9-3549241b3f59","value":"2026-09-17","itemId":"9b94a719-87cd-42db-9acc-1a23957db2bc","fieldSchemaId":"b7712ee6-f9fd-4781-8c5c-e7e10ce8f81e"},{"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"},{"id":"df3afa72-b975-4717-8c9d-bbf35e2d9d8d","value":"{\"root\":{\"children\":[{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Changing the target framework 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\":\" may be one of the faster parts of a .NET 10 upgrade. The amount of work around it depends on what the application has accumulated over the years. Such as third-party packages, internal libraries, database behaviour, build configuration, deployment infrastructure and assumptions that may only become visible when something 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\":\"That matters more now because Microsoft support for both .NET 8 and .NET 9 ends on \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"10 November 2026\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", while .NET 10 is an LTS release supported until \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"14 November 2028\",\"type\":\"text\",\"version\":1},{\"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\":[],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":0,\"textStyle\":\"\"},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Our \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"earlier article\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":\"noreferrer\",\"target\":null,\"title\":null,\"url\":\"https://www.blocshop.io/blog/support-for-net-8-and-net-9-ends-on-10-november-2026-what-must-production-teams-upgrade\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" covered what production teams actually need to move before that deadline. Three problems deserve a closer look because they can make the upgrade considerably larger than changing the framework version.\",\"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\":\"1. One dependency can determine the migration order\",\"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\":\"A mature .NET application rarely depends only on Microsoft libraries that move neatly with the runtime.\",\"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\":\"There may be database providers, authentication components, messaging clients, PDF or reporting libraries, native dependencies, vendor SDKs and internal NuGet packages shared across several applications. Some can remain unchanged on .NET 10, others need a newer version, replacement or code changes around them.\",\"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\":\"The difficult cases are usually dependencies that sit in the middle of several other dependencies.\",\"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\":\"Consider an organisation with six services using the same internal authentication library. The services themselves may be straightforward to move, but the shared library relies on an older package that behaves differently or is no longer maintained. Starting six migrations in parallel does little to accelerate the work until that dependency is resolved.\",\"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 same problem appears with internal libraries that have accumulated several responsibilities. A package called something innocuous like \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":16,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Company.Common\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" may contain logging, authentication, serialization helpers, database access and configuration code used by applications written several years apart. A change intended for one migration can therefore affect applications that are not being upgraded yet.\",\"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\":\"This is where dependency analysis becomes more useful than simply counting repositories.\",\"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\":\"The questions are:\",\"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 dependencies actually require changes?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Which are shared across several applications?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":2},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Which applications can be moved independently?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":3},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Is an old dependency still safe to retain, or is the upgrade the point where it needs to be replaced?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":4},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Can compatibility be preserved temporarily so dependent applications can move in stages?\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":5}],\"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\":\"Retargeting every library simply because an application now runs on .NET 10 can create unnecessary work. Equally, assuming that successful package restore proves compatibility can leave problems for testing or production.\",\"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 migration sequence should follow the real dependency graph.\",\"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\":\"That becomes particularly important when several developers are added to an upgrade. More parallel capacity helps only when the work has been separated into paths that can genuinely progress independently.\",\"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\":\"2. The application builds, but its behaviour has changed\",\"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\":\"A successful build proves that the compiler accepted the application, it does not prove that the application will behave exactly as it did before the upgrade.\",\"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 explicitly classifies .NET 10 breaking changes into binary, source and \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"behavioural\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\" changes. In the behavioural category, existing code may continue to compile while producing a different result at runtime. The current .NET 10 list includes changes across ASP.NET Core, networking, configuration, serialization, cryptography, containers, the SDK and core libraries.\",\"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\":\"Some changes will be irrelevant to a particular system, others may intersect directly with assumptions buried in application code.\",\"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\":\"Entity Framework Core is a good example.\",\"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\":\"EF Core 10 changes behaviour around generated SQL in several places. Parameterised collections now use multiple parameters by default, parameter naming has changed, and applications using some of the affected SQLite date and time APIs can see different treatment of timezone information. Microsoft notes that the SQL parameter-name change can also cause cached query plans to be recompiled after deployment.\",\"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\":\"None of this means an EF Core 10 upgrade is inherently problematic, just that an application relying heavily on database behaviour needs more evidence than passing unit tests.\",\"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\":\"For a transaction-heavy system, useful checks might include:\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1,\"textFormat\":1,\"textStyle\":\"\"},{\"children\":[{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"SQL generated for performance-sensitive queries;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"execution plans and query latency against representative data;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":2},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"migrations generated by the upgraded tooling;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":3},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"transaction and concurrency behaviour;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":4},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"date, time and timezone handling;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":5},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"serialization at API boundaries;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":6},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"authentication and authorization paths;\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":7},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"calls to external systems where formatting or protocol behaviour matters.\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"listitem\",\"version\":1,\"value\":8}],\"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\":\"The right regression scope depends on the application.\",\"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\":\"An e-commerce platform may care most about checkout, payment callbacks, stock changes and background order processing. A banking application may put more emphasis on transaction state, reconciliation, permissions and audit records.\",\"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\":\"This is where knowledge of the existing software matters more than knowledge of the framework release notes alone. Hundreds of documented changes can be reduced to a much smaller set once an engineer understands which parts of the runtime and ecosystem the application actually depends on.\",\"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 goal is to identify those intersections before production does it for you.\",\"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\":\"3. The application has moved to .NET 10, but the delivery path has not\",\"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\":\"Another common source of additional work sits outside the application repository.\",\"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 developer may have .NET 10 installed locally and the application may run perfectly there, while CI still builds with a different SDK, a Dockerfile still references an older image, a deployment target does not provide the expected runtime, or a self-contained application is still being distributed with the old runtime bundled inside it.\",\"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\":\"SDK selection alone can be easy to miss. \",\"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\":\" controls which .NET SDK the CLI uses independently of the runtime targeted by the application, and Microsoft specifically recommends controlling the acceptable SDK range in continuous-integration scenarios.\",\"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\":\"Containerised applications have another pair of versions to consider. Microsoft provides separate SDK images for building applications and ASP.NET runtime images for running them, so both build and runtime stages need to produce the intended .NET 10 artifact.\",\"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\":\"Cloud hosting can introduce larger changes.\",\"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\":\"Azure Functions is a particularly clear example. Functions using the .NET \",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":1,\"mode\":\"normal\",\"style\":\"\",\"text\":\"in-process model cannot move to .NET 10\",\"type\":\"text\",\"version\":1},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\". Microsoft ends support for that execution model on 10 November 2026 and directs applications towards the isolated worker model. The isolated model changes the process boundary and can affect startup, dependency injection, middleware and bindings.\",\"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\":\"There is another infrastructure constraint for Functions running on Linux: Microsoft currently states that .NET 10 is not supported on the Linux Consumption plan, so those applications need the Flex Consumption plan if they are to run .NET 10 on Linux.\",\"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 a team using that combination, the “.NET upgrade” therefore includes an application model and hosting change.\",\"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\":\"This is why the production route should be inspected as part of the migration rather than after development is complete. The relevant scope can include build agents, \",\"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\":\", Docker build stages, runtime images, Azure configuration, infrastructure definitions, self-contained packages, deployment jobs, monitoring and rollback.\",\"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 completion test is simple - can a clean build environment produce the intended artifact, can the normal release process deploy it, and can the team demonstrate that the deployed workload is actually running on the expected supported configuration?\",\"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\":\"If that cannot yet be shown, the migration is not finished.\",\"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\":\"Why these problems consume senior development 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\":\"None of these problems is particularly unusual. What makes them expensive is that they cross technical boundaries.\",\"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 dependency issue may require decisions about application architecture. An EF Core change may require someone who understands both application logic and database behaviour. A Functions migration can involve application code, Azure configuration, deployment and 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\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Those decisions tend to land with the same senior developers who already own architecture, difficult reviews, production incidents and the product roadmap.\",\"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\":\"Adding another developer does not automatically remove that bottleneck. The useful addition is someone capable of taking ownership of a defined part of the problem with relatively little supervision.\",\"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\":\"That might mean resolving a shared dependency and moving the affected services, migrating a group of Azure Functions, taking responsibility for CI/CD and container changes, or building the missing regression coverage around a service before its runtime changes.\",\"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\":\"This is also much closer to normal custom software development than to mechanical framework maintenance. The work requires understanding an existing system, making changes inside its constraints and getting those changes safely into production.\",\"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 has worked with .NET and Azure systems in exactly this kind of environment. Its engagement with Dutch electronics retailer \",\"type\":\"text\",\"version\":1},{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"BCC\",\"type\":\"text\",\"version\":1}],\"direction\":null,\"format\":\"\",\"indent\":0,\"type\":\"link\",\"version\":1,\"rel\":\"noreferrer\",\"target\":null,\"title\":null,\"url\":\"\"},{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\", for example, began with rewriting the retailer's checkout process in .NET with Azure deployment and later expanded into migration of legacy e-commerce systems towards a microservices architecture.\",\"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\":\"Today, Blocshop can add one to three senior .NET developers directly to an existing software development team and give them ownership of a bounded part of the migration rather than adding another person for the client's leads to manage.\",\"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\":\"If one part of the .NET 10 upgrade is already taking disproportionate time from senior developers, bring us that part. We can assess whether it can be separated from the rest of the migration, what dependencies need to move with it and what a production-ready handover should include.\",\"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":"9b94a719-87cd-42db-9acc-1a23957db2bc","fieldSchemaId":"3084d9ba-ab55-4e5a-931b-b9db3d09105f"}]}}}},"slugByItemId":{"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","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","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","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"}}