<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Assemblysoft Services]]></title><description><![CDATA[Services]]></description><link>https://services.assemblysoft.com/</link><image><url>https://services.assemblysoft.com/favicon.png</url><title>Assemblysoft Services</title><link>https://services.assemblysoft.com/</link></image><generator>Ghost 3.32</generator><lastBuildDate>Tue, 07 Apr 2026 16:19:02 GMT</lastBuildDate><atom:link href="https://services.assemblysoft.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Blazor in .NET 10 - What Senior Stakeholders Need to Know]]></title><description><![CDATA[Discover how Blazor in .NET 10 improves performance, reliability and UX— and how Assemblysoft helps modernise legacy apps or build new .NET solutions.]]></description><link>https://services.assemblysoft.com/net-10-benefits-what-business-owners-need-to-know/</link><guid isPermaLink="false">69259502b5ad881d38fdb007</guid><category><![CDATA[Blazor]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Sat, 01 Nov 2025 11:56:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1594402918464-2d7bb2e97292?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEyfHxidXNpbmVzcyUyMG93bmVyc3xlbnwwfHx8fDE3NjQwNzMwNjd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1594402918464-2d7bb2e97292?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEyfHxidXNpbmVzcyUyMG93bmVyc3xlbnwwfHx8fDE3NjQwNzMwNjd8MA&ixlib=rb-4.1.0&q=80&w=2000" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know"><p></p><p>Modern digital products live or die on <strong>speed, reliability and user experience</strong>. With .NET 10, Microsoft has invested heavily in Blazor to make it easier to deliver responsive, resilient web applications that are also easier to operate and evolve.</p><p>This article explains, in business-friendly terms, what the key Blazor improvements in .NET 10 mean for your organisation – and how <strong><a href="https://assemblysoft.com/" rel="noopener">Assemblysoft</a></strong> can help you either:</p><p><strong>Modernise existing ASP.NET / Blazor applications</strong> to .NET 10, or</p><p><strong>Build new, greenfield solutions</strong> using the latest <strong>.NET, Blazor and Azure</strong> technologies.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://services.assemblysoft.com/content/images/2025/11/image-3.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-3.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-3.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-3.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-3.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Blazor in .NET 10: Faster, Smarter Apps – and How Assemblysoft Can Help</figcaption></figure><p>As <strong>.NET 10 Blazor experts</strong>, Assemblysoft focuses on turning these platform enhancements into <strong>real-world business value</strong>: faster systems, better UX, stronger security and smoother releases.</p><h2 id="1-faster-load-times-better-first-impressions">1. Faster Load Times &amp; Better First Impressions</h2><h3 id="smaller-downloads-smarter-caching">Smaller downloads, smarter caching</h3><p>In .NET 10, the Blazor runtime script (the file that boots the app in the browser) is now processed like any other static asset:</p><p>It’s <strong>compressed</strong> and <strong>fingerprinted</strong> (given a unique name based on its content).</p><p>This avoids stale caching and reduces the size of what users download.</p><p>The core script shrinks from roughly <strong>183 KB to about 43 KB</strong> – a ~76% reduction.</p><p>For senior stakeholders, the key takeaway is simple:</p><blockquote><strong>Pages load faster, especially on slower networks, and deployments are less likely to cause “it’s suddenly slow” complaints.</strong></blockquote><p>Standalone Blazor WebAssembly apps also benefit from improved <strong>client-side fingerprinting</strong>, making sure users always get the <strong>correct, up-to-date scripts</strong> after a deployment.</p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/11/image-4.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-4.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-4.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-4.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-4.png 2400w" sizes="(min-width: 720px) 720px"></figure><h4 id="how-assemblysoft-helps">How Assemblysoft helps</h4><p>Assemblysoft can review your existing Blazor or ASP.NET setup and:</p><p>Upgrade you to <strong>.NET 10</strong>, ensuring static assets and Blazor scripts are using the latest performance improvements.</p><p>Host and optimise your apps on Azure as part of a broader <strong><a href="https://assemblysoft.com/technologies/microsoft-azure-development" rel="noopener">Microsoft Azure development</a></strong> strategy.</p><p>Design new solutions with these optimisations baked in from day one through <strong><a href="https://assemblysoft.com/technologies/fullstack-blazor-development" rel="noopener">full-stack Blazor development</a></strong>.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://services.assemblysoft.com/content/images/2025/11/image-5.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-5.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-5.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-5.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-5.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Where .NET 10 is used</figcaption></figure><h2 id="2-smoother-navigation-less-friction-for-users">2. Smoother Navigation, Less Friction for Users</h2><h3 id="no-more-jump-to-top-when-you-stay-on-the-same-page">No more “jump to top” when you stay on the same page</h3><p>Previously, if the app used Blazor’s interactive router and you navigated to the <strong>same page</strong> (for example, updating filters or query parameters), the browser would <strong>scroll back to the top</strong>.</p><p>In .NET 10:</p><p>Blazor preserves the <strong>scroll position</strong> for same-page navigations and forward/back navigation.</p><p><strong>User benefit:</strong><br>They keep their place in long forms, lists or reports, reducing frustration and accidental errors.</p><h3 id="navigation-links-that-behave-like-users-expect">Navigation links that behave like users expect</h3><p>Blazor’s <code>NavLink</code> component shows which page is active in the menu. In .NET 10:</p><p><code>NavLink</code> can now <strong>ignore query strings and fragments</strong> (e.g. <code>?status=Approved</code>), so the menu item stays active when only filters change.</p><p>Developers can still revert to old behaviour or implement custom rules when needed.</p><p><strong>User benefit:</strong><br>Navigation feels consistent and predictable, even on complex reporting pages where the URL changes frequently.</p><h3 id="clearer-data-tables-with-quickgrid-row-styling">Clearer data tables with QuickGrid row styling</h3><p>Blazor’s <strong>QuickGrid</strong> control now makes it far easier to:</p><p>Highlight rows based on business rules (e.g. overdue, high risk, archived).</p><p>Apply CSS classes conditionally using a simple parameter (<code>RowClass</code>).</p><p><strong>Business benefit:</strong><br>Important items stand out visually — ideal for finance, operations, or case management screens where attention needs to go to the right records quickly.</p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/11/image-1.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-1.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-1.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-1.png 1600w, https://services.assemblysoft.com/content/images/2025/11/image-1.png 1995w" sizes="(min-width: 720px) 720px"></figure><h4 id="how-assemblysoft-helps-1">How Assemblysoft helps</h4><p>As <strong>.NET 10 Blazor experts</strong>, Assemblysoft can:</p><p>Refine your <strong>navigation and data grids</strong> to align with how your teams actually work.</p><p>Modernise older pages into <strong>clear, responsive Blazor UX</strong> that your users can trust.</p><p>Build new modules – dashboards, reporting screens, admin consoles – using modern <strong>full-stack Blazor</strong> patterns.</p><p>Learn more about our <strong><a href="https://assemblysoft.com/technologies/fullstack-blazor-development" rel="noopener">full-stack Blazor development services</a></strong>.</p><hr><h2 id="3-more-reliable-connections-less-lost-work">3. More Reliable Connections &amp; Less Lost Work</h2><h3 id="built-in-reconnection-experience">Built-in reconnection experience</h3><p>Real-world networks drop: Wi-Fi glitches, laptops sleep, VPNs disconnect. In .NET 10:</p><p>Blazor Web App templates now include a <strong>standard Reconnection UI</strong> out of the box.</p><p>Users see a clear message and progression of states (including a new <strong>“retrying”</strong> state).</p><p>Developers can fully customise the look and behaviour while still having a safe fallback.</p><p><strong>Business benefit:</strong><br>Users are less likely to assume “the system failed” and more likely to trust that it’s recovering safely.</p><h3 id="persisting-state-to-avoid-flicker-and-re-entry">Persisting state to avoid “flicker” and re-entry</h3><p>Blazor often prerenders content on the server for fast initial load, then re-renders on the client. Without care, that can cause:</p><p>Flickering as data reloads.</p><p>Extra calls to back-end services.</p><p>Confusing states where information appears to change.</p><p>In .NET 10, Blazor introduces a <strong>declarative way to persist and restore state</strong> using attributes. This allows:</p><p>Data loaded during prerender to be <strong>reused</strong>, rather than fetched again.</p><p>Component state to be <strong>preserved across reconnections and enhanced navigations</strong>, where appropriate.</p><p>The upshot is simpler code for developers — and smoother, more reliable behaviour for users.</p><h3 id="circuit-state-persistence-for-long-running-sessions">Circuit state persistence for long-running sessions</h3><p>For server-side Blazor apps:</p><p>.NET 10 can <strong>persist the circuit state</strong> when a connection is paused or interrupted, then resume it later without losing unsaved work.</p><p>This is particularly valuable for:</p><p>Staff who multitask across browser tabs.</p><p>Field workers on mobile or unstable connections.</p><h4 id="how-assemblysoft-helps-2">How Assemblysoft helps</h4><p>Assemblysoft can:</p><p>Assess where users currently <strong>lose work or context</strong> and apply state persistence and reconnection patterns to minimise it.</p><p>Design new workflows that assume <strong>intermittent connectivity</strong> but protect business data.</p><p>Host and scale these solutions in Azure, integrating with wider <strong><a href="https://assemblysoft.com/technologies/microsoft-azure-development" rel="noopener">Microsoft Azure development</a></strong> strategies, including identity, storage and monitoring.</p><hr><h2 id="4-cleaner-operations-better-deployments">4. Cleaner Operations, Better Deployments</h2><h3 id="environments-set-at-build-time-for-webassembly-apps">Environments set at build-time for WebAssembly apps</h3><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/11/image-7.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-7.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-7.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-7.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-7.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>In .NET 10:</p><p>Standalone Blazor WebAssembly apps can have their <strong>environment (e.g. Development, Staging, Production)</strong> set at build time via project configuration.</p><p>This aligns nicely with CI/CD pipelines:</p><p>Each environment can have <strong>different configuration, feature flags, endpoints or branding</strong> baked in.</p><p>Less reliance on headers or manual configuration tweaks after deployment.</p><h3 id="more-predictable-pwa-updates">More predictable PWA updates</h3><p>Progressive Web Apps rely on <strong>service workers</strong> for offline support and caching. In .NET 10:</p><p>The Blazor PWA template now uses <code>updateViaCache: 'none'</code> when registering the service worker.</p><p>This avoids cases where the browser silently serves <strong>outdated service worker code</strong> from cache.</p><p><strong>Business benefit:</strong><br>Offline and PWA behaviour becomes more reliable after updates – crucial for scenarios where teams rely on offline capabilities in the field.</p><h4 id="how-assemblysoft-helps-3">How Assemblysoft helps</h4><p>Assemblysoft can:</p><p>Integrate Blazor apps into your DevOps pipelines, making use of <strong>build-time environments</strong> for safer releases.</p><p>Review your current deployment strategy and streamline it with Azure services and GitHub Actions.</p><p>Build or upgrade PWA-style Blazor apps that behave consistently across updates and devices.</p><p>Our wider platform and cloud capabilities are outlined in our <strong><a href="https://assemblysoft.com/technologies/microsoft-azure-development" rel="noopener">Azure development services</a></strong>.</p><hr><h2 id="5-stronger-security-and-identity-options">5. Stronger Security and Identity Options</h2><p>Blazor in .NET 10 also improves the security story:</p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/11/image-6.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-6.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-6.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-6.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-6.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Updated sample solutions for Blazor Web Apps secured with:</p><p>OpenID Connect identity providers.</p><p><strong>Microsoft Entra ID (Azure AD)</strong>.</p><p>Windows Authentication.</p><p>Built-in support for <strong>passkeys (WebAuthn/FIDO2)</strong> via ASP.NET Core Identity:</p><p>Users can sign in using device-based authentication like biometrics or security keys.</p><p>Reduces reliance on passwords and phishing-prone credentials.</p><p>Guidance around:</p><p>Encrypted distributed token caches for web farms.</p><p>Integration with <strong>Azure Key Vault</strong> and managed identities.</p><p><strong>Business benefit:</strong><br>A stronger foundation for <strong>single sign-on, passwordless access, and compliance-ready security</strong> in Blazor-based systems.</p><h4 id="how-assemblysoft-helps-4">How Assemblysoft helps</h4><p>Assemblysoft can:</p><p>Design and implement <strong>modern identity flows</strong> in your Blazor and .NET 10 applications.</p><p>Integrate with Microsoft Entra ID, third-party identity providers, and secured APIs.</p><p>Combine authentication with robust <strong>operational controls on Azure</strong>, logging and governance.</p><hr><h2 id="6-better-observability-validation-api-governance">6. Better Observability, Validation &amp; API Governance</h2><h3 id="deeper-metrics-and-diagnostics">Deeper metrics and diagnostics</h3><p>.NET 10 introduces richer metrics and tracing for Blazor apps, covering:</p><p>Component lifecycle.</p><p>Navigation and event handling.</p><p>Circuit management and performance.</p><p>This makes it easier to:</p><p>Detect performance bottlenecks.</p><p>Understand how users actually move through the app.</p><p>Justify optimisation work with concrete data.</p><h3 id="stronger-validation-for-forms-and-apis">Stronger validation for forms and APIs</h3><p><strong>Blazor forms</strong> now support:</p><p>Validation of <strong>nested objects and collections</strong>, not just flat models.</p><p>A source-generated validation approach that’s compatible with ahead-of-time compilation.</p><p>Clearer, more consistent validation behaviour aligned with the broader .NET platform.</p><p><strong>Minimal APIs</strong> gain:</p><p>Built-in validation support for query parameters, headers and bodies.</p><p>Consistent error responses using standard problem details.</p><p><strong>Business benefit:</strong><br>Higher data quality, fewer bad records, and more predictable behaviour for both internal and external consumers of your APIs.</p><h4 id="how-assemblysoft-helps-5">How Assemblysoft helps</h4><p>Assemblysoft can:</p><p>Introduce <strong>structured validation</strong> into your existing forms and APIs.</p><p>Align your applications with <strong>OpenAPI and .NET 10’s API features</strong> to support growth and external integrations.</p><p>Build new, API-first systems with strong validation and documentation baked in from the start.</p><hr><h2 id="7-why-consider-net-10-blazor-now-and-why-partner-with-assemblysoft">7. Why Consider .NET 10 Blazor Now – and Why Partner with Assemblysoft</h2><p>From a senior stakeholder perspective, the key message is:</p><blockquote><strong>Blazor in .NET 10 isn’t just a developer upgrade – it’s an opportunity to improve performance, reliability, security, and long-term maintainability of your business-critical systems.</strong></blockquote><p>The platform now better supports:</p><p><strong>Fast, cache-friendly applications</strong> that feel modern and responsive.</p><p><strong>Resilient user experiences</strong> that cope with real-world connectivity issues.</p><p><strong>Secure, identity-aware solutions</strong> aligned with Microsoft’s latest recommendations.</p><p><strong>Operational efficiency</strong>, with cleaner deployments and better diagnostics.</p><h3 id="how-assemblysoft-turns-these-features-into-business-value">How Assemblysoft turns these features into business value</h3><p><strong><a href="https://assemblysoft.com/" rel="noopener">Assemblysoft</a></strong> specialises in:</p><p><strong>Modernising existing systems</strong></p><p>Upgrading ASP.NET and Blazor apps to <strong>.NET 10</strong>.</p><p>Restructuring front-ends with modern Blazor components (QuickGrid, improved routing, new validation).</p><p>Migrating hosting, identity and storage to <strong>Azure</strong>, leveraging best practices from our <strong><a href="https://assemblysoft.com/technologies/microsoft-azure-development" rel="noopener">Microsoft Azure development services</a></strong>.</p><p><strong>Building new, greenfield solutions</strong></p><p>Designing and delivering <strong>full-stack Blazor applications</strong>, from UI to APIs, using the latest .NET 10 features.</p><p>Implementing rich dashboards, workflows, and complex forms with <strong><a href="https://assemblysoft.com/technologies/fullstack-blazor-development" rel="noopener">full-stack Blazor development</a></strong>.</p><p>Integrating with existing ERPs, CRMs and line-of-business systems.</p><p><strong>Advisory, architecture &amp; ongoing support</strong></p><p>Providing strategic guidance on when and how to adopt <strong>Blazor in .NET 10</strong>.</p><p>Helping you phase modernisation to de-risk change while delivering early wins.</p><p>Offering ongoing support, optimisation and enhancement as your products evolve.</p><blockquote>Looking for a partner to guide you into adding AI into your existing software applications?</blockquote><p><strong>At Assemblysoft we know how to simplifying AI concepts</strong></p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/11/image-9.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-9.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-9.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-9.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-9.png 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/11/image-8.png" class="kg-image" alt="Blazor in .NET 10 - What Senior Stakeholders Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/11/image-8.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/11/image-8.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/11/image-8.png 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/11/image-8.png 2400w" sizes="(min-width: 720px) 720px"></figure><h2 id="next-steps">Next Steps</h2><p>If you’re:</p><p>Running an existing ASP.NET or Blazor application that’s starting to show its age, or</p><p>Planning a new internal platform, portal, or customer-facing system and want to use <strong>modern, Microsoft-backed technology</strong>,</p><p>then now is an excellent time to explore what <strong>Blazor in .NET 10</strong> can do for you.</p><p>👉 Visit <strong><a href="https://assemblysoft.com/" rel="noopener">Assemblysoft</a></strong> to discover how our <strong>.NET 10 Blazor experts</strong> can help you <strong>modernise what you have</strong> or <strong>build what you need next</strong> – using the latest .NET, Blazor and Azure capabilities tailored to your business.</p>]]></content:encoded></item><item><title><![CDATA[Revive and Complete Stalled Vibe Coding Projects]]></title><description><![CDATA[Many organisations are struggling with stalled vibe coding projects. Assemblysoft helps bridge the gap between prototypes and production-ready software.]]></description><link>https://services.assemblysoft.com/how-assemblysoft-helps-organisations-revive-and-complete-stalled-vibe-coding-projects/</link><guid isPermaLink="false">68ef8262f758aa1a0063ad56</guid><category><![CDATA[Development Partnership Benefits]]></category><category><![CDATA[Entrepreneurs]]></category><category><![CDATA[Small and Medium Sized Businesses]]></category><dc:creator><![CDATA[Assemblysoft Developers]]></dc:creator><pubDate>Wed, 15 Oct 2025 11:23:04 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1709547228697-fa1f424a3f39?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHZpYmUlMjBjb2Rpbmd8ZW58MHx8fHwxNzYwNTI3MTMzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1709547228697-fa1f424a3f39?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHZpYmUlMjBjb2Rpbmd8ZW58MHx8fHwxNzYwNTI3MTMzfDA&ixlib=rb-4.1.0&q=80&w=2000" alt="Revive and Complete Stalled Vibe Coding Projects"><p></p><h3 id="when-vibe-coding-projects-stall"><strong>When Vibe Coding Projects Stall</strong></h3><p>It’s becoming increasingly common for organisations to approach us after a <strong>vibe coding project</strong>—promising rapid results and lower costs—has stalled before reaching production.</p><p>In many cases, the original delivery teams were <strong>sold on speed</strong>, with project estimates based on optimistic assumptions about the productivity of low-code or no-code tools. Unfortunately, clients often only discover these limitations once the <strong>budget is spent</strong> and the project still isn’t meeting operational or commercial requirements.</p><p>At <strong>Assemblysoft</strong>, we see this situation frequently—and the good news is that <strong>these projects can be recovered and delivered successfully</strong>.</p><hr><h3 id="the-value-of-vibe-coding"><strong>The Value of Vibe Coding</strong></h3><p>Let’s be clear: we still see <strong>huge value</strong> in vibe coding tools. They are <strong>transforming how requirements, UX, and design</strong> come together by enabling rapid experimentation, visual feedback, and early user engagement.</p><p>Where they shine is in:</p><p>🧠 <strong>Prototyping and requirements discovery</strong>, where ideas are being tested, not finalised.</p><p>🚀 <strong>Exploratory or early-stage products</strong>, where market fit and feature direction are still evolving.</p><p>These are the environments where speed and iteration matter more than production-grade robustness—and vibe coding tools are unmatched in helping teams <strong>learn fast and pivot early</strong>.</p><hr><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/10/image.png" class="kg-image" alt="Revive and Complete Stalled Vibe Coding Projects" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/10/image.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/10/image.png 1000w, https://services.assemblysoft.com/content/images/2025/10/image.png 1108w" sizes="(min-width: 720px) 720px"></figure><h3 id="where-things-go-wrong"><strong>Where Things Go Wrong</strong></h3><p>The challenges typically arise when organisations try to push these tools beyond their sweet spot—into <strong>fixed-deliverable projects</strong> that need reliability, integrations, and maintainability.</p><p>Some of the most common issues we see include:</p><p>⚙️ <strong>Over-optimistic assumptions about integrations and APIs</strong> — many connectors work well in demos but fail under real-world data and scale.</p><p>🧩 <strong>Missing migration or validation steps</strong> — data quality and schema transitions are often overlooked.</p><p>🔄 <strong>Weak DevOps, testing, and delivery discipline</strong> — vibe coding tools can obscure essential engineering rigour.</p><p>🧱 <strong>Limited experience taking a prototype to production</strong> — teams underestimate what it takes to operationalise and secure the solution.</p><p>None of these challenges are insurmountable—but they require the right <strong>engineering maturity</strong>, <strong>governance</strong>, and <strong>cloud expertise</strong> to bridge the gap from a prototype to a production-ready platform.</p><hr><h3 id="how-assemblysoft-can-help"><strong>How Assemblysoft Can Help</strong></h3><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/10/robert-collins-tvc5imO5pXk-unsplash.jpg" class="kg-image" alt="Revive and Complete Stalled Vibe Coding Projects" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/10/robert-collins-tvc5imO5pXk-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/10/robert-collins-tvc5imO5pXk-unsplash.jpg 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/10/robert-collins-tvc5imO5pXk-unsplash.jpg 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/10/robert-collins-tvc5imO5pXk-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>At <strong>Assemblysoft</strong>, we specialise in <strong>getting stalled projects back on track</strong> by combining deep technical expertise with practical delivery experience.</p><p>Here’s how we help:</p><p>🧾 <strong>Due Diligence Reviews</strong> – We assess the current system, identify where the vibe coding approach has reached its limits, and map a clear route to production readiness.</p><p>🛠️ <strong>Managed Delivery Support</strong> – Our UK-based team provides hands-on engineering expertise to rebuild, integrate, and stabilise systems for sustainable operation.</p><p>💡 <strong>Hackathons &amp; Workshops</strong> – We guide teams on <strong>using vibe coding tools effectively</strong> for requirement validation, prototyping, and stakeholder engagement—without overreaching their scope.</p><p>Our approach ensures you retain the speed and flexibility of your early work while introducing the <strong>engineering discipline and scalability</strong> needed to go live with confidence.</p><hr><h3 id="a-balanced-future-for-vibe-coding"><strong>A Balanced Future for Vibe Coding</strong></h3><p>We remain genuinely excited about the potential of vibe coding tools. In fact, we <strong>use them internally</strong> at Assemblysoft for <strong>requirements discovery and prototyping</strong>, helping clients visualise and iterate on concepts quickly.</p><p>However, we’ve learned that the <strong>massive productivity curve peaks early</strong>—and teams need to transition to traditional engineering approaches for production. Being realistic about this curve helps ensure <strong>timely delivery, cost control, and long-term success</strong>.</p><p>If your project has lost momentum or needs expert guidance to reach production, <strong>Assemblysoft can help you regain control and move forward confidently</strong>.</p><hr><h3 id="let-s-get-your-project-moving-again"><strong>Let’s Get Your Project Moving Again</strong></h3><p>If your organisation is struggling with a <strong>stalled vibe coding initiative</strong>, don’t start over—<strong>build on what’s already working</strong>.</p><p>Our specialists can help you:</p><p>Assess current progress and identify technical blockers.</p><p>Strengthen integrations, testing, and DevOps pipelines.</p><p>Transition from prototype to a scalable production environment.</p><p>👉 <a href="https://assemblysoft.com/services/custom-software-development">Contact Assemblysoft today</a> to discuss how we can help you turn your stalled project into a success story.</p>]]></content:encoded></item><item><title><![CDATA[Understanding LocalStorage, SessionStorage and Cookies in Web Development]]></title><description><![CDATA[Learn when to use localStorage, sessionStorage, and cookies in Blazor apps. Hire expert Blazor developers at Assemblysoft to modernise your project.]]></description><link>https://services.assemblysoft.com/understanding-web-storage-localstorage-sessionstorage-and-cookies/</link><guid isPermaLink="false">68ac2e37252bd51dc01ae8bb</guid><category><![CDATA[API Development]]></category><dc:creator><![CDATA[Assemblysoft Developers]]></dc:creator><pubDate>Mon, 25 Aug 2025 09:58:28 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1609603238871-f42339711d17?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDcwfHx1bmRlcnN0YW5kfGVufDB8fHx8MTc1NjExNTM2MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1609603238871-f42339711d17?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDcwfHx1bmRlcnN0YW5kfGVufDB8fHx8MTc1NjExNTM2MXww&ixlib=rb-4.1.0&q=80&w=2000" alt="Understanding LocalStorage, SessionStorage and Cookies in Web Development"><p>In today’s fast-moving digital landscape, delivering seamless, secure, and scalable web applications is no longer optional—it’s essential. One critical aspect of modern web development is <strong>client-side data management</strong>, which directly impacts performance, user experience, and compliance. Business leaders and technology decision-makers need confidence that their applications handle data efficiently across sessions, browsers, and devices.</p><p>This article blog explores the differences between <strong>localStorage, sessionStorage, and cookies</strong>—three client-side storage mechanisms that every organisation should understand when building high-performing web applications. From persistent user preferences to secure authentication tokens, each approach carries unique strengths, limitations, and security considerations.</p><p>At <strong><a href="https://www.assemblysoft.com/">Assemblysoft</a></strong>, a leading <strong>Blazor development company</strong>, we specialise in helping organisations modernise applications using <strong>.NET and Blazor</strong>. If you’re looking to <strong>hire Blazor developers</strong> who understand both technical depth and business impact, our UK-based team can deliver solutions that are secure, scalable, and future-proof.</p><p>In modern web development, managing data on the client side has become an essential skill. Developers often rely on localStorage, sessionStorage, and cookies to store data in the user’s browser. While these three mechanisms serve similar purposes, they have distinct differences in terms of capacity, persistence, and use cases. In this blog, we'll explore these differences, with examples, to help you better understand when and how to use each one.</p><h2 id="1-localstorage-persistent-client-side-storage">1. localStorage: Persistent Client-Side Storage</h2><p><strong>Purpose:</strong> localStorage is designed to store data on the client side that persists even after the browser is closed. It's an excellent choice for data that needs to be retained across multiple sessions.</p><p><strong>Capacity:</strong> localStorage offers substantial storage space, typically up to 10MB per domain, which is sufficient for most applications.</p><p><strong>Persistence:</strong> Data stored in localStorage remains available until explicitly deleted by the user or the application. This makes it ideal for storing user preferences, like theme settings, that should persist across different visits to the site.</p><p><strong>Example:</strong> Suppose you have a web application that offers both light and dark modes. You can use localStorage to save the user's preference so that the next time they visit, the site automatically loads in their chosen mode.</p><figure class="kg-card kg-image-card"><img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8u92f7h2bf026gf82oh.png" class="kg-image" alt="Understanding LocalStorage, SessionStorage and Cookies in Web Development"></figure><h2 id="2-sessionstorage-temporary-session-based-storage">2. sessionStorage: Temporary Session-Based Storage</h2><p><strong>Purpose:</strong> sessionStorage also stores data on the client side, but it is limited to the duration of the page session. This means the data is cleared when the user closes the browser tab or window.</p><p><strong>Capacity:</strong> Similar to localStorage, sessionStorage provides around 5MB of storage per domain. Although the capacity is smaller, it's often sufficient for temporary data.</p><p><strong>Persistence:</strong> The key difference between sessionStorage and localStorage is persistence. sessionStorage data is only available for the duration of the page session, making it suitable for storing temporary data that doesn't need to persist beyond the current session.</p><p><strong>Example:</strong> Imagine a multi-step form where users input data across several pages. You can use sessionStorage to temporarily store the form data as the user progresses through the steps. This ensures that if they accidentally reload a page, they don’t lose their progress.</p><pre><code>

// Save form data temporarily in sessionStorage
sessionStorage.setItem('step1Data', JSON.stringify({ name: 'John Doe', age: 30 }));

// Retrieve the saved data
const step1Data = JSON.parse(sessionStorage.getItem('step1Data'));
console.log(step1Data); // Output: { name: 'John Doe', age: 30 }



</code></pre><blockquote>At <strong><a href="https://www.assemblysoft.com/technologies/net-maui-blazor-hybrid-development">Assemblysoft</a></strong>, our expert team provides guidance and delivery for organisations seeking to build or modernise with Blazor. Whether you’re transforming a legacy monolith, introducing interactive Blazor UIs, or scaling your SaaS product, we can help. If you’re ready to <strong>hire Blazor developers</strong> with proven experience in delivering secure, modern, and business-aligned solutions, we’re here to partner with you.</blockquote><h2 id="3-cookies-small-persistent-storage-with-server-interaction">3. Cookies: Small, Persistent Storage with Server Interaction</h2><p><strong>Purpose:</strong> Cookies are used to store small pieces of data that need to persist across sessions and can be sent with HTTP requests to the server. They are often used for tracking user sessions, storing authentication tokens, and remembering user settings.</p><p><strong>Capacity:</strong> Cookies are much smaller in capacity compared to localStorage and sessionStorage, with a limit of 4KB per cookie. However, multiple cookies can be stored, each with this limit.</p><p><strong>Persistence:</strong> Cookies have a configurable expiration time. They can either expire at the end of a session or persist for a specified duration. This flexibility allows cookies to be used for both short-term and long-term storage.</p><p><strong>Example:</strong> A common use of cookies is to store a user’s login token, which allows the user to stay logged in across sessions without having to re-enter their credentials every time they visit the site.</p><pre><code>

// Set a cookie with an expiration date
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";

// Retrieve the cookie value
const cookies = document.cookie.split(';').reduce((acc, cookie) =&gt; {
    const [key, value] = cookie.trim().split('=');
    acc[key] = value;
    return acc;
}, {});
console.log(cookies.username); // Output: JohnDoe



</code></pre><p><strong>When to Use Each Storage Mechanism</strong></p><h3 id="localstorage-">localStorage: </h3><blockquote>Use when you need to store large amounts of data that should persist across multiple sessions and are not sensitive (e.g., user preferences, non-sensitive application state).</blockquote><h3 id="sessionstorage-">sessionStorage: </h3><blockquote>Ideal for temporary data that should only persist for the duration of the user’s session (e.g., single-session form data, temporary state).</blockquote><h3 id="cookies-">Cookies: </h3><blockquote>Best for storing small pieces of data that need to be sent to the server with HTTP requests or need a specific expiration (e.g., authentication tokens, user preferences that need to interact with the server).</blockquote><p><strong>Conclusion</strong></p><p>Understanding the differences between <strong>localStorage</strong>, <strong>sessionStorage</strong>, and <strong>cookies </strong>is crucial for making the right choice in your web applications. Each has its own strengths and limitations, and knowing when to use each one will help you build more efficient, user-friendly applications.</p><p>👉 Start your journey with <a href="https://www.assemblysoft.com/technologies/fullstack-blazor-development">Assemblysoft, your trusted Blazor development company</a>, and build applications that delight users while delivering measurable business value.</p><h2 id="-ready-to-build-with-blazor">🚀 Ready to Build with Blazor?</h2><p>Looking for a partner who understands both the <strong>technology and business impact</strong> of modern application development?</p><p>👉 <strong><a href="https://www.assemblysoft.com/services/custom-software-development">Hire Blazor Developers at Assemblysoft</a></strong> — your UK-based <strong>Blazor development company</strong>, helping you deliver secure, scalable, and user-friendly applications.</p><p>Let’s turn your next project into a success story.</p>]]></content:encoded></item><item><title><![CDATA[One Codebase, Many Looks: Blazor UI Flexibility for Modern Businesses]]></title><description><![CDATA[Discover how Blazor apps can adapt to different UI frameworks like MudBlazor, Telerik, Bootstrap and Syncfusion, without rewriting your business logic.]]></description><link>https://services.assemblysoft.com/blazor-ui-flexibility/</link><guid isPermaLink="false">68889ab27f2aa211b04f0105</guid><category><![CDATA[Blazor]]></category><category><![CDATA[.NET Development]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Tue, 29 Jul 2025 10:55:10 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1581782046583-d09f142bdd65?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGNvbG91ciUyMGNob2ljZXN8ZW58MHx8fHwxNzUzNzg1NjYyfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1581782046583-d09f142bdd65?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGNvbG91ciUyMGNob2ljZXN8ZW58MHx8fHwxNzUzNzg1NjYyfDA&ixlib=rb-4.1.0&q=80&w=2000" alt="One Codebase, Many Looks: Blazor UI Flexibility for Modern Businesses"><p></p><h2 id="why-blazor"><strong>Why Blazor?</strong></h2><p>Choosing <strong>Blazor</strong> as your web platform means you’re invested in a modern, full-stack .NET solution — where your developers can build interactive, client-rich web applications using <strong>C# instead of JavaScript</strong>.</p><p>But here’s the challenge many businesses face:</p><blockquote>"What happens when we want to support different customers, brands, or design systems — but don’t want to rebuild our entire application?"</blockquote><p>This is where a <strong>modular, configurable Blazor UI strategy</strong> becomes a game-changer.</p><hr><h2 id="imagine-this-scenario"><strong>Imagine This Scenario</strong></h2><p>You're a software provider, consultancy, or platform builder. Over time, you’re asked to:</p><p>✅ Support <strong>white-labeled interfaces</strong> for clients<br>✅ Provide a <strong>lightweight version</strong> of your app for low-bandwidth environments<br>✅ Migrate a legacy Bootstrap UI to a <strong>modern material look</strong> (e.g., MudBlazor or Telerik)<br>✅ Trial a <strong>new UI library</strong> internally without breaking your production system</p><p>With a traditional approach, this could mean separate codebases, duplicated logic, and a huge maintenance overhead.</p><hr><h2 id="the-solution-ui-abstraction-runtime-selection"><strong>The Solution: UI Abstraction + Runtime Selection</strong></h2><p>At Assemblysoft, we have been helping a selection of forward-thinking clients to not only structure their Blazor apps to <strong>separate business logic from UI components, </strong>but to also <strong>enable the entire UI Framework to be selected at runtime</strong>, depending on the scenario.</p><hr><h2 id="why-multiple-ui-targets-are-sometimes-necessary"><strong>Why Multiple UI Targets Are Sometimes Necessary</strong></h2><p>Why Multiple UIs Matter</p><!--kg-card-begin: markdown--><p><img src="https://images.unsplash.com/photo-1691480208637-6ed63aac6694?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fHdoaXRlJTIwbGFiZWx8ZW58MHx8fHwxNzUzNzg3NTI5fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="One Codebase, Many Looks: Blazor UI Flexibility for Modern Businesses"></p>
<!--kg-card-end: markdown--><p><strong>White-Labeling for Clients - </strong>Different branding, color schemes, or design systems per client</p><p><strong>Licensing Models - </strong>Open-source vs. commercial component libraries (e.g., free tier uses Bootstrap, paid tier gets Telerik)</p><!--kg-card-begin: markdown--><p><img src="https://images.unsplash.com/photo-1669023414180-4dcf35d943e1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fHNvZnR3YXJlJTIwbGljZW5zZXxlbnwwfHx8fDE3NTM3ODgxOTR8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="One Codebase, Many Looks: Blazor UI Flexibility for Modern Businesses"></p>
<!--kg-card-end: markdown--><p><strong>Performance Profiles - </strong>Use a lighter UI (e.g., Bootstrap) for mobile users or emerging markets</p><p><strong>Department Preferences - </strong>Marketing prefers Bootstrap, IT prefers MudBlazor, Finance uses Syncfusion grids</p><p><strong>Testing &amp; Prototyping - </strong>Try out newer libraries like AntDesign or Blazorise without affecting production</p><hr><h2 id="what-stays-the-same"><strong>What Stays the Same?</strong></h2><p>Your <strong>business logic</strong>, <strong>services</strong>, <strong>models</strong>, and <strong>data access</strong> all stay untouched. Only the UI layer adapts — and it does so dynamically.</p><hr><h2 id="business-benefits-at-a-glance"><strong>Business Benefits at a Glance</strong></h2><p>🎯 <strong>One Core System - </strong>Build once, adapt visually for each use case</p><p>🎨 <strong>Custom Branding - </strong>Deliver branded UIs for clients, partners, or internal teams</p><p>🏎️ <strong>Optimised Performance - </strong>Load only what's needed — faster apps, lower hosting costs</p><p>💸 <strong>Reduce Cost &amp; Risk - </strong>Avoid duplicated code, multiple deployments, and diverging branches</p><p>🔁 <strong>Future-Proofing - </strong>Swap or test new frameworks (e.g., DevExpress, AntDesign) without lock-in</p><hr><h2 id="how-it-works-high-level-"><strong>How It Works (High-Level)</strong></h2><p><strong>UI Components are separated</strong> into modular units (via Razor Class Libraries)</p><p><strong>Configuration settings</strong> determine which UI framework is used (e.g., "MudBlazor", "Telerik", "Syncfusion")</p><p>At <strong>runtime</strong>, only the relevant UI assets, scripts, and libraries are downloaded</p><p>The app looks and feels different — but the backend remains the same</p><!--kg-card-begin: markdown--><h2 id="onesystemmanyuiexperiencesallconfigurable">🔀 One System, Many UI Experiences — All Configurable</h2>
<p>With Assemblysoft’s modular Blazor architecture, <strong>every part of your application can be independently configured to use the UI framework that best suits its audience or purpose</strong> — all while sharing the same backend, services, and business rules.</p>
<h3 id="forexampleyoucould">For example, you could:</h3>
<ul>
<li>✅ <strong>Use Bootstrap</strong> for a fast-loading, minimal public portal</li>
<li>✅ <strong>Use Telerik</strong> for a polished enterprise dashboard</li>
<li>✅ <strong>Use Syncfusion</strong> where complex data grids or export capabilities are essential</li>
<li>✅ <strong>Use MudBlazor</strong> internally for teams that prefer a modern, material design system</li>
</ul>
<blockquote>
<p><strong>And here's the key:</strong><br>
Each of these areas could be configured to use <em>any</em> supported UI framework — not just the one listed above.</p>
</blockquote>
<p>Whether it's your <strong>dashboard</strong>, <strong>portal</strong>, <strong>admin panel</strong>, or <strong>internal tools</strong>, each can run its own UI framework without duplicating code or forking the application.</p>
<p><img src="https://images.unsplash.com/photo-1532920092365-f0ba59b286e9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxvcHRpb25zfGVufDB8fHx8MTc1Mzc4NDI0OHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="One Codebase, Many Looks: Blazor UI Flexibility for Modern Businesses"></p>
<h3 id="allwithoutrewritingtheapplication">💡 All without rewriting the application.</h3>
<p>Each UI layer is:</p>
<ul>
<li>🔧 <strong>Configurable</strong> at runtime or per deployment</li>
<li>🐇 <strong>Lazily loaded</strong> to avoid unnecessary bloat</li>
<li>🔄 <strong>Connected</strong> to the same service and data infrastructure</li>
</ul>
<!--kg-card-end: markdown--><hr><!--kg-card-begin: markdown--><h2 id="extendyourblazorappwithnetmauiblazorhybrid">📱 Extend Your Blazor App with .NET MAUI Blazor Hybrid</h2>
<p>Your UI flexibility doesn't stop at the browser. With <strong>.NET MAUI Blazor Hybrid</strong>, you can bring your existing Blazor components to <strong>desktop and mobile platforms</strong> — without rewriting your codebase.</p>
<p>Blazor Hybrid allows you to:</p>
<ul>
<li>📱 <strong>Run your Blazor UI inside a native mobile or desktop app</strong> (Windows, macOS, Android, iOS)</li>
<li>🔄 <strong>Reuse your existing components and service layer</strong></li>
<li>🧩 <strong>Plug in any of the supported UI frameworks</strong> (MudBlazor, Telerik, Bootstrap, etc.) — just like on the web</li>
<li>🔐 <strong>Secure and distribute apps via native app stores or enterprise channels</strong></li>
</ul>
<h3 id="whythismatters">Why this matters:</h3>
<ul>
<li>You can deliver a <strong>consistent experience</strong> across web, desktop, and mobile — with tailored UI frameworks per platform.</li>
<li>For example, use <strong>Telerik</strong> in your enterprise web dashboard and <strong>MudBlazor</strong> for your internal MAUI field app — all from a shared codebase.</li>
</ul>
<p>Whether you're building public-facing portals, internal tools, or offline-capable mobile apps, .NET MAUI Blazor Hybrid provides the reach you need, while preserving the architecture you've already invested in.</p>
<blockquote>
<p>Assemblysoft helps clients bring their Blazor apps to mobile and desktop using .NET MAUI — with runtime UI framework selection intact.</p>
</blockquote>
<p>🔗 <a href="https://assemblysoft.com/technologies/net-maui-blazor-hybrid-development">Talk to us about cross-platform Blazor</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="introducingorswappinguiframeworksperclientorscenario">🔄 Introducing or Swapping UI Frameworks Per Client or Scenario</h2>
<p>With a modular Blazor architecture, you gain the ability to <strong>introduce a new UI framework</strong> or <strong>swap out an existing one</strong> — without disrupting the entire application or duplicating code.</p>
<p>This makes it easy to tailor the user experience for specific clients, brands, or business contexts. Here's a practical example:</p>
<h3 id="exampleablazorappwith3clientspecificuis">🧠 Example: A Blazor App with 3 Client-Specific UIs</h3>
<table>
<thead>
<tr>
<th>Client</th>
<th>Framework</th>
<th>Branding</th>
<th>Why It Works</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Retail Portal</strong></td>
<td>Bootstrap</td>
<td>Clean, classic</td>
<td>Lightweight and fast for public-facing UI</td>
</tr>
<tr>
<td><strong>Corporate Dashboard</strong></td>
<td>Telerik</td>
<td>Enterprise-grade look &amp; feel</td>
<td>Feature-rich components for internal ops</td>
</tr>
<tr>
<td><strong>Analytics Suite</strong></td>
<td>Syncfusion</td>
<td>Data-heavy, high-performance UI</td>
<td>Complex grids, charts, and export features</td>
</tr>
</tbody>
</table>
<p>Each of these UIs:</p>
<ul>
<li>Uses the <strong>same shared backend</strong>, services, and data models</li>
<li>Loads <strong>only the assets</strong> needed for its specific UI framework (via lazy loading)</li>
<li>Can be <strong>configured at runtime or per deployment</strong></li>
</ul>
<h3 id="addinganewframeworklaternorebuildrequired">🔧 Adding a New Framework Later — No Rebuild Required</h3>
<p>Let’s say a new client joins and they prefer a different visual style — for example, something that matches their brand guidelines or internal systems.</p>
<p>With our flexible setup, we don’t need to rebuild the entire application. Instead, we simply:</p>
<ol>
<li><strong>Add a new design layer</strong> that matches their preferred look and feel</li>
<li><strong>Connect it to the existing logic and features</strong> already powering the application</li>
<li><strong>Set up the app to use that new design automatically</strong> for that specific client</li>
</ol>
<p>Once this quick setup process is complete, <strong>switching between design frameworks becomes as easy as changing a setting</strong>.<br>
Need to go back to a previous style? Just update the configuration — no code changes required.</p>
<blockquote>
<p><strong>The result?</strong><br>
The new client sees the app exactly how they want — while everything underneath (data, workflows, and business rules) stays the same.</p>
</blockquote>
<p>This means we can support different clients with completely different user experiences — all from the same core system, and without costly redevelopment.</p>
<h3 id="swapanytimewithoutafullrewrite">🪄 Swap Anytime, Without a full Rewrite</h3>
<p>Need to replace MudBlazor with Blazorise for your internal tools? No problem.<br>
Want to try DevExpress for reporting? Just configure it for your reporting module.</p>
<p><strong>Each part of the application can evolve independently</strong>, which means your app becomes more adaptable, testable, and maintainable — long term.</p>
<!--kg-card-end: markdown--><p>All powered by the same codebase, running in the same hosting environment — saving you money, time, and stress.</p><hr><h2 id="why-assemblysoft"><strong>Why Assemblysoft?</strong></h2><p>We’re not just Blazor experts — we’re business enablers. At Assemblysoft, we build Blazor apps that:</p><p>✅ Support multiple brands or teams</p><p>✅ Perform at scale across devices</p><p>✅ Are maintainable, testable, and future-ready</p><p>🔗 <a href="https://assemblysoft.com/technologies/blazor-webassembly-development">Learn more about our Blazor solutions</a><br>🔗 <a href="https://assemblysoft.com/contact">Partner with Assemblysoft today</a></p>]]></content:encoded></item><item><title><![CDATA[Unlock Real-Time Business Insight with Change Data Capture (CDC)]]></title><description><![CDATA[Discover how Change Data Capture (CDC) enables real-time data tracking and boosts business agility with Azure and on-prem SQL Server.]]></description><link>https://services.assemblysoft.com/unlock-real-time-business-insight-with-change-data-capture-cdc/</link><guid isPermaLink="false">688885a07f2aa211b04f007b</guid><category><![CDATA[Azure Services]]></category><category><![CDATA[Business-Services]]></category><category><![CDATA[.NET Development]]></category><category><![CDATA[Technologies]]></category><dc:creator><![CDATA[Assemblysoft Developers]]></dc:creator><pubDate>Tue, 29 Jul 2025 09:39:35 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1528352311227-abbd6f7f0a46?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fGZvb3xlbnwwfHx8fDE3NTM3ODEwOTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<h1></h1><h2 id="why-waiting-on-data-is-costing-you">Why Waiting on Data Is Costing You</h2><img src="https://images.unsplash.com/photo-1528352311227-abbd6f7f0a46?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fGZvb3xlbnwwfHx8fDE3NTM3ODEwOTV8MA&ixlib=rb-4.1.0&q=80&w=2000" alt="Unlock Real-Time Business Insight with Change Data Capture (CDC)"><p>In today's fast-moving digital landscape, <strong>timely access to accurate data is the edge your business needs</strong>. Whether you're overseeing operations, driving strategy, or delivering value to customers, delays in accessing key business metrics can result in missed opportunities, poor forecasting, and reactive decision-making.</p><p><strong>Change Data Capture (CDC)</strong> is a powerful yet low-impact technology built into <strong>SQL Server and Azure SQL Managed Instance</strong> that helps you break free from lagging data. It allows changes in your business systems—like sales, customer updates, or inventory adjustments—to <strong>instantly flow into your reporting tools, dashboards, and integrations</strong>.</p><!--kg-card-begin: html--><div style="background-color: #000; color: #fff; font-family: Arial, sans-serif; line-height: 1.6; font-size: 16px; padding: 20px; border-radius: 8px;">
  <h2 style="color: #fff;">Unlock a Time Machine for Your Business Data</h2>
  <p>
    Imagine having a <strong>time machine for your business data</strong> — that’s exactly what modern
    <strong>temporal tables</strong> offer. They automatically capture every change to your records, creating a full historical
    log that shows how your data looked at any point in time. Whether it's customer profiles, contract terms, or pricing updates,
    this visibility is invaluable for <strong>auditing, compliance</strong>, and tracking changes over time.
  </p>
  <p>
    Best of all, it happens silently in the background with zero disruption to your operations.
  </p>
  <p>
    When paired with <strong>Change Data Capture (CDC)</strong>, you get a complete picture of data evolution:
    temporal tables provide the <em>"what and when"</em>, while CDC captures the <em>"who and how"</em>.
    Together, they offer unmatched transparency and control — helping you make better decisions and stay ahead of compliance requirements.
  </p>
</div>
<!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://services.assemblysoft.com/content/images/2025/07/mohamed-osama-qAsX1nSP0Gk-unsplash.jpg" class="kg-image" alt="Unlock Real-Time Business Insight with Change Data Capture (CDC)" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/07/mohamed-osama-qAsX1nSP0Gk-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/07/mohamed-osama-qAsX1nSP0Gk-unsplash.jpg 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/07/mohamed-osama-qAsX1nSP0Gk-unsplash.jpg 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/07/mohamed-osama-qAsX1nSP0Gk-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Unlock a Time Machine for Your Business Data</figcaption></figure><hr><h2 id="real-time-data-real-world-impact">Real-Time Data, Real-World Impact</h2><blockquote>Know immediately when a customer record is updated, a sale is made, or inventory drops below threshold. With CDC in place, these insights can <strong>flow instantly into your decision-making tools</strong>, enabling <strong>more responsive customer service, improved operational efficiency, and proactive business planning</strong>.</blockquote><!--kg-card-begin: html--><div style="background-color: #0d47a1; border-left: 8px solid #42a5f5; padding: 2.2rem; margin: 2.5rem 0; border-radius: 12px; font-family: 'Segoe UI', sans-serif; color: #ffffff;">
  <h3 style="color: #90caf9; margin-top: 0; font-size: 2.25rem;">Imagine this:</h3>
  <ul style="line-height: 2.2; padding-left: 1.8rem; margin: 1.5rem 0; font-size: 1.65rem;">
    <li><strong>Your sales dashboards</strong> update <em>as soon as a deal closes</em></li>
    <li><strong>Your customer database</strong> syncs <em>automatically across platforms</em></li>
    <li><strong>Your finance team</strong> runs reports on <em>live data, not yesterday’s exports</em></li>
  </ul>
  <p style="margin-top: 2rem; font-size: 1.85rem; font-weight: 700; color: #ffffff;">
    All this without disrupting your existing systems or launching costly digital transformation projects.
  </p>
  <p style="margin-top: 1.2rem; font-size: 1.25rem; font-weight: 500;">
    That’s the promise of <strong>Change Data Capture (CDC)</strong>.
    At <a href="https://assemblysoft.com" style="color: #90caf9; text-decoration: none;"><strong>Assemblysoft</strong></a>, we specialize in implementing it strategically—ensuring it fits your organization’s pace, priorities, and platform, whether that’s on-prem SQL Server or the Azure cloud.
  </p>
</div>
<!--kg-card-end: html--><blockquote>At Assemblysoft, we help you <strong>unlock these capabilities without risk</strong>. Our UK-based team specializes in aligning CDC strategies with your business goals—<strong>whether you're modernizing a legacy ERP system or integrating with third-party platforms</strong>.</blockquote><h2 id="what-is-cdc-in-simple-terms">What Is CDC, in Simple Terms?</h2><p><strong>Change Data Capture (CDC)</strong> is a method of <strong>tracking changes made to your data</strong>—such as inserts, updates, and deletes—in real time. Rather than constantly querying entire tables to see what's changed, CDC <strong>monitors your SQL Server's transaction log</strong> behind the scenes and stores just the changes in a special structure.</p><p>These tracked changes can then be used to <strong>sync systems, update reports, or power real-time apps</strong>—all without rewriting or redeploying your existing software.</p><blockquote>Think of CDC as a <strong>smart data mirror</strong>—it only reflects what’s changed, helping your team act on fresh insights faster.</blockquote><hr><h2 id="business-benefits-of-cdc">Business Benefits of CDC</h2><p>CDC Helps <strong>Delayed Reports </strong>Automatically feed data into dashboards like Power BI or Excel in near real-time <strong>Manual Syncing </strong>Eliminate spreadsheets or overnight batch jobs for syncing data across systems <strong>Compliance &amp; Auditing </strong>Capture every change to sensitive data for full traceability <strong>Modernization Without Risk</strong></p><blockquote>Start using real-time data without replacing your current systems</blockquote><h2 id="assemblysoft-s-cdc-enablement-services">Assemblysoft’s CDC Enablement Services</h2><p>We guide businesses through every stage of adopting CDC—tailored to your environment and goals.</p><p>🔧 <strong>Assessment</strong> – We evaluate your current SQL Server (on-prem or cloud) for CDC readiness</p><p><br>🚀 <strong>Implementation</strong> – We enable CDC on your databases and help configure safe, secure pipelines</p><p><br>🧩 <strong>Integration</strong> – We connect your change-tracked data into your BI tools, ETL jobs, or custom apps</p><p><br>🛡️ <strong>Monitoring &amp; Support</strong> – We help set up job monitoring and retention policies for ongoing reliability</p><p>Whether you’re running <strong>SQL Server 2016+ on-prem</strong> or <strong>Azure SQL Managed Instance</strong>, our UK-based team ensures a seamless transition to real-time operations.</p><hr><h2 id="under-the-hood-how-cdc-works-for-technical-teams-">Under the Hood: How CDC Works (For Technical Teams)</h2><h2 id="data-flow">Data flow</h2><p>The following illustration shows the principal data flow for change data capture.</p><p>The source of change data for change data capture is the SQL Server transaction log. As inserts, updates, and deletes are applied to tracked source tables, entries that describe those changes are added to the log. The log serves as input to the capture process. Then, it reads the log and adds information about changes to the tracked table's associated change table. Functions are provided to enumerate the changes that appear in the change tables over a specified range, returning the information in the form of a filtered result set. The filtered result set is typically used by an application process to update a representation of the source in some external environment.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/media/change-data-sql-server-and-mi.png?view=sql-server-ver17" class="kg-image" alt="Unlock Real-Time Business Insight with Change Data Capture (CDC)"></figure><p>Once enabled, CDC works by:</p><p><strong>Reading the transaction log</strong> for INSERT, UPDATE, and DELETE operations</p><p><strong>Populating change tables</strong> that mirror your original tables, but include metadata (timestamp, operation type, etc.)</p><p><strong>Exposing SQL functions</strong> that developers or ETL tools can call to query what’s changed over a specific time window</p><p>Each tracked table becomes a <strong>"capture instance"</strong> with its own change table and functions like:</p><p><code>fn_cdc_get_all_changes_&lt;table&gt;</code> – all changes between LSNs</p><p><code>fn_cdc_get_net_changes_&lt;table&gt;</code> – net result of changes per row (optional)</p><p></p><p><strong>Feature Comparison Table</strong></p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Feature / Capability</th>
<th>On-Prem SQL Server</th>
<th>Azure SQL Managed Instance</th>
</tr>
</thead>
<tbody>
<tr>
<td>Supports Change Data Capture (CDC)</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Uses SQL Server Agent for CDC</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Change data stored in separate CDC tables</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Incremental ETL support via built-in CDC functions</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Dual capture instances per table (schema evolution)</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Net change detection with <code>fn_cdc_get_net_changes_*</code></td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Schema change handling with <code>cdc.ddl_history</code></td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Compatible with legacy on-prem applications</td>
<td>✅</td>
<td>🔲 <em>(Not applicable)</em></td>
</tr>
<tr>
<td>Integrated with Azure Data Factory &amp; Synapse</td>
<td>🔲 <em>(Requires setup)</em></td>
<td>✅</td>
</tr>
<tr>
<td>Azure scalability and HA by default</td>
<td>🔲 <em>(Manual setup)</em></td>
<td>✅</td>
</tr>
<tr>
<td>Native support for cloud-first modernization</td>
<td>🔲 <em>(Requires hybrid setup)</em></td>
<td>✅</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p></p><p>🕒 <strong>Retention and Cleanup</strong><br>CDC keeps changes by default for 3 days using a cleanup job that runs nightly. This can be configured to align with your storage, performance, and compliance needs.</p><p>🔄 <strong>Multiple Schema Versions</strong><br>CDC can track schema changes and support <strong>two capture instances</strong> per table, allowing old systems and new systems to run in parallel during transitions.</p><p>⚙️ <strong>Minimal Overhead</strong><br>Since CDC reads from the log, it avoids impacting your day-to-day operations. SQL Server Agent must be enabled to support the capture and cleanup processes.</p><hr><h2 id="better-decisions-without-rebuilding-your-systems">Better Decisions Without Rebuilding Your Systems</h2><p>Rather than replacing your core systems—which can be risky and expensive—CDC enables <strong>incremental modernization</strong>. It works with your existing SQL Server or Azure SQL databases to feed downstream systems such as Power BI, Salesforce, or custom dashboards, <strong>without touching your application code</strong>.</p><h2 id="a-strategic-enabler-for-digital-transformation">A Strategic Enabler for Digital Transformation</h2><p>For business leaders, the real power of CDC lies in its ability to <strong>future-proof your data strategy</strong>. It enables your systems to work together in real time without duplication or disruption. As part of your modernization journey, CDC becomes a <strong>stepping stone to cloud adoption, automation, and real-time business intelligence</strong>.</p><hr><h2 id="ready-to-unlock-the-power-of-change">Ready to Unlock the Power of Change?</h2><p>At <strong>Assemblysoft</strong>, we believe in smart, sustainable modernization. CDC is just one of the many technologies we use to help our clients extract more value from their data, systems, and people.</p><p>🔍 Whether you're planning a move to Azure or improving your on-prem SQL Server environment, we can help implement CDC with confidence, clarity, and measurable results.</p><p>👉 <a rel="noopener">Get in touch with our team today</a> for a free consultation and see how CDC can transform the way your business sees and uses data.</p><hr><!--kg-card-begin: html--><div style="background-color: #1b5e20; border-left: 8px solid #66bb6a; padding: 2.2rem; margin: 2.5rem 0; border-radius: 12px; font-family: 'Segoe UI', sans-serif; color: #ffffff;">
  <h3 style="color: #a5d6a7; margin-top: 0; font-size: 2.25rem;">By introducing CDC:</h3>
  <ul style="line-height: 2.2; padding-left: 1.8rem; margin: 1.5rem 0; font-size: 1.65rem;">
    <li><strong>Your legacy systems</strong> gain new life, becoming <em>real-time data sources</em></li>
    <li><strong>Your data</strong> becomes an <em>asset</em>, always fresh, always available</li>
    <li><strong>Your decisions</strong> become <em>proactive, not reactive</em></li>
  </ul>
  <p style="margin-top: 2rem; font-size: 1.85rem; font-weight: 700; color: #ffffff;">
    And the best part? You don’t need to rebuild your architecture to get started.
  </p>
</div>
<!--kg-card-end: html--><p></p><h2 id="conclusion">Conclusion</h2><p>In today's competitive landscape, <strong>access to up-to-date information</strong> is no longer a luxury—it's a necessity. Business owners often face delays in getting accurate data into reporting tools, CRMs, or compliance dashboards. <strong>Change Data Capture (CDC)</strong> solves this by ensuring that <strong>data changes are automatically tracked and delivered in near real-time</strong>, giving decision-makers a live view of the business.</p><p>Whether you're running operations on-premises or in the cloud with Azure, CDC enables <strong>fast, accurate data movement between systems</strong> without disrupting day-to-day activities. That means <strong>more timely reporting, better forecasting, and faster reactions</strong> to emerging trends or risks.</p><hr><p></p><h2 id="related-links-for-further-reading">Related Links for Further Reading</h2><p><a href="https://assemblysoft.com/services/custom-software-development">Assemblysoft Custom Software Development</a></p><p><a href="https://assemblysoft.com/technologies/fullstack-blazor-development">Fullstack Blazor Development</a></p><p><a href="https://assemblysoft.com/">Assemblysoft Home</a></p><p><a href="https://assemblysoft.com/technologies/microsoft-azure-development">API &amp; Integration Services</a></p>]]></content:encoded></item><item><title><![CDATA[Blazor Auto Render Mode in the Real World]]></title><description><![CDATA[Learn how to design Blazor components that run efficiently across server and WebAssembly using Auto render mode, with proven real-world patterns from Assemblysoft]]></description><link>https://services.assemblysoft.com/blazor-render-modes/</link><guid isPermaLink="false">6953f2df5001260bd41231d6</guid><category><![CDATA[Blazor]]></category><category><![CDATA[.NET Development]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Tue, 15 Jul 2025 15:43:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1493246507139-91e8fad9978e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEyfHxiZWF1dGlmdWx8ZW58MHx8fHwxNzY3MDI3NjYxfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1493246507139-91e8fad9978e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEyfHxiZWF1dGlmdWx8ZW58MHx8fHwxNzY3MDI3NjYxfDA&ixlib=rb-4.1.0&q=80&w=2000" alt="Blazor Auto Render Mode in the Real World"><p>Proven architecture patterns for performance, scalability, and great UX when your components can run on the server <em>and</em> in the browser. </p><h2 id="introduction">Introduction</h2><p>.NET 8 introduced one of the most important evolutions in Blazor: <strong>multiple render modes per component</strong>. It’s now possible to combine static server-side rendering (SSR), Blazor Server, and Blazor WebAssembly (WASM) within a single application.</p><p>Used well, this unlocks faster first paint, progressive enhancement, and resilient user experiences. Used poorly, it introduces duplicated data loads, unnecessary HTTP hops, and subtle UX inconsistencies.<strong>Assemblysoft perspective:</strong> we apply mixed render modes in production systems (dashboards, workflows, field-first experiences, and SaaS modules). The consistent differentiator is <em>intentional data-flow architecture</em> and keeping interactive components lean. Explore our work and approach at <a href="https://assemblysoft.com/blazor-development">Assemblysoft Blazor Development</a> and <a href="https://assemblysoft.com/software-modernisation">Software Modernisation</a>.</p><h2 id="render-modes-in-net-8-and-beyond">Render Modes in .NET 8 and Beyond</h2><p>Blazor now supports running components in several distinct execution models:</p><ul><li><strong>Static Server-Side Rendering (SSR)</strong></li><li><strong>Blazor Server</strong></li><li><strong>Blazor WebAssembly (WASM)</strong></li><li><strong>InteractiveAuto</strong> (WASM if available, otherwise Server)</li></ul><p>In practice, this enables the best of both worlds: fast initial rendering from the server, and a rich interactive experience that can shift to WASM when available.</p><h2 id="what-interactiveauto-really-does">What InteractiveAuto Really Does</h2><p>When you mark a component with <code>@rendermode InteractiveAuto</code>, Blazor can render it multiple times across environments. The typical lifecycle looks like this:Syntax error in textmermaid version 10.9.5</p><p>Key implication: component initialisation can run more than once. Data fetching must be designed to avoid duplication and flicker.</p><pre><code>@rendermode InteractiveAuto</code></pre><h2 id="a-business-oriented-example-loading-a-dashboard-summary">A Business-Oriented Example: Loading a Dashboard Summary</h2><p>Rather than a weather demo, here’s a realistic line-of-business scenario: loading a <strong>Dashboard Summary</strong> used to power KPI cards.</p><pre><code>@page "/dashboard"
@rendermode InteractiveAuto
@inject HttpClient HttpClient

&lt;h1&gt;Business Dashboard&lt;/h1&gt;

@if (_dashboardSummary == null)
{
    &lt;p&gt;&lt;em&gt;Loading summary…&lt;/em&gt;&lt;/p&gt;
}
else
{
    &lt;DashboardSummaryView Model="_dashboardSummary" /&gt;
}

@code {
    private DashboardSummaryModel? _dashboardSummary;

    protected override async Task OnInitializedAsync()
    {
        _dashboardSummary = await HttpClient
            .GetFromJsonAsync&lt;DashboardSummaryModel&gt;("api/dashboard/summary");
    }
}</code></pre><h3 id="two-problems-show-up-quickly-in-production">Two problems show up quickly in production</h3><ul><li><strong>Problem 1: Duplicate data fetching.</strong> Prerender fetch + interactive fetch = double load and possible KPI flicker.</li><li><strong>Problem 2: Server-to-server HTTP calls.</strong> When running on the server, the component still calls your own API via HTTP.</li></ul><p>In real delivery work, these issues disproportionately affect the “first impression” screens—dashboards, landing pages, project overviews—where UX matters most. For examples of outcomes achieved in production systems, see <a href="https://assemblysoft.com/case-studies">Assemblysoft case studies</a>.</p><h2 id="best-practice-1-persist-state-across-render-modes">Best Practice 1: Persist State Across Render Modes</h2><p>Use <code>PersistentComponentState</code> to prevent duplicate loads by persisting data fetched during prerender and restoring it during interactive startup.</p><pre><code>@inject PersistentComponentState AppState
@implements IDisposable

@code {
    private DashboardSummaryModel? _dashboardSummary;
    private PersistingComponentStateSubscription _persistSubscription;

    protected override async Task OnInitializedAsync()
    {
        _persistSubscription = AppState.RegisterOnPersisting(PersistDashboardSummary);

        var restored = AppState.TryTakeFromJson&lt;DashboardSummaryModel&gt;(
            "dashboard-summary", out var cachedSummary);

        _dashboardSummary = restored
            ? cachedSummary
            : await HttpClient.GetFromJsonAsync&lt;DashboardSummaryModel&gt;("api/dashboard/summary");
    }

    private Task PersistDashboardSummary()
    {
        AppState.PersistAsJson("dashboard-summary", _dashboardSummary);
        return Task.CompletedTask;
    }

    public void Dispose()
    {
        _persistSubscription.Dispose();
    }
}</code></pre><p>Client (Interactive)PersistentComponentStateServer (Prerender)Client (Interactive)PersistentComponentStateServer (Prerender)Load DashboardSummaryModelPersist "dashboard-summary"Restore "dashboard-summary"Render without refetch</p><p>Outcome: one fetch, stable KPI values, and reduced flicker. This is a common baseline optimisation in Assemblysoft dashboard builds.</p><h2 id="best-practice-2-eliminate-server-side-http-with-a-business-abstraction">Best Practice 2: Eliminate Server-Side HTTP with a Business Abstraction</h2><p>Avoid server-to-server HTTP by abstracting the data load behind an interface. Provide two implementations: a direct server implementation and an HTTP-based client implementation.</p><h3 id="shared-contract">Shared contract</h3><pre><code>public interface IDashboardSummaryService
{
    Task&lt;DashboardSummaryModel?&gt; LoadAsync();
}</code></pre><h3 id="client-implementation-http-">Client implementation (HTTP)</h3><pre><code>public class ClientDashboardSummaryService : IDashboardSummaryService
{
    private readonly HttpClient _http;

    public ClientDashboardSummaryService(HttpClient http)
    {
        _http = http;
    }

    public Task&lt;DashboardSummaryModel?&gt; LoadAsync()
        =&gt; _http.GetFromJsonAsync&lt;DashboardSummaryModel&gt;("api/dashboard/summary");
}</code></pre><h3 id="server-implementation-direct-domain-data-access-">Server implementation (direct domain/data access)</h3><pre><code>public class ServerDashboardSummaryService : IDashboardSummaryService
{
    public Task&lt;DashboardSummaryModel?&gt; LoadAsync()
    {
        // Direct database / domain access (EF Core, repositories, etc.)
        return Task.FromResult(new DashboardSummaryModel());
    }
}</code></pre><p>Blazor ComponentIDashboardSummaryServiceClientDashboardSummaryService<br>HTTPServerDashboardSummaryService<br>Direct AccessAPI EndpointDatabase</p><p>This pattern improves performance and observability by removing unnecessary internal HTTP hops—especially important in high-traffic dashboards.</p><p>Assemblysoft commonly applies this approach when building modern line-of-business systems and multi-tenant SaaS modules. Learn more at <a href="https://assemblysoft.com/software-development">Assemblysoft Software Development</a>.</p><h2 id="a-simpler-often-better-pattern-server-host-interactive-child">A Simpler (Often Better) Pattern: Server Host + Interactive Child</h2><p>In many real-world screens, the cleanest approach is to separate responsibilities:</p><ul><li><strong>Host component</strong>: server-only, fetches data directly</li><li><strong>Child component</strong>: interactive, receives data via parameters and focuses on UX</li></ul><h3 id="server-only-host-component">Server-only host component</h3><pre><code>@page "/dashboard"
@inject IDashboardSummaryService DashboardSummaryService

&lt;DashboardSummaryPanel
    Model="_dashboardSummary"
    @rendermode="InteractiveAuto" /&gt;

@code {
    private DashboardSummaryModel? _dashboardSummary;

    protected override async Task OnInitializedAsync()
    {
        _dashboardSummary = await DashboardSummaryService.LoadAsync();
    }
}</code></pre><h3 id="interactive-child-component-no-fetching-no-persistence-plumbing-">Interactive child component (no fetching, no persistence plumbing)</h3><pre><code>@code {
    [Parameter]
    public DashboardSummaryModel? Model { get; set; }
}</code></pre><p>Syntax error in textmermaid version 10.9.5<strong>Why Assemblysoft recommends this pattern:</strong> fewer moving parts, clearer separation of concerns, easier testing, and excellent UX. This is particularly effective for dashboards, planners, and workflow screens that need interactivity without re-implementing data access logic in every render mode.</p><h2 id="how-data-crosses-render-mode-boundaries">How Data Crosses Render Mode Boundaries</h2><p>When a server-rendered host passes parameters to an Auto-rendered child, Blazor serialises parameters, embeds them into the HTML payload, and rehydrates them on the client during interactive startup. You design for this behaviour by keeping the child component parameter-driven.</p><p>Practical takeaway: interactive components should generally avoid owning data-fetch responsibilities unless there is a strong reason.</p><h2 id="when-interactiveauto-delivers-the-most-value">When InteractiveAuto Delivers the Most Value</h2><p>Based on delivery experience, InteractiveAuto is most valuable when:</p><ul><li>Users perform meaningful interaction (forms, planners, filters, editable grids)</li><li>You want WASM performance benefits when possible, but need reliable fallback</li><li>First paint and perceived responsiveness matter (dashboard/landing screens)</li><li>Connectivity is variable and resilience is required</li></ul><p>For purely read-only content, static SSR is often sufficient—and may reduce operational complexity.</p><h2 id="why-assemblysoft-takes-a-deliberate-render-strategy">Why Assemblysoft Takes a Deliberate Render Strategy</h2><p>Blazor render modes are an architectural tool, not a novelty feature. Assemblysoft designs render strategies into:</p><ul><li>Legacy system modernisation programmes</li><li>Multi-tenant SaaS platforms</li><li>Field-first applications and offline-capable modules</li><li>High-performance executive dashboards</li></ul><p>If you are planning a Blazor build or modernisation and want to avoid rework while delivering a great UX, you can speak with Assemblysoft here: <a href="https://assemblysoft.com/contact">https://assemblysoft.com/contact</a>.</p><h2 id="final-summary">Final Summary</h2><p>Blazor Auto render mode enables fast, resilient, user-friendly applications—when paired with the right architecture.</p><ul><li>Use <strong>PersistentComponentState</strong> to prevent duplicate loads and avoid KPI flicker</li><li>Abstract business logic behind interfaces to support both server-direct and client-HTTP execution</li><li>Avoid server-side HTTP where possible to reduce latency and tracing noise</li><li>Prefer the <strong>server host + interactive child</strong> pattern for clarity and maintainability</li></ul><p>These patterns are proven in production and are designed to keep UX smooth while controlling operational complexity.</p>]]></content:encoded></item><item><title><![CDATA[Deploying Entity Framework Migrations in Production]]></title><description><![CDATA[Confidently deploy EF Core migrations to production with strategies like SQL scripts, bundles, and CI/CD—all backed by Assemblysoft’s .NET expertise.]]></description><link>https://services.assemblysoft.com/applying-migrations/</link><guid isPermaLink="false">68641019890b6a195872c09c</guid><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Tue, 01 Jul 2025 17:00:09 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1750711642160-efc6e052751a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8YWxsfDI4fHx8fHx8fHwxNzUxMzg5MzIwfA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1750711642160-efc6e052751a?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8YWxsfDI4fHx8fHx8fHwxNzUxMzg5MzIwfA&ixlib=rb-4.1.0&q=80&w=2000" alt="Deploying Entity Framework Migrations in Production"><p>Deploying Entity Framework Migrations in Production: Best Practices for Reliable .NET Apps</p><hr><p>Deploying database schema changes in production environments can be risky without the right strategy. Entity Framework Core (EF Core) provides several ways to apply migrations, but not all are production-safe. At Assemblysoft, we specialize in .NET modernization and help businesses implement reliable deployment pipelines for EF Core using proven practices.</p><p>In this article, we'll explore the various strategies for applying migrations to production databases, when to use each, and how Assemblysoft can support your team in adopting these best practices.</p><hr><p>Why Migrations Matter</p><p>EF Core migrations allow developers to evolve their database schema over time in a controlled and repeatable manner. However, in production environments, this needs to be handled carefully to avoid:</p><p>Data loss</p><p>Downtime</p><p>Schema inconsistencies across environments</p><p>That’s where the right deployment approach becomes critical.</p><hr><ol><li>SQL Scripts – The Gold Standard</li></ol><p>SQL script generation is the recommended method for applying migrations in production:</p><p>Benefits:</p><p>Reviewable: Scripts can be manually reviewed and approved before execution.</p><p>Auditable: Supports change tracking and versioning.</p><p>Safe: Reduces the risk of runtime surprises.</p><p>Customizable: Tailor queries for environment-specific considerations.</p><p>Automation Ready: Integrate with CI/CD tools like GitHub Actions or Azure DevOps.</p><p>Example:</p><p>dotnet ef migrations script -o migrate.sql</p><p>You can also generate idempotent scripts for multi-tenant or distributed environments:</p><p>dotnet ef migrations script --idempotent -o migrate-safe.sql</p><blockquote>✅ Learn how Assemblysoft helps automate SQL-based deployments</blockquote><hr><ol><li>Migration Bundles – Modern &amp; Flexible</li></ol><p>EF Core 6+ introduced migration bundles, which compile your migrations into a standalone executable. Perfect for:</p><p>Deployment teams without .NET SDK installed</p><p>Environments with limited access</p><p>CI/CD pipeline integration</p><p>Benefits:</p><p>Self-contained: No EF tooling or SDK required</p><p>Environment-independent: Works across dev, test, and production</p><p>Scriptless: Ideal for infrastructure teams who prefer binary tools</p><p>Example:</p><p>dotnet ef migrations bundle --self-contained --target-runtime win-x64<br>.\efbundle.exe --connection "YourConnectionString"</p><blockquote>🔧 Assemblysoft can help integrate this into your CI/CD process using GitHub Actions and deployment stages.</blockquote><hr><ol><li>Command-line Tools – Good for Dev, Not Prod</li></ol><p>Tools like Update-Database or dotnet ef database update work well during development but are not suited for production:</p><p>Risks:</p><p>Immediate schema changes with no review</p><p>Requires project source code and SDK on the production server</p><p>Limited rollback capability</p><p>We recommend reserving these tools for local and QA environments.</p><hr><ol><li>Runtime Migrations (MigrateAsync()) – Use Caution</li></ol><p>Applying migrations programmatically at app startup using context.Database.MigrateAsync() can be tempting—but it’s rarely safe in production:</p><p>Why It’s Risky:</p><p>Requires elevated DB permissions</p><p>No rollback safety</p><p>Potential concurrency issues in load-balanced environments</p><p>using (var scope = host.Services.CreateScope())<br>{<br>var db = scope.ServiceProvider.GetRequiredService();<br>await db.Database.MigrateAsync();<br>}</p><blockquote>🚫 Avoid using this in production pipelines.</blockquote><hr><ol><li>🧪 Development Mode Checks – The Best of Both Worlds</li></ol><p>During development, it’s beneficial to auto-apply migrations to streamline testing and schema evolution. However, this should be gated by a check to ensure the app only does this in safe environments.</p><p>if (env.IsDevelopment())<br>{<br>using var scope = host.Services.CreateScope();<br>var db = scope.ServiceProvider.GetRequiredService();<br>await db.Database.MigrateAsync();<br>}</p><p>This allows teams to enjoy seamless developer experience while maintaining strict controls in production. Combined with Git-based migration reviews, this pattern offers a healthy balance between agility and safety.</p><blockquote>⚙️ Assemblysoft helps implement dev-safe patterns like this across Blazor and .NET solutions.</blockquote><hr><p>Assemblysoft: Your .NET Migration Experts</p><p>At Assemblysoft, we help teams implement secure, scalable, and automated database migration workflows using:</p><p>CI/CD pipelines with GitHub Actions or Azure DevOps</p><p>SQL script generation with review gates</p><p>Self-contained bundles for repeatable execution</p><p>Environment-based rollout strategies</p><p>Dev-mode safety checks for faster iteration</p><p>Our UK-based team of experienced developers and architects work closely with you to ensure your .NET applications evolve safely—without disrupting business continuity.</p><p>📌 Explore our Fullstack Blazor Development or Custom Software Development Services to see how we can help modernize your stack.</p><hr><p>Conclusion</p><p>EF Core migrations are a powerful way to manage evolving database schemas—but only if used correctly. By adopting SQL scripts or bundles, adding dev-mode checks, and avoiding runtime risks in production, your team can ensure seamless, zero-downtime updates.</p><p>When you're ready to take your .NET application lifecycle to the next level, Assemblysoft is here to help.</p>]]></content:encoded></item><item><title><![CDATA[Natural Language + Blazor: Building Smarter UIs with AI]]></title><description><![CDATA[Discover how Assemblysoft harnesses AI and Blazor to enable natural language control of complex user interfaces—without code.]]></description><link>https://services.assemblysoft.com/building-smarter-ui-with-ai-and-blazor/</link><guid isPermaLink="false">687a7a157c99e9145884b13f</guid><category><![CDATA[Blazor]]></category><category><![CDATA[Entrepreneurs]]></category><category><![CDATA[Business-Services]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Sun, 15 Jun 2025 16:56:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1634261324971-1b0ddbad73de?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDY2fHxleWUlMjBjYXRjaGluZ3xlbnwwfHx8fDE3NTI4NTczMjV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1634261324971-1b0ddbad73de?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDY2fHxleWUlMjBjYXRjaGluZ3xlbnwwfHx8fDE3NTI4NTczMjV8MA&ixlib=rb-4.1.0&q=80&w=2000" alt="Natural Language + Blazor: Building Smarter UIs with AI"><p></p><h2 id="the-future-of-user-interfaces-starts-now">The Future of User Interfaces Starts Now</h2><p>At Assemblysoft, we’ve always been passionate about combining innovation with practicality. Today, we’re stepping beyond traditional chatbots and introducing a game-changing concept: enabling users to interact with Blazor applications using <strong>natural language</strong>—and even their <strong>voice</strong>—to manipulate user interface components in real-time.</p><p>But before you can envision this in action, you need to understand what makes large language models (LLMs) truly powerful—and why we’ve integrated them into our Blazor and AI solutions.</p><h2 id="what-this-means-for-business-owners">What This Means for Business Owners</h2><p>You don’t need to be a developer to appreciate the impact of this technology. Here’s what natural language interfaces mean for your business:</p><h3 id="1-faster-user-adoption">1. <strong>Faster User Adoption</strong></h3><p>Employees can interact with your systems using plain language—whether typed or spoken. This reduces training time and speeds up onboarding, particularly for users less familiar with software tools.</p><h3 id="2-improved-productivity">2. <strong>Improved Productivity</strong></h3><p>By removing the need to click through multiple menus or memorize complex workflows, users get straight to what they need. This saves time, reduces errors, and helps teams focus on outcomes rather than interfaces.</p><h3 id="3-accessibility-by-default">3. <strong>Accessibility by Default</strong></h3><p>Voice input and natural language commands allow more people to engage with your systems—especially those who rely on assistive technology. It’s a modern, inclusive approach that aligns with digital accessibility standards.</p><h3 id="4-global-ready">4. <strong>Global-Ready</strong></h3><p>Because AI understands multiple languages, your platform becomes instantly adaptable to users across different regions and backgrounds. This supports international teams and future-proofs your solution for global expansion.</p><h3 id="5-smarter-customer-service">5. <strong>Smarter Customer Service</strong></h3><p>Imagine your internal support tools or CRM being operated by voice or simple instructions—no menus, no complexity. Customer service teams get faster access to data, leading to quicker resolution times and better experiences.</p><h3 id="6-ai-without-the-hype">6. <strong>AI Without the Hype</strong></h3><p>Assemblysoft takes proven Microsoft-backed technologies and implements them into your business applications responsibly. We don’t promise magic—we deliver results through expert engineering and real-world testing.</p><hr><h2 id="beyond-chat-what-can-a-large-language-model-really-do">Beyond Chat: What Can a Large Language Model Really Do?</h2><p>Chatbots are often seen as the pinnacle of LLM capabilities—but that’s just scratching the surface. At Assemblysoft, we leverage LLMs not just for conversation, but to <strong>translate natural language into structured instructions</strong>, such as generating or modifying code, JSON objects, or UI states.</p><p>These models are trained on billions of tokens of text, enabling them to understand context, semantics, and even intent. Whether it's translating English to German or reconfiguring a UI component with a simple spoken instruction, LLMs can reason across language and structure.</p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/07/andra-c-taylor-jr-IC8zpKz6qF0-unsplash.jpg" class="kg-image" alt="Natural Language + Blazor: Building Smarter UIs with AI" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/07/andra-c-taylor-jr-IC8zpKz6qF0-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/07/andra-c-taylor-jr-IC8zpKz6qF0-unsplash.jpg 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/07/andra-c-taylor-jr-IC8zpKz6qF0-unsplash.jpg 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/07/andra-c-taylor-jr-IC8zpKz6qF0-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="from-text-to-ui-real-time-state-manipulation">From Text to UI: Real-Time State Manipulation</h2><p>In a Blazor application, many components expose a state object—typically serialized as JSON. Instead of requiring users to navigate complex menus or press multiple buttons, we allow them to say something like:</p><blockquote>“Show me customers from page five.”</blockquote><p>The LLM translates this into a structured JSON response:</p><p>jsonCopyEdit<code>{  "page": 5}</code></p><p>Our application then applies this JSON to update the UI—no clicks required.</p><p>This isn’t just a gimmick. It's a profound shift in how users interact with data-driven components.</p><hr><h2 id="natural-language-interfaces-in-blazor">Natural Language Interfaces in Blazor</h2><p>With Blazor, we can harness these AI-powered interactions directly in a browser-based .NET app. Here’s what we do at Assemblysoft to make this seamless:</p><p>Embed an <strong>AI-powered service</strong> using Microsoft.Extensions.AI</p><p>Feed user input (voice or text) into the AI pipeline</p><p>Translate that input into structured grid state updates</p><p>Apply the updated state via Blazor’s component APIs</p><p>We've implemented this with full support for paging, filtering, sorting, and grouping—turning a data grid into an AI-responsive interface that adapts to how the user thinks, not how they click.</p><hr><h2 id="speech-to-ui-accessible-inclusive-and-smarter">Speech-to-UI: Accessible, Inclusive, and Smarter</h2><p>To make things even more intuitive, we’ve added <strong>speech-to-text</strong> capabilities using browser-native APIs and open-source tools like Blazorators. This allows users to speak commands like:</p><blockquote>“Sort by city in ascending order.”</blockquote><p>The spoken words are transcribed, sent to the AI, and applied to the UI. No mouse, no keyboard—just voice.</p><p>This also provides immense accessibility benefits, making software more usable for those who rely on assistive technologies or have difficulty navigating traditional UI paradigms.</p><hr><h2 id="secure-scalable-and-future-proof">Secure, Scalable, and Future-Proof</h2><p>Everything we’ve built integrates securely with Azure OpenAI through Microsoft's Extensions.AI library. This gives our clients:</p><p>A plug-and-play AI abstraction for LLMs</p><p>Full compatibility with .NET 10 and beyond</p><p>Easy migration paths to multi-modal models in future updates</p><p>As .NET keeps evolving, we’re already preparing our solutions to support multi-lingual speech input natively—no extra infrastructure needed.</p><hr><h2 id="why-choose-assemblysoft">Why Choose Assemblysoft?</h2><p>At Assemblysoft, our UK-based development team excels in bringing together cutting-edge technology and real business outcomes. We help modernize .NET applications, build secure APIs, and create intelligent, intuitive frontends using Blazor—all while ensuring your investment is future-ready.</p><p>Whether you’re:</p><blockquote>Looking to integrate AI into your UI,</blockquote><blockquote>Want to simplify complex interactions,</blockquote><p>Or aiming to enhance accessibility across your software stack...</p><p>We can help you lead the way.</p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/07/scott-longerbeam-9yGNdrx7dBo-unsplash.jpg" class="kg-image" alt="Natural Language + Blazor: Building Smarter UIs with AI" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/07/scott-longerbeam-9yGNdrx7dBo-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/07/scott-longerbeam-9yGNdrx7dBo-unsplash.jpg 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/07/scott-longerbeam-9yGNdrx7dBo-unsplash.jpg 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/07/scott-longerbeam-9yGNdrx7dBo-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="let-s-talk-about-your-next-ai-driven-net-project">Let’s Talk About Your Next AI-Driven .NET Project</h2><p>Ready to explore how natural language and AI can elevate your applications?</p><p>📞 <a href="https://assemblysoft.com/" rel="noopener">Contact Assemblysoft</a><br>💻 Learn more about <a href="https://assemblysoft.com/case-studies/custom-medical-software-with-dotnet-maui-blazor-hybrid">Fullstack Blazor Development</a><br>🚀 Explore our <a href="https://assemblysoft.com/technologies/net-maui-blazor-hybrid-development">Custom Software Development Services</a><br>📚 Dive into the future with <a href="http://microsoft.extensions.ai/" rel="noopener">Microsoft.Extensions.AI</a></p>]]></content:encoded></item><item><title><![CDATA[Build Better APIs: Design-First Web API Best Practices from Assemblysoft]]></title><description><![CDATA[Learn how to design secure, scalable Web APIs using Assemblysoft’s proven best practices and expert guidance.]]></description><link>https://services.assemblysoft.com/build-better-apis-design-first-web-api-best-practices-from-assemblysoft/</link><guid isPermaLink="false">68469f4dd9fbcd02783a9b7a</guid><category><![CDATA[API Development]]></category><category><![CDATA[Business-Services]]></category><dc:creator><![CDATA[Doerte]]></dc:creator><pubDate>Mon, 09 Jun 2025 08:54:20 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1734607947797-2a61b996fd5d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8YWxsfDl8fHx8fHx8fDE3NDk0NTgyNTZ8&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1734607947797-2a61b996fd5d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8YWxsfDl8fHx8fHx8fDE3NDk0NTgyNTZ8&ixlib=rb-4.1.0&q=80&w=2000" alt="Build Better APIs: Design-First Web API Best Practices from Assemblysoft"><p></p><h2 id="introduction">Introduction</h2><p>In today's digital landscape, businesses are driven by APIs. Whether you're building a public-facing SaaS platform or modernizing legacy systems, your API is the contract between your services and the outside world. At Assemblysoft, we help organizations of all sizes design, implement, and operate Web APIs that are secure, scalable, and built to last.</p><p>Through our <a rel="noopener">custom software development services</a>, we partner with you to deliver APIs that meet your unique needs—adhering to RESTful principles, enabling platform independence, and ensuring long-term maintainability. This article explores our API-first approach, featuring best practices, real-world tooling, and how our UK-based development team can help you succeed.</p><h2 id="why-design-first-matters">Why Design-First Matters</h2><p>We believe in treating your API like a product. That means following a <strong>design-first approach</strong> using OpenAPI specifications. Before a single line of backend code is written, our developers and stakeholders agree on the API contract. This reduces friction, supports parallel development, and enables a better developer experience for consumers.</p><p>At Assemblysoft, every API we build starts with:</p><p>OpenAPI-driven design</p><p>API contract validation in CI/CD pipelines</p><p>Mocking with tools like Prism or Stoplight</p><p>Clear versioning and lifecycle documentation</p><p>Seamless integration with Azure API Management (APIM)</p><p>Learn more about our <a rel="noopener">fullstack Blazor development and API integration expertise</a>.</p><hr><h2 id="the-15-golden-rules-of-web-api-operations">The 15 Golden Rules of Web API Operations</h2><p>Assemblysoft’s API projects follow a battle-tested playbook. Here are just a few highlights:</p><p><strong>Treat API Specs as Code</strong> – All contracts live in Git, reviewed via pull requests.</p><p><strong>Validate OpenAPI Automatically</strong> – Catch errors early with CI linting tools like Spectral.</p><p><strong>Automate Everything</strong> – From deployment to policy rollout via GitHub Actions or Azure DevOps.</p><p><strong>Mock Early, Integrate Late</strong> – Empower front-end teams with mock servers before backends are ready.</p><p><strong>Publish Consistently</strong> – We automate API documentation publication using SwaggerHub or ReDoc.</p><p><strong>Monitor Usage and Performance</strong> – Observability is built-in using Azure Monitor or OpenTelemetry.</p><p><strong>Scan for Vulnerabilities</strong> – Secure your APIs with tools like OWASP ZAP or Snyk during every build.</p><p><strong>Canary &amp; Blue/Green Releases</strong> – Deploy with confidence and roll back instantly if needed.</p><p>We don’t just build APIs—we help govern them through metadata standards, developer portals, and consumer feedback loops.</p><hr><h2 id="restful-design-done-right">RESTful Design Done Right</h2><p>Following industry standards and the <strong>Richardson Maturity Model</strong>, we target Level 3 maturity where appropriate. Our approach includes:</p><p>Clean, consistent URI design (e.g., <code>/customers/123/orders</code>)</p><p>Proper HTTP verb usage (GET, POST, PUT, PATCH, DELETE)</p><p>Support for content negotiation (JSON, XML)</p><p>Pagination, filtering, sorting, and projection query support</p><p>Asynchronous operation handling with polling and status endpoints</p><p>Versioning via URI, headers, or media types</p><p>Multitenancy using subdomains, headers, or claims</p><p>We also support <strong>HATEOAS</strong> where applicable, helping clients understand the "what's next" of your API.</p><hr><h2 id="tools-we-use-to-power-your-apis">Tools We Use to Power Your APIs</h2><p>Assemblysoft leverages industry-leading tools to streamline API development and testing:</p><p>🛠️ <strong>Design</strong>: Swagger Editor, Stoplight Studio, Postman API Builder</p><p>🔐 <strong>Security</strong>: Azure API Management, Azure Key Vault, OAuth2, IdentityServer</p><p>🔬 <strong>Testing</strong>: Postman, Dredd, FluentAssertions, Playwright</p><p>🌍 <strong>.NET Integration</strong>: Swashbuckle, NSwag, JWT middleware, OpenTelemetry</p><p>We don’t just recommend tools—we use them every day to build and maintain robust APIs for our clients.</p><hr><h2 id="your-api-built-to-last">Your API, Built to Last</h2><p>Working with Assemblysoft means more than just code delivery. We ensure:</p><p>Secure-by-default APIs with OAuth2, HTTPS, and token validation</p><p>Documentation that is versioned, published, and consumer-friendly</p><p>CI/CD pipelines that test, validate, and deploy across environments</p><p>Observability through logs, tracing, and health endpoints</p><p>Lifecycle governance for versioning, deprecation, and retirement</p><p>Check out how our clients are succeeding with modern, maintainable APIs by visiting <a href="https://assemblysoft.com/" rel="noopener">assemblysoft.com</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://services.assemblysoft.com/content/images/2025/06/vahid-asadi-gkBaRUDIsl4-unsplash.jpg" class="kg-image" alt="Build Better APIs: Design-First Web API Best Practices from Assemblysoft" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/06/vahid-asadi-gkBaRUDIsl4-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/2025/06/vahid-asadi-gkBaRUDIsl4-unsplash.jpg 640w"><figcaption>Assemblysoft can ensure you reach your goals</figcaption></figure><p></p><hr><h2 id="ready-to-build-your-api">Ready to Build Your API?</h2><p>Whether you're launching a new product or modernizing a monolith, Assemblysoft brings deep expertise in Web API design and delivery. Our UK-based team is ready to guide your project from concept to production with proven best practices and real-world results.</p><p>Let us help you design APIs that developers love and businesses can rely on.</p><p><a href="https://assemblysoft.com/" rel="noopener">Contact Assemblysoft today</a> to start your API journey with confidence.</p>]]></content:encoded></item><item><title><![CDATA[Transforming Legacy Applications with Blazor - A Smarter Way Forward]]></title><description><![CDATA[Modernize legacy systems with Blazor and Assemblysoft's expertise in UI, cloud, and secure architecture using leading component libraries.]]></description><link>https://services.assemblysoft.com/transforming-legacy-applications-with-blazor/</link><guid isPermaLink="false">682f7e762d0ddf091446abca</guid><category><![CDATA[API Development]]></category><category><![CDATA[Business-Services]]></category><category><![CDATA[Blazor]]></category><category><![CDATA[Development Partnership Benefits]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Thu, 22 May 2025 19:51:12 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1516281717304-181e285c6e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEzfHxtb2Rlcm5pc2UlMjBhJTIwYnVpbGRpbmd8ZW58MHx8fHwxNzQ3OTQzNzA4fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<h2></h2><img src="https://images.unsplash.com/photo-1516281717304-181e285c6e58?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEzfHxtb2Rlcm5pc2UlMjBhJTIwYnVpbGRpbmd8ZW58MHx8fHwxNzQ3OTQzNzA4fDA&ixlib=rb-4.1.0&q=80&w=2000" alt="Transforming Legacy Applications with Blazor - A Smarter Way Forward"><p>Modernizing legacy applications is more than just a technology upgrade — it's a strategic move to future-proof your business. At<a href="https://assemblysoft.com/"> <strong>Assemblysoft</strong></a>, we’ve helped numerous clients successfully migrate from aging platforms to modern Blazor-based applications, enabling them to streamline workflows, enhance user experiences, and embrace cloud and mobile architectures.</p><p>With our UK-based development team, we deliver solutions that are fast, secure, and scalable — backed by best practices and tailored to your organization’s needs.</p><hr><h2 id="why-blazor"><strong>Why Blazor?</strong></h2><p>Blazor is a modern UI framework built on .NET that allows you to develop rich, interactive web UIs using C#. By eliminating the dependency on JavaScript and enabling full-stack .NET development, Blazor bridges the gap between client and server-side logic, resulting in faster development and easier maintenance.</p><p>At Assemblysoft, we specialize in<a href="https://assemblysoft.com/technologies/fullstack-blazor-development"> <strong>full-stack Blazor development</strong></a> that empowers businesses to leverage both Blazor Server and Blazor WebAssembly. With .NET 8’s support for multiple <strong>render modes</strong>, Blazor now offers unparalleled flexibility for building web applications.</p><hr><h2 id="9-essential-blazor-best-practices"><strong>9 Essential Blazor Best Practices</strong></h2><p>Here are the top strategies we apply at Assemblysoft when building or modernizing apps with Blazor:</p><h3 id="1-understand-the-component-lifecycle"><strong>1. Understand the Component Lifecycle</strong></h3><p>Understanding lifecycle methods like OnInitialized, OnParametersSet, and ShouldRender helps ensure your components behave predictably and efficiently. This knowledge is vital for managing when components render or refresh.</p><h3 id="2-find-the-right-component-size"><strong>2. Find the Right Component Size</strong></h3><p>Start simple. Build your UI logic inside a single page, then break it down into reusable child components as complexity grows. Prioritize <strong>cohesion over file length</strong> to keep your code maintainable.</p><h3 id="3-implement-render-mode-agnostic-components"><strong>3. Implement Render Mode Agnostic Components</strong></h3><p>With .NET 8, you can mix Blazor Server and WebAssembly. Avoid setting render modes in reusable components. Instead, define them at the page or layout level to increase reusability across hosting models.</p><h3 id="4-learn-proper-event-handling"><strong>4. Learn Proper Event Handling</strong></h3><p>Use C# event handlers and ensure you unsubscribe from events like NavigationManager.LocationChanged to avoid memory leaks. For component-to-component communication, leverage EventCallback.</p><h3 id="5-choose-appropriate-state-management"><strong>5. Choose Appropriate State Management</strong></h3><p>From simple parameters to complex state containers like <strong>Fluxor</strong>, your state management strategy should match your application’s complexity. Assemblysoft can help architect scalable patterns for shared state.</p><h3 id="6-polish-code-organization-and-structure"><strong>6. Polish Code Organization and Structure</strong></h3><p>Structure your Blazor solution with meaningful folder layouts and consistent naming conventions. Group related services, models, and components logically to improve discoverability and maintainability.</p><h3 id="7-secure-your-application"><strong>7. Secure Your Application</strong></h3><p>Implement ASP.NET Core Identity for robust authentication and authorization. Use HTTPS, never store raw passwords, and follow <strong>OWASP Top 10</strong> guidelines to protect against common web vulnerabilities.</p><h3 id="8-use-proper-error-handling-and-logging"><strong>8. Use Proper Error Handling and Logging</strong></h3><p>Utilize structured logging with tools like <strong>Serilog</strong> to capture meaningful diagnostic data while excluding sensitive information. Implement global error boundaries to gracefully handle exceptions.</p><h3 id="9-keep-it-simple"><strong>9. Keep It Simple</strong></h3><p>Favor straightforward solutions. For instance, pass data using component parameters before introducing shared services. Simplicity leads to clarity, less maintenance, and fewer bugs.</p><hr><h2 id="component-libraries-we-support"><strong>Component Libraries We Support</strong></h2><p>Assemblysoft offers expert integration with the industry's most powerful Blazor UI libraries, ensuring pixel-perfect, accessible, and performant UIs:</p><h3 id="library-highlights">Library Highlights</h3><p></p><p><strong>Telerik UI for Blazor</strong></p><p>100+ feature-rich components with performance-first architecture and enterprise-grade support.</p><p><strong>MudBlazor</strong></p><p>Lightweight Material Design components with great developer experience.</p><p><strong>Blazorise</strong></p><p>Supports multiple CSS frameworks (Bootstrap, Material, Bulma, etc.).</p><p><strong>Syncfusion</strong></p><p>Over 100 components including advanced data grids and visualizations.</p><p><strong>Radzen</strong></p><p>Enterprise-ready UI with low-code productivity features.</p><p><strong>AntDesign Blazor</strong></p><p>Elegant UI components based on Ant Design.</p><p><strong>MatBlazor</strong></p><p>Simple Material Design UI components.</p><p><strong>Microsoft Fluent UI</strong></p><p>Fluent Design components for accessible and consistent UI.</p><p><strong>Blazored</strong></p><p>A collection of reusable, open-source Blazor components and utilities.</p><p>We help you select the best library based on your design requirements, performance goals, and licensing model.</p><hr><h2 id="why-choose-assemblysoft"><strong>Why Choose Assemblysoft?</strong></h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://services.assemblysoft.com/content/images/2025/05/6.jpg" class="kg-image" alt="Transforming Legacy Applications with Blazor - A Smarter Way Forward" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/05/6.jpg 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/05/6.jpg 1000w, https://services.assemblysoft.com/content/images/2025/05/6.jpg 1080w" sizes="(min-width: 720px) 720px"><figcaption>Carl Randall - Owner / Hands on - Architect / Developer @Assemblysoft</figcaption></figure><ul><li>🧠 <strong>Deep Blazor Expertise</strong>: From Blazor Server to WebAssembly and Hybrid apps, we have hands-on experience across the stack.<br><br></li><li>☁️ <strong>Cloud-Native Architecture</strong>: We design for scalability using Azure services and modern CI/CD pipelines.<br><br></li><li>📱 <strong>Mobile-Ready UI</strong>: We support Blazor Hybrid for native mobile apps alongside responsive web experiences.<br><br></li><li>🔒 <strong>Secure by Design</strong>: Every solution we build adheres to security best practices and compliance expectations.<br><br></li></ul><p>We offer more than just Blazor expertise — we’re a trusted partner for<a href="https://assemblysoft.com/services/custom-software-development"> <strong>custom software development</strong></a>, capable of designing, building, and scaling full platforms from the ground up.</p><hr><p></p><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2025/05/liana-s-ird6OOE2LXI-unsplash.jpg" class="kg-image" alt="Transforming Legacy Applications with Blazor - A Smarter Way Forward" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/05/liana-s-ird6OOE2LXI-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/2025/05/liana-s-ird6OOE2LXI-unsplash.jpg 640w"></figure><h2 id="let-s-modernize-together"><strong>Let’s Modernize Together</strong></h2><p>Legacy applications hold valuable business logic, but their outdated architectures slow progress. At<a href="https://assemblysoft.com/"> <strong>Assemblysoft</strong></a>, we turn that legacy into leverage — enabling your systems to thrive with the latest technology.</p><p><strong>Contact us today</strong> to discuss your modernization needs and learn how our Blazor expertise can help transform your platform into a future-proof solution.</p><p><a href="https://assemblysoft.com/contact">https://assemblysoft.com/contact</a></p>]]></content:encoded></item><item><title><![CDATA[Building the Right Digital Product -  Web, Native, or Both? Here’s What You Need to Know]]></title><description><![CDATA[Explore how web, native, and hybrid Blazor apps support scalable, cost-effective digital products tailored to your business needs.]]></description><link>https://services.assemblysoft.com/building-the-right-digital-product-web-native-or-both/</link><guid isPermaLink="false">680a688516bae515bc265e89</guid><category><![CDATA[Apps & Integrations]]></category><category><![CDATA[Blazor]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Thu, 24 Apr 2025 16:42:03 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1499678329028-101435549a4e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxpdGFseXxlbnwwfHx8fDE3NDU1MTI4NDd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1499678329028-101435549a4e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxpdGFseXxlbnwwfHx8fDE3NDU1MTI4NDd8MA&ixlib=rb-4.0.3&q=80&w=2000" alt="Building the Right Digital Product -  Web, Native, or Both? Here’s What You Need to Know"><p></p><p>In today’s fast-paced digital world, choosing the right technology foundation for your application can be the difference between launching something that works — and launching something that <em>lasts</em>.</p><p>Whether you're building a new platform in healthcare, revolutionizing construction project workflows, enhancing digital learning experiences, or exploring the next frontier in AI, understanding the difference between <strong>web</strong>, <strong>native</strong>, and <strong>hybrid</strong> app development is critical.</p><p>At Assemblysoft, we don’t just deliver code — we become your <strong>technology partner</strong>. With a UK-based team, transparent processes, and a focus on pragmatic results, we help organisations like yours <strong>design, build, and scale</strong> digital solutions with confidence.</p><p>Let’s take a look at your options.</p><hr><h3 id="1-web-application-blazor-webassembly-"><strong>1. Web Application (Blazor WebAssembly)</strong></h3><p><strong>Blazor WebAssembly</strong> enables applications to run in the browser without installation. It's a fantastic choice for:</p><p>Quick, universal access on <strong>PCs, tablets, and mobile devices</strong>.</p><p><strong>Low maintenance</strong> thanks to centralised updates.</p><p>When you don’t immediately need hardware features like offline access or camera input.</p><p>Whether it’s a <strong>construction management portal</strong>, a <strong>secure healthcare dashboard</strong>, or a <strong>learning system for students</strong>, this approach makes it simple for users to get started — no app store needed.</p><p>💡 <strong>Best for: Rapid MVPs, educational tools, healthcare reporting systems, or admin dashboards.</strong></p><hr><h3 id="2-native-app-experience-blazor-hybrid-net-maui-"><strong>2. Native App Experience (Blazor Hybrid + .NET MAUI)</strong></h3><p>Want to access the full power of a device? Native applications built with <strong>Blazor Hybrid and .NET MAUI</strong> can be published to the Apple App Store, Google Play, or Microsoft Store and offer:</p><p><strong>Deep integration with hardware</strong> (biometrics, GPS, camera, secure printing).</p><p><strong>Offline functionality</strong>, critical for field environments or limited connectivity areas.</p><p>A <strong>more immersive user experience</strong>, perfect for secure or data-intensive workflows.</p><p>This is ideal for use cases such as:</p><p><strong>Medical staff</strong> needing secure, on-device access in hospitals or clinics.</p><p><strong>Construction site managers</strong> collecting data and capturing images offline.</p><p><strong>AI applications</strong> leveraging device sensors for real-time input.</p><p>💡 <strong>Best for: Secure field apps, native healthcare tools, AI data collection, or inspection tools.</strong></p><hr><h3 id="3-best-of-both-worlds-web-native-with-shared-code"><strong>3. Best of Both Worlds – Web + Native with Shared Code</strong></h3><p>Why choose one when you can have both?</p><p>By sharing a codebase between a <strong>Blazor Web App</strong> and a <strong>Blazor Hybrid Native App</strong>, you get:</p><p>A <strong>flexible rollout</strong> strategy — start on the web, expand to mobile later.</p><p>A <strong>cost-effective development process</strong>, with fewer redundancies.</p><p>The ability to <strong>future-proof your platform</strong> for scale, compliance, and innovation.</p><p>This model is perfect for businesses looking to start lean, then scale smart — like education providers rolling out digital learning tools, or AI firms prototyping and testing across devices.</p><p>💡 <strong>Best for: Scalable education platforms, healthtech startups, smart AI assistants, or any phased go-to-market plan.</strong></p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://services.assemblysoft.com/content/images/2025/04/hongbin-glhRZYIAKb4-unsplash.jpg" class="kg-image" alt="Building the Right Digital Product -  Web, Native, or Both? Here’s What You Need to Know" srcset="https://services.assemblysoft.com/content/images/size/w600/2025/04/hongbin-glhRZYIAKb4-unsplash.jpg 600w, https://services.assemblysoft.com/content/images/size/w1000/2025/04/hongbin-glhRZYIAKb4-unsplash.jpg 1000w, https://services.assemblysoft.com/content/images/size/w1600/2025/04/hongbin-glhRZYIAKb4-unsplash.jpg 1600w, https://services.assemblysoft.com/content/images/size/w2400/2025/04/hongbin-glhRZYIAKb4-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Assemblysoft look at your specific needs</figcaption></figure><p></p><h3 id="so-what-s-right-for-you"><strong>So… What’s Right for You?</strong></h3><p>That’s where Assemblysoft comes in. We’ll help you navigate the landscape — from planning and design to development and deployment — with <strong>honest advice</strong>, <strong>flexible engagement models</strong>, and a <strong>proven track record</strong> of delivering across industries.</p><p>We’ve worked with clients in the <strong>medical sector</strong>, <strong>construction</strong>, <strong>education</strong>, and even <strong>emerging AI technologies</strong>, crafting tailored solutions that balance innovation with reliability.</p><hr><h3 id="why-assemblysoft"><strong>Why Assemblysoft?</strong></h3><p>✅ <strong>UK-based developers</strong>, making collaboration easy</p><p>✅ <strong>Affordable, transparent pricing</strong></p><p>✅ <strong>Expertise in .NET, Blazor, .NET MAUI, Azure, and AI integrations</strong></p><p>✅ <strong>Pragmatic approach</strong> focused on your business goals</p><p>✅ <strong>Scalable delivery models</strong> to match your project size and speed</p><hr><h3 id="let-s-build-something-that-works-and-grows"><strong>Let’s Build Something That Works — And Grows</strong></h3><p>Whether you're digitising your site workflows, modernising your healthcare tools, or launching an intelligent AI platform — Assemblysoft is ready to support you.</p><p>We don’t just write code. We build platforms that scale, products that solve problems, and partnerships that last.</p><p>📩 <strong><a href="https://www.assemblysoft.com" rel="noopener">Contact us</a></strong> today to schedule a no-obligation discovery call. Let’s bring your ideas to life — together.</p>]]></content:encoded></item><item><title><![CDATA[Unlock the Full Potential of Azure API Management with Assemblysoft]]></title><description><![CDATA[Simplify API development and management with Azure API Management and Assemblysoft’s custom API development expertise.]]></description><link>https://services.assemblysoft.com/unlock-the-full-potential-of-azure-api-management-with-assemblysoft/</link><guid isPermaLink="false">676fd76d65bcd013487389ca</guid><category><![CDATA[API Development]]></category><category><![CDATA[Apps & Integrations]]></category><category><![CDATA[Development Partnership Benefits]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Thu, 19 Dec 2024 11:03:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1708277421002-d82631fd9370?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIyfHxyZWxhdGlvbnNoaXBzfGVufDB8fHx8MTczNTM4Mzc2Nnww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1708277421002-d82631fd9370?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIyfHxyZWxhdGlvbnNoaXBzfGVufDB8fHx8MTczNTM4Mzc2Nnww&ixlib=rb-4.0.3&q=80&w=2000" alt="Unlock the Full Potential of Azure API Management with Assemblysoft"><p>APIs are the engines driving digital transformation, connecting applications, systems, and users across the globe. Fully managing your APIs—from concept, design, and build to deployment—requires an advanced platform like Azure API Management (APIM). It also demands a skilled development partner to help businesses realize its full potential.</p><blockquote>At Assemblysoft, we specialize in <strong>custom API development</strong> and integrations that align with your unique needs. Whether you are just starting your API journey or enhancing an existing APIM solution, our team can simplify, extend, and customize your API Management to deliver business value. With our help, you focus on innovation while we manage the complexity.</blockquote><hr><h4 id="understanding-azure-api-management-apim-">Understanding Azure API Management (APIM)</h4><p>Azure API Management is a versatile, cloud-based platform that simplifies API governance. It bridges backend services with frontend applications, ensuring APIs are secure, efficient, and scalable. </p><figure class="kg-card kg-image-card"><img src="https://learn.microsoft.com/en-us/azure/api-management/media/api-management-key-concepts-experiment/api-management-components.png" class="kg-image" alt="Unlock the Full Potential of Azure API Management with Assemblysoft"></figure><ol><li><strong>API Gateway:</strong> Handles requests, enforces security policies, and routes traffic seamlessly.</li><li><strong>Management Plane:</strong> Offers tools to configure, analyze, and monitor APIs via Azure’s portal, CLI, or SDKs.</li><li><strong>Developer Portal:</strong> A customizable space for developers to explore, test, and subscribe to APIs.</li></ol><blockquote>Azure API Management is a hybrid, multicloud management platform for APIs across all environments. As a platform-as-a-service, API Management supports the complete API lifecycle.</blockquote><hr><h4 id="why-azure-apim">Why Azure APIM?</h4><p>Azure APIM solves challenges faced by both technical and business stakeholders:</p><ul><li><strong>Abstract Legacy Systems:</strong> Transform outdated systems into modern, RESTful APIs.</li><li><strong>Enhance Security:</strong> Protect APIs with Azure Entra ID, API keys, and advanced rate-limiting policies.</li><li><strong>Streamline Multi-Channel Apps:</strong> Support web, mobile, and IoT platforms with reusable APIs.</li><li><strong>Centralize Governance:</strong> Ensure consistent policies, documentation, and analytics across APIs.</li></ul><hr><h4 id="assemblysoft-s-expertise-in-api-development">Assemblysoft’s Expertise in API Development</h4><p>Assemblysoft is a trusted <strong>API development company</strong> that delivers tailored solutions with Azure APIM. We address every API lifecycle challenge, including:</p><ul><li><strong>Custom API Development Services:</strong> Whether you need a new API or enhancements to an existing one, we design APIs tailored to your requirements.</li><li><strong>API-First Approach:</strong> We prioritize robust API design, ensuring seamless integrations from the start.</li><li><strong>Scalability and Monitoring:</strong> Leveraging Azure’s tools, we ensure your APIs remain performant and adaptable.</li><li><strong>Enhanced Security:</strong> From JWT tokens to WAF integration, we safeguard your APIs against threats.</li></ul><p><a href="https://assemblysoft.com/services/api-development">Explore our API development services.</a></p><hr><h4 id="real-world-use-cases">Real-World Use Cases</h4><ol><li><strong>Digital Transformation:</strong> Modernize legacy systems into API-driven platforms.</li><li><strong>API Monetization:</strong> Unlock new revenue streams by offering APIs to partners or customers.</li><li><strong>Improved Compliance:</strong> Utilize role-based access and detailed analytics to meet regulatory standards.</li><li><strong>Streamlined Integration:</strong> Enable seamless B2B data exchanges using Azure APIM.</li></ol><figure class="kg-card kg-image-card"><img src="https://services.assemblysoft.com/content/images/2024/12/apis-connected-experiences.png" class="kg-image" alt="Unlock the Full Potential of Azure API Management with Assemblysoft" srcset="https://services.assemblysoft.com/content/images/size/w600/2024/12/apis-connected-experiences.png 600w, https://services.assemblysoft.com/content/images/size/w1000/2024/12/apis-connected-experiences.png 1000w, https://services.assemblysoft.com/content/images/size/w1600/2024/12/apis-connected-experiences.png 1600w, https://services.assemblysoft.com/content/images/2024/12/apis-connected-experiences.png 1620w" sizes="(min-width: 720px) 720px"></figure><hr><h4 id="implementation-challenges-and-solutions">Implementation Challenges and Solutions</h4><p><strong>Challenge:</strong> Managing and scaling APIs for multiple platforms.<br><strong>Solution:</strong> Assemblysoft ensures scalability with tools like Application Insights and Azure Monitor.</p><p><strong>Challenge:</strong> Balancing security with user experience.<br><strong>Solution:</strong> We implement advanced authentication methods, such as OAuth2 and Azure Entra ID.</p><p><a href="https://www.assemblysoft.com/technologies/dotnet-development">Learn about our .NET expertise in API solutions.</a></p><hr><h4 id="pricing-tiers-and-implementation-considerations">Pricing Tiers and Implementation Considerations</h4><p>Azure APIM offers flexible pricing to suit varied needs:</p><ul><li><strong>Developer Tier:</strong> Best for testing and initial implementation.</li><li><strong>Standard Tier:</strong> Optimized for production environments with moderate traffic.</li><li><strong>Premium Tier:</strong> Ideal for high availability, private networks, and global reach.</li></ul><p>Short-term adoption focuses on publicly accessible APIs, while long-term solutions integrate private endpoints with premium-tier security.</p><p><a href="https://www.assemblysoft.com/services/custom-software-development">Discover how Assemblysoft can customize Azure APIM for you.</a></p><hr><h4 id="faqs">FAQs</h4><p><strong>What is API development?</strong><br>API development refers to creating interfaces that allow software systems to communicate and share data seamlessly.</p><p><strong>What does API mean in software development?</strong><br>API, or Application Programming Interface, defines how different software components interact.</p><p><strong>What is API in web development?</strong><br>APIs enable the exchange of data between frontend and backend systems in web applications.</p><p><strong>What is API-driven development?</strong><br>API-driven development emphasizes building robust APIs to guide application development and integrations.</p><p><strong>What is API-first development?</strong><br>API-first development is a design approach prioritizing APIs as the foundation for all software interactions.</p><p><strong>What is API design and development?</strong><br>It involves planning, creating, and managing APIs to ensure they are efficient, secure, and easy to use.</p><hr><h3 id="next-steps">Next Steps</h3><p>To unlock the full potential of Azure API Management and gain a competitive edge, partner with Assemblysoft. From initial implementation to advanced customizations, we’re here to help.</p><p><a href="https://assemblysoft.com/contact">Contact us to learn more.</a></p>]]></content:encoded></item><item><title><![CDATA[A Pragmatic approach to Modernising legacy applications]]></title><description><![CDATA[Expert Blazor development and .NET modernization services by Assemblysoft. Transform legacy apps and monoliths with bespoke Microsoft technology solutions.]]></description><link>https://services.assemblysoft.com/a-pragmatic-approach-to-modernising-legacy-software-with-assemblysoft/</link><guid isPermaLink="false">676489fcf887211ec0a17bfd</guid><category><![CDATA[Development Partnership Benefits]]></category><category><![CDATA[Small and Medium Sized Businesses]]></category><category><![CDATA[.NET Development]]></category><dc:creator><![CDATA[Carl Randall]]></dc:creator><pubDate>Wed, 11 Dec 2024 08:27:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1732647169576-49abfdef3348?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8YWxsfDJ8fHx8fHx8fDE3MzQ3Njk2OTl8&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1732647169576-49abfdef3348?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8YWxsfDJ8fHx8fHx8fDE3MzQ3Njk2OTl8&ixlib=rb-4.0.3&q=80&w=2000" alt="A Pragmatic approach to Modernising legacy applications"><p>In today’s rapidly evolving tech landscape, businesses must modernize legacy applications, streamline workflows, and leverage cutting-edge tools to remain competitive. Assemblysoft, a leading provider of dedicated, bespoke development teams, specializes in Microsoft technologies, offering tailored solutions for businesses looking to modernize their systems and supercharge their development processes. Whether you’re diving into Blazor development, working with .NET developers, exploring .NET MAUI, or upgrading monolithic systems, Assemblysoft ensures your business thrives in the digital age.<br></p><!--kg-card-begin: markdown--><h1 id="ourmissionistoempowerbusinessesto">Our mission is to empower businesses to</h1>
<ul>
<li>Modernize legacy applications with the latest Microsoft technologies.</li>
<li>Transition monolithic architectures into more efficient, modular systems.</li>
<li>Enhance development workflows for better productivity and team alignment.</li>
</ul>
<!--kg-card-end: markdown--><p></p><h2 id="how-we-help-modernize-legacy-applications">How We Help Modernize Legacy Applications<br></h2><p>Legacy applications can be a significant bottleneck for businesses, especially when they rely on outdated technologies. Assemblysoft provides a comprehensive approach to modernizing these systems:<br></p><blockquote><strong>1. Assessment and Strategy: </strong></blockquote><p>We evaluate your existing applications, identify pain points, and propose a modernization strategy tailored to your needs.<br></p><blockquote><strong>2. Implementation: </strong></blockquote><p>Using .NET Core, Blazor, and Azure, we rebuild or refactor applications to meet modern standards while ensuring seamless user experiences.<br></p><blockquote><strong>3. Integration and Deployment: </strong></blockquote><p>Our team specializes in integrating modern solutions with existing infrastructures, minimizing downtime during deployment.</p><h3 id="from-monoliths-to-microservices-simplifying-complex-systems"><br>From Monoliths to Microservices: Simplifying Complex Systems<br></h3><p>Migrating a monolith to a microservices architecture can seem daunting. Assemblysoft specializes in breaking down complex monolithic systems into modular, manageable components.<br></p><blockquote>Example: Transforming a Legacy Retail Management System - A recent client faced performance issues with their retail management system, built on an aging monolithic structure. By leveraging Blazor development and modern .NET frameworks, we transitioned the system into microservices, improving scalability, reducing maintenance costs, and enhancing user satisfaction.</blockquote><h2 id="3-tips-for-better-development-workflows">3 Tips for Better Development Workflows<br></h2><p>Efficient workflows are <strong>critical for development teams</strong>. Here are three proven strategies Assemblysoft employs to help clients streamline their processes:<br></p><blockquote><strong>1. Automate Repetitive Tasks</strong></blockquote><p>Repetitive tasks like merge conflict resolution, deployment setups, and infrastructure management can drain valuable time from developers. Automating these processes not only saves time but also minimizes human error.</p><p>For example, one of our projects involved setting up CI/CD pipelines in Azure DevOps for a Blazor WebAssembly application. By automating build and deployment processes, we reduced deployment time by 60%, allowing developers to focus on delivering features instead of wrestling with infrastructure.<br></p><blockquote><strong>2. Use AI to Assist with Complex Tasks</strong></blockquote><p>AI-powered tools like GitHub Copilot and Amazon Q have revolutionized development workflows. From refactoring code to identifying performance bottlenecks, AI can accelerate development without compromising quality.<br></p><p><u>Example in Practice</u></p><p>In a recent .NET Core project, we used AI to generate unit tests for a complex financial calculation module. This <strong>saved over 20 hours of manual testing </strong>and improved test coverage by 35%.<br></p><blockquote><strong>3. Centralize Tools for Team Alignment</strong></blockquote><p>Miscommunication and tool sprawl can lead to inefficiencies, especially in remote or hybrid teams. Tools like Azure DevOps, GitHub, and Slack can centralize repositories, pull requests, and project updates, keeping everyone on the same page.<br></p><h3 id="real-world-example-">Real-World Example:<br></h3><p>For a global client, we centralized their development workflow using Azure DevOps, integrating task management, code repositories, and CI/CD pipelines into a single platform. This reduced delays caused by misalignment and improved project visibility for stakeholders.<br><br></p><h3 id="why-modern-microsoft-technologies-matter">Why Modern Microsoft Technologies Matter<br></h3><p>Microsoft technologies like Blazor, .NET Core, and .NET MAUI are at the forefront of innovation, enabling developers to create performant, scalable, and user-friendly applications. Assemblysoft specializes in these technologies, helping clients stay ahead of the curve.<br></p><h3 id="the-power-of-blazor-development">The Power of Blazor Development<br></h3><p>Blazor allows developers to build interactive web applications using C#, eliminating the need for JavaScript-heavy frameworks. This simplifies development and ensures a unified tech stack across projects.<br></p><h3 id="-net-maui-for-cross-platform-solutions">.NET MAUI for Cross-Platform Solutions<br></h3><p>For businesses seeking cross-platform applications, .NET MAUI provides the flexibility to build apps for iOS, Android, Windows, and macOS using a single codebase. Assemblysoft’s <a href="https://assemblysoft.com/technologies/net-maui-blazor-hybrid-development">team of .NET MAUI developers</a> ensures your applications deliver seamless experiences across devices.<br></p><blockquote><br>Partner with <a href="https://assemblysoft.com/technologies/dotnet-development">Assemblysoft </a>for Your Development Needs<br></blockquote><p>If you’re ready to modernize your systems, streamline workflows, or build the next big thing with Microsoft technologies, Assemblysoft is your go-to partner. Our Blazor development expertise, skilled .NET developers, and proven track record of modernizing legacy applications make us the ideal choice for businesses looking to innovate and grow.<br></p><p><a href="https://assemblysoft.com/technologies/net-maui-blazor-hybrid-development#contact">Get in touch today</a> to learn how Assemblysoft can help transform your development process and deliver world-class software solutions tailored to your business needs.</p><h3 id="why-choose-assemblysoft-for-your-net-projects"><br>Why Choose Assemblysoft for Your .NET Projects?<br></h3><blockquote>At Assemblysoft, we focus on helping businesses modernize and optimize their software by providing skilled .NET developers and .NET MAUI developers with expertise in building scalable, maintainable solutions. Our teams are dedicated to solving your unique challenges, whether it's upgrading older technologies, migrating monolithic applications to microservices, or enhancing user experiences with Blazor and other modern frameworks.</blockquote>]]></content:encoded></item><item><title><![CDATA[Empowering AI Development with .NET Aspire and Assemblysoft]]></title><description><![CDATA[Leverage .NET Aspire and AI with Assemblysoft. From local AI models using Ollama to scalable Azure OpenAI integration, we simplify AI adoption. Discover how our expertise can transform your applications and streamline your development process.]]></description><link>https://services.assemblysoft.com/empowering-ai-development-with-net-aspire-and-assemblysoft/</link><guid isPermaLink="false">676332154630911dc443314f</guid><dc:creator><![CDATA[Assemblysoft Developers]]></dc:creator><pubDate>Sun, 01 Dec 2024 20:40:00 GMT</pubDate><media:content url="https://services.assemblysoft.com/content/images/2024/12/dotnet-aspire-logo.png" medium="image"/><content:encoded><![CDATA[<h3></h3><img src="https://services.assemblysoft.com/content/images/2024/12/dotnet-aspire-logo.png" alt="Empowering AI Development with .NET Aspire and Assemblysoft"><p>Integrating AI capabilities into your applications is now easier than ever with .NET Aspire. Whether you’re experimenting with local AI models or deploying them to the cloud, Assemblysoft can guide your business in leveraging these advanced tools. By combining the flexibility of .NET Aspire with robust frameworks like Ollama, you can create innovative, AI-powered solutions tailored to your needs.</p><h4 id="using-local-ai-models-in-net-aspire">Using Local AI Models in .NET Aspire</h4><p>Local AI models offer a convenient way to prototype and experiment without relying on cloud resources. By using Ollama’s integration with .NET Aspire, developers can:</p><ul><li>Download and manage AI models locally.</li><li>Interact with models via a web interface for testing.</li><li>Transition seamlessly to cloud-hosted models when ready for deployment.</li></ul><p>Here’s how Assemblysoft helps you get started:</p><p><strong>Set Up Ollama</strong>Install the Ollama hosting integration from NuGet:</p><pre><code>dotnet add package CommunityToolkit.Aspire.Hosting.Ollama</code></pre><p>Configure it in <code>Program.cs</code> to enable local hosting:</p><pre><code>var ollama =
    builder.AddOllama("ollama")
           .WithDataVolume()
           .WithOpenWebUI();</code></pre><p>This setup ensures that models are downloaded and persisted, saving time on restarts and enabling easy interaction through a web UI.</p><p><strong>Run AI Models Locally</strong>Add your preferred model using the <code>AddModel</code> method:</p><pre><code>var chat = ollama.AddModel("chat", "llama3.2");</code></pre><p>You can also include models from the Hugging Face model hub for additional versatility.</p><p><strong>Integrate Models into Your Application</strong>Link the AI models to your API project with minimal code:</p><pre><code>builder.AddProject&lt;Projects.MyApi&gt;("api")
       .WithReference(chat)
       .WaitFor(chat);</code></pre><p>This ensures your application waits until the model is fully downloaded and ready for use, enhancing stability and reliability.</p><h4 id="transitioning-to-cloud-hosted-models">Transitioning to Cloud-Hosted Models</h4><p>While local models are excellent for development, cloud-hosted AI services like Azure OpenAI provide scalability and performance for production environments. With .NET Aspire’s abstractions, transitioning is seamless. Here’s how you can manage both local and cloud-hosted models:</p><pre><code>if (builder.Environment.IsDevelopment())
{
    builder.AddKeyedOllamaSharpChatClient("chat");
}
else
{
    builder.AddKeyedAzureOpenAIClient("chat");
}

builder.Services.AddChatClient(b =&gt; b
    .UseFunctionInvocation()
    .UseOpenTelemetry(configure: t =&gt; t.EnableSensitiveData = true)
    .UseLogging()
    .Use(b.Services.GetRequiredKeyedService&lt;IChatClient&gt;("chat")));</code></pre><p>This approach ensures your development and production environments use the most appropriate resources while maintaining consistent code.</p><h4 id="enhancing-applications-with-ai-integration">Enhancing Applications with AI Integration</h4><p>With Assemblysoft’s expertise, your business can:</p><ul><li>Develop AI-driven APIs that leverage the latest in machine learning.</li><li>Utilize Microsoft.Extensions.AI abstractions for seamless transitions between local and cloud models.</li><li>Integrate AI capabilities into existing .NET Aspire solutions with minimal effort.</li></ul><h4 id="why-choose-assemblysoft">Why Choose Assemblysoft?</h4><p>At Assemblysoft, we specialize in empowering businesses to adopt cutting-edge technologies like AI and .NET Aspire. From setting up local AI models to deploying scalable cloud-based solutions, our team provides end-to-end support tailored to your goals.</p><h4 id="get-started-today">Get Started Today</h4><p>Whether you're exploring local AI models or preparing for cloud integration, Assemblysoft can help you navigate the complexities of modern AI development. Contact us today to learn how we can transform your applications with .NET Aspire and advanced AI tools!</p>]]></content:encoded></item><item><title><![CDATA[Simplify API Development with ASP.NET Core in .NET 9 and OpenAPI Integration]]></title><description><![CDATA[ASP.NET Core in .NET 9 makes API development easier with built-in OpenAPI support. Simplify documentation, boost collaboration, and integrate seamlessly with tools like Swagger UI and Redoc. Learn how Assemblysoft can help you unlock the potential of OpenAPI for your APIs.]]></description><link>https://services.assemblysoft.com/simplify-api-development-with-asp-net-core-in-net-9-and-openapi-integration/</link><guid isPermaLink="false">67632d384630911dc443313a</guid><category><![CDATA[.NET Development]]></category><dc:creator><![CDATA[Assemblysoft Developers]]></dc:creator><pubDate>Wed, 20 Nov 2024 20:17:00 GMT</pubDate><media:content url="https://services.assemblysoft.com/content/images/2024/12/api.jpg" medium="image"/><content:encoded><![CDATA[<h3></h3><img src="https://services.assemblysoft.com/content/images/2024/12/api.jpg" alt="Simplify API Development with ASP.NET Core in .NET 9 and OpenAPI Integration"><p>ASP.NET Core in .NET 9 brings a streamlined and powerful way to create OpenAPI documents for your API endpoints. This new built-in support simplifies your development workflow and enhances the integration of OpenAPI definitions into your applications. With the growing ecosystem of tools like Swagger UI, Redoc, and the Kiota client library generator, this feature opens new possibilities for building, testing, and documenting APIs more effectively.</p><h4 id="why-openapi">Why OpenAPI?</h4><p>OpenAPI provides a standard way to define and document HTTP APIs. It describes your API’s endpoints, request and response formats, authentication schemes, and more. This standardization:</p><ul><li>Improves developer collaboration.</li><li>Makes APIs easier to consume.</li><li>Enables seamless integration with tools and services.</li></ul><p>Additionally, many large language models (LLMs) have been trained on OpenAPI documents, enabling automated code generation, testing, and more. By adopting OpenAPI, you unlock the potential to accelerate your development process.</p><h4 id="key-features-in-net-9">Key Features in .NET 9</h4><p>With .NET 9, OpenAPI document generation becomes more integrated and user-friendly. Highlights include:</p><ul><li>Runtime and build-time OpenAPI document generation.</li><li>Attributes and extension methods for metadata annotation.</li><li>Transformer APIs for custom document modifications.</li><li>Multiple OpenAPI document generation from a single app.</li><li>JSON schema support via <code>System.Text.Json</code>.</li><li>Compatibility with native AOT in Minimal APIs.</li></ul><h4 id="getting-started-with-openapi-in-net-9">Getting Started with OpenAPI in .NET 9</h4><ol><li><strong>Update to .NET 9</strong>Ensure your project targets .NET 9. You can download it from the official .NET website. For existing projects, follow the migration guide available in the ASP.NET Core docs.</li></ol><p><strong>Enable OpenAPI Support</strong>If starting a new project, OpenAPI is built into the .NET 9 WebAPI template. For existing projects:</p><pre><code>dotnet add package Microsoft.AspNetCore.OpenApi</code></pre><p>In <code>Program.cs</code>, add OpenAPI services:</p><pre><code>builder.Services.AddOpenApi();
app.MapOpenApi();</code></pre><p><strong>Add Metadata for Clarity</strong>Enhance your OpenAPI documents by adding descriptions, summaries, tags, and parameter details using attributes or extension methods:</p><pre><code>app.MapGet("/hello", () =&gt; "Hello, World!")
   .WithSummary("Get a greeting")
   .WithDescription("This endpoint returns a friendly greeting.")
   .WithTag("Greetings");</code></pre><p><strong>Customize Your OpenAPI Documents</strong>Use transformers to modify your documents:</p><pre><code>builder.Services.AddOpenApi(options =&gt;
{
    options.AddDocumentTransformer((doc, ctx, ct) =&gt;
    {
        doc.Info.Contact = new OpenApiContact
        {
            Name = "Support",
            Email = "support@yourcompany.com"
        };
        return Task.CompletedTask;
    });
});</code></pre><h4 id="generate-openapi-documents-at-build-time">Generate OpenAPI Documents at Build Time</h4><p>For integration into CI/CD workflows, generate OpenAPI documents during the build process. Install the <code>Microsoft.Extensions.ApiDescription.Server</code> package and configure your project:</p><pre><code>&lt;PropertyGroup&gt;
  &lt;OpenApiDocumentsDirectory&gt;./&lt;/OpenApiDocumentsDirectory&gt;
&lt;/PropertyGroup&gt;</code></pre><p>This allows for tasks like linting, client code generation, and automated testing to be seamlessly integrated into your development pipeline.</p><h4 id="conclusion">Conclusion</h4><p>The built-in OpenAPI support in .NET 9 revolutionizes how developers approach API documentation and integration. Whether you're building Minimal APIs or controller-based applications, this feature ensures your APIs are well-documented, easy to consume, and in sync with your code. With Assemblysoft's expertise in .NET and API development, we can help you harness these new capabilities to create robust, future-proof applications.</p><p>Contact us today to learn how Assemblysoft can elevate your API development!</p>]]></content:encoded></item></channel></rss>