# Start Debugging — full index > Daily notes on .NET, C#, EF Core, MAUI, Blazor, and Flutter — for developers who ship. Generated 2026-09-06. Total English posts: 821. ## Pillars - [ASP.NET Core 11 cheat sheet](https://startdebugging.net/pillars/aspnetcore-11-cheat-sheet/): ASP.NET Core 11 in one place: minimal APIs, OpenAPI, authentication, rate limiting, OpenTelemetry, Native AOT, and the Kestrel/HTTP-3 wins. - [C# 14 features](https://startdebugging.net/pillars/csharp-14-features/): All C# 14 language features with runnable examples: union types, partial members, extensions, and the smaller ergonomic wins. - [EF Core 11 cheat sheet](https://startdebugging.net/pillars/efcore-11-cheat-sheet/): Quick reference for EF Core 11: new query features, vector search, performance wins, and migration notes from EF Core 8/9/10. - [The .NET 11 tracker](https://startdebugging.net/pillars/dotnet-11-tracker/): Every preview, every feature, every breaking change - one place to bookmark for the .NET 11 release cycle. - [The async and concurrency cheat sheet](https://startdebugging.net/pillars/async-and-concurrency-in-csharp/): Async and concurrency in C# and .NET in one place: async void vs async Task, ConfigureAwait, cancellation, ValueTask, Channels, locking, and the deadlocks each one causes. - [The coding agents tracker](https://startdebugging.net/pillars/coding-agents-tracker/): Claude Code, Cursor, Copilot, MCP, Microsoft Agent Framework - every post on building and working with AI coding agents, in one place. - [The Flutter & Dart tracker](https://startdebugging.net/pillars/flutter-tracker/): Flutter and Dart in one place: jank profiling, isolates, state management, CI matrices, platform channels, and the 3.x release cycle. - [The MAUI & Xamarin tracker](https://startdebugging.net/pillars/maui-xamarin-tracker/): .NET MAUI and Xamarin in one place: the MAUI 11 release cycle, CoreCLR-on-mobile, gesture and map work, the Xamarin.Forms migration story, and the long tail of build errors. ## Featured - [EF Core 11 Adds Native SQL Server Vector Search with DiskANN Indexes](https://startdebugging.net/2026/04/efcore-11-sql-server-vector-search-diskann-indexes/): EF Core 11 Preview 2 supports SQL Server 2025 VECTOR_SEARCH() and DiskANN vector indexes directly from LINQ. Here is how to set up the index, run approximate queries, and what changes from the EF Core 10 VectorDistance approach. - [C# 15 Union Types Are Here: Type Unions Ship in .NET 11 Preview 2](https://startdebugging.net/2026/04/csharp-15-union-types-dotnet-11-preview-2/): C# 15 introduces the union keyword for type unions with exhaustive pattern matching and implicit conversions. Available now in .NET 11 Preview 2. - [.NET 11 Runtime Async Replaces State Machines with Cleaner Stack Traces](https://startdebugging.net/2026/04/dotnet-11-runtime-async-cleaner-stack-traces/): Runtime Async in .NET 11 moves async/await handling from compiler-generated state machines into the runtime itself, producing readable stack traces, correct breakpoints, and fewer heap allocations. ## 2026 - [Copilot Code Review Can Now Approve Pull Requests](https://startdebugging.net/2026/09/copilot-code-review-can-now-approve-pull-requests/): GitHub's September 1, 2026 changelog lets Copilot submit an approving review that satisfies a repository's required-approval rule. It is off by default, scoped by file globs, and dismissed on new commits. Here is what actually changes in your branch protection. - [Claude Code 2.1.261 Adds /skill-doctor: Find the Skills That Only Cost You Context](https://startdebugging.net/2026/09/claude-code-2-1-261-skill-doctor-finds-skills-that-only-cost-context/): A skill's body loads on demand, but its name and description sit in a listing that is always in the prompt, capped at 1% of the context window. Claude Code 2.1.261 adds /skill-doctor to say which loaded skills never get used and what each one costs, so you can prune them before the budget starts evicting the skills you do use. - [Nested Subagent Hierarchies: When Delegation Depth Helps and When It Just Burns Tokens](https://startdebugging.net/2026/09/nested-subagent-depth-when-it-helps-and-when-it-burns-tokens/): The cold start of a subagent is not what costs you money. Measured across 117 real Claude Code subagent transcripts, startup context was 0.6% to 18% of each agent's total spend. Depth is expensive because every layer runs its own agentic loop and hands the layer above a summary instead of evidence. Here is the compression test that tells you which layer to delete. - [ref.watch vs ref.read in Riverpod: what is the difference and when do I use each?](https://startdebugging.net/2026/09/ref-watch-vs-ref-read-in-flutter-riverpod/): ref.watch subscribes and rebuilds, ref.read reads once and never rebuilds. Use watch in every build method and read only inside event callbacks. Here is the decision matrix, the source of both methods in flutter_riverpod 3.4.3, and the four silent failure modes: watch in a callback, read in a provider body, read on an autoDispose provider, and read used as an optimization. - [What is a Blazor render mode and which one runs my component?](https://startdebugging.net/2026/09/what-is-a-blazor-render-mode-and-which-one-runs-my-component/): A render mode decides where a Razor component executes and whether it is interactive. Here are the four modes in .NET 11, the propagation rules that decide what your component inherits, and the RendererInfo and AssignedRenderMode properties that tell you at runtime which one actually won. - [What is an EF Core interceptor and when do I need one?](https://startdebugging.net/2026/09/what-is-an-ef-core-interceptor-and-when-do-i-need-one/): An EF Core interceptor is a class EF calls before and after operations like executing a command or SaveChanges, and it can modify or suppress them, not just observe. Here are the seven interception points in EF Core 11, the registration and lifetime rules, and the cases where a query filter or plain logging is the better answer. - [Migrate a .NET MAUI Android app to target Android API level 36](https://startdebugging.net/2026/09/migrate-a-dotnet-maui-android-app-to-target-android-api-level-36/): Google Play required target API 36 from 2026-08-31, with extensions running to 2026-11-01. Here is the full .NET MAUI path from net9.0-android to API 36: the target framework bump, the hardcoded uses-sdk that silently pins you to the old level, edge-to-edge with no opt-out, predictive back, and the large-screen orientation rules. - [MSTest 4.4 Graduates the Reflection Source Generator, and Native AOT Projects Get It Automatically](https://startdebugging.net/2026/09/mstest-4-4-native-aot-source-generation/): MSTest 4.4 moves MSTest.SourceGeneration out of experimental and aligns it with the MSTest version. Native AOT test projects pick it up with no opt-in, ReflectionFree mode can now skip runtime discovery for plain [TestMethod] and [DataRow], and five AOTSG diagnostics tell you which test shapes will not survive. - [What is a Flutter Key and when does omitting it cause bugs?](https://startdebugging.net/2026/09/what-is-a-flutter-key-and-when-does-omitting-it-cause-bugs/): A Key is the identity half of Widget.canUpdate, the one line of framework code that decides whether an Element and its State are reused or thrown away. Here is what that means in practice, the exact list edits that corrupt state without keys, which key type to reach for, and where the key has to sit to work. - [What is the W^X flag in .NET and does Native AOT need it?](https://startdebugging.net/2026/09/what-is-the-w-xor-x-flag-in-dotnet-and-does-native-aot-need-it/): W^X (write xor execute) is the rule that no memory page is writable and executable at the same time. In .NET it is the DOTNET_EnableWriteXorExecute knob, on by default since .NET 7, and it exists entirely for the JIT. Native AOT never reads it. Here is how the runtime implements it, what it costs, and when turning it off is a legitimate fix. - [Where to Store Agent Chat History: Cost, Privacy, and Portability Tradeoffs](https://startdebugging.net/2026/09/where-to-store-agent-chat-history-cost-privacy-portability/): Conversation history can live in your process, in your database, in the provider, or on the machine that ran the agent. Where you put it does not change your token bill, it decides your retention exposure, and it decides whether you can ever change providers. The numbers, the retention windows, and a storage shape that survives all three. - [Claude Code 2.1.259 Adds managedMcpServers: Ship MCP Servers Without MDM](https://startdebugging.net/2026/09/claude-code-2-1-259-managed-mcp-servers-without-mdm/): Until now the only way to hand every developer the same MCP servers was managed-mcp.json, a file at a system path that takes exclusive control of MCP. Claude Code 2.1.259 adds a managedMcpServers setting for HTTP and SSE servers, and quietly narrows what allowedMcpServers governs. - [Information-Flow Control for AI Agents: Blocking Prompt Injection With Labels, Not Prompts](https://startdebugging.net/2026/09/information-flow-control-to-block-prompt-injection-in-agents/): Defensive system prompts are heuristic. Information-flow control is not: label every piece of content with integrity and confidentiality, propagate most-restrictive-wins through every tool call, and check the label at the sink before it runs. An 80-line runnable harness, the Agent Framework FIDES implementation, and the false positives the pattern buys you. - [Migrate a .NET MAUI Android app from Mono to CoreCLR in .NET 11](https://startdebugging.net/2026/09/migrate-a-dotnet-maui-android-app-from-mono-to-coreclr-in-dotnet-11/): A step-by-step migration off Mono onto CoreCLR for .NET MAUI on Android: the API 24 floor, the Mono-only MSBuild properties that now break your build, why your APK grew, how to profile the startup regression with dotnet-dsrouter and dotnet-trace, and what a rollback actually looks like now that the Mono path is gone. - [Migrate a Flutter web app from dart:html to package:web and dart:js_interop](https://startdebugging.net/2026/09/migrate-a-flutter-web-app-from-dart-html-to-package-web/): A step-by-step migration off the deprecated dart:html, dart:js_util, and package:js onto package:web 1.1.1 and dart:js_interop: how to find every offending import with the dart2wasm compiler, what dart fix does and does not rename, the JSImmutableListWrapper and innerHTML traps, and how to verify with flutter build web --wasm. - [Migrate Flutter Material and Cupertino imports to the material_ui and cupertino_ui packages](https://startdebugging.net/2026/09/migrate-flutter-material-and-cupertino-imports-to-standalone-packages/): The full migration off package:flutter/material.dart and package:flutter/cupertino.dart onto material_ui 1.1.1 and cupertino_ui 1.0.2: what dart fix --code=migrate_design_widgets rewrites, why third-party widgets start throwing ancestor-lookup errors, what MaterialUiCompatibilityBridge actually fixes, and how the flutter_localizations dependency changes. - [Migrate from VSTest to Microsoft.Testing.Platform on the .NET 11 SDK](https://startdebugging.net/2026/09/migrate-from-vstest-to-microsoft-testing-platform-in-dotnet-11/): A step-by-step migration from VSTest to Microsoft.Testing.Platform 2.3.3: the OutputType Exe opt-in, the global.json runner switch, loggers becoming reporters, .runsettings becoming testconfig.json, and the exit codes that turn a green CI job red. - [Migrate an MCP C# SDK 1.x Server to 2.x Without Breaking Old Clients](https://startdebugging.net/2026/09/migrate-mcp-csharp-sdk-1-x-to-2-0-without-breaking-old-clients/): ModelContextProtocol 2.0.0 flipped HTTP transport to stateless by default, which is the one change that can drop every client still speaking 2025-11-25. HttpServerSessionMode.StatefulForInitializeClients in 2.2.0 serves both revisions on one endpoint. Here is the ordered upgrade, the ten breaking changes that matter, and the discover-probe bug that only a 2.1.0 client fixes. - [Migrate off BinaryFormatter after its removal in modern .NET](https://startdebugging.net/2026/09/migrate-off-binaryformatter-after-its-removal-in-modern-dotnet/): BinaryFormatter's implementation was deleted in .NET 9 and still throws PlatformNotSupportedException on .NET 10 and .NET 11: how to choose a replacement serializer, read already-persisted NRBF blobs with NrbfDecoder, and what breaks in WinForms, WPF, and ResX. - [Copilot Memory vs Repository Custom Instructions vs AGENTS.md: Which One the Model Actually Reads](https://startdebugging.net/2026/09/copilot-memory-vs-repository-custom-instructions-vs-agents-md/): Instructions files are deterministic and always sent. AGENTS.md sits at the bottom of the documented repository precedence list. Copilot Memory is a separate store Copilot writes for itself, read by only three surfaces, and it is not in the precedence list at all. Here is the support matrix and the rule for deciding where each convention belongs. - [Framework-dependent vs self-contained vs Native AOT for a .NET 11 container image](https://startdebugging.net/2026/09/framework-dependent-vs-self-contained-vs-native-aot-for-a-dotnet-11-container-image/): Framework-dependent on a chiseled aspnet image is the right default for an ASP.NET Core service on .NET 11, because the runtime layer is shared across services and a runtime CVE is fixed by a base image bump. Self-contained trimmed and Native AOT buy a 2x to 5x smaller image and a much faster cold start, and cost you that. Real published sizes, the layer-sharing math, and the .NET 11 base image inference bug that breaks the AOT path. - [Migrate a test project from xUnit v2 to xUnit v3 (2.9.3 to 4.0.0)](https://startdebugging.net/2026/09/migrate-a-test-project-from-xunit-v2-to-xunit-v3/): A step-by-step migration from xunit 2.9.3 to xunit.v3 4.0.0: package swaps, the OutputType Exe change, IAsyncLifetime returning ValueTask, the Xunit.Abstractions removal, and the CI filter syntax that silently stops matching. - [Returning a Task directly vs async/await passthrough in a C# repository method: which should you use?](https://startdebugging.net/2026/09/return-task-directly-vs-async-await-passthrough-in-a-csharp-repository-method/): Eliding async/await in a repository passthrough saves about 6 ns and 72 bytes, and costs you a stack frame, try/catch semantics, and safe disposal. Keep return await unless the method is a pure passthrough on a measured hot path. - [VS Code 1.135 Ships /rubber-duck, and It Deliberately Uses a Different Model](https://startdebugging.net/2026/09/vscode-1-135-rubber-duck-cross-model-review/): The experimental /rubber-duck command in VS Code 1.135 hands the agent's plan, code, and tests to a model from another family for review. GPT-5.4 critiques Claude, and the cross-family choice is the whole point. - [Agent Plugins 1.0 vs Vendor-Specific Plugin Formats: What the Shared Standard Actually Covers](https://startdebugging.net/2026/08/agent-plugins-1-0-vs-vendor-specific-plugin-formats/): Agent Plugins 1.0.0 standardizes exactly two component types: skills and MCP servers. Slash commands, hooks, subagents, rules, LSP servers, permission config and secrets all stay vendor-specific. Here is the field-by-field matrix across Claude Code, Cursor, Copilot and Codex, and which layout to author in. - [AutoMapper vs Mapperly vs hand-written mapping in 2026](https://startdebugging.net/2026/08/automapper-vs-mapperly-vs-hand-written-mapping-in-2026/): Mapperly is the default for new .NET code: it matches hand-written speed, survives Native AOT, and catches unmapped members at build time. AutoMapper still wins on ProjectTo. Benchmarks and license thresholds included. - [Copilot Code Review Defaults to Balanced Effort on September 28](https://startdebugging.net/2026/08/copilot-code-review-defaults-to-balanced-on-september-28/): GitHub's August 27 and August 28, 2026 changelogs remove the 20,000 line review cap, start reviewing bot-authored PRs, and flip the default review effort from Lite to Balanced on September 28. All three push AI credit consumption up in the same month. - [Fix: Firebase Auth sign-in does not persist in a Flutter Android release build](https://startdebugging.net/2026/08/fix-firebase-auth-sign-in-does-not-persist-in-a-flutter-android-release-build/): Firebase Auth restores the Android session from a private SharedPreferences file with no network call, so a release-only sign-out is never broken persistence. It is a different google-services.json, a rejected token refresh, App Check, or your own catch block. - [Fix: The method 'getInvocation' isn't defined for the type 'DartObjectImpl'](https://startdebugging.net/2026/08/fix-the-method-getinvocation-isnt-defined-for-the-type-dartobjectimpl/): build_runner fails to compile because source_gen 3.1.0 or 4.0.0 calls an analyzer API removed in analyzer 8.4.0. Upgrade the generator that pins source_gen below 4.0.1. - [PreModelSwitch: Claude Code Can Now Veto a Model Change](https://startdebugging.net/2026/08/claude-code-premodelswitch-hook-gates-model-changes/): Claude Code 2.1.251 adds PreModelSwitch and PostModelSwitch hook events. The matcher fires on the canonical name of the model you are switching to, and exit code 2 cancels the switch. - [Fix: 23505: duplicate key value violates unique constraint on a concurrent EF Core insert](https://startdebugging.net/2026/08/fix-23505-duplicate-key-value-violates-unique-constraint-on-a-concurrent-ef-core-insert/): The check-then-insert in your handler is not atomic. Catch PostgresException with SqlState 23505, or collapse the whole thing into one INSERT ... ON CONFLICT statement. EnableRetryOnFailure will not help. - [Fix: CREATE DATABASE permission denied in database 'master' when running dotnet ef database update](https://startdebugging.net/2026/08/fix-create-database-permission-denied-in-database-master-dotnet-ef-database-update/): EF Core's Migrate() always checks whether the database exists and creates it if not, from a hardcoded master connection. Grant CREATE ANY DATABASE, fix the login's access to the existing database, or ship an idempotent SQL script instead. - [Fix: Model building is not supported when publishing with NativeAOT in a .NET MAUI iOS build](https://startdebugging.net/2026/08/fix-model-building-is-not-supported-when-publishing-with-nativeaot-in-maui-ios/): iOS builds set DynamicCodeSupport=false, so EF Core refuses to build the model even though you never enabled NativeAOT. Ship a compiled model plus precompiled queries, or turn the interpreter back on. - [Stateful vs Stateless MCP Servers: What Actually Breaks When the Session Goes Away](https://startdebugging.net/2026/08/stateful-vs-stateless-mcp-servers-what-breaks-when-the-session-goes-away/): Protocol revision 2026-07-28 deleted Mcp-Session-Id, the initialize handshake, resources/subscribe, ping, logging/setLevel and SSE resumability. An automated survey of 1000 open source MCP servers found 90% reference the session ID nowhere. Here is what the other 10% has to rewrite, with verified code on @modelcontextprotocol/server 2.0.0. - [Claude Code 2.1.251 Closes Four Ways Around the Permission Check](https://startdebugging.net/2026/08/claude-code-2-1-251-four-ways-around-the-permission-check/): A symlink swapped after the check, deny rules that stopped applying through a symlinked search path, a marketplace command pointing outside its plugin, and a workflow script read before approval. Four fixes in one release, all the same bug. - [Fix: CA1070 "Do not declare event fields as virtual"](https://startdebugging.net/2026/08/fix-ca1070-do-not-declare-event-fields-as-virtual/): CA1070 fires on virtual field-like events. Drop the virtual, keep the event non-virtual, and let derived classes override a protected virtual OnXxx raiser instead. - [Fix: Doesn't support required ABI when installing a .NET MAUI Android app](https://startdebugging.net/2026/08/fix-doesnt-support-required-abi-when-installing-a-dotnet-maui-android-app/): The APK has no native library for the device's CPU. Since .NET 9 the default Android RuntimeIdentifiers are 64-bit only, so the fix is to set RuntimeIdentifiers explicitly. Covers ADB0020, XA0036, NETSDK1083, the ABI to RID mapping, the Play Console wording, and why the four-RID snippet everyone copies breaks on .NET 11. - [Fix: failed to resolve source metadata for mcr.microsoft.com/dotnet/aspnet](https://startdebugging.net/2026/08/fix-failed-to-resolve-source-metadata-for-mcr-microsoft-com-dotnet-aspnet/): BuildKit cannot read the manifest for your base image. Check the tag exists, repair the Docker credential helper, open both MCR endpoints, then pre-pull for offline builds. - [Fix: An MCP Server Never Starts Because an Enterprise Allowlist Blocks Its Command or URL](https://startdebugging.net/2026/08/fix-mcp-server-blocked-by-enterprise-allowlist/): A server that vanished from /mcp with no error is almost always an allowlist. Run claude mcp add on the same server: the add path prints the reason the load path swallows. - [What is the difference between a Dart isolate and a thread?](https://startdebugging.net/2026/08/what-is-the-difference-between-a-dart-isolate-and-a-thread/): A thread shares memory with every other thread in the process. A Dart isolate does not: it owns its heap, runs one event loop, and talks to other isolates only by messages. Here is what that means at the VM level, where isolate groups blur the line, and how it plays out in Flutter, FFI, and on the web. - [Aspire 13.5 Puts a Real Terminal Inside the Dashboard](https://startdebugging.net/2026/08/aspire-13-5-withterminal-interactive-shells-in-the-dashboard/): WithTerminal() gives a resource an interactive PTY session you can type into from the dashboard or attach to from your own shell. It is experimental, it detaches the debugger, and the Shell option you may have written against is gone. - [Fix: MCP9004, MCP9005 and MCP9006 warnings after upgrading the MCP C# SDK to 2.0](https://startdebugging.net/2026/08/fix-mcp9004-mcp9005-mcp9006-warnings-after-mcp-csharp-sdk-2-0/): MCP9005 is advisory, but MCP9004 crashes at startup and stateless mode makes SampleAsync throw. Here is what each diagnostic means and how to fix it properly. - [Migrate a .NET solution to Central Package Management with Directory.Packages.props](https://startdebugging.net/2026/08/migrate-a-dotnet-solution-to-central-package-management-with-directory-packages-props/): Move every package version out of your csproj files into one Directory.Packages.props. Covers a generator script that reconciles conflicting versions with real semver ordering, the before/after dependency-graph diff that proves what moved, NU1008/NU1010/NU1013/NU1507, transitive pinning, GlobalPackageReference, VersionOverride, and why a nested Directory.Packages.props silently shadows the root one. - [How to render a heading whose level (h1-h6) is chosen at runtime in a Blazor component](https://startdebugging.net/2026/08/how-to-render-a-heading-with-a-runtime-chosen-level-in-blazor/): Blazor has no syntax for a variable tag name, and DynamicComponent only renders component types. Override BuildRenderTree and call builder.OpenElement(0, $"h{level}"). Covers attribute splatting, why the tag name must be clamped before it reaches the DOM, why changing the level rips the element out of the DOM even with @key, and an auto-levelling variant built on a cascading value. - [How to test a Flutter widget at a fixed point in time without a withClock closure](https://startdebugging.net/2026/08/how-to-test-a-flutter-widget-at-a-fixed-point-in-time/): Inside testWidgets the ambient clock from package:clock is already fake, but it starts at whatever wall time the test began. Pin it for a whole suite by overriding runTest on a custom AutomatedTestWidgetsFlutterBinding installed from flutter_test_config.dart. Verified on Flutter 3.44.2, clock 1.1.2, fake_async 1.3.3. - [.NET MAUI 10.0.100 adds UsePlatformHandler for custom BlazorWebView backends](https://startdebugging.net/2026/08/maui-10-0-100-useplatformhandler-custom-blazorwebview-backends/): MAUI 10.0.100 ships MauiBlazorWebViewBuilderExtensions.UsePlatformHandler, a supported seam for replacing BlazorWebViewHandler without reimplementing everything AddMauiBlazorWebView() registers. Two overloads, one ordering trap. - [Claude Code 2.1.238 Lets a Plugin Marketplace Mint Its Own Auth Headers](https://startdebugging.net/2026/08/claude-code-2-1-238-marketplaces-mint-their-own-auth-headers/): A headersHelper field on url marketplaces and catalog entries runs a local command that prints HTTP headers, so an internal plugin catalog behind S3 or an artifact repo can authenticate with a short-lived token. Here is the schema, the consent prompt, and the header names Claude Code drops. - [Fix: Unsupported protocol version between an MCP client and server (2025-11-25 vs 2026-07-28)](https://startdebugging.net/2026/08/fix-mcp-unsupported-protocol-version-2025-11-25-vs-2026-07-28/): MCP error -32022 means your client opened at 2025-11-25 but the server only serves 2026-07-28. Make one side dual-era instead of pinning a version. - [How to tell whether an IEnumerable has already been materialized in C#](https://startdebugging.net/2026/08/how-to-tell-whether-an-ienumerable-has-already-been-materialized-in-csharp/): There is no HasBeenEnumerated flag on IEnumerable. Here is what TryGetNonEnumeratedCount actually checks, why Enumerable.Range passes an ICollection test, and the guard that avoids a wasted ToList(). - [How to write a static extension member that applies to every enum type in C# 14](https://startdebugging.net/2026/08/how-to-write-a-static-extension-member-for-every-enum-type-in-csharp-14/): Declare a generic extension block with a struct, Enum constraint and you get Status.Values, Status.Count, and Status.Parse on every enum in your solution. The receiver shape, the CS0704 and CS0428 traps, and why you must cache Enum.GetValues. - [How to write reusable LINQ predicates that EF Core can translate in Where, Select, and OrderBy](https://startdebugging.net/2026/08/how-to-write-reusable-linq-predicates-ef-core-can-translate/): A bool helper method throws "could not be translated". An Expression> does not. Here is how to compose, nest, and reuse expression trees in EF Core 11 without LINQKit, with the real SQL for every case. - [Fix: A restricted method in java.lang.System has been called in a Flutter Gradle build](https://startdebugging.net/2026/08/fix-a-restricted-method-in-java-lang-system-has-been-called-in-a-flutter-gradle-build/): The JEP 472 warning on JDK 24+ is harmless and prints once. Fix it by matching your JDK to a Gradle version that supports it, not by pasting flags into gradle.properties. - [Fix: [firebase_messaging/apns-token-not-set] APNS token has not been set on Flutter iOS](https://startdebugging.net/2026/08/fix-firebase-messaging-apns-token-not-set-on-flutter-ios/): getToken() runs before APNs hands iOS the device token. Poll getAPNSToken() until it returns non-null, then call getToken(). Check the Push Notifications capability if it never arrives. - [Fix: Flutter UI overlaps the Android system navigation bar after targeting SDK 35](https://startdebugging.net/2026/08/fix-flutter-ui-overlaps-the-android-navigation-bar-after-targeting-sdk-35/): Targeting Android SDK 35 puts your Flutter app in edge-to-edge mode, so the Scaffold body draws behind the navigation bar. Consume the insets with SafeArea and MediaQuery padding instead of opting out, because the opt-out is already dead on Android 16. - [Fix: Toolchain installation does not provide the required capabilities: [JAVA_COMPILER]](https://startdebugging.net/2026/08/fix-toolchain-installation-does-not-provide-the-required-capabilities-in-flutter/): Gradle is compiling with a JRE. It is not searching your machine, it is using the exact JVM it was launched on. Point flutter config --jdk-dir at a real JDK, or clear org.gradle.java.home. - [Flutter 3.47.1 Stops a Transitive Package From Injecting Native Code Into Your App](https://startdebugging.net/2026/08/flutter-3-47-1-blocks-plugin-registrant-code-injection/): The 3.47.1 hotfix validates plugin class and package identifiers before they land in GeneratedPluginRegistrant. Here is the hole it closes, the regex that closes it, and the other 11 fixes in the release. - [How to Cut Cursor Cloud Agent Startup Time With Prebuilt Builds](https://startdebugging.net/2026/08/how-to-cut-cursor-cloud-agent-startup-time-with-builds/): Cursor shipped Builds for Cloud Agents on August 13, 2026: a bootable filesystem snapshot of an already prepared machine. Cursor reports 3x faster time to first token. The lever you control is the install vs start split in .cursor/environment.json. - [ASP.NET Core Stops Turning 413 Into 500 in UseExceptionHandler](https://startdebugging.net/2026/08/aspnetcore-exception-handler-preserves-badhttprequestexception-status-codes/): A PR merged into dotnet/aspnetcore main on August 19, 2026 makes ExceptionHandlerMiddleware honour BadHttpRequestException.StatusCode instead of overwriting it with 500. - [Fix: [FromForm] Dictionary is always null in a minimal API](https://startdebugging.net/2026/08/fix-fromform-dictionary-is-always-null-in-a-minimal-api/): A [FromForm] Dictionary in a minimal API binds with an empty prefix: the form keys must be [key], not metadata[key]. Wrap it in a class to keep readable names. - [Fix: The class 'GoogleSignIn' doesn't have an unnamed constructor](https://startdebugging.net/2026/08/fix-the-class-googlesignin-doesnt-have-an-unnamed-constructor-in-flutter/): google_sign_in 7.0.0 made GoogleSignIn a singleton. Replace GoogleSignIn(scopes: ...) with GoogleSignIn.instance, await initialize() once, then call authenticate(). - [Fix: Unable to find a destination matching the provided destination specifier in a Flutter iOS build](https://startdebugging.net/2026/08/fix-unable-to-find-a-destination-matching-the-provided-destination-specifier-in-a-flutter-ios-build/): iOS 26 simulator runtimes are arm64-only, so a leftover EXCLUDED_ARCHS arm64 line builds an Intel-only Runner no simulator can execute. Drop the exclusion. - [How to Serve Agent Skills from an MCP Server in .NET with UseMcpSkills](https://startdebugging.net/2026/08/serve-agent-skills-from-an-mcp-server-in-dotnet-with-usemcpskills/): Stop shipping SKILL.md folders inside every agent deployment. Serve them from an MCP server and pull them with UseMcpSkills on Microsoft.Agents.AI.Mcp 1.18. Includes the exact skill://index.json shape, a working C# server, the wire trace, and the SEP-2640 drift that will bite you. - [Fix: "An exception was thrown while attempting to evaluate a LINQ query parameter expression" in EF Core 11](https://startdebugging.net/2026/08/fix-an-exception-was-thrown-while-attempting-to-evaluate-a-linq-query-parameter-expression/): EF Core throws this when a client-evaluated piece of your query throws while EF evaluates it. Read InnerException, turn on EnableSensitiveDataLogging, and move the null check outside the lambda. - [Fix: cannot target OpenAPI 3.0 after upgrading Swashbuckle.AspNetCore to v9](https://startdebugging.net/2026/08/fix-cannot-target-openapi-3-0-after-upgrading-swashbuckle-aspnetcore/): Swashbuckle 8 and later emit openapi 3.0.4, not 3.0.1, and there is no OpenApiSpecVersion for a patch version. Why it changed, and four ways to pin the string your tooling expects. - [Fix: Swagger UI shows Unable to render this definition after upgrading to .NET 11](https://startdebugging.net/2026/08/fix-swagger-ui-unable-to-render-this-definition-after-upgrading-to-dotnet-11/): ASP.NET Core 11 emits openapi 3.2.0 by default and Swagger UI below 10.1.5 rejects it. Upgrade Swashbuckle.AspNetCore.SwaggerUI, or pin OpenApiVersion back to OpenApi3_1. - [How to Set the Reasoning Level for a GitHub Copilot Cloud Agent Per Task](https://startdebugging.net/2026/08/how-to-set-the-reasoning-level-for-a-github-copilot-cloud-agent-per-task/): Since August 3, 2026 you can pick a reasoning level next to the model when you start a Copilot cloud agent task. The Agent Tasks REST API has no equivalent parameter, so scripted dispatch cannot set it. Here is where the control exists, which levels each model exposes, what lands on the wire, and how to pin a default instead. - [Semantic Kernel 1.80.0 Stops OpenAPI Plugins From Following Redirects](https://startdebugging.net/2026/08/semantic-kernel-1-80-openapi-plugins-stop-following-redirects/): Semantic Kernel .NET 1.80.0 ships a breaking change: the OpenAPI plugin's default HttpClient no longer follows redirects, closing an SSRF bypass. Here is what changes and why your own HttpClient reopens the hole. - [How to Centrally Control Which MCP Servers Your Team Can Run](https://startdebugging.net/2026/08/centrally-control-which-mcp-servers-a-team-can-run/): Claude Code and GitHub Copilot both ship allowedMcpServers and deniedMcpServers, but the matchers behave differently. serverName is a fallback that a single serverCommand entry silently disables, deny is a union while allow is not, and an invalid allowlist locks everything out. - [Fix: CA1873 "Evaluation of this argument may be expensive and unnecessary if logging is disabled"](https://startdebugging.net/2026/08/fix-ca1873-evaluation-of-this-argument-may-be-expensive-and-unnecessary-if-logging-is-disabled/): CA1873 fires on the implicit params object[] allocation, so almost every LogDebug call trips it. Fix it with [LoggerMessage] or an IsEnabled guard. - [Fix: 'MapperConfiguration' does not contain a constructor that takes 1 arguments](https://startdebugging.net/2026/08/fix-mapperconfiguration-does-not-contain-a-constructor-that-takes-1-arguments/): AutoMapper 15 removed the single-argument MapperConfiguration constructor. Pass an ILoggerFactory as the second argument, and add a config action to every AddAutoMapper call. - [Fix: The call is ambiguous between the following methods or properties after moving to C# 14 extension members](https://startdebugging.net/2026/08/fix-the-call-is-ambiguous-after-moving-to-csharp-14-extension-members/): CS0121 after moving an extension method into a C# 14 extension block: the compiler still emits the old static form. Delete the duplicate or qualify the call. - [MSBuild Server Is On by Default in .NET 11 Preview 7](https://startdebugging.net/2026/08/msbuild-server-on-by-default-dotnet-11-preview-7/): Preview 7 flips MSBuild server from opt-in to on by default, so back-to-back dotnet build and dotnet test calls reuse a warm worker process. Here is what changed, how to opt out, and how to prove the server actually engaged. - [How to generate a primary key from a database sequence on insert in EF Core 11](https://startdebugging.net/2026/08/how-to-generate-a-primary-key-from-a-database-sequence-on-insert-in-ef-core-11/): Move a key off IDENTITY and onto a SQL Server sequence in EF Core 11 with UseSequence: the exact SQL EF emits, why explicit key values suddenly work without IDENTITY_INSERT, the bigint sequence feeding an int column, and the gaps you have to design around. - [How to redact sensitive values from logs with LogProperties and data redaction in .NET](https://startdebugging.net/2026/08/how-to-redact-sensitive-values-from-logs-with-logproperties-in-dotnet/): A complete guide to redacting classified data in source-generated logs: build a taxonomy, write a Redactor, wire EnableRedaction and AddRedaction, and understand the discriminator that silently breaks partial masking. With real output from Microsoft.Extensions.Compliance.Redaction 10.9.0. - [How to Package Skills and an MCP Server as One Agent Plugin](https://startdebugging.net/2026/08/package-skills-and-an-mcp-server-as-one-agent-plugin/): Agent Plugins 1.0 says plugin.json at the root and mcp.json beside it. Claude Code 2.1.x wants .claude-plugin/plugin.json and .mcp.json. Here is what each client actually loads, tested against a real plugin, and the dual-layout directory that satisfies both. - [Flutter 3.47 Makes Impeller the Default Renderer on Windows, Linux, and macOS](https://startdebugging.net/2026/08/flutter-3-47-impeller-default-renderer-on-desktop/): Flutter 3.47.0 stable flips desktop apps from Skia to Impeller without touching a line of your runner code. Here is what moves, how to opt out on each platform, and why that opt-out is temporary. - [How to download a file from a Blazor component without JavaScript interop](https://startdebugging.net/2026/08/how-to-download-a-file-from-a-blazor-component-without-javascript-interop/): Skip the downloadFileFromStream JS module entirely. Render an anchor with the download attribute pointing at a minimal API endpoint that returns TypedResults.File, or POST a plain HTML form with an AntiforgeryToken. Covers why the download attribute is what stops Blazor's enhanced navigation from swallowing the click, why data-enhance silently discards the file, and the cookie-vs-bearer auth trap. - [How to make System.Text.Json ignore a property that has the required modifier](https://startdebugging.net/2026/08/how-to-make-system-text-json-ignore-a-property-with-the-required-modifier/): [JsonIgnore] on a required member throws InvalidOperationException: marked required but does not specify a setter. Here is why the two features collide and the four ways to ignore the property anyway, measured on .NET 10. - [How to use IDbContextFactory from a singleton service in Blazor](https://startdebugging.net/2026/08/how-to-use-idbcontextfactory-from-a-singleton-service-in-blazor/): A singleton cannot inject a DbContext, but it can inject IDbContextFactory, because AddDbContextFactory registers the factory as a singleton by default. Create and dispose one context per call, never cache the instance. - [How to Route MCP Traffic Through a Gateway With the Mcp-Method and Mcp-Name Headers](https://startdebugging.net/2026/08/route-mcp-traffic-through-a-gateway-with-mcp-method-and-mcp-name-headers/): MCP 2026-07-28 mirrors the JSON-RPC method and target name into HTTP headers so a gateway can route, throttle, and audit without parsing the body. Here is a working gateway, plus the header-body agreement rule that will bite you. - [System.IO.Compression Finally Reads and Writes Encrypted ZIPs in .NET 11 Preview 7](https://startdebugging.net/2026/08/dotnet-11-preview-7-password-protected-zip-archives/): .NET 11 Preview 7 adds password-protected ZIP entries to System.IO.Compression, with AES-256 support, options types for whole-directory operations, and one empty-file bug that is already fixed in main. - [Riverpod Notifier vs AsyncNotifier vs StreamNotifier in Flutter: which one do I extend?](https://startdebugging.net/2026/08/riverpod-notifier-vs-asyncnotifier-vs-streamnotifier-in-flutter/): Pick by the return type of build(): T means Notifier, FutureOr means AsyncNotifier, Stream means StreamNotifier. Here is the decision matrix, the type hierarchy that explains why, and the == filtering and state-clobbering gotchas that bite each one. Verified against flutter_riverpod 3.4.2 on Flutter 3.44.2. - [Safe File-Write Tools for an Agent: Preview, Confirm, Apply](https://startdebugging.net/2026/08/safe-file-write-tools-for-an-agent-preview-confirm-apply/): A write tool that asks before it writes needs three things the MCP SDK does not give you: an approval bound to the exact diff, a precondition on the file it previewed, and an integrity-protected requestState. Verified end to end on @modelcontextprotocol/server 2.0.0 against protocol revision 2026-07-28, including the argument-swap that gets past a naive confirm. - [Scalar vs Swagger UI for OpenAPI documentation in ASP.NET Core 11](https://startdebugging.net/2026/08/scalar-vs-swagger-ui-for-openapi-documentation-in-aspnetcore-11/): Scalar ships 1.02 MiB of gzipped JavaScript and a far better request builder. Swagger UI ships 514 KiB and renders OpenAPI 3.2, which is what .NET 11 now emits by default. Measured payloads, the 3.2 gap, endpoint routing on both sides, and the auth details that decide it. - [Zstandard vs Brotli vs Gzip response compression in .NET 11](https://startdebugging.net/2026/08/zstandard-vs-brotli-vs-gzip-response-compression-in-dotnet-11/): Zstandard is the right default for dynamic API responses in .NET 11, but not at the quality the ASP.NET Core provider ships with. Benchmarks on real JSON payloads showing why quality 1 beats the default quality 3 on both size and CPU, when Brotli still wins, and why Gzip survives only as a fallback. - [Fix: An error occurred while preparing SDK package NDK (Side by side): Not in GZIP format](https://startdebugging.net/2026/08/fix-an-error-occurred-while-preparing-sdk-package-ndk-not-in-gzip-format/): The SDK Manager is re-unpacking a corrupt archive it cached in .downloadIntermediates. Delete that folder and the half-extracted ndk/ directory, then re-run the build. - [Fix: Google Play rejects a Flutter or .NET MAUI app for missing 16 KB memory page size support](https://startdebugging.net/2026/08/fix-google-play-rejects-flutter-or-maui-app-for-16-kb-page-size/): Play rejects the bundle because a 64-bit .so still has 4 KB ELF segments. Find the offending library, rebuild it with NDK r28+, and verify with zipalign -P 16. - [Fix: mprotect failed: 13 (Permission denied) in a Flutter iOS debug build](https://startdebugging.net/2026/08/fix-mprotect-failed-permission-denied-in-a-flutter-ios-debug-build/): iOS blocks the Dart VM from flipping memory pages to executable, so JIT dies at startup. Upgrade to Flutter 3.35.0 or later for iOS 26, 3.32.0 for iOS 18.4. There is no entitlement that fixes it. - [MCP Server Design for a Large Internal API Surface](https://startdebugging.net/2026/08/mcp-server-design-for-a-large-internal-api-surface/): Mapping 200 internal REST endpoints to 200 MCP tools puts 200 KB of JSON schema in front of every request. The 2026-07-28 spec also made the usual escape hatch illegal: tools/list MUST NOT vary per-connection, so per-session dynamic registration is gone. Here are the three levers that still work, with measured wire sizes and verified code on @modelcontextprotocol/server 2.0.0. - [Microsoft.Extensions.AI 10.9 Ships Routing and Failover Chat Clients](https://startdebugging.net/2026/08/microsoft-extensions-ai-10-9-routing-and-failover-chat-clients/): Microsoft.Extensions.AI 10.9.0 adds RoutingChatClient, OrderedFailoverChatClient, and SemanticRoutingChatClient. Verified against the real package: what fails over, what does not, and why MEAI001 breaks your build. - [Blazor Server Circuits Now Pause Themselves When the Tab Goes Idle](https://startdebugging.net/2026/08/blazor-auto-pause-idle-circuits-dotnet-11-preview-7/): .NET 11 Preview 7 adds an opt-in package that pauses interactive Server circuits when the browser tab is hidden, freeing memory and SignalR connections held by users who are not actually there. - [Fix: 404 Not Found for blazor.server.js after installing a new .NET SDK](https://startdebugging.net/2026/08/fix-404-not-found-for-blazor-server-js-after-installing-a-new-dotnet-sdk/): blazor.server.js 404s on .NET 10 because the script stopped being an embedded resource. Add RequiresAspNetWebAssets to the host project, or make sure it has a .razor file. - [Fix: MSB4057 The target "ResolvePackageAssets" does not exist in the project in .NET MAUI](https://startdebugging.net/2026/08/fix-msb4057-the-target-resolvepackageassets-does-not-exist-in-the-project/): MSB4057 means a target ran against the outer cross-targeting build of a multi-targeted MAUI project. Pass a TFM, or guard the target with a TargetFramework condition. - [Fix: Visual Studio Test Explorer hangs on an xUnit v3 project while dotnet test passes](https://startdebugging.net/2026/08/fix-visual-studio-test-explorer-hangs-on-xunit-v3-while-dotnet-test-passes/): Test Explorer drives xUnit v3 through Microsoft.Testing.Platform server mode over a JSON-RPC socket, dotnet test does not. Set UseMicrosoftTestingPlatformRunner so both paths are the same code, or set DisableTestingPlatformServerCapability to fall back to VSTest. - [Migrate a Claude Code Setup to Manual Permission Mode Without Breaking Headless Runs](https://startdebugging.net/2026/08/migrate-to-manual-permission-mode-without-breaking-headless-runs/): Tightening a team's default permission mode to Manual is a one-line settings change interactively and a silent outage in CI, because headless runs turn every ask into a deny and still report success. Measured on Claude Code 2.1.224, including the trust gate that drops your allowlist but keeps your mode. - [C# 15 Gets Labeled break and continue in .NET 11 Preview 7](https://startdebugging.net/2026/08/csharp-15-labeled-break-and-continue-dotnet-11-preview-7/): Labeled break and continue landed in the C# section of .NET 11 Preview 7. You can now put a label on a loop and jump straight to it, which retires the bool flag and goto workarounds for nested loops. - [Fix: dotnet tool install --global dotnet-ef throws an error](https://startdebugging.net/2026/08/fix-dotnet-tool-install-global-dotnet-ef-throws-an-error/): Every way dotnet tool install --global dotnet-ef fails on the .NET 10 SDK, with the exact message and exit code for each: already installed, version not found, downgrade blocked, shim conflict, dead NuGet feed, and the runtime mismatch that only breaks after the install succeeds. - [Fix: The 'interceptors' feature is not enabled in this namespace](https://startdebugging.net/2026/08/fix-the-interceptors-feature-is-not-enabled-in-this-namespace-microsoft-aspnetcore-openapi/): CS9137 comes from the Microsoft.AspNetCore.OpenApi source generator. Add InterceptorsNamespaces to every project that calls AddOpenApi, not just the one holding the PackageReference. - [Migrate an Agent from Chunking-and-RAG to a 1M-Token Context Window](https://startdebugging.net/2026/08/migrate-from-rag-chunking-to-a-1m-token-context-window/): The 1M-token context window is now the default on Claude Opus 5, Opus 4.8/4.7/4.6, Sonnet 5, and Sonnet 4.6, with no beta header and no long-context premium. Here is when deleting the vector store actually pays off, the 10x cache-read rule that decides it, the ~30% tokenizer inflation that breaks your sizing estimate, and the seven-step migration with a verification line on each one. - [Claude Code Cloud Sessions Can Now Run on Your Own Hosts](https://startdebugging.net/2026/08/claude-code-self-hosted-runner-cloud-sessions-on-your-own-hosts/): Claude Code 2.1.224 adds claude self-hosted-runner, a public beta that executes cloud sessions on machines you provision. Here is the setup, the one-user runner rule, and what still leaves your network. - [Fix: The type or namespace name 'OpenApiReference' could not be found](https://startdebugging.net/2026/08/fix-the-type-or-namespace-name-openapireference-could-not-be-found/): OpenApiReference was deleted in Microsoft.OpenApi 2.0. Changing the using to Microsoft.OpenApi is not enough: replace each usage with a typed reference such as OpenApiSchemaReference. - [How to replace Flutter's deprecated Radio groupValue and onChanged with RadioGroup](https://startdebugging.net/2026/08/how-to-replace-flutter-deprecated-radio-groupvalue-and-onchanged-with-radiogroup/): Radio.groupValue and Radio.onChanged were deprecated after Flutter 3.32 and RadioGroup shipped in 3.35. A step-by-step migration for Radio, RadioListTile and CupertinoRadio, why dart fix cannot do it for you, and the generic type-inference trap that silently renders a migrated radio disabled. Verified on Flutter 3.44.2 stable. - [How to show a modal window in .NET MAUI 11](https://startdebugging.net/2026/08/how-to-show-a-modal-window-in-dotnet-maui-11/): Two different things get called a modal window in .NET MAUI 11. PushModalAsync gives you a modal page on every platform. A real OS window that disables its owner has no MAUI API at all, so here is the WinUI OverlappedPresenter.IsModal plus Win32 owner-handle interop that actually works on Windows, and what to do on Mac Catalyst instead. - [Migrate Off the Archived MCP Reference Servers (GitHub, Postgres, Slack)](https://startdebugging.net/2026/08/migrate-off-archived-mcp-reference-servers/): The GitHub, Postgres, and Slack MCP servers from modelcontextprotocol/servers were archived in 2025 and their npm packages are deprecated. They pin SDK 1.0.1, which cannot negotiate past protocol 2024-11-05. Here is the audit script, the current replacement for each, and the two pointers in the archive README that are themselves stale. - [Claude Code 2.1.224 Lets One Session Message Another](https://startdebugging.net/2026/08/claude-code-2-1-224-sessions-message-each-other/): Cross-session messaging landed on August 7, 2026. ListAgents and SendMessage move plain text between your sessions, and crossSessionInbound decides what actually arrives. - [How to call a stored procedure and map its results in EF Core 11](https://startdebugging.net/2026/08/how-to-call-a-stored-procedure-and-map-its-results-in-ef-core-11/): Use FromSql on a DbSet when the procedure returns full entity rows, Database.SqlQuery when it returns a projection, and ExecuteSql when it returns nothing. Never chain a LINQ operator onto an EXEC, and never read an output parameter before the reader is disposed. - [How to customize source-generated System.Text.Json serialization with a type-info resolver modifier](https://startdebugging.net/2026/08/how-to-customize-source-generated-system-text-json-serialization-with-a-modifier/): Attach a JsonTypeInfo modifier to a source-generated JsonSerializerContext in .NET 11: why new MyContext(options) silently drops it, the WithAddedModifier setup that works, the fast path you give up (measured), and the naming-policy trap that makes modifiers no-op. - [How to override the default resilience handler that Aspire registers](https://startdebugging.net/2026/08/how-to-override-the-default-resilience-handler-that-aspire-registers/): Aspire's AddServiceDefaults applies a standard resilience handler to every HttpClient. Calling AddStandardResilienceHandler again stacks a second one instead of replacing it. Here are the three real override paths, the -standard options name nobody documents, and the infinite timeout you inherit if you just remove it. - [Migrate Cursor Rules to Skills, Subagents, and Plugins (Cursor 3.11)](https://startdebugging.net/2026/08/migrate-cursor-rules-to-skills-subagents-and-plugins/): Cursor did not delete rules. It split them. This checklist sorts a .cursorrules file and a folder of .mdc rules into the four things they should be in Cursor 3.11: an AGENTS.md, a small set of surviving rules, skills, and subagents, then bundles the result as a plugin. - [Copilot MCP Allowlists Land in Enterprise Managed Settings](https://startdebugging.net/2026/08/copilot-mcp-allowlists-enterprise-managed-settings/): GitHub's August 6, 2026 changelog adds allowedMcpServers and deniedMcpServers to copilot/managed-settings.json. URL and argv matchers, deny-wins precedence, and a fail-closed default the older name-based registry never had. - [How to rename a table in an EF Core 11 migration without losing data](https://startdebugging.net/2026/08/how-to-rename-a-table-in-an-ef-core-11-migration-without-losing-data/): EF Core scaffolds RenameTable when you change the table name, but DropTable plus CreateTable when you rename the entity class. Here is how to tell the two apart, the ToTable trick that makes a class rename free, and the column-rename bug that silently swaps your data. - [How to run a file-based C# app with `dotnet run app.cs` in .NET 11](https://startdebugging.net/2026/08/how-to-run-a-file-based-csharp-app-with-dotnet-run-in-dotnet-11/): A complete guide to file-based C# apps: running a single .cs file with dotnet run, the #:package, #:sdk, #:property, #:project and #:include directives, multi-file scripts with #:ref, argument and stdin handling, the build cache, native AOT publishing, packaging as a dotnet tool, and dotnet project convert when the script outgrows itself. - [How to serve OpenAPI documentation with Scalar instead of Swagger UI in ASP.NET Core 11](https://startdebugging.net/2026/08/how-to-serve-openapi-docs-with-scalar-instead-of-swagger-ui-in-aspnetcore-11/): Replace UseSwaggerUI with MapScalarApiReference in ASP.NET Core 11: routing, multiple documents, pre-filled auth, production gating, offline assets, and the Scalar-only OpenAPI extensions that mark endpoints stable or hidden. - [Migrate a Custom TypeScript Agent Loop to the Cursor SDK (@cursor/sdk 1.0.26)](https://startdebugging.net/2026/08/migrate-a-custom-typescript-agent-loop-to-the-cursor-sdk/): A step-by-step checklist for retiring a hand-rolled while-loop agent and running the same job on @cursor/sdk 1.0.26. The tool bodies survive, the loop does not, and three things you probably rely on have no equivalent: a system prompt string, a tool allowlist, and per-turn control. - [Aspire vs Docker Compose for local multi-service development](https://startdebugging.net/2026/08/aspire-vs-docker-compose-for-local-multi-service-development/): Aspire 13.4.6 wins the .NET inner loop because it runs your projects as host processes you can debug, while Docker Compose wins when the compose file is also your CI and deployment contract. Measured startup and edit-to-running timings on both, the configuration each one injects for you, and the six gotchas that decide it. - [Microsoft.Testing.Platform 2.3: --report-gh Puts Test Failures on the PR Diff](https://startdebugging.net/2026/08/microsoft-testing-platform-2-3-github-actions-annotations/): The .NET blog's August 6, 2026 post on MTP reporting surfaces a batch of extensions that went stable in Microsoft.Testing.Platform 2.3.0: GitHub Actions annotations, crash-resilient TRX streaming, and Azure DevOps flaky history. - [Migrate a Custom Multi-Agent Orchestrator to Handoff Orchestration in Agent Framework 1.17](https://startdebugging.net/2026/08/migrate-a-custom-multi-agent-orchestrator-to-handoff-orchestration/): Replace a hand-rolled classifier-plus-switch router with AgentWorkflowBuilder.CreateHandoffBuilderWith in Microsoft.Agents.AI.Workflows 1.17.0. What breaks, the six migration steps, and the gotchas around agent Ids, descriptions, and context broadcast. - [WebApplicationFactory vs Testcontainers for ASP.NET Core integration tests](https://startdebugging.net/2026/08/webapplicationfactory-vs-testcontainers-for-aspnetcore-integration-tests/): They are not alternatives. WebApplicationFactory boots your app, Testcontainers boots your dependencies. Measured on .NET SDK 10.0.201: a container fixture costs 1.7 s per class against 10 ms for SQLite, and a HasMaxLength(16) violation that Postgres rejects with 22001 is silently accepted by SQLite. - [xUnit v3 vs NUnit vs MSTest in 2026: which should you pick?](https://startdebugging.net/2026/08/xunit-v3-vs-nunit-vs-mstest-in-2026/): Pick xUnit v3 for greenfield .NET projects, NUnit 4.6 if you live in its constraint model, MSTest 4 if you already ship it. A measured comparison on .NET SDK 10.0.201 covering parallelism defaults, test class lifecycle, assertion failure output, and the Microsoft.Testing.Platform version conflict that breaks the NUnit runner. - [Copilot Automations Now Trigger on Issue and PR Comments](https://startdebugging.net/2026/08/copilot-automations-now-trigger-on-issue-and-pr-comments/): GitHub's August 3, 2026 changelog adds a comment trigger to Copilot cloud agent automations, replacing the issue_comment workflow plus PAT plus REST dispatch that teams have been hand-rolling since June. - [Fix: Attempting to reconnect to the server after a Blazor Server circuit disconnects](https://startdebugging.net/2026/08/fix-attempting-to-reconnect-to-the-server-after-a-blazor-circuit-disconnects/): The reconnect modal means the SignalR circuit dropped, not that your app crashed. Decide whether the retry ended in failed or rejected, then fix sticky sessions, the 3-minute retention window, the 32 KB message limit, or persist circuit state with [PersistentState]. - [Fix: flutter doctor reports cmdline-tools component is missing](https://startdebugging.net/2026/08/fix-flutter-doctor-cmdline-tools-component-is-missing/): Install the Android SDK Command-line Tools so the binaries land in /cmdline-tools/latest/bin, point ANDROID_HOME at the SDK root, then re-run flutter doctor. - [gRPC vs REST vs SignalR for service-to-service calls in .NET 11](https://startdebugging.net/2026/08/grpc-vs-rest-vs-signalr-for-service-to-service-calls-in-dotnet-11/): For internal service-to-service calls in .NET 11, default to gRPC when you own both ends of the contract and the call is point-to-point. Use REST with JSON when anything you do not control has to call the service. SignalR is not an RPC transport between services: reach for it only when one producer has to fan a message out to many long-lived consumers. - [Subtask vs Fork vs Background Agent in Claude Code: Which Delegation to Reach For](https://startdebugging.net/2026/08/subtask-vs-fork-vs-background-agent-in-claude-code/): A named subagent starts cold, a fork inherits your whole conversation and shares your prompt cache, and a background agent is a second Claude Code session entirely. The trap is the naming: /fork stopped being the in-session fork at v2.1.212 and /subtask took over. - [Declarative YAML Workflows vs Code-First Orchestration in Microsoft Agent Framework](https://startdebugging.net/2026/08/agent-framework-declarative-yaml-vs-code-first-orchestration/): Use declarative YAML when the graph is a sequential routing decision that non-developers change often. Use code-first WorkflowBuilder the moment you need parallelism, custom executors, or a non-Foundry agent. Here is the decision, the action catalog limits, and the code both ways. - [Fix: AggregateException "One or more errors occurred" when awaiting Task.WhenAll in C#](https://startdebugging.net/2026/08/fix-aggregateexception-one-or-more-errors-occurred-when-awaiting-task-whenall/): await Task.WhenAll rethrows only one of the failures. Keep the WhenAll task in a variable and read its Exception.InnerExceptions to see every error instead of one. - [Fix: CS1998 "This async method lacks 'await' operators and will run synchronously" in C#](https://startdebugging.net/2026/08/fix-cs1998-this-async-method-lacks-await-operators-and-will-run-synchronously/): CS1998 means an async method has no await, so it runs synchronously. Drop the async modifier and return Task.FromResult, or add the await you forgot. - [Fix: HTTP Error 500.30 - ASP.NET Core app failed to start after deploying to IIS](https://startdebugging.net/2026/08/fix-http-error-500-30-aspnet-core-app-failed-to-start-on-iis/): 500.30 means your app threw during startup inside w3wp.exe. The real exception is already in the Windows Application event log under IIS AspNetCore Module V2. Read that first, then rank the fix: missing shared framework, x86/x64 app pool mismatch, missing config, or app pool permissions. - [Live Speech-to-Text in C# with Foundry Local: A 0.67 GB Model and No Cloud Call](https://startdebugging.net/2026/08/foundry-local-live-speech-to-text-in-csharp/): The .NET blog shipped a live microphone transcription sample on August 4, 2026 using Foundry Local and nemotron-speech-streaming-en-0.6b. Here is the session API, the PCM backpressure trap, and which NuGet package to pick. - [Auto Mode vs Manual Approval in Claude Code: What Each Mode Actually Allows Through](https://startdebugging.net/2026/08/auto-mode-vs-manual-approval-what-each-permission-mode-allows/): Manual gates every tool call on you. Auto mode gates them on a classifier with 32 built-in block rules. The mode that surprises people is neither: acceptEdits auto-approves rm, mv, and sed, not just file edits. Measured on Claude Code 2.1.123. - [Fix: No Material widget found in Flutter](https://startdebugging.net/2026/08/fix-no-material-widget-found-in-flutter/): Wrap the subtree in Material(type: MaterialType.transparency) or put the screen in a Scaffold. MaterialApp alone does not provide a Material ancestor, which is why TextField and InkWell assert. - [How to build an infinite-scrolling paginated list in Flutter with ScrollController](https://startdebugging.net/2026/08/how-to-build-an-infinite-scrolling-paginated-list-in-flutter-with-scrollcontroller/): Attach a ScrollController to a ListView.builder, fire the next page when position.extentAfter drops below a prefetch threshold, and guard the fetch with isLoading, hasMore, and error flags. Full implementation plus the short-first-page trap. - [How to enable multi-window support in a Flutter desktop app](https://startdebugging.net/2026/08/how-to-enable-multi-window-support-in-a-flutter-desktop-app/): Flutter 3.44.8 stable still ships no public multi-window API. Here is how to turn on the experimental windowing feature flag on the main channel, use RegularWindowController and WindowManager to open real top-level windows, and what to ship instead if you need stable today. - [NuGet API Keys Get a 30-Day Cap on August 17, and Every Old Key Expires November 1](https://startdebugging.net/2026/08/nuget-api-keys-capped-at-30-days-from-august-17/): NuGet.org drops the 365-day API key option on August 17, 2026, caps new keys at 30 days, and expires every key created before that date on November 1. Here is what breaks and how to move a publish workflow to OIDC trusted publishing. - [Agent Framework's Copilot Provider Turns the Copilot CLI Into a Plain AIAgent](https://startdebugging.net/2026/08/agent-framework-github-copilot-provider-copilot-cli-as-aiagent/): Microsoft.Agents.AI.GitHub.Copilot 1.16.0 shipped on July 30, 2026. The Copilot CLI runtime now sits behind the ordinary AIAgent abstraction, permissions are deny-by-default, and Squad plugs a whole agent team in as one AIAgent. - [Fix: "Write(src/**) is not matched by file permission checks" in Claude Code](https://startdebugging.net/2026/08/fix-write-rule-is-not-matched-by-file-permission-checks/): Claude Code only consults Edit(path) and Read(path) rules. A Write(src/**) allow or deny rule is accepted and then silently ignored. Use Edit() instead. - [How to implement optimistic concurrency with a rowversion token in EF Core 11](https://startdebugging.net/2026/08/how-to-implement-optimistic-concurrency-with-a-rowversion-token-in-ef-core-11/): Add a rowversion concurrency token in EF Core 11: the [Timestamp] and IsRowVersion setup, the SQL EF actually emits, catching DbUpdateConcurrencyException, store-wins vs client-wins vs merge, disconnected APIs with ETags, and the five traps that silently disable the whole thing. - [How to store an enum as a string in EF Core 11 with a value converter](https://startdebugging.net/2026/08/how-to-store-an-enum-as-a-string-in-ef-core-11-with-a-value-converter/): Store C# enums as readable strings instead of ints in EF Core 11: HasConversion, bulk configuration for every enum, the nvarchar(max) trap, the ordering gotcha, and how to migrate an existing int column. - [How to validate options at startup with IValidateOptions in .NET 11](https://startdebugging.net/2026/08/how-to-validate-options-at-startup-with-ivalidateoptions-in-dotnet-11/): Implement IValidateOptions, register it in DI, and chain ValidateOnStart so a bad appsettings.json kills the process instead of the first request that touches it. Covers the .NET 11 Validate() overload, async validation through IAsyncValidateOptions, and the three places ValidateOnStart silently does nothing. - [How to configure Kestrel to serve HTTP/3 in ASP.NET Core 11](https://startdebugging.net/2026/08/how-to-configure-kestrel-to-serve-http-3-in-aspnetcore-11/): A complete guide to enabling HTTP/3 on Kestrel in ASP.NET Core 11: the HttpProtocols.Http1AndHttp2AndHttp3 endpoint config, MsQuic platform requirements on Windows, Linux, and macOS, why the first request is never HTTP/3, how to verify with HttpClient and middleware, QuicTransportOptions tuning, and the firewall and proxy gotchas that make it silently fall back. - [How to replace new Regex(...) with the [GeneratedRegex] source generator in .NET 11](https://startdebugging.net/2026/08/how-to-replace-new-regex-with-the-generatedregex-source-generator-in-dotnet-11/): A complete guide to converting new Regex(pattern, RegexOptions.Compiled) into [GeneratedRegex] in .NET 11: the mechanical rewrite, partial methods vs partial properties, measured startup and throughput numbers, the SYSLIB1040-1045 diagnostics, and the two patterns where the generator silently falls back to a cached Regex. - [How to run CPU-bound work in a Blazor WebAssembly app with Web Workers in .NET 11](https://startdebugging.net/2026/08/how-to-run-cpu-bound-work-in-a-blazor-webassembly-app-with-web-workers-in-dotnet-11/): A complete guide to offloading CPU-bound work off the Blazor WebAssembly UI thread in .NET 11: why Task.Run does not help, the new blazorwebworker template, the WebWorkerClient API with cancellation and timeouts, the JSExport marshalling limits, and the second-runtime cost you pay per worker. - [Visual Studio 18.8 Ships .NET Agent Skills Built In, Then Turns Them All Off](https://startdebugging.net/2026/08/visual-studio-18-8-built-in-dotnet-agent-skills-off-by-default/): Visual Studio 2026 18.8 puts expert-authored .NET and Azure agent skills in the tool picker under a Built-in category, disabled by default. The default is the interesting part. - [The New .NET Unit-Test Agent's Best Idea Is Not Writing Tests](https://startdebugging.net/2026/08/dotnet-skills-polyglot-unit-test-agent-assertion-gate/): On 2026-07-31 Microsoft shipped a polyglot unit-test agent in dotnet/skills. The interesting part is the mandatory pre-completion gate that pseudo-mutates your assertions before the agent is allowed to say it is done. - [Fix: A RenderFlex overflowed by N pixels on the bottom when the keyboard opens in Flutter](https://startdebugging.net/2026/08/fix-renderflex-overflowed-on-the-bottom-when-the-keyboard-opens-in-flutter/): The keyboard shrinks your Scaffold body's max height, so a Column that just fit now overflows. Wrap the body in a scrollable instead of turning resizeToAvoidBottomInset off. - [IOptions vs IOptionsSnapshot vs IOptionsMonitor in .NET 11](https://startdebugging.net/2026/08/ioptions-vs-ioptionssnapshot-vs-ioptionsmonitor-in-dotnet-11/): Default to IOptions. Use IOptionsMonitor when a singleton has to see config reloads, and IOptionsSnapshot only when a scoped consumer wants a value that is stable for one request. The deciding axis is the lifetime of the consumer, not the shape of the settings. - [Copilot Code Review Now Reads Your .github/skills Folder](https://startdebugging.net/2026/07/copilot-code-review-agent-skills-and-mcp-ga/): Agent skills and MCP servers in GitHub Copilot code review went GA on 2026-07-29. Here is where the files live, why skills load from the head branch, and why every MCP tool call in a review is read-only. - [Fix: CocoaPods could not find compatible versions for pod during a Flutter iOS build](https://startdebugging.net/2026/07/fix-cocoapods-could-not-find-compatible-versions-for-pod-in-a-flutter-ios-build/): Read the second line of the error, not the first. It names the cause: a stale Podfile.lock snapshot, a deployment target that is too low, or two plugins pinning the same transitive pod. - [Fix: Gradle task assembleDebug failed with exit code 1 in a Flutter Android build](https://startdebugging.net/2026/07/fix-gradle-task-assembledebug-failed-with-exit-code-1-in-flutter/): That line is a wrapper, not the error. Re-run with flutter run --verbose or ./gradlew assembleDebug --stacktrace, read the real Gradle failure, then fix that. - [Fix: A Long MCP Tool Call Gets Auto-Backgrounded After Two Minutes Mid-Task](https://startdebugging.net/2026/07/fix-long-mcp-tool-call-auto-backgrounded-after-two-minutes/): Claude Code 2.1.212+ moves any main-conversation MCP tool call still running at two minutes into a background task. Set CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS=0 to stop it, raise the threshold to move the line, or send progress notifications from the server. - [Fix: Unable to load asset in Flutter after adding an image to pubspec.yaml](https://startdebugging.net/2026/07/fix-unable-to-load-asset-in-flutter-after-adding-an-image-to-pubspec-yaml/): The asset key is missing from the compiled bundle, not from your disk. Fix the pubspec indentation, add the trailing slash, match the key exactly, then full restart. - [Fix: JavaScript interop calls cannot be issued at this time (Blazor prerendering)](https://startdebugging.net/2026/07/fix-javascript-interop-calls-cannot-be-issued-at-this-time-blazor-prerendering/): Prerendering runs your component on the server with no browser attached, so IJSRuntime throws. Move the call into OnAfterRenderAsync, gate it on RendererInfo.IsInteractive, or disable prerendering. - [Fix: .mcp.json servers never start because the workspace is marked untrusted](https://startdebugging.net/2026/07/fix-mcp-json-servers-never-start-because-the-workspace-is-untrusted/): Project MCP servers stuck at Pending approval are not misconfigured. Run claude interactively in the folder, accept the workspace trust dialog, then approve the servers. - [Fix: Your startup project doesn't reference Microsoft.EntityFrameworkCore.Design](https://startdebugging.net/2026/07/fix-startup-project-doesnt-reference-microsoft-entityframeworkcore-design/): Add Microsoft.EntityFrameworkCore.Design to the startup project that dotnet ef builds, not the project holding your DbContext, and pass -s in layered solutions. - [Visual Studio 18.9 Lets You Set Thinking Effort Per Model](https://startdebugging.net/2026/07/visual-studio-18-9-thinking-effort-control-per-model/): Visual Studio 18.9 Insiders 2 adds a per-model thinking effort control with Low through Max levels, exposing the same reasoning-effort dial the underlying model APIs take. - [Fix: Couldn't find a valid ICU package installed on the system in a .NET container](https://startdebugging.net/2026/07/fix-couldnt-find-a-valid-icu-package-installed-on-the-system/): Your base image has no ICU. Either install icu-libs and icu-data-full, switch to an -extra image variant, or set InvariantGlobalization=true and accept ordinal-only string behavior. - [Fix: Reflection-based serialization has been disabled for this application](https://startdebugging.net/2026/07/fix-reflection-based-serialization-has-been-disabled-for-this-application/): This InvalidOperationException means PublishTrimmed or PublishAot flipped JsonSerializerIsReflectionEnabledByDefault to false. Fix it with a source-generated JsonSerializerContext. - [Fix: "The model for context 'X' has pending changes" in EF Core 11](https://startdebugging.net/2026/07/fix-the-model-for-context-has-pending-changes-in-ef-core-11/): EF Core throws PendingModelChangesWarning when your model no longer matches the last migration snapshot. Add the migration, or fix the false positive behind it. - [Fix: a Windows path in your agent config silently turns into a tab, a newline, or a Chinese character](https://startdebugging.net/2026/07/fix-windows-path-in-mcp-json-turns-into-tab-newline-or-cjk-character/): Folder names starting with t, b, n, r or u make a Windows path parse cleanly as JSON and still resolve wrong. Use forward slashes or double every backslash. - [MCP C# SDK 2.0 Ships: Stateless by Default and MCP9005 on Your Old Code](https://startdebugging.net/2026/07/mcp-csharp-sdk-2-0-stateless-by-default-and-mcp9005/): ModelContextProtocol 2.0.0 landed on 2026-07-28 with the stateless HTTP transport on by default, Multi Round-Trip Requests replacing server-initiated elicitation, and an analyzer warning on ElicitAsync and SampleAsync. - [GitHub's MCP Server Went Stateless and Deleted Its Redis Session Store](https://startdebugging.net/2026/07/github-mcp-server-goes-stateless-redis-session-store/): On 2026-07-23 GitHub shipped the MCP 2026-07-28 revision ahead of the spec date. The notable part is the subtraction: no initialize handshake, no Mcp-Session-Id, no Redis. - [How to apply EF Core 11 migrations in production with dotnet ef migrations bundle](https://startdebugging.net/2026/07/how-to-apply-ef-core-11-migrations-in-production-with-migrations-bundle/): A complete guide to deploying EF Core 11 schema changes with migration bundles: building efbundle in CI, the appsettings.json trap with named connection strings, self-contained bundles and the Alpine musl RID, migration locking since EF Core 9, rolling back with a target migration, and why per-migration transactions do not save you on MySQL. - [How to build a Flutter web app with WebAssembly using flutter build web --wasm](https://startdebugging.net/2026/07/how-to-build-a-flutter-web-app-with-webassembly-using-flutter-build-web-wasm/): A complete guide to shipping a Flutter web app compiled to WebAssembly on Flutter 3.44: what the two emitted builds look like, why Firefox and Safari still get JavaScript because of the loader's wasmAllowList, migrating off dart:html for dart2wasm, the COOP/COEP headers that decide whether skwasm runs multi-threaded, and how to prove at runtime which build the browser actually loaded. - [How to use Shell route parameters and query properties for navigation in .NET MAUI 11](https://startdebugging.net/2026/07/how-to-use-shell-route-parameters-and-query-properties-in-dotnet-maui-11/): A complete guide to passing data through Shell navigation in .NET MAUI 11: registering global routes, string query parameters, QueryPropertyAttribute vs IQueryAttributable, the URL-decoding asymmetry between the two, single-use ShellNavigationQueryParameters vs the IDictionary overload that leaks, passing data backwards with ..?key=value, and why QueryPropertyAttribute is not trim safe. - [How to Run a Background Coding Agent That Auto-Commits and Opens a Draft PR When It Finishes](https://startdebugging.net/2026/07/run-a-background-coding-agent-that-auto-commits-and-opens-a-draft-pr/): Two ways to make a coding agent land its own work: Claude Code 2.1.198+ background sessions commit, push, and open a draft PR from their worktree with no config, or wrap any agent CLI in a git worktree plus gh pr create --draft. Covers the worktree guardrails, the subagent-vs-session distinction, the GITHUB_TOKEN trigger trap, and why there is still no off switch. - [Cursor Router Makes Auto a Per-Request Model Decision](https://startdebugging.net/2026/07/cursor-router-makes-auto-a-per-request-model-decision/): Cursor Router shipped on July 22, 2026. Auto now classifies every request and routes it to a different model, and the Cost, Balance, and Intelligence modes change both the quality you get and how you are billed. - [How to diagnose a managed memory leak with dotnet-gcdump and dotnet-dump](https://startdebugging.net/2026/07/how-to-diagnose-a-managed-memory-leak-with-dotnet-gcdump-and-dotnet-dump/): A complete workflow for finding a managed memory leak in .NET 11: confirm growth with dotnet-counters, take two gcdumps and diff them, then collect a dump and use dumpheap, gcroot, and objsize in dotnet-dump analyze to find what is still holding the reference. - [How to publish a .NET 11 app as a container image with dotnet publish /t:PublishContainer](https://startdebugging.net/2026/07/how-to-publish-a-dotnet-11-app-as-a-container-image-with-publishcontainer/): A complete guide to building container images from a .NET 11 app with no Dockerfile: the PublishContainer target, ContainerRepository and ContainerImageTags, base image selection through ContainerBaseImage and ContainerFamily, pushing to a registry and how authentication resolves, multi-arch OCI image indexes, the non-root default user, entrypoint control, tarball output for scanners, and the cases where you still need a Dockerfile. - [How to serialize a polymorphic type hierarchy with JsonDerivedType in System.Text.Json](https://startdebugging.net/2026/07/how-to-serialize-a-polymorphic-type-hierarchy-with-jsonderivedtype-in-system-text-json/): A complete guide to polymorphic JSON in .NET 11: JsonDerivedType and JsonPolymorphic, why the declared type decides everything, the $type ordering rule, every exception the feature throws, the contract model for types you do not own, and what ASP.NET Core emits in OpenAPI. - [How to Stream Nested Subagent Output From a Headless Claude Code Run](https://startdebugging.net/2026/07/stream-nested-subagent-output-from-a-headless-claude-code-run/): By default a headless Claude Code run emits only tool_use and tool_result blocks from its subagents, so the delegated reasoning is invisible. Pass --forward-subagent-text (Claude Code 2.1.211+) to get subagent text and thinking in the stream-json output, and demultiplex it by parent_tool_use_id. - [Claude Code 2.1.219 Reopens Nested Subagents, Three Layers Deep](https://startdebugging.net/2026/07/claude-code-2-1-219-nested-subagents-three-layers-deep/): Version 2.1.219 raises the default subagent spawn depth from 1 to 3, adds a workflowSizeGuideline settings key, and ships a fail-closed sandbox network allowlist. - [How to add Aspire to an existing ASP.NET Core solution without restructuring it](https://startdebugging.net/2026/07/how-to-add-aspire-to-an-existing-aspnetcore-solution-without-restructuring-it/): Add Aspire 13.4 to a brownfield ASP.NET Core solution by adding two new projects and three lines per service: aspire init, AppHost wiring with AddProject and WithReference, keeping your existing launchSettings.json and connection strings, and the resilience, health-endpoint, and proxy gotchas that bite on day one. - [How to Lock Down a Coding Agent's Network Egress With a Strict Host Allowlist](https://startdebugging.net/2026/07/how-to-lock-down-a-coding-agents-network-egress-with-a-strict-host-allowlist/): Claude Code, Cursor, and the GitHub Copilot coding agent all ship host allowlists for outbound traffic, and all three default to something looser than you want. The exact settings keys, a policy you can copy, and the four surfaces the allowlist does not cover. - [How to test time-dependent code with TimeProvider and FakeTimeProvider in .NET 11](https://startdebugging.net/2026/07/how-to-test-time-dependent-code-with-timeprovider-and-faketimeprovider-in-dotnet-11/): Replace DateTime.UtcNow, Stopwatch, and Task.Delay with System.TimeProvider so tests can control the clock: DI registration, FakeTimeProvider.Advance and SetUtcNow, testing timeouts and PeriodicTimer-based BackgroundServices, plus the Advance-continuation and xUnit v2 gotchas. - [How to write integration tests with WebApplicationFactory in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-write-integration-tests-with-webapplicationfactory-in-aspnetcore-11/): A complete guide to WebApplicationFactory in ASP.NET Core 11: making the Program entry point reachable, ConfigureTestServices vs ConfigureWebHost, replacing the EF Core registration through IDbContextOptionsConfiguration, the new ConfigureHostApplicationBuilder hook in .NET 11 preview 6, faking authentication, WebApplicationFactoryClientOptions, and UseKestrel when you need a real port. - [Agent Framework Declarative Workflows 1.0: Your Orchestration Graph Is Now a YAML File](https://startdebugging.net/2026/07/agent-framework-declarative-workflows-1-0-yaml-orchestration/): Microsoft Agent Framework shipped Declarative Workflows 1.0 on July 23, 2026. Python's agent-framework-declarative 1.0.0 reaches parity with the .NET Microsoft.Agents.AI.Workflows.Declarative package, so multi-agent routing lives in YAML instead of C#. - [Migrate a setState StatefulWidget to a Riverpod Notifier in Flutter](https://startdebugging.net/2026/07/migrate-a-setstate-statefulwidget-to-a-riverpod-notifier-in-flutter/): A step-by-step move from widget-local setState to a Riverpod 3.x Notifier: classify what actually leaves the widget, write the Notifier, convert to ConsumerWidget, and survive the == filtering, build() re-entry, and autoDispose defaults that bite setState refugees. Tested on Flutter 3.44, Dart 3.x, flutter_riverpod 3.3.2. - [Migrate AdMob from Xamarin.Forms to .NET MAUI with Plugin.AdMob](https://startdebugging.net/2026/07/migrate-admob-from-xamarin-forms-to-net-maui/): Port your ads layer from Xamarin.Forms to .NET MAUI: what to delete (MTAdmob, custom AdView renderers, Xamarin.GooglePlayServices.Ads bindings), what replaces it in Plugin.AdMob, and a line-by-line API mapping for banner, interstitial, rewarded, rewarded interstitial and app open — plus the singleton-to-DI shift and the UMP consent gap that stops ads serving in the EEA. - [Migrate an MCP Server from SSE to Streamable HTTP (2026 Checklist)](https://startdebugging.net/2026/07/migrate-an-mcp-server-from-sse-to-streamable-http/): The legacy HTTP+SSE transport used two endpoints and a sticky connection. Streamable HTTP uses one. Here is the step-by-step migration for the TypeScript and Python SDKs, the client configs you have to repoint, and the proxy buffering gotcha that makes the new endpoint look broken. - [Migrate from blocking .Result/.Wait() calls to async all the way up in a legacy C# codebase](https://startdebugging.net/2026/07/migrate-from-blocking-result-and-wait-calls-to-async-all-the-way-up-in-csharp/): A staged playbook for removing sync-over-async from an existing .NET codebase: inventory with analyzers, measure ThreadPool starvation, convert one call chain at a time, and ratchet the count to zero on .NET 11. - [Migrate from ILogger string interpolation to structured logging message templates in .NET 11](https://startdebugging.net/2026/07/migrate-from-ilogger-string-interpolation-to-message-templates-in-dotnet-11/): A step-by-step guide to converting $-interpolated ILogger calls into message templates and [LoggerMessage] source-generated methods on .NET 11: what breaks, how to sweep a codebase with CA2254, how to verify the JSON state, and how to roll back. - [Endpoint filters vs middleware in ASP.NET Core 11: which should you use?](https://startdebugging.net/2026/07/endpoint-filters-vs-middleware-in-aspnetcore-11/): A decision guide for ASP.NET Core 11: middleware runs for every request before your handler binds, endpoint filters run only for the matched endpoint after binding and can see the typed arguments. Includes a feature matrix, when-to-pick-each scenarios, the ordering rules, and the gotchas that force the choice. - [Migrate Copilot Prompt Files to Agent Skills: the Full Checklist](https://startdebugging.net/2026/07/migrate-copilot-prompt-files-to-agent-skills/): How to convert .github/prompts/*.prompt.md into .github/skills//SKILL.md so GitHub Copilot loads them automatically. What breaks, what maps 1:1, and how to verify each skill fires. - [Migrate Swashbuckle IOperationFilter and ISchemaFilter to OpenAPI transformers in .NET 11](https://startdebugging.net/2026/07/migrate-swashbuckle-ioperationfilter-and-ischemafilter-to-transformers-in-dotnet-11/): A filter-by-filter porting reference for moving Swashbuckle IOperationFilter and ISchemaFilter code to the built-in operation and schema transformers in .NET 11, with the context-object field mapping and the Microsoft.OpenApi v2 changes that bite. - [Monetizing a .NET MAUI app with AdMob (banner, interstitial, rewarded) in 2026](https://startdebugging.net/2026/07/monetize-a-net-maui-app-with-admob-banner-interstitial-rewarded/): A practical, end-to-end guide to monetizing a .NET MAUI app with Google AdMob using Plugin.AdMob. Install one NuGet, call UseAdMob(), and wire up banner, interstitial, and rewarded ads — with consent built in via UMP, test ad units, the exact service APIs, preloading patterns, and a production checklist. Tested on .NET 10 / MAUI. - [.Result vs .Wait() vs GetAwaiter().GetResult() vs await in C#: which should you use?](https://startdebugging.net/2026/07/result-wait-vs-getawaiter-getresult-vs-await-in-csharp/): await is the right answer almost every time. When you truly must block, GetAwaiter().GetResult() beats .Result and .Wait() because it throws the original exception. A decision matrix for .NET 11 and C# 14. - [SignalR clients can finally cancel a running hub method in .NET 11 Preview 6](https://startdebugging.net/2026/07/signalr-client-cancel-hub-method-dotnet-11-preview-6/): Cancelling the CancellationToken you pass to InvokeAsync now reaches the server and cancels the hub method. This closes a SignalR request open since 2019. - [Claude Code 2.1.218 Runs /code-review as a Background Subagent](https://startdebugging.net/2026/07/claude-code-2-1-218-code-review-runs-as-a-background-subagent/): Version 2.1.218 moves /code-review off your main conversation into a background subagent, and fork-context skills now background by default. Here is what changed and how to opt out. - [Cursor Cloud Agents vs GitHub Copilot Coding Agent for Background PRs](https://startdebugging.net/2026/07/cursor-cloud-agents-vs-github-copilot-coding-agent-for-background-prs/): Pick Copilot coding agent when the work starts and ends on GitHub and you want issue-to-PR with native branch protection. Pick Cursor cloud agents when you want a live, editor-attached VM, multi-repo tasks, and to take over the run by hand. Full feature matrix, the 59-minute cap, the Actions-approval gotcha, and June 2026 billing for both. - [How to show native video ads in your .NET MAUI app with Plugin.AdMob](https://startdebugging.net/2026/07/how-to-show-native-video-ads-in-your-maui-app-with-plugin-admob/): Plugin.AdMob now renders native video ads. Drop a MediaView into your NativeAdView template, request video with VideoOptions, and wire up the OnVideoStart/Play/Pause/End lifecycle events — including the custom-controls caveat that trips everyone up on AdMob inventory. Full walkthrough with a complete working example, tested on Android with the native video demo unit. - [riverpod vs flutter_riverpod vs hooks_riverpod: which package do I actually need?](https://startdebugging.net/2026/07/riverpod-vs-flutter-riverpod-vs-hooks-riverpod-which-package-do-i-need/): Install flutter_riverpod for almost every Flutter app. Use riverpod only for Dart-only code, and hooks_riverpod only if you already use flutter_hooks. - [Typed results (Results<>) vs IResult vs IActionResult in ASP.NET Core 11](https://startdebugging.net/2026/07/typed-results-vs-iresult-vs-iactionresult-in-aspnetcore-11/): In ASP.NET Core 11, return Results with TypedResults for minimal APIs and ActionResult for controllers. Treat bare IResult and bare IActionResult as escape hatches: they compile for any response but describe nothing to OpenAPI, so you pay for them in hand-written ProducesResponseType attributes. - [WebApplication.CreateBuilder vs CreateSlimBuilder vs CreateEmptyBuilder in ASP.NET Core 11](https://startdebugging.net/2026/07/webapplication-createbuilder-vs-createslimbuilder-vs-createemptybuilder-in-aspnetcore-11/): Use CreateBuilder for a normal app, CreateSlimBuilder when you publish trimmed or Native AOT behind a TLS proxy, and CreateEmptyBuilder only when you want to register every service yourself. Here is the feature matrix and the gotchas that force the call. - [Claude Code 2.1.213 Puts Hard Caps on Runaway Subagent Fleets](https://startdebugging.net/2026/07/claude-code-2-1-213-caps-runaway-subagent-fleets/): Version 2.1.213 caps concurrent subagents and stops nested spawns by default, building on the per-session limits from 2.1.212. Here are the new defaults and env vars. - [Complex types vs owned entities in EF Core 11: which should you pick?](https://startdebugging.net/2026/07/complex-types-vs-owned-entities-in-ef-core-11/): On EF Core 11, default to complex types for value objects and drop to owned entities only when you need a separate table or a collection mapped to its own rows. - [Fix: Claude Code Autocompact Thrashing on a Large File or Tool Output](https://startdebugging.net/2026/07/fix-claude-code-autocompact-thrashing-on-large-file-or-tool-output/): Claude Code compacts, then a single oversized file read or tool result immediately refills the window and it compacts again. Drop the item with /clear, read files in slices, and force big output to disk. - [Output caching vs response caching in ASP.NET Core 11: which should you use?](https://startdebugging.net/2026/07/output-caching-vs-response-caching-in-aspnetcore-11/): Output caching is the right default for almost every server-side app in ASP.NET Core 11. Response caching only wins when your goal is to steer browser and proxy caches through HTTP headers. Here is the decision, with a feature matrix and the gotchas that force the call. - [TPH vs TPT vs TPC inheritance mapping in EF Core 11: which should you pick?](https://startdebugging.net/2026/07/tph-vs-tpt-vs-tpc-inheritance-mapping-in-ef-core-11/): On EF Core 11, default to TPH for almost every hierarchy, reach for TPC only when you mostly query one leaf type and a benchmark proves it wins, and use TPT only when an external constraint forces you to. - [Microsoft Agent Framework orchestration: sequential vs concurrent vs group chat vs handoff vs magentic](https://startdebugging.net/2026/07/agent-framework-orchestration-patterns-compared/): Sequential for pipelines, concurrent for fan-out, group chat for moderated rounds, handoff for routing, magentic for open-ended planning. The C# builders and how to choose. - [Fix: CS4014 "Because this call is not awaited, execution of the current method continues" in C#](https://startdebugging.net/2026/07/fix-cs4014-because-this-call-is-not-awaited-execution-continues-in-csharp/): CS4014 means you called a Task-returning method without awaiting it. Add await, or discard with _ = if fire-and-forget is truly intended, and handle exceptions. - [Fix: System.InvalidOperationException: Sequence contains no elements](https://startdebugging.net/2026/07/fix-invalidoperationexception-sequence-contains-no-elements/): This exception means you called .First() or .Single() on an empty sequence. Use FirstOrDefault/SingleOrDefault and null-check, or guard the query, or fix why the source is empty. - [Fix: Riverpod 3.0 StreamProvider stops emitting because updates are filtered by ==](https://startdebugging.net/2026/07/fix-riverpod-3-0-streamprovider-stops-emitting-filtered-by-equality/): In Riverpod 3.0 every provider filters listener notifications with ==, not identity. A StreamProvider that re-emits the same mutable object stops rebuilding the UI after the first frame. Here is why it happens and three ways to fix it. Tested on flutter_riverpod 3.3.2, Flutter 3.44, Dart 3.x. - [System.Text.Json Learns to Serialize C# Union Types in .NET 11 Preview 6](https://startdebugging.net/2026/07/serialize-csharp-union-types-with-system-text-json-dotnet-11-preview-6/): How System.Text.Json in .NET 11 Preview 6 serializes the new C# union types by writing the active case, and the JsonUnionAttribute and type-classifier APIs that handle ambiguous cases. - [Async validation lands in Minimal APIs with .NET 11 Preview 6](https://startdebugging.net/2026/07/aspnetcore-11-async-validation-minimal-apis-preview-6/): Preview 6 adds AsyncValidationAttribute and IAsyncValidatableObject so DataAnnotations rules can hit the database before your endpoint runs, without blocking a thread. - [Fix: CS8618 "Non-nullable property must contain a non-null value when exiting constructor" in C#](https://startdebugging.net/2026/07/fix-cs8618-non-nullable-property-must-contain-a-non-null-value-when-exiting-constructor/): CS8618 means a non-nullable field or property was not initialized by the time the constructor finished. Set it in the constructor, give it a default, mark it required, or make it nullable. - [Fix: deadlock when calling .Result or .Wait() on an async method in C#](https://startdebugging.net/2026/07/fix-deadlock-when-calling-result-or-wait-on-an-async-method-in-csharp/): Blocking on an async Task with .Result or .Wait() deadlocks when a SynchronizationContext is present. Here is why it hangs and how to fix it in .NET 11 and C# 14. - [Fix: MCP Server Throws "fetch is not defined" and EBADENGINE on Node.js Below 18](https://startdebugging.net/2026/07/fix-mcp-server-fetch-is-not-defined-on-node-below-18/): An MCP server on Node 16 warns EBADENGINE at install, then dies with 'fetch is not defined' on the first tool call. Upgrade to Node 18+ (20+ for the 2.x SDK) or polyfill the web globals. - [How to disable Riverpod 3.0's automatic provider retry](https://startdebugging.net/2026/07/how-to-disable-riverpod-3-0-automatic-provider-retry/): Riverpod 3.0 retries a failed provider up to 10 times by default. Pass a retry function that returns null on ProviderScope, ProviderContainer, or an individual provider to turn it off or bound it. - [Fix: Claude Code misreads an MCP server's stderr startup message as an error](https://startdebugging.net/2026/07/fix-claude-code-misreads-mcp-server-stderr-as-error/): Claude Code logs every MCP server stderr line at [ERROR] and marks working servers as failed. If your tools still run, it is cosmetic. Here is how to confirm it and quiet the noise. - [How to add a health check endpoint to a minimal API in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-add-a-health-check-endpoint-to-a-minimal-api-in-aspnetcore-11/): A complete, working guide to health checks in an ASP.NET Core 11 minimal API: AddHealthChecks and MapHealthChecks, custom IHealthCheck classes returning Healthy/Degraded/Unhealthy, the AddDbContextCheck EF Core probe, tag-based liveness and readiness endpoints for Kubernetes, a JSON ResponseWriter, ResultStatusCodes, securing the endpoint with RequireAuthorization and RequireHost, and pushing results with IHealthCheckPublisher. - [How to add an endpoint filter to a minimal API in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-add-an-endpoint-filter-to-a-minimal-api-in-aspnetcore-11/): A complete, working guide to endpoint filters in an ASP.NET Core 11 minimal API: AddEndpointFilter with an inline delegate, IEndpointFilter classes with DI, GetArgument and the Arguments list, short-circuiting with Results.Problem, FIFO/FILO ordering across multiple filters, group-level filters on MapGroup, and AddEndpointFilterFactory for signature-aware filters. - [How to log the SQL that EF Core 11 generates](https://startdebugging.net/2026/07/how-to-log-the-sql-that-ef-core-11-generates/): See the exact SQL Entity Framework Core 11 sends to your database, with parameter values, using LogTo, Microsoft.Extensions.Logging, and ToQueryString. - [MAUI Mobile Is CoreCLR Only in .NET 11 Preview 6: The Mono Escape Hatch Is Gone](https://startdebugging.net/2026/07/maui-coreclr-only-runtime-in-dotnet-11-preview-6/): .NET 11 Preview 6 removes the separate Mono path for MAUI on Android, iOS, and Mac Catalyst. CoreCLR is now the only mobile runtime, the UseMonoRuntime escape hatch is closed, and GA is set for November 2026. - [C# 15 Extension Indexers Round Out Extension Members in .NET 11 Preview 6](https://startdebugging.net/2026/07/csharp-15-extension-indexers-dotnet-11-preview-6/): Extension indexers landed in .NET 11 Preview 6, letting you add this[...] access to types you do not own. They complete the extension members story that started with methods and properties in C# 14. - [Fix: ScaffoldMessenger.of() was called with a context that does not contain a Scaffold (Flutter)](https://startdebugging.net/2026/07/fix-scaffoldmessenger-of-context-does-not-contain-a-scaffold-in-flutter/): This error means the BuildContext you passed is above the Scaffold or ScaffoldMessenger, not below it. Wrap the caller in a Builder, extract it into its own widget, or use a GlobalKey. - [Fix: type 'Null' is not a subtype of type 'X' in Dart](https://startdebugging.net/2026/07/fix-type-null-is-not-a-subtype-of-type-in-dart/): This runtime error means a null reached a cast expecting a non-nullable type, almost always from JSON. Make the field nullable, or supply a default before the cast runs. - [How to Package Reusable Domain Expertise as an Agent Skill in .NET with the Microsoft Agent Framework](https://startdebugging.net/2026/07/package-domain-expertise-as-an-agent-skill-microsoft-agent-framework/): There is no single Skill type in the Microsoft Agent Framework, but you can package domain expertise as a reusable agent, reuse it in-process with AsAIFunction, and advertise it across frameworks as an A2A AgentSkill. Full walkthrough on Agent Framework 1.0 and .NET 11. - [ASP.NET Core 11 Preview 6 turns on automatic CSRF protection](https://startdebugging.net/2026/07/aspnetcore-11-automatic-csrf-protection-fetch-metadata-preview-6/): Preview 6 rejects unsafe cross-origin browser requests by default, reading the Sec-Fetch-Site header instead of an antiforgery token. Here is what it blocks and how to opt out. - [Fix: "413 Request Entity Too Large" when uploading a file to an ASP.NET Core endpoint](https://startdebugging.net/2026/07/fix-413-request-entity-too-large-uploading-a-file-in-aspnetcore-11/): Kestrel caps request bodies at 30,000,000 bytes by default and returns 413 when you exceed it. Raise MaxRequestBodySize globally, per endpoint, or in web.config behind IIS. - [Fix: all MCP servers fail to load after one malformed-JSON syntax error in the config](https://startdebugging.net/2026/07/fix-all-mcp-servers-fail-to-load-after-malformed-json-in-config/): One trailing comma or unescaped Windows path in your MCP config makes every server vanish, not just the broken one. Validate the JSON, fix the five usual suspects, restart. - [Fix: System.InvalidOperationException: Headers are read-only, response has already started](https://startdebugging.net/2026/07/fix-headers-are-read-only-response-has-already-started-in-aspnetcore/): You set a header, status code, or content type after the body was already flushed. Set all headers before the first write, or guard with HttpResponse.HasStarted and OnStarting. - [Fix: "The property could not be mapped, because it is not a supported primitive type or a valid entity type" in EF Core 11](https://startdebugging.net/2026/07/fix-property-could-not-be-mapped-not-a-supported-primitive-type-in-ef-core-11/): EF Core hit a property it does not know how to store. Map it as a complex type, convert it with HasConversion, give it a key, or ignore it with [NotMapped]. - [How to Set Per-Session AI Credit Spend Limits in the Copilot CLI and SDK](https://startdebugging.net/2026/07/set-ai-credit-session-limits-in-github-copilot-cli-and-sdk/): Copilot CLI 1.0.66 and SDK 1.0.5 (public preview, July 1 2026) add per-session AI credit limits. Cap what a single agent run can spend with --max-ai-credits, /limits set, or SessionLimitsConfig, and understand why it is a soft cap that can overshoot. - [Claude Code 2.1.208 Lets You Remap jj to Escape in Vim Insert Mode](https://startdebugging.net/2026/07/claude-code-2-1-208-vim-insert-mode-remaps-jj-to-escape/): Claude Code 2.1.208 (July 14, 2026) adds vimInsertModeRemaps, so vim users can map two-key insert-mode sequences like jj to Escape in the prompt editor. Plus a screen reader mode and a corporate process wrapper. - [How to Distribute a Team MCP Server Config Across Cursor Cloud Agents and the IDE](https://startdebugging.net/2026/07/distribute-team-mcp-config-across-cursor-cloud-agents-and-ide/): Commit .cursor/mcp.json for the IDE, register shared servers under Dashboard > Integrations & MCP for cloud agents, and keep secrets out of git with ${env:...}. The full two-surface setup for Cursor 3.11 (July 2026), including why the repo file alone does not reach cloud agents. - [How to add a Hero animation between two screens in Flutter](https://startdebugging.net/2026/07/how-to-add-a-hero-animation-between-two-screens-in-flutter/): Wrap the same widget on both routes in a Hero with an identical tag and Flutter animates its position and size across the navigation. Full guide: images, flightShuttleBuilder, createRectTween, RectTween arcs, gesture transitions, and the tag collisions that break it. Tested on Flutter 3.44, Dart 3.12. - [How to add response compression to an ASP.NET Core 11 API](https://startdebugging.net/2026/07/how-to-add-response-compression-to-an-aspnetcore-11-api/): A complete guide to response compression in ASP.NET Core 11: AddResponseCompression and UseResponseCompression, the new built-in Zstandard provider alongside Brotli and Gzip, compression levels, EnableForHttps and the CRIME/BREACH risk, custom MIME types, middleware ordering, and when to let the reverse proxy do it instead. - [How to return a typed Results union from a minimal API endpoint in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-return-a-typed-results-union-from-a-minimal-api-endpoint-in-aspnetcore-11/): Declare the handler's return type as Results, NotFound> and return TypedResults.Ok / TypedResults.NotFound: the union gives compile-time checking that the handler only returns what it declares, and it self-describes to OpenAPI so you never write .Produces by hand. Covers async handlers, the six-type limit, and testing in ASP.NET Core 11. - [How to Build a Cursor Automation with the /automate Skill and GitHub Triggers](https://startdebugging.net/2026/07/build-a-cursor-automation-with-automate-skill-and-github-triggers/): Use Cursor 3.8's /automate skill to spin up a cloud agent that fires on GitHub events. Covers the five GitHub triggers added June 18, 2026, tool config, repo scope, and the Max Mode billing gotcha. - [Claude Code Auto Mode Now Catches the Empty-Variable rm -rf](https://startdebugging.net/2026/07/claude-code-auto-mode-guards-empty-variable-rm-rf/): Claude Code's Week 28 releases (v2.1.202-v2.1.206, July 6-10 2026) teach auto mode to pause before an rm -rf whose path came from a variable that expanded to nothing, closing the classic rm -rf / footgun. - [How to cancel a StreamSubscription in dispose to avoid a setState-after-dispose crash in Flutter](https://startdebugging.net/2026/07/how-to-cancel-a-streamsubscription-in-dispose-in-flutter/): A stream keeps emitting after the user leaves the screen, its onData calls setState on a disposed State, and Flutter throws. Store the subscription, cancel it in dispose before super.dispose, and the callback can never fire on a dead widget. The full pattern for Flutter 3.44. - [How to configure table-per-hierarchy (TPH) inheritance mapping in EF Core 11](https://startdebugging.net/2026/07/how-to-configure-table-per-hierarchy-tph-inheritance-mapping-in-ef-core-11/): TPH is EF Core's default inheritance strategy: one table, one discriminator column. Here is how to configure the discriminator, share columns, handle nullable derived properties, and the gotchas on EF Core 11. - [How to guard setState with the mounted check after an async gap in Flutter](https://startdebugging.net/2026/07/how-to-guard-setstate-with-the-mounted-check-after-an-async-gap-in-flutter/): After an await, the widget may already be disposed, and calling setState throws. Guard the resume with if (!mounted) return; and, better, cancel the work that triggers it. The full pattern for Flutter 3.44. - [Cursor 3.11 Side Chats: Branch a Question Without Derailing the Main Agent](https://startdebugging.net/2026/07/cursor-3-11-side-chats-parallel-agent-threads/): Cursor 3.11 (July 10, 2026) adds side chats, durable parallel agent threads you spawn with /side or /btw and pull back into the main conversation with an at-mention. Plus Cmd+K transcript search and new cloud agent hooks. - [How to add output caching to a minimal API in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-add-output-caching-to-a-minimal-api-in-aspnetcore-11/): A complete, working guide to output caching in an ASP.NET Core 11 minimal API: AddOutputCache and UseOutputCache, CacheOutput on endpoints and MapGroup, named and base policies, Expire, VaryByQuery and VaryByHeader, tag-based eviction with EvictByTagAsync, cache stampede protection, ETag revalidation, and a Redis backing store. - [How to customize the OpenAPI document with AddOperationTransformer and AddSchemaTransformer in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-customize-openapi-with-operation-and-schema-transformers-in-aspnetcore-11/): A deep dive into the built-in OpenAPI transformer pipeline in .NET 11: operation vs schema transformers, the context objects, execution order, DI-activated transformers, and recipes for headers, responses, examples, and per-property tweaks. - [How to map a complex type instead of an owned entity in EF Core 11](https://startdebugging.net/2026/07/how-to-map-a-complex-type-instead-of-an-owned-entity-in-ef-core-11/): Owned entities carry a hidden key and reference identity that fights value objects. Here is how to map a value object as a complex type in EF Core 11, when to switch, and the gotchas. - [How to Observe a Cursor Cloud Agent's Prompts, Thinking, and Subagents with Hooks](https://startdebugging.net/2026/07/observe-cursor-cloud-agent-prompts-thinking-subagents-with-hooks/): Cursor 3.11 (July 10, 2026) lets cloud agents run hooks that see the conversation itself. Wire up beforeSubmitPrompt, afterAgentThought, afterAgentResponse, and subagentStart in .cursor/hooks.json to log every prompt, thinking block, and delegated task, then gate the risky ones. - [.NET 11 Runtime Async Drops the EnablePreviewFeatures Flag](https://startdebugging.net/2026/07/dotnet-11-runtime-async-no-longer-needs-enablepreviewfeatures/): As the .NET 11 previews progress toward the November release, Runtime Async has graduated: net11.0 projects opt in with a single MSBuild property, and the runtime libraries themselves now ship compiled on it. - [Migrate a Custom Tool-Calling Loop to an MCP Server (TypeScript, 2026)](https://startdebugging.net/2026/07/migrate-a-custom-tool-calling-loop-to-an-mcp-server/): A step-by-step checklist for lifting a hand-rolled Anthropic tool-calling loop onto a standalone MCP server. The tool bodies move almost verbatim; what changes is where the schema comes from, how results are wrapped, and how errors cross the process boundary. - [What is PGO in .NET and do I need to opt in?](https://startdebugging.net/2026/07/what-is-pgo-in-dotnet-and-do-i-need-to-opt-in/): PGO (profile-guided optimization) lets the .NET JIT specialize hot code for the types and branches your workload actually hits. Dynamic PGO has been on by default since .NET 8, so on .NET 8 and later you do not need to opt in. Here is what it does, how to see its effect, and the rare cases where you touch the knob. - [What is tiered compilation and how do I reason about it?](https://startdebugging.net/2026/07/what-is-tiered-compilation-and-how-do-i-reason-about-it/): Tiered compilation lets the .NET JIT compile every method twice: once fast and unoptimized to get your app running, then again with full optimizations once the runtime knows a method is hot. Here is how tier 0, tier 1, on-stack replacement, and Dynamic PGO fit together, and how to observe and tune them. - [Migrate a LangChain Agent to the MCP Tool-Calling Pattern](https://startdebugging.net/2026/07/migrate-a-langchain-agent-to-the-mcp-tool-calling-pattern/): A step-by-step checklist for moving an existing LangChain agent off inline @tool functions onto a standalone MCP server that any client can call. Covers extracting tools into FastMCP, re-wiring the agent with langchain-mcp-adapters MultiServerMCPClient, the sync-to-async switch, transports, and the gotchas that bite mid-cutover. - [The .NET Modernization Agent Now Runs in the Copilot CLI, Not Just Visual Studio](https://startdebugging.net/2026/07/modernize-dotnet-anywhere-github-copilot-cli-plugin/): GitHub Copilot's modernize-dotnet agent shipped as a portable plugin on July 9, 2026. It now runs in VS Code, the Copilot CLI, and on GitHub, with an assess to plan to execute workflow whose artifacts get committed to your repo for review. - [What is the difference between dotnet build and dotnet publish?](https://startdebugging.net/2026/07/what-is-the-difference-between-dotnet-build-and-dotnet-publish/): dotnet build compiles your project for the inner development loop and defaults to Debug. dotnet publish runs the MSBuild Publish target, defaults to Release on net8.0 and later, and packages a deployable folder with web assets, self-contained runtimes, single-file, trimming, and AOT handled. Here is exactly what each one produces and when to reach for it. - [What is the difference between dotnet watch and dotnet run?](https://startdebugging.net/2026/07/what-is-the-difference-between-dotnet-watch-and-dotnet-run/): dotnet run builds your project once and launches it. dotnet watch wraps dotnet run in a file watcher: it relaunches or hot reloads the app every time you save a source file. Here is exactly what each one does, what dotnet watch sets that dotnet run does not, and when to reach for which. - [What is the IHostedService contract and when do I use it?](https://startdebugging.net/2026/07/what-is-the-ihostedservice-contract-and-when-do-i-use-it/): IHostedService is the two-method interface (StartAsync/StopAsync) the .NET generic host calls on startup and graceful shutdown. Here is exactly what the contract promises, when to implement it directly, and the .NET 10 and 11 behavior changes that catch people out. - [Migrate a minimal API from manual validation checks to built-in validation in ASP.NET Core 11](https://startdebugging.net/2026/07/migrate-a-minimal-api-from-manual-validation-to-built-in-validation-in-aspnetcore-11/): A step-by-step migration guide for replacing hand-rolled if-checks in ASP.NET Core 11 minimal API handlers with the built-in source-generated DataAnnotations validator: what breaks, which manual rules do and do not port, and how to verify the 400 ProblemDetails contract stays identical. - [Migrate From the OpenAI SDK to Microsoft.Extensions.AI in a .NET App](https://startdebugging.net/2026/07/migrate-from-openai-sdk-to-microsoft-extensions-ai/): A step-by-step checklist for moving a .NET app off the raw OpenAI 2.12 SDK onto the provider-neutral Microsoft.Extensions.AI 10.7 IChatClient. Covers the AsIChatClient bridge, the CompleteChatAsync-to-GetResponseAsync rewrite, streaming, tool calling, DI registration, and the gotchas that bite mid-cutover. - [Migrate from Riverpod 2.x to Riverpod 3.0 in Flutter](https://startdebugging.net/2026/07/migrate-from-riverpod-2-x-to-riverpod-3-0-in-flutter/): A step-by-step upgrade from flutter_riverpod 2.x to 3.x: bump the packages, move StateProvider and friends to the legacy import, drop the AutoDispose and Family ref types, handle ProviderException wrapping and automatic retry, and fix the == notification filtering that silently drops StreamProvider events. Tested on Flutter 3.44, Dart 3.x, flutter_riverpod 3.3.2. - [VS Code 1.128 Adds Multi-Chat Claude Agent-Host Sessions](https://startdebugging.net/2026/07/vscode-1-128-multi-chat-claude-agent-host-sessions/): VS Code 1.128 (July 8, 2026) lets one Claude agent-host session hold several parallel chats, each with its own history, title, and model. Here is what chat.agentHost.enabled actually unlocks and how the quick-chat and BYOK pieces fit. - [What is trim-safe code and how do I write it?](https://startdebugging.net/2026/07/what-is-trim-safe-code-and-how-do-i-write-it/): Trim-safe code is code the .NET trimmer can statically prove is reachable, so it survives when unused code is removed from a self-contained app. This is the practical guide: turn on the analyzer, drive every IL2xxx warning to zero, annotate reflection with DynamicallyAccessedMembers, propagate RequiresUnreferencedCode to public APIs, and replace unanalyzable patterns with source generators. - [Claude Sonnet 5 Is the New Claude Code Default: Recount Your Token Budgets](https://startdebugging.net/2026/07/claude-sonnet-5-claude-code-default-new-tokenizer-token-budgets/): Claude Sonnet 5 (claude-sonnet-5) shipped June 30, 2026 and now backs the 'sonnet' alias in Claude Code. Its new tokenizer emits about 30% more tokens for the same text, so cost estimates and max_tokens limits tuned for Sonnet 4.6 need a recount. - [Migrate from HasData seeding to UseAsyncSeeding in EF Core 11](https://startdebugging.net/2026/07/migrate-from-hasdata-seeding-to-useasyncseeding-in-ef-core-11/): A step-by-step guide to moving seed data off HasData and onto UseSeeding and UseAsyncSeeding in EF Core 11, including the DeleteData migration trap that wipes your existing rows if you skip it. - [Flutter 3.44: Read the Physical Screen Corner Radius from MediaQuery](https://startdebugging.net/2026/07/flutter-3-44-read-the-screen-corner-radius-from-mediaquery/): Flutter 3.44 exposes the device's rounded display corners through MediaQuery.displayCornerRadiiOf. Stop guessing a magic radius and clip your UI to the exact hardware curve on Android API 31+. - [go_router vs auto_route vs Navigator 2.0 in Flutter](https://startdebugging.net/2026/07/go-router-vs-auto-route-vs-navigator-2-0-in-flutter/): go_router and auto_route both sit on top of Navigator 2.0, so the real choice is declarative URL routing vs code-generated typed routes vs hand-rolling the Router API. A decision matrix with config for each, and when raw Navigator still wins. - [Migrate a Semantic Kernel App to Microsoft Agent Framework 1.0](https://startdebugging.net/2026/07/migrate-a-semantic-kernel-app-to-microsoft-agent-framework-1-0/): A step-by-step checklist for moving an existing Semantic Kernel 1.77 .NET app to Microsoft Agent Framework 1.13. Covers the Kernel-to-AIAgent rewrite, plugins-to-tools, thread-to-session, the KernelFunction compatibility bridge, DI changes, and the gotchas that bite mid-cutover. - [Named query filters vs a single global query filter in EF Core 11: which should you use?](https://startdebugging.net/2026/07/named-query-filters-vs-a-single-global-query-filter-in-ef-core-11/): Both produce the same SQL. Reach for named filters only when you need to disable one predicate independently; a single combined filter is simpler for one concern in EF Core 11. - [shrinkWrap vs Expanded vs slivers for long lists in Flutter: which should you pick?](https://startdebugging.net/2026/07/shrinkwrap-vs-expanded-vs-slivers-for-long-lists-in-flutter/): For a long list, never use shrinkWrap. Use Expanded when the list is the only scrollable, and slivers (CustomScrollView) when it shares a scroll with other sections. Here is why, with a build-count benchmark. - [Claude Code 2.1.198 Runs Subagents in the Background by Default](https://startdebugging.net/2026/07/claude-code-2-1-198-subagents-run-in-the-background-by-default/): Claude Code v2.1.198 (July 1, 2026) flips subagents to background execution by default, so the main agent keeps working while they run, and background agents that touch code now auto-commit, push, and open a draft PR when they finish. - [Cursor Subagents vs Claude Code Subagents for Multi-Agent Workflows](https://startdebugging.net/2026/07/cursor-subagents-vs-claude-code-subagents/): Both let one agent spawn isolated workers from a Markdown file, but Claude Code nests five levels deep with per-agent tool allowlists and worktree isolation, while Cursor keeps it to two levels with a single readonly switch and reads Claude's format for free. Pick by where your agents run, not by brand. - [Fix: "415 Unsupported Media Type" from a minimal API endpoint in ASP.NET Core 11](https://startdebugging.net/2026/07/fix-415-unsupported-media-type-from-a-minimal-api-endpoint-in-aspnetcore-11/): A minimal API returns 415 when the request Content-Type does not match what the endpoint binds. Send Content-Type: application/json for a body-bound type, or use [FromForm] for form and file uploads. - [Fix: CS9035 "Required member 'X' must be set in the object initializer" in C#](https://startdebugging.net/2026/07/fix-cs9035-required-member-must-be-set-in-the-object-initializer/): CS9035 means a member marked required was not assigned. Set it in the object initializer, or add a constructor annotated with [SetsRequiredMembers] that assigns every required member. - [Fix: Riverpod 3.0 throws ProviderException instead of the original error](https://startdebugging.net/2026/07/fix-riverpod-3-0-throws-providerexception-instead-of-the-original-error/): Riverpod 3.0 wraps errors thrown while reading a provider in a ProviderException. Catch that type and read e.exception to get your original error back, or use AsyncValue.error which is unwrapped. - [Claude Code Skills vs Subagents vs MCP Servers: When to Build Each in 2026](https://startdebugging.net/2026/07/claude-code-skills-vs-subagents-vs-mcp-servers-when-to-build-each/): Build a skill to change how Claude works, a subagent to protect your context window, and an MCP server to reach a system Claude cannot otherwise touch. They solve three different problems, not one. Here is the decision, the mechanics, and the config for each. - [Dot Shorthands in Dart 3.12: Drop the Type Name in Flutter Code](https://startdebugging.net/2026/07/dart-dot-shorthands-drop-the-type-name-in-flutter/): Dot shorthands went stable in Dart 3.12.2. Write .center or .new and let the compiler infer the type from context. Here is how they work across enums, static members, and constructors. - [Fix: Cannot provide both a color and a decoration in a Flutter Container](https://startdebugging.net/2026/07/fix-cannot-provide-both-a-color-and-a-decoration-in-a-flutter-container/): Move the color inside the decoration: use decoration: BoxDecoration(color: ...) instead of passing both color and decoration to the same Container. - [Fix: Incorrect use of ParentDataWidget. Expanded widgets must be placed inside Flex widgets (Flutter)](https://startdebugging.net/2026/07/fix-incorrect-use-of-parentdatawidget-expanded-must-be-inside-flex-in-flutter/): This error means an Expanded or Flexible is not a direct child of a Row, Column, or Flex. Move it directly under the flex widget, or drop Expanded if the parent is not a flex. - [Fix: A RenderViewport expected a child of type RenderSliver but received a child of type RenderBox (Flutter CustomScrollView)](https://startdebugging.net/2026/07/fix-renderviewport-expected-a-rendersliver-in-a-flutter-customscrollview/): The slivers list of a CustomScrollView only accepts slivers. Wrap box widgets in SliverToBoxAdapter, or swap ListView/Padding/Column for SliverList and SliverPadding. - [Claude Code 2.1.200 Renames the default Permission Mode to Manual](https://startdebugging.net/2026/07/claude-code-2-1-200-renames-default-permission-mode-to-manual/): Claude Code v2.1.200 (July 3, 2026) renames the 'default' permission mode to 'Manual' across the CLI, VS Code, and JetBrains, and stops AskUserQuestion dialogs from auto-continuing. The config value stays 'default', with 'manual' accepted as an alias. - [CodeAct vs a Traditional Tool-Calling Loop for Agents: Which Should You Pick in 2026?](https://startdebugging.net/2026/07/codeact-vs-tool-calling-loop-for-agents/): Use CodeAct (the agent writes executable code as its action) when your tasks chain many tools, loop, or move large data, and you can afford a sandbox. Use the JSON tool-calling loop for a handful of discrete, high-stakes actions where a code interpreter is overkill or unsafe. CodeAct wins on token cost and multi-step success rate; tool calling wins on safety and simplicity. - [Fix: "The LINQ expression could not be translated" in EF Core 11](https://startdebugging.net/2026/07/fix-the-linq-expression-could-not-be-translated-in-ef-core-11/): EF Core 11 throws this when a Where or OrderBy calls a method it cannot turn into SQL. Rewrite the predicate into translatable operators, or pull the data client-side with AsEnumerable first. - [Fix: "The required column 'X' was not present in the results of a 'FromSql' operation" in EF Core 11](https://startdebugging.net/2026/07/fix-the-required-column-was-not-present-in-the-results-of-a-fromsql-operation-in-ef-core-11/): EF Core throws this when your raw SQL does not return every column the entity maps to, or the column names do not match. Return all mapped columns with matching names, or query a scalar/keyless type instead. - [How to Check Ref.mounted After an Async Gap in Flutter Riverpod 3](https://startdebugging.net/2026/07/how-to-check-ref-mounted-after-an-async-gap-in-flutter-riverpod-3/): In a Notifier, resolve dependencies before the await, then guard the state write with if (!ref.mounted) return. This is the Riverpod 3.0 replacement for the old onDispose mixin, and it stops UnmountedRefException when a provider is disposed mid-await. Tested on flutter_riverpod 3.x, Flutter 3.44, Dart 3.x. - [A2A vs MCP: Agent-to-Agent vs Agent-to-Tool, and Why You Need Both in 2026](https://startdebugging.net/2026/07/a2a-protocol-vs-mcp-agent-to-agent-vs-agent-to-tool/): MCP connects one agent to its tools, A2A connects independent agents to each other. They are not competitors. Add MCP first, reach for A2A only when you have multiple separately deployed agents. Here is the wire-level difference and the code. - [DuneSlide: Two Cursor Bugs That Turn Prompt Injection Into Zero-Click RCE](https://startdebugging.net/2026/07/cursor-duneslide-prompt-injection-sandbox-escape-rce/): Cato AI Labs disclosed CVE-2026-50548 and CVE-2026-50549, a pair of 9.8 CVSS flaws in Cursor's terminal sandbox. A poisoned MCP response or web result can escape the sandbox and run code. Cursor 3.0 is the fix. - [How to customize minimal API validation error responses with IProblemDetailsService in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-customize-minimal-api-validation-error-responses-with-iproblemdetailsservice-in-aspnetcore-11/): Call AddProblemDetails with a CustomizeProblemDetails callback to reshape the 400 that built-in minimal API validation returns in ASP.NET Core 11: add a traceId, rewrite the title, switch 400 to 422, or take full control with a custom IProblemDetailsWriter. - [How to set up JWT bearer authentication in a minimal API in ASP.NET Core 11](https://startdebugging.net/2026/07/how-to-set-up-jwt-bearer-authentication-in-a-minimal-api-in-aspnetcore-11/): A complete, working setup for JWT bearer authentication in an ASP.NET Core 11 minimal API: install the package, wire up AddAuthentication().AddJwtBearer(), issue a token, protect endpoints with RequireAuthorization, add role and claim policies, and test the whole thing with dotnet user-jwts. - [How to use named query filters for soft delete and multi-tenancy in EF Core 11](https://startdebugging.net/2026/07/how-to-use-named-query-filters-for-soft-delete-and-multi-tenancy-in-ef-core-11/): Apply two independent global query filters to the same entity in EF Core 11: a soft-delete filter and a tenant filter, each named so you can disable one without the other via IgnoreQueryFilters. - [How to mix a ListView and a GridView in one scroll view with slivers in Flutter](https://startdebugging.net/2026/07/how-to-mix-a-listview-and-a-gridview-in-one-scroll-view-with-slivers-in-flutter/): Put a list and a grid in a single continuous scroll without nested scrollables. Use CustomScrollView with SliverList and SliverGrid, and skip the shrinkWrap trap that quietly kills performance. - [How to nest a ListView inside a Column in Flutter without an unbounded-height error](https://startdebugging.net/2026/07/how-to-nest-a-listview-inside-a-column-in-flutter-without-an-unbounded-height-error/): Why a ListView in a Column throws 'Vertical viewport was given unbounded height', and the four fixes (Expanded, Flexible, shrinkWrap, SizedBox) with the performance trade-offs that decide which one you want. - [MCP stdio vs HTTP vs SSE Transport: Which Should You Choose in 2026?](https://startdebugging.net/2026/07/mcp-stdio-vs-http-vs-sse-transport-which-to-choose/): Use stdio for a local server one client launches, use Streamable HTTP for anything remote or multi-client, and do not build new HTTP+SSE servers -- that transport was deprecated in the 2025-03-26 MCP spec. Here is the decision, the wire-level differences, and the code for each. - [Run the Binlog MCP Server in CI to Auto-Triage Build Failures](https://startdebugging.net/2026/07/run-the-binlog-mcp-server-in-ci-to-auto-triage-build-failures/): On 2026-06-30 Microsoft showed the Binlog MCP Server running unattended in a GitHub Agentic Workflow, so an agent reads the .binlog and comments a root cause the moment a CI build breaks. - [Fix: Claude Code High Memory Usage and Context Window Overflow](https://startdebugging.net/2026/07/fix-claude-code-high-memory-usage-and-context-overflow/): High memory usage and context overflow are two different problems in Claude Code. Raise the Node heap for RAM, use /context and /compact for the window, /heapdump to diagnose. - [How to implement and consume IAsyncDisposable with await using in C#](https://startdebugging.net/2026/07/how-to-implement-and-consume-iasyncdisposable-with-await-using-in-csharp/): A complete guide to IAsyncDisposable in C#: when to use await using, how to write DisposeAsync and DisposeAsyncCore correctly, and the stacking and ConfigureAwait gotchas that leak resources. - [How to propagate a CancellationToken through async methods in .NET 11](https://startdebugging.net/2026/07/how-to-propagate-a-cancellationtoken-through-async-methods-in-dotnet-11/): Thread a CancellationToken cleanly through every layer of an async call chain in .NET 11: last-parameter convention, default values, linked tokens, ASP.NET Core RequestAborted, and the CA2016 analyzer that catches the ones you drop. - [How to time out an async operation with CancellationTokenSource.CancelAfter in C#](https://startdebugging.net/2026/07/how-to-time-out-an-async-operation-with-cancellationtokensource-cancelafter-in-csharp/): Use CancellationTokenSource.CancelAfter to enforce an async deadline in .NET 11: constructor vs CancelAfter, linked tokens for composing timeouts with caller tokens, exception disambiguation, Task.WaitAsync, TryReset for pooling, and testable timeouts with TimeProvider. - [SkiaSharp 4.0 Ships Stable: 24% Faster GPU Rendering and a Cleaned-Up API](https://startdebugging.net/2026/07/skiasharp-4-0-stable-release-faster-gpu-rendering/): SkiaSharp 4.148.0 is the first stable v4 release. GPU-heavy UIs render up to 24% faster, CPU shaders run ~6x faster, and the legacy API surface is finally retired. Here is what upgrading actually costs you. - [Fix: Claude Code Drops MCP Tools After Auto-Compaction](https://startdebugging.net/2026/06/fix-claude-code-drops-mcp-tools-after-auto-compaction/): After auto-compaction, Claude Code can leave your MCP server connected but with no tools. Run /mcp to reconnect; if tools stay gone, /clear or restart. Here is why and how to prevent it. - [HasData vs UseSeeding for seeding data in EF Core 11: which should you use?](https://startdebugging.net/2026/06/hasdata-vs-useseeding-for-seeding-data-in-ef-core-11/): Use HasData only for fixed, model-owned reference data. Use UseSeeding and UseAsyncSeeding for everything else in EF Core 11. A side-by-side comparison with the rules that force the decision. - [Claude Code 2.1.191 Lets /rewind Reach Back Past a /clear](https://startdebugging.net/2026/06/claude-code-2-1-191-rewind-past-clear/): Claude Code v2.1.191 (June 24, 2026) extends /rewind so you can restore conversation and code state from before you ran /clear, recovering context that used to be gone for good. - [Fix: FOREIGN KEY constraint failed when deleting an entity in EF Core 11](https://startdebugging.net/2026/06/fix-foreign-key-constraint-failed-when-deleting-an-entity-in-ef-core-11/): EF Core throws FOREIGN KEY constraint failed because the parent still has dependents the database refuses to orphan. Load the children, make the relationship optional, or configure OnDelete. - [Fix: MCP error -32000: Connection closed in Claude Code](https://startdebugging.net/2026/06/fix-mcp-error-32000-connection-closed-in-claude-code/): MCP error -32000 means your MCP server process exited before the handshake finished. Fix the missing binary, the Windows cmd /c wrap, the event-loop exit, and the startup race. - [Fix: No service for type 'Microsoft.EntityFrameworkCore.DbContextOptions' has been registered](https://startdebugging.net/2026/06/fix-no-service-for-type-dbcontextoptions-has-been-registered/): EF Core throws this when AddDbContext never ran, ran after Build, or your context's constructor takes the wrong DbContextOptions. Register before Build and use DbContextOptions. - [JWT vs cookie authentication in ASP.NET Core 11: which should you pick?](https://startdebugging.net/2026/06/jwt-vs-cookie-authentication-in-aspnetcore-11/): Use cookie authentication for any app where the browser is the only client, and reserve JWT bearer tokens for APIs called by mobile apps, other services, or third parties. Here is the full decision matrix. - [Claude Code 2.1.187 Stops the Sandbox From Reading Your AWS Keys](https://startdebugging.net/2026/06/claude-code-sandbox-credentials-block-secrets-from-bash/): The new sandbox.credentials setting in Claude Code v2.1.187 denies reads of credential files and unsets secret env vars before sandboxed Bash commands run. Here is why the default read policy was a hole, and how to close it. - [Fix: 405 Method Not Allowed instead of 401 with JWT bearer in ASP.NET Core](https://startdebugging.net/2026/06/fix-405-method-not-allowed-instead-of-401-with-jwt-bearer-in-aspnetcore/): A protected endpoint returning 405 instead of 401 almost always means routing rejected the HTTP verb before auth ran, or a cookie scheme stole the challenge. Here is how to tell which. - [Why your ASP.NET Core JWT returns 401 even with a valid token](https://startdebugging.net/2026/06/fix-aspnetcore-jwt-returns-401-even-with-valid-token/): A valid token that still 401s almost always means the bearer handler never ran or ran under the wrong scheme. Check middleware order, the default scheme, the scheme name, and whether the header even reached the handler. - [Fix: The seed entity for entity type 'X' cannot be added because a non-zero value is required for property 'Id'](https://startdebugging.net/2026/06/fix-the-seed-entity-cannot-be-added-non-zero-value-is-required-for-property/): HasData seeds an entity with a store-generated key but no explicit value. Give every seed row a stable non-zero Id, or switch to UseSeeding for generated keys. - [How to add policy enforcement and audit logging to a Microsoft Agent Framework agent](https://startdebugging.net/2026/06/policy-enforcement-and-audit-logging-for-a-microsoft-agent-framework-agent/): Wire the Agent Governance Toolkit into a Microsoft Agent Framework 1.0 agent so every tool call is checked against a YAML policy and written to a tamper-evident audit trail. Full C# middleware, policy file, and a hash-chained audit sink. - [Cursor 3.9 Bundles Your Agent Setup Into Portable Plugins](https://startdebugging.net/2026/06/cursor-3-9-plugins-bundle-skills-rules-mcps-hooks/): Cursor 3.9 ships a plugin system and a unified Customize page so skills, rules, MCP servers, commands, and hooks travel together as one versioned unit. - [Fix: LateInitializationError: Field '...' has not been initialized in Flutter](https://startdebugging.net/2026/06/fix-lateinitializationerror-field-has-not-been-initialized-in-flutter/): This crash means you read a late field before anything assigned it. Initialize it synchronously in initState, or stop using late and model the async value as nullable state. - [Fix: Null check operator used on a null value in Flutter](https://startdebugging.net/2026/06/fix-null-check-operator-used-on-a-null-value-in-flutter/): The ! operator hit a null at runtime. Replace it with ?. and ?? for a safe default, or guard with an explicit null check, instead of asserting a value that was not there. - [How to declare extension properties in C# 14](https://startdebugging.net/2026/06/how-to-declare-extension-properties-in-csharp-14/): Extension properties land in C# 14 through the new extension block. Declare get-only, settable, static, and generic extension properties, why auto-properties are rejected, and how the compiler lowers them to get_/set_ accessors. - [How to Run a Pre-Push Code Review Locally with Cursor Bugbot's /review](https://startdebugging.net/2026/06/how-to-run-bugbot-review-locally-before-pushing-in-cursor/): Cursor 3.7+ lets you run Bugbot before you push with the /review command. Here is how local review works, how the patch ID dedup stops you paying twice, and the one thing it cannot do yet. - [How to Deploy a Microsoft Agent Framework Agent to Foundry Hosted Agents](https://startdebugging.net/2026/06/deploy-a-microsoft-agent-framework-agent-to-foundry-hosted-agents/): A step-by-step guide to taking a Microsoft Agent Framework agent from your laptop to a managed Foundry Hosted Agent: the C# host code, the azd deploy flow, identity, scaling, and the gotchas that bite in preview. - [.NET 11 Preview 5 lets file-based apps reference each other with `#:ref`](https://startdebugging.net/2026/06/dotnet-11-preview-5-file-based-apps-ref-directive/): .NET 11 Preview 5 adds the #:ref directive so a dotnet run script can reference another file-based app as a library, with transitive references and no project file. - [How to do keyset (cursor) pagination in EF Core 11](https://startdebugging.net/2026/06/how-to-do-keyset-cursor-pagination-in-ef-core-11/): Replace Skip/Take with a WHERE clause that seeks past the last row you saw. Order by a fully unique key, carry the last row's values as a cursor, and EF Core 11 turns the next page into an index seek instead of an OFFSET scan. - [How to map and query JSON columns in EF Core 11](https://startdebugging.net/2026/06/how-to-map-and-query-json-columns-in-ef-core-11/): Map a nested type to a single JSON column with ComplexProperty(...).ToJson(), let EF Core 11 store it in the native SQL Server 2025 json type, then query into it with LINQ that translates to JSON_VALUE, JSON_CONTAINS, and JSON_PATH_EXISTS. - [How to register and resolve keyed services in .NET 11 dependency injection](https://startdebugging.net/2026/06/how-to-register-and-resolve-keyed-services-in-dotnet-11-dependency-injection/): Register more than one implementation of the same interface under a key with AddKeyedSingleton/Scoped/Transient, then resolve them with [FromKeyedServices], GetRequiredKeyedService, or KeyedService.AnyKey. The keyed and non-keyed registries are separate, which is the gotcha that bites most people. - [dotnetup: .NET Finally Gets a rustup-Style SDK Version Manager](https://startdebugging.net/2026/06/dotnetup-official-dotnet-sdk-version-manager/): Microsoft is building dotnetup, an official cross-platform tool to install, track, and switch between .NET SDKs and runtimes. Here is what it does and where it stands in June 2026. - [How to Auto-Fix a Failing GitHub Action with Fix with Copilot](https://startdebugging.net/2026/06/how-to-auto-fix-a-failing-github-action-with-fix-with-copilot/): When a GitHub Actions job goes red, the Fix with Copilot button hands the failure to the Copilot cloud agent: it reads the logs, pushes a fix to your branch, and tags you for review. Here is where the button lives, the May 18 / June 4 2026 rollout, the Approve and run workflows gotcha that stalls re-runs, how billing works per session, and when to reach for the REST API instead. - [How to set up nested routes and deep links with go_router in Flutter](https://startdebugging.net/2026/06/how-to-set-up-nested-routes-and-deep-links-with-go-router-in-flutter/): Build a persistent shell with nested routes using ShellRoute and StatefulShellRoute, then wire up path-based deep links that rebuild the full page stack. Full config for Android and iOS, plus the gotchas that break the back stack. - [How to use BuildContext safely after an await in Flutter](https://startdebugging.net/2026/06/how-to-use-buildcontext-safely-after-an-await-in-flutter/): Capture what you need from the context before the await, then guard the resume with if (context.mounted) return. Here is the full pattern, the lint that enforces it, and the edge cases it misses. - [How to validate a JWT's issuer, audience, and lifetime in ASP.NET Core 11](https://startdebugging.net/2026/06/how-to-validate-a-jwts-issuer-audience-and-lifetime-in-aspnetcore-11/): A complete guide to TokenValidationParameters in ASP.NET Core 11: how ValidateIssuer, ValidateAudience, and ValidateLifetime work, what the defaults actually are, why Authority auto-configures the issuer and signing keys, the 5-minute ClockSkew trap, and how to read the IDX error codes when a valid-looking token is rejected. - [C# 15 Closed Class Hierarchies: The closed Keyword in .NET 11 Preview 5](https://startdebugging.net/2026/06/csharp-15-closed-class-hierarchies-dotnet-11-preview-5/): C# 15 adds the closed modifier in .NET 11 Preview 5, giving class hierarchies compile-time exhaustiveness in switch expressions. Here is how it works and the one gotcha. - [How to configure CORS for a JWT-protected API in ASP.NET Core 11](https://startdebugging.net/2026/06/how-to-configure-cors-for-a-jwt-protected-api-in-aspnetcore-11/): A complete guide to CORS for a bearer-token API in ASP.NET Core 11: the correct UseCors ordering relative to authentication, why a bearer token in the Authorization header is not a CORS credential, why AllowAnyHeader works but a manual wildcard does not cover Authorization, and how to keep preflight from failing. - [How to seed a many-to-many relationship in EF Core 11](https://startdebugging.net/2026/06/how-to-seed-a-many-to-many-relationship-in-ef-core-11/): Seed the join table of a many-to-many relationship in EF Core 11: the implicit shadow keys you must name yourself, the UsingEntity HasData pattern, and the runtime UseSeeding alternative that works with skip navigations. - [How to seed data with UseSeeding and UseAsyncSeeding in EF Core 11](https://startdebugging.net/2026/06/how-to-seed-data-with-useseeding-and-useasyncseeding-in-ef-core-11/): Seed reference data the right way in EF Core 11 with UseSeeding and UseAsyncSeeding: where to configure them, when they run, the idempotency check you cannot skip, and why you must implement both. - [How to Trigger a GitHub Copilot Coding Agent Task from the Agent Tasks REST API](https://startdebugging.net/2026/06/trigger-github-copilot-coding-agent-task-from-rest-api/): POST a prompt to /agents/repos/{owner}/{repo}/tasks and Copilot's cloud agent spins up, writes code, and opens a PR. Here is the exact request, the X-GitHub-Api-Version: 2026-03-10 header, the user-to-server token gotcha that breaks GitHub App installs, a polling loop over the eight task states, and a fan-out script that dispatches the same migration across many repos. - [The Binlog MCP Server Lets an AI Read Your MSBuild Logs](https://startdebugging.net/2026/06/dotnet-binlog-mcp-server-ai-investigates-msbuild-builds/): Microsoft shipped Microsoft.AITools.BinlogMcp on 2026-06-17, an MCP server that exposes 15 tools so Claude or Copilot can diagnose build failures and slow targets straight from a .binlog file. - [How to Automate a Repository Task with GitHub Agentic Workflows Without a Personal Access Token](https://startdebugging.net/2026/06/github-agentic-workflows-without-a-personal-access-token/): As of the June 11, 2026 change, GitHub Agentic Workflows run on the built-in GITHUB_TOKEN. Add copilot-requests: write, drop the PAT, recompile the lock file, and let safe-outputs apply writes from a privileged step. Full issue-triage example, the token fallback chain, and the two cases where you still need a custom token. - [What is Span in C#, and when does it actually make your code faster?](https://startdebugging.net/2026/06/what-is-span-and-when-does-it-make-my-code-faster/): Span is a stack-only ref struct that points at memory you already own, so it has no backing allocation. It speeds code up in exactly three situations: replacing a heap buffer with stackalloc, slicing without copying, and tight loops where the JIT elides bounds checks. Everywhere else it changes nothing, and across an await it does not compile. - [What is the DynamicallyAccessedMembers attribute?](https://startdebugging.net/2026/06/what-is-the-dynamicallyaccessedmembers-attribute/): DynamicallyAccessedMembers tells the .NET trimmer and AOT compiler which members of a Type you reach by reflection, so they are kept instead of trimmed away. It turns a silent runtime MissingMethodException into a build-time IL2070 warning. Here is what the attribute does, how the data-flow analysis behind it works, and how to annotate parameters, fields, and generic type parameters correctly. - [What is ValueTask and when is it worth it?](https://startdebugging.net/2026/06/what-is-valuetask-and-when-is-it-worth-it/): ValueTask and ValueTask are structs that let an async method return a result without heap-allocating a Task when it completes synchronously. The win is one fewer allocation on hot paths that usually finish without awaiting. The cost is a strict await-once contract. Here is what the type actually is, how it works, and the narrow set of cases where it earns its keep. - [Claude Code 2.1.183 Stops Auto Mode From Running Destructive Git and IaC Commands](https://startdebugging.net/2026/06/claude-code-2-1-183-auto-mode-blocks-destructive-commands/): Claude Code v2.1.183 (June 19, 2026) blocks git reset --hard, git clean -fd, and terraform/pulumi/cdk destroy in auto mode unless you asked for them, closing the agentic loophole where one bad turn nukes uncommitted work. - [How to Nest Subagents in the Cursor SDK So a Reviewer Can Delegate to a Test-Writer](https://startdebugging.net/2026/06/nest-subagents-in-the-cursor-sdk-reviewer-delegates-to-test-writer/): Define named subagents on agents in the Cursor SDK, let a code-reviewer delegate to a test-writer through the built-in Agent tool, and understand the real nesting depth cap: a subagent spawned by another subagent cannot spawn further ones, despite the changelog's 'and so on'. - [What is a source generator and when do I need one?](https://startdebugging.net/2026/06/what-is-a-source-generator-and-when-do-i-need-one/): A plain-language guide to C# source generators: what they actually do, how the IIncrementalGenerator pipeline works, when they beat reflection or T4, and the cases where you should not reach for one. With runnable examples on .NET 11 and C# 14. - [What is IAsyncEnumerable and when should I use it?](https://startdebugging.net/2026/06/what-is-iasyncenumerable-and-when-should-i-use-it/): IAsyncEnumerable is the interface for asynchronous streams: a sequence whose elements arrive over time and each one may require an await. Here is what it actually is, how await foreach and yield drive it, and the rule for when to reach for it over Task>. - [What is Native AOT and what does it cost you?](https://startdebugging.net/2026/06/what-is-native-aot-and-what-does-it-cost-you/): Native AOT compiles your .NET app to a single self-contained native binary with no JIT, buying fast startup and a small memory footprint. The price is a C toolchain at build time, slower publishes, per-RID builds, no reflection or Reflection.Emit, mandatory trimming, and no Dynamic PGO. Here is the full ledger. - [Migrate from FutureBuilder to a Riverpod AsyncNotifier in Flutter (flutter_riverpod 3.3.2)](https://startdebugging.net/2026/06/migrate-from-futurebuilder-to-a-riverpod-asyncnotifier-in-flutter/): A step-by-step migration from an inline FutureBuilder widget to a Riverpod AsyncNotifier in a real Flutter app: move the async work out of build, expose it as a provider, render with .when() or switch pattern matching, and add refresh and mutation methods. Tested on Flutter 3.44, Dart 3.x, flutter_riverpod 3.3.2. - [Blazor static SSR gets [SupplyParameterFromSession] in .NET 11 Preview 5](https://startdebugging.net/2026/06/blazor-supplyparameterfromsession-static-ssr-dotnet-11-preview-5/): Reading session state in static server-rendered Blazor meant reaching into HttpContext.Session and serializing by hand. .NET 11 Preview 5 adds [SupplyParameterFromSession] so a component property binds to a session key directly. - [How to Gate Which Cursor SDK Tool Calls Run Automatically With Auto-Review and permissions.json](https://startdebugging.net/2026/06/gate-cursor-sdk-tool-calls-with-auto-review-and-permissions-json/): By default a local Cursor SDK agent runs every tool call without asking. Set local.autoReview to route Shell, MCP, and Fetch calls through the classifier, then steer it with the autoRun block in permissions.json. With code, the three-step evaluation order, and why none of it is a security boundary. - [Migrate a Flutter 2 app to Flutter 3.x: the null safety checklist](https://startdebugging.net/2026/06/migrate-a-flutter-2-app-to-flutter-3-x-null-safety-checklist/): A version-pinned guide to moving a legacy Flutter 2.x app to a current Flutter 3.x release, with the sound null safety migration as the hard gate: why you need a two-hop path through Dart 2.19, what dart migrate does, and what breaks along the way. - [Migrate from provider to Riverpod in Flutter (provider 6.1.5 to Riverpod 3.x)](https://startdebugging.net/2026/06/migrate-from-provider-to-riverpod-in-flutter/): A step-by-step migration from the provider package to Riverpod 3.x in a real Flutter app: ChangeNotifierProvider to Notifier, MultiProvider to ProviderScope, context.watch to ref.watch, ProxyProvider to ref.watch composition, plus the equality and lifecycle gotchas that bite. Tested on Flutter 3.27.1, Dart 3.11, provider 6.1.5, flutter_riverpod 3.3.1. - [Migrate from Swashbuckle to the built-in OpenAPI generator in .NET 11](https://startdebugging.net/2026/06/migrate-from-swashbuckle-to-built-in-openapi-in-dotnet-11/): A step-by-step migration from Swashbuckle.AspNetCore to Microsoft.AspNetCore.OpenApi in .NET 11: swapping AddSwaggerGen for AddOpenApi, converting operation, schema, and document filters to transformers, keeping a UI, and the Microsoft.OpenApi v2 breaking changes that bite. - [AsNoTracking vs AsNoTrackingWithIdentityResolution in EF Core 11: which should you use?](https://startdebugging.net/2026/06/asnotracking-vs-asnotrackingwithidentityresolution-in-ef-core-11/): Use AsNoTracking for read-only queries by default. Reach for AsNoTrackingWithIdentityResolution only when the result graph contains the same entity more than once and your code depends on getting a single shared instance back. - [Claude Code 2.1.175 Closes the availableModels Loophole with enforceAvailableModels](https://startdebugging.net/2026/06/claude-code-enforce-available-models-allowlist/): For months availableModels restricted the model picker but left the Default option wide open. Claude Code 2.1.175 adds enforceAvailableModels so admins can finally pin a strict model allowlist. - [FutureBuilder/StreamBuilder vs Riverpod AsyncValue in Flutter: which should you use?](https://startdebugging.net/2026/06/futurebuilder-streambuilder-vs-riverpod-asyncvalue-in-flutter/): Use FutureBuilder or StreamBuilder for a self-contained, throwaway async widget. Reach for Riverpod AsyncValue once the result is shared, cached, or mutated. Here is the decision, the gotchas, and runnable code for both. Tested on Flutter 3.44 and flutter_riverpod 3.3.1. - [Minimal API validation vs FluentValidation in ASP.NET Core 11: which should you pick?](https://startdebugging.net/2026/06/minimal-api-validation-vs-fluentvalidation-in-aspnetcore-11/): Use the built-in source-generated validation for synchronous, attribute-expressible rules in ASP.NET Core 11; reach for FluentValidation when you need async rules, complex cross-field logic, or validation kept out of your domain models. - [How to Persist Cursor SDK Agent State Across Restarts (SQLite vs JSONL vs a Custom LocalAgentStore)](https://startdebugging.net/2026/06/persist-cursor-sdk-agent-state-across-restarts-sqlite-vs-jsonl/): The Cursor SDK already persists agent state to disk so Agent.resume() can pick a conversation back up after a crash. This walks the SqliteLocalAgentStore default, the JsonlLocalAgentStore you can commit to git, and how to implement the LocalAgentStore interface for Postgres, Redis, or an in-memory CI store. - [EF Core 11's New EF1004 Analyzer Catches a Silent Async Mistake](https://startdebugging.net/2026/06/ef-core-11-ef1004-analyzer-toasyncenumerable-vs-asasyncenumerable/): EF Core 11 Preview 5 ships the EF1004 analyzer. It flags ToAsyncEnumerable() on an IQueryable so you do not accidentally enumerate a database query synchronously inside an await foreach. - [How to Expose Your Own Functions to a Cursor SDK Agent With local.customTools (Instead of a Separate MCP Server)](https://startdebugging.net/2026/06/expose-functions-to-cursor-sdk-agent-with-local-customtools/): Pass local.customTools to a Cursor SDK agent and the model calls your in-process functions through the built-in custom-user-tools MCP server. No stdio handshake, no separate process, no transport bugs. Local agents only: cloud agents throw ConfigurationError. - [Fix: Bad state: Cannot use "ref" after the widget was disposed in Flutter Riverpod](https://startdebugging.net/2026/06/fix-cannot-use-ref-after-the-widget-was-disposed-in-flutter-riverpod/): This crash means a WidgetRef was used after its widget left the tree, usually in an async callback. Read what you need before the await, then guard with a mounted check. - [Fix: Looking up a deactivated widget's ancestor is unsafe in Flutter](https://startdebugging.net/2026/06/fix-looking-up-a-deactivated-widgets-ancestor-is-unsafe-in-flutter/): This crash means you called context.of() after the widget left the tree, usually in an async callback or dispose(). Capture the value before the await, or in didChangeDependencies(). - [HybridCache vs IMemoryCache vs IDistributedCache in .NET 11: which should you pick?](https://startdebugging.net/2026/06/hybridcache-vs-imemorycache-vs-idistributedcache-in-dotnet-11/): Default to HybridCache for new caching code in .NET 11. Reach for IMemoryCache only when you need raw single-server speed with no serialization, and IDistributedCache only as a backing store. Here is the decision matrix. - [X25519 Key Agreement Lands In-Box in .NET 11 Preview 5](https://startdebugging.net/2026/06/dotnet-11-x25519-key-agreement-preview-5/): .NET 11 Preview 5 adds a first-class X25519DiffieHellman type to System.Security.Cryptography, so you can do Curve25519 key exchange without BouncyCastle or NSec. - [Fix: The SSL connection could not be established with HttpClient](https://startdebugging.net/2026/06/fix-the-ssl-connection-could-not-be-established-with-httpclient/): The inner AuthenticationException tells you the real cause: an untrusted chain, a name mismatch, or a TLS version gap. Trust the cert, fix the host name, or align protocols. Do not blanket-disable validation. - [Hangfire vs Quartz.NET vs IHostedService for scheduled LLM jobs](https://startdebugging.net/2026/06/hangfire-vs-quartz-net-vs-ihostedservice-for-scheduled-llm-jobs/): Use Quartz.NET when an LLM job must run on a real cron and never overlap itself, Hangfire when each run must survive a restart and retry on rate limits, and a plain BackgroundService only for a loose in-process loop. A decision matrix with the cron and concurrency gotchas that pick for you. - [Fix: The antiforgery token could not be decrypted in ASP.NET Core](https://startdebugging.net/2026/06/fix-the-antiforgery-token-could-not-be-decrypted-in-aspnetcore/): The error means Data Protection lost the key that signed the token. Persist keys to a shared, durable store and call SetApplicationName so every instance reads the same key ring. - [Fix: The entity type 'X' requires a primary key to be defined in EF Core 11](https://startdebugging.net/2026/06/fix-the-entity-type-requires-a-primary-key-to-be-defined/): EF Core can't find a key for your type. Either name a property Id or {Type}Id, add [Key], call HasKey, or - if it is a view or raw SQL result - call HasNoKey. - [LINQ Gets FullJoin and Selector-Free Joins in .NET 11 Preview 5](https://startdebugging.net/2026/06/linq-fulljoin-tuple-returning-joins-dotnet-11-preview-5/): .NET 11 Preview 5 adds a brand-new FullJoin operator to LINQ plus tuple-returning overloads for Join, LeftJoin, RightJoin, and GroupJoin that drop the result selector entirely. - [LLM-as-Judge vs Rule-Based Evals for a Coding Agent: Which Should You Use?](https://startdebugging.net/2026/06/llm-as-judge-vs-rule-based-evals-for-a-coding-agent/): Rule-based checks are your floor and they are non-negotiable; LLM-as-judge is the ceiling you add when code quality, not just correctness, is what you ship. Here is the decision, with cost, latency, and the SWE-bench gap that proves why. - [Blazor static SSR forms get client-side validation in .NET 11 Preview 5](https://startdebugging.net/2026/06/blazor-static-ssr-client-side-validation-dotnet-11-preview-5/): Static server-rendered Blazor forms could only validate after a full POST round-trip. .NET 11 Preview 5 renders validation metadata so the Blazor JS enforces DataAnnotations rules in the browser, no circuit required. - [Claude Subagents vs OpenAI Assistants for Parallel Work in 2026](https://startdebugging.net/2026/06/claude-subagents-vs-openai-assistants-for-parallel-work/): Claude subagents give you orchestration-level parallelism out of the box: one agent spawns isolated sub-contexts that run concurrently. OpenAI Assistants never had that, and it shuts down August 26, 2026, so new parallel work belongs on the Responses API plus your own fan-out. Here is how the two models actually differ and which to reach for. - [Fix: The configured execution strategy 'SqlServerRetryingExecutionStrategy' does not support user-initiated transactions](https://startdebugging.net/2026/06/fix-execution-strategy-does-not-support-user-initiated-transactions/): EnableRetryOnFailure conflicts with BeginTransaction. Wrap the whole transaction in db.Database.CreateExecutionStrategy().ExecuteAsync(...) so it retries as one unit. - [System.Text.Json Finally Writes JSON Lines in .NET 11 Preview 5](https://startdebugging.net/2026/06/system-text-json-json-lines-serialization-dotnet-11-preview-5/): .NET 11 Preview 5 adds JsonSerializer.SerializeAsyncEnumerable with topLevelValues: true, so System.Text.Json can now stream JSONL out, not just read it. - [Claude Code 2.1.169 Adds --safe-mode and a /cd That Keeps the Prompt Cache Warm](https://startdebugging.net/2026/06/claude-code-2-1-169-safe-mode-and-cd/): Claude Code v2.1.169 (June 8, 2026) ships a --safe-mode flag that disables every customization for clean troubleshooting, and a /cd command that moves your session to a new directory without breaking the prompt cache mid-run. - [Fix: its render mode is not supported by the parent component's render mode (Blazor)](https://startdebugging.net/2026/06/fix-render-mode-is-not-supported-by-the-parent-components-render-mode-blazor/): You put @rendermode on a child whose parent is already interactive. A subtree has exactly one render mode. Remove the child directive or move it to the boundary. - [How to Initialize a Future So FutureBuilder Doesn't Recreate It on Every Rebuild in Flutter](https://startdebugging.net/2026/06/how-to-initialize-a-future-so-futurebuilder-doesnt-recreate-it-on-every-rebuild-in-flutter/): FutureBuilder re-runs your async work every time the parent rebuilds because you created the Future inside build. Hoist it into State.initState (or memoize it), and FutureBuilder will reuse the same Future. Here is the why, the repro, and every variant that bites. - [How to persist state across the Blazor static-to-interactive render boundary in .NET 11](https://startdebugging.net/2026/06/how-to-persist-state-across-the-blazor-static-to-interactive-render-boundary-in-dotnet-11/): A prerendered Blazor component runs its initialization twice and loses state at the interactive handoff. Fix it with the [PersistentState] attribute or the PersistentComponentState service in .NET 11. - [Prompt Caching on Claude Sonnet 4.6 vs Opus 4.7: When It Pays Off](https://startdebugging.net/2026/06/prompt-caching-on-claude-sonnet-4-6-vs-claude-opus-4-7-when-it-pays-off/): The cache read and write multipliers are identical on both models, so the break-even point is the same. What differs is the minimum cacheable prefix (1,024 vs 4,096 tokens), the per-token dollar savings, and a new Opus 4.7 tokenizer that counts up to 35% more tokens. With claude-sonnet-4-6 and claude-opus-4-7 pricing math. - [Anthropic SDK vs Microsoft.Extensions.AI for Calling Claude From .NET](https://startdebugging.net/2026/06/anthropic-sdk-vs-microsoft-extensions-ai-for-calling-claude-from-dotnet/): Two ways to call Claude from C#: the official Anthropic .NET SDK directly, or the provider-neutral Microsoft.Extensions.AI IChatClient that wraps it. When each wins, what you lose at the abstraction boundary, and why it is not actually either/or. With claude-opus-4-8 and claude-sonnet-4-6 examples. - [Claude Code's Security-Guidance Plugin Reviews Its Own Diffs Before You Commit](https://startdebugging.net/2026/06/claude-code-security-guidance-plugin-reviews-its-own-diffs/): Anthropic shipped a free security-guidance plugin for Claude Code that scans the agent's own edits for vulnerabilities in three layers, from a no-cost pattern match to an agentic review on commit. - [How to expose OpenAPI without Swashbuckle in ASP.NET Core 11](https://startdebugging.net/2026/06/how-to-expose-openapi-without-swashbuckle-in-aspnetcore-11/): Swashbuckle is gone from the ASP.NET Core templates. Here is how to generate and serve an OpenAPI document in .NET 11 with the built-in Microsoft.AspNetCore.OpenApi package: AddOpenApi, MapOpenApi, transformers, multiple documents, build-time generation, and a UI on top. - [How to use EF Core 11 interceptors for auditing](https://startdebugging.net/2026/06/how-to-use-ef-core-11-interceptors-for-auditing/): Stamp CreatedBy/ModifiedOn columns and write a full change-trail with an ISaveChangesInterceptor in EF Core 11, including the DI lifetime, current-user, and ExecuteUpdate gotchas. - [GitHub Copilot SDK Hits GA: Embed Copilot's Agent Runtime in Your Own C# Apps](https://startdebugging.net/2026/06/github-copilot-sdk-ga-embed-copilot-agent-runtime-csharp/): At Build 2026 GitHub shipped Copilot SDK 1.0 GA with a first-class .NET package. You can now drive the same planning, tool-calling, and multi-turn agent runtime from C# code, BYOK included. - [How to organize minimal API endpoints with MapGroup in ASP.NET Core 11](https://startdebugging.net/2026/06/how-to-organize-minimal-api-endpoints-with-mapgroup-in-aspnetcore-11/): A complete guide to structuring minimal APIs in ASP.NET Core 11 with MapGroup: per-resource endpoint modules as extension methods, nested groups, shared filters and auth, route-parameter prefixes, OpenAPI tags, and the filter-ordering rules that surprise people. - [How to use HybridCache in ASP.NET Core 11 with Redis as the L2 cache](https://startdebugging.net/2026/06/how-to-use-hybridcache-in-aspnetcore-11-with-redis-as-the-l2-cache/): Wire HybridCache to a Redis L2 in ASP.NET Core 11: register the service, add the StackExchange Redis distributed cache, and let GetOrCreateAsync give you a two-tier cache with built-in stampede protection and tag invalidation. - [How to validate request bodies in minimal APIs without controllers in ASP.NET Core 11](https://startdebugging.net/2026/06/how-to-validate-request-bodies-in-minimal-apis-without-controllers-in-aspnetcore-11/): ASP.NET Core 11 has built-in validation for minimal APIs: call AddValidation, annotate your request record with DataAnnotations, and a source generator validates the bound model and returns 400 ProblemDetails before your handler runs. No controllers, no FluentValidation, no manual checks. - [.NET 11 Gives MemoryCache First-Class OpenTelemetry Metrics](https://startdebugging.net/2026/06/dotnet-11-memorycache-opentelemetry-metrics/): .NET 11 Preview 4 ships a built-in meter for Microsoft.Extensions.Caching.Memory, so cache hit ratio and evictions flow into OpenTelemetry without a background poller. - [Microsoft Agent Framework vs Semantic Kernel for a Greenfield .NET Agent](https://startdebugging.net/2026/06/microsoft-agent-framework-vs-semantic-kernel-for-a-greenfield-net-agent/): For a new .NET agent in 2026, start on Microsoft Agent Framework 1.0. Semantic Kernel is in maintenance mode. Here is the side-by-side and the one case where SK still wins. - [Migrate from IWebHostBuilder to WebApplication.CreateBuilder in .NET 11](https://startdebugging.net/2026/06/migrate-from-iwebhostbuilder-to-webapplication-createbuilder/): A step-by-step migration from the old Startup.cs plus WebHostBuilder hosting model to the minimal hosting model with WebApplication.CreateBuilder, including the ASPDEPR008 deprecation, middleware ordering, IStartupFilter, and how to keep your tests working. - [Migrate from System.Web.HttpContext to Microsoft.AspNetCore.Http.HttpContext](https://startdebugging.net/2026/06/migrate-from-system-web-httpcontext-to-aspnetcore-httpcontext/): A practical migration from the ASP.NET Framework System.Web.HttpContext to the ASP.NET Core 11 HttpContext: HttpContext.Current, the property map, Server.MapPath, Session, and the System.Web adapters shim for incremental migrations. - [Migrate from ValueTask back to Task: when and why (.NET 11, C# 14)](https://startdebugging.net/2026/06/migrate-from-valuetask-back-to-task-when-and-why/): A practical checklist for reverting ValueTask and ValueTask return types to Task and Task, what breaks at the call sites, how to verify each change, and how to know whether the swap was ever worth it. - [Claude Agent SDK and claude -p Get Their Own Credit Pool on June 15](https://startdebugging.net/2026/06/claude-agent-sdk-separate-credit-pool-june-15/): Anthropic is splitting programmatic Claude usage off your subscription on 2026-06-15. Here is what counts as programmatic, the per-plan credit, and how to keep your CI agents from silently stalling. - [Microsoft Agent Framework vs LangChain vs LlamaIndex in 2026](https://startdebugging.net/2026/06/microsoft-agent-framework-vs-langchain-vs-llamaindex-in-2026/): All three hit 1.0. Pick Microsoft Agent Framework if you live in Azure and .NET, LangChain/LangGraph for vendor-neutral graph orchestration, LlamaIndex for retrieval-grounded agents. - [Migrate a Blazor Server app to Blazor United (Blazor Web App) in .NET 11](https://startdebugging.net/2026/06/migrate-a-blazor-server-app-to-blazor-united-in-dotnet-11/): A step-by-step checklist to move a standalone Blazor Server app to the unified Blazor Web App template on .NET 11, keeping every page on InteractiveServer with zero behaviour change. - [Migrate from in-process Azure Functions to the isolated worker model (.NET 8 / .NET 11)](https://startdebugging.net/2026/06/migrate-from-in-process-azure-functions-to-isolated-worker/): A step-by-step checklist to move a .NET in-process Azure Functions app to the isolated worker model before the November 10, 2026 retirement, with csproj diffs, signature rewrites, and a slot-swap rollout. - [Migrate from Serilog to OpenTelemetry logging in .NET 11](https://startdebugging.net/2026/06/migrate-from-serilog-to-opentelemetry-logging-in-dotnet-11/): A step-by-step guide to moving a .NET 11 app off Serilog and onto OpenTelemetry logging: the low-risk Serilog.Sinks.OpenTelemetry bridge, the full Microsoft.Extensions.Logging cut-over, what breaks, how to verify, and how to roll back. - [Dart 3.12 Ships Primary Constructors Behind an Experiment Flag](https://startdebugging.net/2026/06/dart-3-12-experimental-primary-constructors/): Dart 3.12 adds an experimental primary constructors syntax that declares fields and a constructor in the class header, collapsing the classic three-line data class to one. - [EF Core ExecuteUpdate vs loading entities and SaveChanges: which should you use?](https://startdebugging.net/2026/06/ef-core-executeupdate-vs-loading-entities-and-savechanges/): A decision guide and real benchmark for EF Core 11: use ExecuteUpdate for set-based writes by a predicate, and the load-then-SaveChanges path only when you need the change tracker, interceptors, or a complex object graph. - [MCP vs OpenAPI Plugins vs Custom Tool Calling for AI Agents: Which Should You Pick in 2026?](https://startdebugging.net/2026/06/mcp-vs-openapi-plugins-vs-custom-tool-calling-for-ai-agents/): Use custom tool calling for one app you own end to end, MCP for any integration you want reused across Claude Code, Cursor, and ChatGPT, and OpenAPI plugins only as a bridge when you already have a spec. MCP is the cross-client standard in 2026; plugins are legacy. - [Migrate EF Core 6 to EF Core 11: breaking changes that actually bite](https://startdebugging.net/2026/06/migrate-ef-core-6-to-ef-core-11-breaking-changes/): A version-pinned migration guide from EF Core 6.0 to EF Core 11.0, walking the breaking changes across EF7, 8, 9, 10, and 11 that break real apps: Encrypt=True, OPENJSON Contains, PendingModelChangesWarning, the native json column, and the SqlClient 7.0 split. - [Provider vs Riverpod vs Bloc for Flutter state management in 2026](https://startdebugging.net/2026/06/provider-vs-riverpod-vs-bloc-for-flutter-state-management-in-2026/): Pick Riverpod for most new Flutter apps in 2026. Choose Bloc for large teams that want an enforced event-driven structure, and keep Provider only for legacy code. - [BackgroundService vs IHostedService vs Hangfire for background jobs in .NET 11](https://startdebugging.net/2026/06/backgroundservice-vs-ihostedservice-vs-hangfire-for-background-jobs-in-dotnet-11/): Pick BackgroundService for in-process loops, raw IHostedService when you need fine lifecycle control, and Hangfire when jobs must survive a restart. A decision matrix with code and the one gotcha that picks for you. - [Claude Code vs Cursor vs Copilot Agent Mode: Where Each Wins in 2026](https://startdebugging.net/2026/06/claude-code-vs-cursor-vs-copilot-agent-mode-where-each-wins/): Claude Code wins on raw agent quality and predictable flat pricing, Cursor wins as the editor you live in with the best multi-model routing, and GitHub Copilot wins when the work starts and ends on GitHub. The June 2026 token-billing shift is the tiebreaker for cost. - [.NET 11 Raises the Minimum CPU Baseline to x86-64-v2](https://startdebugging.net/2026/06/dotnet-11-minimum-cpu-baseline-x86-64-v2/): .NET 11 Preview 4 drops support for pre-2013 x86/x64 chips and bumps the JIT baseline to x86-64-v2. Here is what breaks, why, and how to check your hardware before you upgrade. - [Fix: RenderBox was not laid out in Flutter](https://startdebugging.net/2026/06/fix-renderbox-was-not-laid-out-in-flutter/): RenderBox was not laid out is almost always a secondary error. Find the first layout assertion above it, usually a scrollable given unbounded constraints, and fix that. - [Fix: A TextEditingController was used after being disposed in Flutter](https://startdebugging.net/2026/06/fix-texteditingcontroller-was-used-after-being-disposed-in-flutter/): This crash means code touched a controller after dispose() ran. Guard async callbacks with a mounted check, and never dispose a controller you do not own. - [Claude Code vs Cursor vs Aider for a .NET 11 Repo in 2026](https://startdebugging.net/2026/06/claude-code-vs-cursor-vs-aider-for-a-dotnet-11-repo/): For a large .NET 11 / C# 14 solution, Claude Code wins on agent quality and runs anywhere a terminal does. Cursor wins if your team wants a GUI and tab completion, as long as you can live without C# Dev Kit. Aider wins on cost and openness. - [.NET 11 Can Round-Trip a Double as Hex, Bit for Bit](https://startdebugging.net/2026/06/dotnet-11-floating-point-hex-format-numberstyles-hexfloat/): .NET 11 Preview 4 teaches double, float, and Half to format with the X specifier and parse with NumberStyles.HexFloat, producing the same IEEE-754 hex text as C printf("%a"). - [Fix: ObjectDisposedException: Cannot access a disposed context instance](https://startdebugging.net/2026/06/fix-objectdisposedexception-cannot-access-a-disposed-context-instance/): Your fire-and-forget task captured a request-scoped DbContext that the DI scope already disposed. Resolve a fresh context inside the task with IServiceScopeFactory or IDbContextFactory. - [Fix: setState() or markNeedsBuild() called during build in Flutter](https://startdebugging.net/2026/06/fix-setstate-or-markneedsbuild-called-during-build-in-flutter/): This error means you mutated state while Flutter was building. Move the setState out of build, or defer it with addPostFrameCallback. Here is why it happens and the right fix. - [How to Show Loading and Error States with AsyncValue in Flutter Riverpod](https://startdebugging.net/2026/06/how-to-show-loading-and-error-states-with-asyncvalue-in-flutter-riverpod/): Render loading, data, and error UI from a single AsyncValue in Riverpod 3. Use AsyncNotifier and AsyncValue.guard for mutations, .when() and switch pattern matching for the UI, keep previous data on refresh, and migrate the legacy StateNotifier pattern. Tested on flutter_riverpod 3.x, Flutter 3.44, Dart 3.x. - [EF Core 11 Preview 4: Stop Retyping --project and --startup-project with .config/dotnet-ef.json](https://startdebugging.net/2026/06/efcore-11-dotnet-ef-json-config-file/): EF Core 11 Preview 4 lets the dotnet ef tool read default option values from a .config/dotnet-ef.json file, so split solutions no longer force you to pass --project and --startup-project on every command. - [Fix: MCP Servers Stopped Working After a Claude Desktop Update on Windows](https://startdebugging.net/2026/06/fix-mcp-servers-stop-working-after-claude-desktop-update-on-windows/): After an MSIX update, Claude Desktop on Windows reads claude_desktop_config.json from a virtualized path while Edit Config opens the old %APPDATA% one. Edit the file under AppData\Local\Packages\Claude_pzs8sxrjxfjjc and restart. - [How to Dispose Controllers in Flutter to Avoid Memory Leaks](https://startdebugging.net/2026/06/how-to-dispose-controllers-in-flutter-to-avoid-memory-leaks/): AnimationController, TextEditingController, and ScrollController hold resources that Dart's GC cannot reclaim until you dispose them. Here is the correct pattern, the ordering rules, and how to catch leaks before they ship. - [How to Handle Network Errors Gracefully in a Flutter App](https://startdebugging.net/2026/06/how-to-handle-network-errors-gracefully-in-a-flutter-app/): A request can fail with no connectivity, a timeout, a DNS failure, a 500, or malformed JSON, and each needs a different response. Here is how to catch the right exceptions, classify them, retry safely, and show a UI a user can act on. - [How to use query splitting to avoid a cartesian explosion in EF Core 11](https://startdebugging.net/2026/06/how-to-use-query-splitting-to-avoid-a-cartesian-explosion-in-ef-core-11/): When you Include two sibling collections, EF Core 11 returns the cross product and your row count explodes. Here is how AsSplitQuery fixes it, how to turn it on globally, and the consistency and ordering gotchas to watch for. - [Claude Code's Dynamic Workflows Fan a Single Prompt Out to Up to 1,000 Subagents](https://startdebugging.net/2026/05/claude-code-dynamic-workflows-opus-4-8/): Anthropic shipped Opus 4.8 on May 28, 2026 with Dynamic Workflows, a research preview in Claude Code that writes a JavaScript orchestration script to run tens to hundreds of subagents in parallel, capped at 1,000 per run. - [Fix: GitHub MCP server tool calls fail silently when the PAT isn't passed](https://startdebugging.net/2026/05/fix-github-mcp-server-tool-calls-fail-silently-without-pat/): GitHub MCP tools show up but every call returns empty or 'Bad credentials'? The token is unset. Put the PAT in the env block, verify with curl, done. - [How to run fire-and-forget work safely in ASP.NET Core with BackgroundService](https://startdebugging.net/2026/05/how-to-run-fire-and-forget-work-safely-in-aspnetcore-with-backgroundservice/): Calling Task.Run from a controller loses work on shutdown, swallows exceptions, and captures disposed scoped services. The safe pattern is a bounded Channel queue drained by a BackgroundService that opens a fresh scope per work item and drains in-flight work on StopAsync. - [How to use ExecuteUpdate and ExecuteDelete for bulk writes in EF Core 11](https://startdebugging.net/2026/05/how-to-use-executeupdate-and-executedelete-for-bulk-writes-in-ef-core-11/): A complete guide to ExecuteUpdate and ExecuteDelete in EF Core 11: the SQL they emit, the change-tracker gotcha that silently overwrites your bulk write, transactions, concurrency control with the affected-row count, and the EF Core 10 delegate setters that let you build conditional updates with plain if statements. - [How to use scoped services inside a BackgroundService in ASP.NET Core 11](https://startdebugging.net/2026/05/how-to-use-scoped-services-inside-a-backgroundservice-in-aspnetcore-11/): A BackgroundService is a singleton, so it cannot inject a scoped service like a DbContext directly. Take IServiceScopeFactory, open one scope per unit of work with CreateAsyncScope, resolve inside it, and dispose it when the work is done. - [Fix: "Claude reached its tool-use limit for this turn"](https://startdebugging.net/2026/05/fix-claude-reached-its-tool-use-limit-for-this-turn/): This banner is a pause, not a failure. It maps to the API's pause_turn stop reason (default 10 server-tool iterations). Click Continue, or in code re-send the assistant response. Full fix here. - [Migrate from AutoMapper to source-generated mapping with Mapperly](https://startdebugging.net/2026/05/migrate-from-automapper-to-source-generated-mapping/): A step-by-step checklist to replace AutoMapper 15 Profiles, IMapper, ForMember, and ProjectTo with Riok.Mapperly 4.3 source-generated mappers in .NET 11. - [Migrate from MediatR to plain dependency injection in .NET 11](https://startdebugging.net/2026/05/migrate-from-mediatr-to-plain-dependency-injection/): A step-by-step checklist to remove MediatR 12-14 and replace IRequest handlers, ISender, pipeline behaviors, and INotification with plain service classes and constructor injection. - [Migrate from Newtonsoft.Json 13 to System.Text.Json in a large .NET 11 codebase](https://startdebugging.net/2026/05/migrate-from-newtonsoft-json-to-system-text-json-in-a-large-codebase/): A version-pinned playbook for swapping Newtonsoft.Json 13.0.4 for the in-box System.Text.Json on .NET 11: the attribute and settings mappings, the defaults that silently change your wire format, a staged rollout strategy, verification, and the gotchas that bite large codebases. - [The Dart and Flutter MCP server: one command to give Claude Code your running Flutter app](https://startdebugging.net/2026/05/dart-flutter-mcp-server-claude-code-cursor/): Dart 3.12 ships dart mcp-server, the official MCP bridge into the Dart and Flutter toolchain. Register it once in Claude Code, Cursor, or Codex CLI and your agent gets hot reload, pub.dev search, and live widget introspection without copy-pasting a DTD URI. - [Fix: HTTP MCP Server URL Won't Connect in Claude Desktop (stdio vs HTTP Transport)](https://startdebugging.net/2026/05/fix-http-mcp-server-url-wont-connect-in-claude-desktop/): Claude Desktop's claude_desktop_config.json only validates stdio servers. Drop a 'url' field in and it silently strips the entry, crashes on startup, or boots with zero tools. Use a custom connector for remote URLs and mcp-remote as a stdio bridge for local HTTP servers. - [Migrate from .NET 8 to .NET 11: the full checklist](https://startdebugging.net/2026/05/migrate-from-dotnet-8-to-dotnet-11-full-checklist/): A version-pinned migration checklist from .NET 8 LTS to .NET 11 LTS, covering SDK install, csproj target framework, breaking changes in ASP.NET Core, EF Core, System.Text.Json, and the C# 14 overload-resolution shift, with rollback notes. - [Migrate from .NET Framework 4.8 to .NET 11 in 2026](https://startdebugging.net/2026/05/migrate-from-dotnet-framework-4-8-to-dotnet-11-in-2026/): A version-pinned migration playbook for moving a .NET Framework 4.8 codebase to .NET 11 LTS in 2026, covering the SDK-style csproj rewrite, System.Web to ASP.NET Core, WCF, EF6 to EF Core 11, BinaryFormatter removal, AppDomain replacements, and a realistic rollback plan. - [Migrate from Xamarin.Forms 5.0 to .NET MAUI 11: the full checklist](https://startdebugging.net/2026/05/migrate-from-xamarin-forms-to-maui-11/): End-to-end migration from Xamarin.Forms 5.0 to .NET MAUI 11 GA on net11.0, covering csproj rewrite, custom renderer to handler conversion, AppShell wiring, DependencyService removal, MessagingCenter retirement, Resizetizer assets, and the gotchas that bite a real production codebase. - [Dart records vs Freezed classes: which should you pick in 2026?](https://startdebugging.net/2026/05/dart-records-vs-freezed-classes/): Pick Dart 3.12 records for ephemeral, locally-shaped data with no methods, and Freezed 3.x classes for named domain models that need copyWith, sealed unions, JSON serialization, or any behaviour. - [Flutter vs React Native vs .NET MAUI: which should you pick for a new mobile project in 2026?](https://startdebugging.net/2026/05/flutter-vs-react-native-vs-maui-for-a-new-mobile-project-in-2026/): For a greenfield mobile app in 2026, pick Flutter 3.44 when pixel-identical UI and animation budget matter, React Native 0.82 when your team already lives in TypeScript and you need a real browser sibling, and .NET MAUI 11 when iOS and Android are part of a wider .NET product and you need first-party Microsoft support. - [How to Assign a Jira Ticket to a Cursor Cloud Agent and Get a PR Back](https://startdebugging.net/2026/05/how-to-assign-a-jira-ticket-to-a-cursor-cloud-agent-and-get-a-pr-back/): Step-by-step guide to the Cursor in Jira integration (launched May 19, 2026): install the Marketplace app, assign a ticket to @Cursor, wire repository access and automation rules, and read the PR the cloud agent links back. - [.NET MAUI 10 SR6 finishes Material 3 on Android behind a single UseMaterial3 flag](https://startdebugging.net/2026/05/maui-10-material-3-android-usematerial3-flag/): MAUI 10 SR6 (10.0.60) extends Material 3 theming to Button, Entry, SearchBar, DatePicker, Slider, ProgressBar, ImageButton, Switch, and Shell on Android. Opt in with one MSBuild property. No custom renderers, no styles.xml edits. - [MAUI vs Avalonia vs Uno Platform: which should you pick in 2026?](https://startdebugging.net/2026/05/maui-vs-avalonia-vs-uno-in-2026/): For a new .NET cross-platform desktop and mobile app in 2026, pick Avalonia when you need a single rendered control set across all targets, Uno when you must reach the browser too, and MAUI only when you actually need native iOS and Android plus first-party Microsoft support. - [Azure Functions isolated worker vs in-process in .NET 11: which should you pick in 2026?](https://startdebugging.net/2026/05/azure-functions-isolated-worker-vs-in-process-in-dotnet-11/): Pick the isolated worker model for every new Azure Functions app on .NET 11 in 2026, and migrate any remaining in-process apps before the November 10 retirement deadline. - [Blazor Server vs Blazor WebAssembly vs Blazor United in .NET 11: which should you pick in 2026?](https://startdebugging.net/2026/05/blazor-server-vs-webassembly-vs-united-in-dotnet-11/): For any new Blazor app on .NET 11, scaffold a Blazor Web App (the template formerly nicknamed Blazor United) and pick render modes per page. Server-only and WebAssembly-only templates only still make sense in narrow cases. - [EF Core 11 Preview 4: Temporal Table Period Columns Can Finally Be Real Properties](https://startdebugging.net/2026/05/ef-core-11-temporal-tables-clr-period-properties/): EF Core 11 Preview 4 drops the long-standing shadow-property restriction on SQL Server temporal tables. PeriodStart and PeriodEnd can now be regular CLR properties, configured with strongly-typed HasPeriodStart and HasPeriodEnd lambdas. - [How to Let Aider Edit Files Outside the Git Repository](https://startdebugging.net/2026/05/how-to-let-aider-edit-files-outside-the-git-repository/): Aider is git-first by default. To edit files outside the repo, pass them on the command line, use /read for reference docs, drop --no-git for unversioned dirs, or symlink. Five working patterns with exact flags. - [Dart 3.12 Drops the Initializer List for Private Fields](https://startdebugging.net/2026/05/dart-3-12-private-named-parameters-initializing-formals/): Dart 3.12 lets constructors initialize private fields directly with named parameters, killing one of the language's most persistent boilerplate patterns. - [How to Reduce the Number of MCP Tools Claude Loads to Avoid the Tool-Use Limit](https://startdebugging.net/2026/05/how-to-reduce-the-number-of-mcp-tools-claude-loads/): Five MCP servers can burn 55k tokens and wreck tool-selection accuracy before Claude does any work. How to fix it in Claude Code 2.1.x with ENABLE_TOOL_SEARCH and alwaysLoad, on the raw API with the tool search tool and defer_loading, and on the MCP connector with mcp_toolset. Anchored to claude-opus-4-7, claude-sonnet-4-6, and the 20251119 tool search variants. - [List vs Span vs ReadOnlySpan in C#: when to reach for which](https://startdebugging.net/2026/05/list-vs-span-vs-readonlyspan-in-csharp/): List is a growable heap collection; Span and ReadOnlySpan are stack-only views over memory you already own. Use List for anything you store, return from async, or grow; Span for a mutable allocation-free view in a synchronous method; ReadOnlySpan for read-only parsing over strings, u8 literals, and slices. - [Parallel.ForEach vs Parallel.ForEachAsync vs Task.WhenAll in C#](https://startdebugging.net/2026/05/parallel-foreach-vs-parallel-foreachasync-vs-task-whenall/): Use Parallel.ForEach for CPU-bound work over in-memory data, Parallel.ForEachAsync for async I/O over many items with a concurrency cap, and Task.WhenAll for a small fixed fan-out where you want every operation in flight and need the results back. - [StringBuilder vs string interpolation in .NET 11: which should you use?](https://startdebugging.net/2026/05/stringbuilder-vs-string-interpolation-in-dotnet-11/): Use string interpolation for one-shot composition of a fixed set of values; use StringBuilder when you append in a loop or across an unknown number of pieces. The dividing line is the loop, not the number of values. - [Add Project Settings to a UiPath Package: Design-Time and Runtime](https://startdebugging.net/2026/05/add-project-settings-to-a-uipath-package-design-time-and-runtime/): How to add a custom category to UiPath's Project Settings from your activity package, register fields at design time via IRegisterWorkflowDesignApi, and read those values back at runtime through IExecutorRuntime — with the App Insights instrumentation key as the example. - [ASP.NET Core in .NET 11 Preview 4 Teaches OpenAPI About the HTTP QUERY Method](https://startdebugging.net/2026/05/aspnetcore-11-http-query-method-openapi/): .NET 11 Preview 4 makes ASP.NET Core OpenAPI generation recognize HTTP QUERY as a first-class operation in OpenAPI 3.2, with a graceful fallback for 3.0 and 3.1 documents. - [Building a UiPath Activity Package for Modern Studio with ViewModels](https://startdebugging.net/2026/05/build-a-uipath-activity-package-for-modern-studio-with-viewmodels/): A modern UiPath custom activity needs more than a CodeActivity: a DesignPropertiesViewModel, an embedded metadata file for the toolbox, private host-supplied references, and the right System.Activities assembly version. Here's the whole recipe. - [Independently Releasing Multiple NuGet Packages with MinVer + Trusted Publishing](https://startdebugging.net/2026/05/independently-release-multiple-nuget-packages-with-minver-and-trusted-publishing/): One repo, three NuGet packages, independent versions. Per-package MinVer tag prefixes, a tag-driven GitHub Actions release that publishes via OIDC trusted publishing (no API key), pinning a cross-package dependency to a real version, and the default-branch gotcha that silently swallows your first tag. - [lock vs Monitor vs SemaphoreSlim vs System.Threading.Lock in C#](https://startdebugging.net/2026/05/lock-vs-monitor-vs-semaphoreslim-vs-system-threading-lock-in-csharp/): Four ways to guard a critical section in C#, and a decision matrix for picking one. Use System.Threading.Lock for synchronous mutual exclusion on .NET 9+, SemaphoreSlim when the section spans an await, and Monitor only when you need Wait/Pulse. - [How to Author a Function Tool in the Microsoft Agent Framework: Inline, Method, or Class](https://startdebugging.net/2026/05/microsoft-agent-framework-function-tools-inline-method-class/): If you came from Semantic Kernel looking for 'skills,' the Microsoft Agent Framework 1.0 calls them function tools and builds every one from AIFunctionFactory.Create. Here are the three ways to author one in C# -- an inline lambda, a named method, or a class of related tools -- plus what the declarative YAML 'file' approach can and cannot do. - [Polly vs resilience handlers in .NET 11: which should you use?](https://startdebugging.net/2026/05/polly-vs-resilience-handlers-in-dotnet-11/): Use the Microsoft.Extensions.Http.Resilience handler for HttpClient calls, since it is Polly with HTTP-aware defaults and telemetry in one line. Reach for Polly's ResiliencePipeline directly only when you protect something that is not an HttpClient. - [Run Code Before & After Every UiPath Activity (TrackingParticipant + a Reflection Bridge)](https://startdebugging.net/2026/05/run-code-before-and-after-every-uipath-activity-with-a-tracking-participant/): There's no public hook to run code around every UiPath activity in the Robot. CoreWF's TrackingParticipant gets you the events, and a small reflection bridge into the live executor attaches it from inside a running workflow — so a single Super Initialize activity instruments the whole run. - [Task.Run vs Task.Factory.StartNew vs ThreadPool.QueueUserWorkItem](https://startdebugging.net/2026/05/task-run-vs-task-factory-startnew-vs-threadpool-queueuserworkitem/): Three ways to push work onto the thread pool in C#, and which one to reach for. Use Task.Run for almost everything, ThreadPool.QueueUserWorkItem for allocation-free fire-and-forget, and Task.Factory.StartNew only for LongRunning or a custom scheduler. - [Writing a UiPath Workflow Analyzer Rule with Entry-Point Detection](https://startdebugging.net/2026/05/write-a-uipath-workflow-analyzer-rule-with-entry-point-detection/): Ship a Workflow Analyzer rule inside your UiPath activity package: register it with IRegisterAnalyzerConfiguration, scope it to the workflow so the result lands on the right file, detect the project's entry point, and walk the activity tree — with the gotcha that InspectionResult has no File property. - [.NET 11 Adds Allocation-Free Deflate and GZip Compression](https://startdebugging.net/2026/05/dotnet-11-span-based-deflate-gzip-compression/): .NET 11 Preview 4 ships DeflateEncoder, GZipEncoder, and ZLibEncoder plus matching decoders so you can compress straight into a Span with OperationStatus, no Stream required. - [EF Core compiled queries vs raw SQL vs Dapper: which read path wins?](https://startdebugging.net/2026/05/ef-core-compiled-queries-vs-raw-sql-vs-dapper/): For read-heavy paths in .NET 11, plain EF Core with AsNoTracking is within ~5% of Dapper. Reach for compiled queries on a profiled single-row hot path, and Dapper only for the lowest latency or SQL LINQ can't express. - [Fix: Extra Inputs Are Not Permitted on a Tool Call With a Structured Argument](https://startdebugging.net/2026/05/fix-extra-inputs-are-not-permitted-on-a-tool-call-with-a-structured-argument/): Your agent's tool call fails with Pydantic's 'Extra inputs are not permitted'. The model added a field your structured argument forbids. Turn on strict tool use so the grammar blocks it, relax the validator, or recover in the loop. - [HttpClient vs HttpClientFactory vs Refit: which should you use in .NET 11?](https://startdebugging.net/2026/05/httpclient-vs-httpclientfactory-vs-refit/): Never new up HttpClient per request. Use IHttpClientFactory to manage lifetime, and add Refit on top when you want a typed interface instead of hand-written request code. Raw singleton HttpClient is fine only for the simplest cases. - [MediatR vs plain service classes in 2026: should the license change move you?](https://startdebugging.net/2026/05/mediatr-vs-plain-service-classes-in-2026/): For new code, plain service classes are the better default. MediatR's July 2025 license change matters only if you sit above the $5M Community threshold or refuse the RPL-1.5 copyleft. Keep MediatR when pipeline behaviors are load-bearing. - [C# 16 Reworks unsafe Into a Caller Contract](https://startdebugging.net/2026/05/csharp-16-unsafe-keyword-caller-contract/): C# 16 redesigns the unsafe keyword so it propagates a caller obligation instead of silently opening an unsafe context, with inner unsafe blocks now mandatory. - [Fix: `ECONNREFUSED` When a Local MCP Server Starts Before the Client Is Ready](https://startdebugging.net/2026/05/fix-econnrefused-when-a-local-mcp-server-starts-before-the-client-is-ready/): ECONNREFUSED from an MCP client means nothing was listening on that host:port yet. Fix the startup race, the localhost IPv4/IPv6 trap, and wrong-port mistakes for HTTP MCP servers. - [Native AOT vs ReadyToRun vs JIT in .NET 11: which should you ship?](https://startdebugging.net/2026/05/native-aot-vs-readytorun-vs-jit-in-dotnet-11/): Plain JIT with Dynamic PGO wins steady-state throughput, ReadyToRun cuts startup with zero code changes, and Native AOT gives the smallest, fastest-starting binary at the cost of reflection and dynamic code. Pick by deployment shape, not raw benchmarks. - [System.Text.Json vs Newtonsoft.Json in 2026: which should you pick?](https://startdebugging.net/2026/05/system-text-json-vs-newtonsoft-json-in-2026/): Pick System.Text.Json for new .NET 11 code: it ships in-box, is roughly 2x faster, and is the only one that works with Native AOT. Reach for Newtonsoft.Json only for JSONPath, TypeNameHandling, or genuinely lenient JSON. - [ConfigureAwait(false) vs default in .NET 11: does it still matter?](https://startdebugging.net/2026/05/configureawait-false-vs-default-in-dotnet-11/): ConfigureAwait(false) is still mandatory in library code that may run under a SynchronizationContext (WinForms, WPF, MAUI). In application code on ASP.NET Core, a console app, or a worker service running on .NET 11, it is a no-op. - [Cursor 3.4 Adds Multi-Repo Environments and Faster Dockerfile Builds for Cloud Agents](https://startdebugging.net/2026/05/cursor-3-4-multi-repo-cloud-agent-environments/): Cursor 3.4 (May 13, 2026) lets one cloud agent environment include multiple repositories, adds Dockerfile build secrets, layer-cached rebuilds that run 70% faster, and an agent-led setup step that validates credentials before the first run. - [Fix: GitHub Copilot Ignores Repository Custom Instructions in VS Code](https://startdebugging.net/2026/05/fix-github-copilot-ignores-repository-custom-instructions-in-vs-code/): Copilot Chat reads your .github/copilot-instructions.md fine, but Agent mode and *.instructions.md files often look ignored. Here is the actual checklist: settings, file locations, applyTo globs, and how to prove the file made it into context. - [IEnumerable vs IAsyncEnumerable vs IQueryable in C#: which one should the method return?](https://startdebugging.net/2026/05/ienumerable-vs-iasyncenumerable-vs-iqueryable-in-csharp/): Three sequence interfaces, three execution models. Use IQueryable when a database can translate the query, IAsyncEnumerable when the producer is async and you want to stream, IEnumerable for everything else in memory. - [Minimal APIs vs controllers in ASP.NET Core 11: which should you pick in 2026?](https://startdebugging.net/2026/05/minimal-apis-vs-controllers-in-aspnetcore-11/): Pick minimal APIs by default in ASP.NET Core 11. Use controllers only when you need MVC features that minimal APIs still do not match: convention-based routing across many actions, MVC-style filters, or Razor views. - [async void vs async Task in C#: when each is correct](https://startdebugging.net/2026/05/async-void-vs-async-task-in-csharp-when-each-is-correct/): async Task is the default and async void is the exception. Use async void only for event handlers, top-level message-loop handlers, and a handful of framework callbacks that demand a void signature. Everywhere else, async Task wins on exceptions, composition, and testability. - [EF Core 11 vs Dapper for bulk inserts: real benchmark](https://startdebugging.net/2026/05/ef-core-11-vs-dapper-for-bulk-inserts-real-benchmark/): For bulk inserts in .NET 11, neither EF Core nor Dapper wins. SqlBulkCopy does. This is the benchmark, the why, and the seat each tool deserves. - [Fix: Cursor's Apply Button Does Nothing on a Large Diff](https://startdebugging.net/2026/05/fix-cursor-apply-button-does-nothing-on-large-diff/): Cursor's Apply silently cancels on big files because the Fast Apply model has an implicit size ceiling. Shrink the edit scope, clean git state, or fall back to a unified diff. Six ranked fixes for Cursor 3.3. - [NuGet Package Pruning Is On by Default in .NET 10](https://startdebugging.net/2026/05/nuget-package-pruning-default-net-10/): NuGet Package Pruning shipped on-by-default for net10.0 projects, cutting transitive vulnerability reports by 70% and restore times by up to 50%. - [record vs class vs struct in C#: a decision matrix](https://startdebugging.net/2026/05/record-vs-class-vs-struct-in-csharp-a-decision-matrix/): C# 14 gives you four data-type shapes -- class, record class, struct, and record struct. This is the decision matrix: when each one is correct, what each one costs, and the rules that pick for you. - [Cloud Functions for Firebase Now Speaks Dart (Experimental)](https://startdebugging.net/2026/05/dart-cloud-functions-firebase-experimental/): Firebase shipped experimental Dart support for Cloud Functions on May 6, 2026. HTTPS and callable triggers, AOT-compiled cold starts, and the Firebase CLI handles compilation. - [Fix: Claude Code Reports `MCP server disconnected` Inside WSL](https://startdebugging.net/2026/05/fix-claude-code-reports-mcp-server-disconnected-inside-wsl/): Why Claude Code shows 'MCP server disconnected' or 'Connection closed' for a working MCP server when launched from WSL2. Covers stdio spawning across the Windows/Linux boundary, npx and node ENOENT, mirrored networking for HTTP servers, VMMem reaping, and how to diagnose the right one with claude --debug. - [Fix: C# 14 overload resolution breaking change with Span and ReadOnlySpan](https://startdebugging.net/2026/05/fix-csharp-14-overload-resolution-breaking-change-with-spans/): After upgrading to C# 14 / .NET 10, calls like array.Contains, x.Reverse(), and MemoryMarshal.Cast suddenly bind to different overloads or stop compiling. Here is what changed and how to pin the old behaviour where it matters. - [GPT-5.3-Codex Becomes the Copilot Business and Enterprise Base Model](https://startdebugging.net/2026/05/copilot-business-gpt-5-3-codex-base-model/): On May 17, 2026 GitHub flipped the default Copilot model on Business and Enterprise plans from GPT-4.1 to GPT-5.3-Codex. GPT-4.1 stays free until June 1, then it falls under usage-based billing. Here is what changes for pinned models in your repo and CI. - [Fix: AndroidX conflict during Flutter Android build](https://startdebugging.net/2026/05/fix-androidx-conflict-during-flutter-android-build/): The fix in 30 seconds: set android.useAndroidX=true and android.enableJetifier=true in android/gradle.properties, then find any plugin still on the old support library and upgrade or replace it. - [Fix: Flutter background_fetch plugin requires minSdkVersion 21](https://startdebugging.net/2026/05/fix-flutter-background-fetch-requires-minsdkversion-21/): The fix in 30 seconds: set minSdkVersion to 21 (or higher) in android/app/build.gradle. background_fetch is built on Android's JobScheduler, which only exists from API 21. - [Fix: framework_version=6.0.0 was not found when launching a .NET 6 binary](https://startdebugging.net/2026/05/fix-framework-version-6-0-0-when-launching-dotnet-6-binary/): The .NET 6 runtime is gone or mismatched. Either install net6.0 again, roll forward to net8.0 via runtimeconfig, retarget the csproj, or ship self-contained. - [Fix: rate_limit_error on Claude Sonnet 4.6 in a Long Agent Loop](https://startdebugging.net/2026/05/fix-rate-limit-error-on-claude-sonnet-4-6-in-a-long-agent-loop/): A 429 rate_limit_error on claude-sonnet-4-6 in a long agent loop is almost always ITPM, not RPM. Read retry-after, cache the system prompt, and gate on anthropic-ratelimit-input-tokens-remaining. Step-by-step fix with code. - [dotnet new mcpserver Now Ships in the .NET 11 Preview 4 SDK](https://startdebugging.net/2026/05/dotnet-11-preview-4-mcpserver-template-bundled/): .NET 11 Preview 4 bundles the mcpserver project template directly into the SDK. No separate Microsoft.McpServer.ProjectTemplates install, no preview feed dance. Pick stdio or HTTP transport, opt into Native AOT, and dotnet new mcpserver -o MyServer is the whole setup. - [Fix: Context Window Exceeded During an Aider Refactor](https://startdebugging.net/2026/05/fix-context-window-exceeded-during-an-aider-refactor/): Aider 0.86 hit the token limit mid-refactor. The fix is /clear, /drop, --map-tokens, and switching to architect mode with Claude Sonnet 4.6's 1M window. Step-by-step repro, error breakdown, and config. - [Fix: Failed to build iOS app with Xcode 16 and Flutter 3.x](https://startdebugging.net/2026/05/fix-failed-to-build-ios-app-with-xcode-16-and-flutter-3-x/): The fix in 60 seconds: upgrade Flutter to 3.24.4 or later, raise the Podfile platform to iOS 13, wipe Pods plus DerivedData, then pod install. The error rarely lives in your Dart code. - [Fix: Unhandled Exception: FormatException: Unexpected character when parsing JSON in Dart](https://startdebugging.net/2026/05/fix-formatexception-unexpected-character-when-parsing-json-in-dart/): The fix in 30 seconds: your response body is not the JSON you think it is. Print the raw bytes, decode with utf8.decode(response.bodyBytes), and never feed an HTML error page or a BOM-prefixed string to jsonDecode. - [Fix: Version solving failed in pubspec.yaml](https://startdebugging.net/2026/05/fix-version-solving-failed-in-pubspec-yaml/): The fix in 30 seconds: read the 'because' chain in the error, find the one constraint that boxes pub in, and either widen it or add a dependency_overrides entry. Do not start with flutter clean. - [Fix: Provisioning profile doesn't include the currently selected device in MAUI iOS](https://startdebugging.net/2026/05/fix-provisioning-profile-doesnt-include-currently-selected-device-maui-ios/): The profile Visual Studio picked was generated before this iPhone's UDID was registered. Re-register the device, regenerate the development profile, redownload, redeploy. - [Fix: A RenderFlex overflowed by N pixels in Flutter](https://startdebugging.net/2026/05/fix-renderflex-overflowed-in-flutter/): The fix in 30 seconds: wrap the offending child in Expanded or Flexible. Then read the rest to learn why Row and Column do not clip, what unbounded constraints actually mean, and which fix is right for each layout. - [Fix: Tool Call Arguments Did Not Match Schema in Anthropic Tool Use](https://startdebugging.net/2026/05/fix-tool-call-arguments-did-not-match-schema-in-anthropic-tool-use/): Why your Claude tool call fails schema validation, in both flavours: the API rejecting your tool definition at request time, and Claude returning a tool_use block your runner cannot accept. Concrete fixes for each, with strict mode, oneOf/anyOf, additionalProperties, and the retry loop pattern. - [Fix: Unable to find a valid iOS Simulator runtime during MAUI build](https://startdebugging.net/2026/05/fix-unable-to-find-a-valid-ios-simulator-runtime-during-maui-build/): Xcode 15+ ships without bundled iOS simulator runtimes. MAUI fails the build when SupportedOSPlatformVersion has no matching runtime installed. Install one with xcodebuild -downloadPlatform iOS or via Xcode Settings, then verify with xcrun simctl list runtimes. - [Flutter 3.44 Splits Material and Cupertino Out of the SDK and Defaults to SwiftPM](https://startdebugging.net/2026/05/flutter-3-44-material-cupertino-packages-swiftpm-default/): Flutter 3.44 stable freezes Material and Cupertino inside the SDK and points new work at the material_ui and cupertino_ui packages on pub.dev. SwiftPM also becomes the default for iOS and macOS, finally retiring CocoaPods. - [.NET 11 Adds Deadlock-Free Process Output Capture](https://startdebugging.net/2026/05/dotnet-11-process-api-deadlock-free-capture/): .NET 11 Preview 4 ships new System.Diagnostics.Process APIs that drain stdout and stderr concurrently, plus one-line run-and-capture helpers and KillOnParentExit. - [Fix: Gradle build failed to produce an .apk file in MAUI Android](https://startdebugging.net/2026/05/fix-gradle-build-failed-to-produce-an-apk-file-in-maui-android/): Nine out of ten times the real Gradle error is buried higher in the MSBuild log. JDK 17 path, missing maui-android workload, and Windows long paths are the usual root causes. - [Fix: MCP Server stdio Hang When Launched From Claude Code](https://startdebugging.net/2026/05/fix-mcp-server-stdio-hang-when-launched-from-claude-code/): Why your Model Context Protocol server gets stuck in 'connecting' from Claude Code 2.x and never registers any tools. Covers stdout pollution, the npx install prompt, MCP_TIMEOUT, buffered output, and WSL pitfalls, with verifiable repros. - [Fix: A possible object cycle was detected](https://startdebugging.net/2026/05/fix-possible-object-cycle-was-detected-system-text-json/): System.Text.Json refuses to serialize graphs with back-references. Set ReferenceHandler.IgnoreCycles, project to a DTO, or mark the back-pointer with [JsonIgnore]. Preserve is a last resort. - [Fix: SqlException: Timeout expired during EF Core migrations](https://startdebugging.net/2026/05/fix-sqlexception-timeout-expired-during-ef-core-migrations/): Migrations use the design-time DbContext, not your runtime CommandTimeout. Set the timeout via UseSqlServer(o => o.CommandTimeout(...)), the connection string Command Timeout, or Database.SetCommandTimeout before Migrate(). - [How to Add Retrieval-Augmented Generation to a Claude Code Session](https://startdebugging.net/2026/05/how-to-add-retrieval-augmented-generation-to-a-claude-code-session/): A 2026 walkthrough for wiring RAG into Claude Code 2.1.x: when agentic grep stops scaling, how to attach a hybrid BM25 + dense vector MCP server, how to wrap a retrieval CLI in a custom skill, and how Anthropic's contextual embeddings technique pushes recall above 92%. Anchored to claude-sonnet-4-6, claude-opus-4-7, and Claude Context 0.x. - [MAUI switches to CoreCLR by default on Android, iOS, and Mac Catalyst in .NET 11 Preview 4](https://startdebugging.net/2026/05/maui-coreclr-default-android-ios-dotnet-11-preview-4/): .NET 11 Preview 4 makes CoreCLR the default runtime for MAUI on Android, iOS, Mac Catalyst, and tvOS. Mono is still one MSBuild property away. Here is what changes, what breaks, and how to opt out. - [dotnet watch finally reaches MAUI on Android and iOS in .NET 11 Preview 4](https://startdebugging.net/2026/05/dotnet-watch-maui-android-ios-net-11-preview-4/): .NET 11 Preview 4 turns on dotnet watch for Android devices, Android emulators, and the iOS Simulator. Edit, save, and the running app updates without a manual rebuild. One csproj gotcha applies to iOS. - [Fix: System.Text.Json.JsonException: The JSON value could not be converted](https://startdebugging.net/2026/05/fix-jsonexception-the-json-value-could-not-be-converted/): System.Text.Json throws this when the incoming JSON token doesn't match the CLR target type. Match the JSON to the type, or register a JsonConverter or JsonSerializerOption that bridges them. - [Fix: System.Security.Cryptography.CryptographicException: Keyset does not exist](https://startdebugging.net/2026/05/fix-keyset-does-not-exist-when-calling-win32-api-from-dotnet/): The certificate's private key lives in a separate Windows key file the current process identity cannot read. Grant ACL on the key, load the PFX with MachineKeySet, or use EphemeralKeySet. - [Fix: The command 'dotnet' could not be found on CI](https://startdebugging.net/2026/05/fix-the-command-dotnet-could-not-be-found-on-ci/): Your CI runner cannot resolve dotnet because the SDK is not installed for that step, or it is installed but not on PATH. Use actions/setup-dotnet, pin a global.json, and export DOTNET_ROOT and ~/.dotnet/tools. - [How to Structure a Monorepo So Claude Code's Context Stays Small](https://startdebugging.net/2026/05/how-to-structure-a-monorepo-so-claude-codes-context-stays-small/): A 2026 playbook for keeping Claude Code's 200k token context lean in a monorepo: launch from the subtree you are touching, split CLAUDE.md into nested files that load on demand, push path-scoped rules into .claude/rules/, use skills and subagents for the noisy reads, and exclude other teams' files with claudeMdExcludes. Anchored to Claude Code 2.1.x, claude-sonnet-4-6, and claude-opus-4-7. - [Cursor Bugbot Adds Default, High, and Custom Effort Levels](https://startdebugging.net/2026/05/cursor-bugbot-effort-levels-pr-review/): On May 11, 2026, Cursor shipped effort levels for Bugbot. Default finds 0.7 bugs per review, High pushes it to 0.95, and Custom lets you describe in plain English when each mode should kick in. - [Fix: System.IO.FileNotFoundException: Could not load file or assembly in a published app](https://startdebugging.net/2026/05/fix-could-not-load-file-or-assembly-in-published-app/): Runs fine with dotnet run, throws after dotnet publish. The DLL is usually missing from the publish folder, not the runtime. Check deps.json, ProjectReference Private, and trimming. - [Fix: InvalidOperationException: Synchronous operations are disallowed](https://startdebugging.net/2026/05/fix-invalidoperationexception-synchronous-operations-are-disallowed/): Replace the Stream.Read or Write call with ReadAsync/WriteAsync. As a last resort, set AllowSynchronousIO on Kestrel, IIS, or per-request via IHttpBodyControlFeature. - [Fix: RZ10012: Found markup element with unexpected name in Blazor](https://startdebugging.net/2026/05/fix-rz10012-found-markup-element-with-unexpected-name-blazor/): Blazor's Razor compiler emits RZ10012 when a PascalCase tag has no matching component type in scope. Add @using for the component's namespace in _Imports.razor, or @namespace in the component, then rebuild. - [How to Cache Multi-Turn Claude Conversations Across API Calls](https://startdebugging.net/2026/05/how-to-cache-multi-turn-claude-conversations-across-api-calls/): Place rolling cache_control breakpoints across messages, respect the 20-block lookback, and refresh the 5-minute TTL automatically so a 50-turn agent loop pays the prefix once, not fifty times. Verified against anthropic 0.42 (Python) and @anthropic-ai/sdk 0.30 (Node) in May 2026. - [Cursor 3.3 Adds Build in Parallel, Split PRs, and a Unified PR Review](https://startdebugging.net/2026/05/cursor-3-3-build-in-parallel-split-prs/): Cursor 3.3 (May 7, 2026) ships async subagents that work on independent steps of a plan at the same time, a quick action that splits one chat into multiple pull requests, and a redesigned PR workflow that keeps reviews, commits, and changes in one place. - [Fix: dotnet ef migrations add fails with 'Unable to create an object of type DbContext'](https://startdebugging.net/2026/05/fix-dotnet-ef-migrations-add-unable-to-create-dbcontext/): EF Core's design-time tools could not instantiate your DbContext. Either expose a host via WebApplication.CreateBuilder, point to the right startup project, or implement IDesignTimeDbContextFactory. - [Fix: MSB3027 Could not copy X to Y. Exceeded retry count of 10. Failed](https://startdebugging.net/2026/05/fix-msbuild-msb3027-could-not-copy-exceeded-retry-count/): MSB3027 means MSBuild retried a file copy 10 times and a process still held the destination. Kill the locking process, exclude bin/obj from antivirus, or raise CopyRetryCount. - [Fix: The type or namespace name 'X' could not be found (after adding a project reference)](https://startdebugging.net/2026/05/fix-the-type-or-namespace-name-could-not-be-found-after-project-reference/): CS0246 right after a fresh ProjectReference is almost always a TargetFramework mismatch, a stale obj folder, or a missing using directive. Five fixes in order of likelihood. - [How to Set Up an LLM-as-Judge Eval Harness for a Coding Agent](https://startdebugging.net/2026/05/how-to-set-up-an-llm-as-judge-eval-harness-for-a-coding-agent/): Build a working LLM-as-judge eval harness for a coding agent in Python: golden tasks, deterministic checks, a rubric judge on Claude Sonnet 4.6, calibration against human labels, and a CI gate that fails the build when scores regress. - [GitHub Copilot Drops Claude Sonnet 4 From Every Surface](https://startdebugging.net/2026/05/copilot-deprecates-claude-sonnet-4-may-2026/): GitHub deprecated claude-sonnet-4 on May 6, 2026 across Copilot Chat, inline edits, ask and agent modes, and code completions. Recommended migration target is Claude Sonnet 4.6. What to grep for in your repo before the next pinned model selection silently breaks. - [Fix: Cannot consume scoped service 'X' from singleton 'Y'](https://startdebugging.net/2026/05/fix-cannot-consume-scoped-service-from-singleton/): ASP.NET Core's scope validation throws this when a singleton would capture a scoped dependency for the rest of the process. Make the consumer scoped, or take IServiceScopeFactory and create a scope on demand. - [Fix: PlatformNotSupportedException: Operation is not supported on this platform in Native AOT](https://startdebugging.net/2026/05/fix-platformnotsupportedexception-in-native-aot/): Native AOT strips the JIT and the interpreter, so reflection emit, expression-tree compilation, and unseen MakeGenericType throw at runtime. Find the call via IL3050 and replace it with a source generator or a pre-baked path. - [Fix: Unable to resolve service for type 'X' while attempting to activate 'Y'](https://startdebugging.net/2026/05/fix-unable-to-resolve-service-for-type-while-attempting-to-activate/): ASP.NET Core throws this when a constructor asks for a type that was never registered, was registered on the wrong container, or was added after the host was built. Three concrete fixes cover almost every case. - [How to Pipe Cursor's Context to an Aider Session for Multi-Agent Refactors](https://startdebugging.net/2026/05/how-to-pipe-cursors-context-to-an-aider-session-for-multi-agent-refactors/): Cursor is the best place to plan a refactor. Aider is the best place to execute it from a terminal with cheap models and atomic git commits. This guide shows the exact pipe: dump the Cursor chat to markdown, hand it to Aider as a read-only context file, and run an architect/editor split that finishes the work. - [Fix: TaskCanceledException: A task was canceled in HttpClient](https://startdebugging.net/2026/05/fix-taskcanceledexception-a-task-was-canceled-httpclient/): HttpClient throws TaskCanceledException for three different reasons: timeout, caller cancellation, or a connection-level abort. Tell them apart with InnerException and CancellationToken.IsCancellationRequested, then fix the right one. - [Copilot Studio's .NET 10 WebAssembly upgrade: 20% cold path, 5% warm](https://startdebugging.net/2026/05/copilot-studio-net-10-wasm-performance/): Microsoft moved Copilot Studio's WASM engine from .NET 8 to .NET 10. The dual JIT/AOT package, fingerprinting, and WasmStripILAfterAOT explain the numbers. - [Fix: The JSON value could not be converted to System.DateTime](https://startdebugging.net/2026/05/fix-the-json-value-could-not-be-converted-to-system-datetime/): System.Text.Json only accepts ISO 8601 strings for DateTime. Send 2026-05-08T14:00:00Z or register a JsonConverter that parses your format. Empty strings and Unix timestamps both throw. - [How to Write a Claude Code Subagent That Runs Browser Tests](https://startdebugging.net/2026/05/how-to-write-a-claude-code-subagent-that-runs-browser-tests/): Build a project-scoped Claude Code subagent that drives Playwright in a real browser, scoped to its own MCP server so the main session never sees the 25 browser_* tools. Covers the .claude/agents/browser-tester.md frontmatter, mcpServers inline definition, allowed tool list, isolation: worktree, the Playwright Test Agents init flow, and the Sonnet-vs-Haiku model choice. - [Microsoft Agent Framework workflows now survive process restarts via the Durable Task stack](https://startdebugging.net/2026/05/agent-framework-durable-workflows-checkpoint-restart/): Wrap an Agent Framework Workflow in Microsoft.Agents.AI.DurableTask and each executor step is checkpointed. Crash, redeploy, restart - the run continues where it stopped. - [Fix: The instance of entity type cannot be tracked because another instance with the same key value is already being tracked](https://startdebugging.net/2026/05/fix-instance-of-entity-type-cannot-be-tracked-same-key-value/): EF Core 11 throws when two objects share a primary key inside one DbContext. Detach the old one or update it in place. AsNoTracking on the read prevents the collision. - [Fix: A second operation was started on this context instance before a previous operation completed](https://startdebugging.net/2026/05/fix-second-operation-was-started-on-this-context-instance/): EF Core throws when two awaits run in parallel on the same DbContext. Await each call sequentially, or get a new DbContext per concurrent unit of work via IDbContextFactory. - [How to Give a Copilot Agent Skill Access to Your Repo Conventions](https://startdebugging.net/2026/05/how-to-give-a-copilot-agent-skill-access-to-your-repo-conventions/): Turn the unwritten rules in your repo into a SKILL.md that GitHub Copilot loads on demand. Frontmatter, descriptions that route, file references, and how to verify it actually fires. - [Migrate a high-performance Xamarin.Forms ListView to MAUI CollectionView](https://startdebugging.net/2026/05/how-to-migrate-a-xamarin-forms-listview-to-maui-collectionview/): Step-by-step migration from Xamarin.Forms 5.0 ListView to .NET MAUI 11 CollectionView for apps that already squeezed performance out of ListView. Covers cell recycling, virtualization, grouping, pull-to-refresh, context actions, selection, ItemsLayout, EmptyView, and the gotchas that bite real apps. - [Microsoft Agent Framework gates risky tool calls behind FunctionApprovalRequestContent](https://startdebugging.net/2026/05/agent-framework-human-in-the-loop-tool-approval-csharp/): Wrap an AIFunction in ApprovalRequiredAIFunction and the agent stops mid-run to ask permission. Here is how the request and response flow works in C#. - [How to migrate a Flutter app from GetX to Riverpod](https://startdebugging.net/2026/05/how-to-migrate-a-flutter-app-from-getx-to-riverpod/): Step-by-step migration from GetX to Riverpod 3.x in a real Flutter app: GetxController to Notifier, .obs to derived providers, Get.find to ref.watch, Get.to to go_router, plus snackbars, theming, and tests. Tested on Flutter 3.27.1, Dart 3.11, flutter_riverpod 3.3.1. - [How to profile jank in a Flutter app with DevTools](https://startdebugging.net/2026/05/how-to-profile-jank-in-a-flutter-app-with-devtools/): Step-by-step guide to finding and fixing jank in Flutter 3.27 with DevTools: profile mode, the Performance overlay, the Frame Analysis tab, the CPU Profiler, raster vs UI thread, shader warm-up, and Impeller-specific gotchas. Tested on Flutter 3.27.1, Dart 3.11, DevTools 2.40. - [How to Run a Semantic Kernel Plugin From a BackgroundService](https://startdebugging.net/2026/05/how-to-run-a-semantic-kernel-plugin-from-a-backgroundservice/): Wire a Microsoft.SemanticKernel 1.75.0 plugin into a hosted BackgroundService on .NET 11 and invoke its KernelFunctions on a PeriodicTimer schedule. Covers DI scopes, [KernelFunction] resolution, prompt-cache-friendly invocation, cancellation, and the lifetime gotchas that bite when you move a plugin off the request path. - [How to set the accent color in a Flutter app with Material 3 ColorScheme](https://startdebugging.net/2026/05/how-to-set-accent-color-in-flutter-with-material-3-colorscheme/): The 2026 way to set an accent color in Flutter with Material 3: ColorScheme.fromSeed, the colorSchemeSeed shorthand, the seven DynamicSchemeVariant options, dark mode, dynamic_color on Android 12+, and harmonizing brand colors. Tested on Flutter 3.27.1 and Dart 3.11. - [Claude Code 2.1.128 Loads Plugins From .zip Archives and Stops Dropping Unpushed Commits](https://startdebugging.net/2026/05/claude-code-2-1-128-plugin-zip-worktree-fix/): Claude Code v2.1.128 (May 4, 2026) ships --plugin-dir support for .zip archives, makes EnterWorktree branch from local HEAD, and stops the CLI from leaking its own OTLP endpoint into Bash subprocesses. - [Fix: System.InvalidOperationException: No connection string named 'DefaultConnection' could be found](https://startdebugging.net/2026/05/fix-no-connection-string-named-defaultconnection/): If GetConnectionString returns null in .NET 11, your appsettings.json is missing the key, not copied to the build output, or the wrong environment file is being selected. Three checks fix 95% of cases. - [How to add platform-specific code in Flutter without plugins](https://startdebugging.net/2026/05/how-to-add-platform-specific-code-in-flutter-without-plugins/): Call native Android (Kotlin) and iOS (Swift) code from a Flutter 3.x app without writing a plugin: MethodChannel, EventChannel, BasicMessageChannel, the StandardMessageCodec type table, threading rules, and the cases where a plugin still wins. - [How to Expose an EF Core Database to an AI Agent via MCP](https://startdebugging.net/2026/05/how-to-expose-an-ef-core-database-to-an-ai-agent-via-mcp/): Wire an EF Core 10 DbContext into a Model Context Protocol server so Claude Code, Cursor, or any compliant client can run safe, scoped queries against your database. Covers IDbContextFactory lifetime, read-only projections, schema discovery tools, AsNoTracking, parameterised filters, row-level scoping, and the destructive-tool gates you need before letting an agent touch UPDATE. - [How to write a Dart isolate for CPU-bound work](https://startdebugging.net/2026/05/how-to-write-a-dart-isolate-for-cpu-bound-work/): When async/await is not enough: spawn a Dart isolate to run CPU-bound work off the UI thread. Isolate.run, Flutter's compute, long-lived workers with SendPort/ReceivePort, what can cross the boundary, and the JS/web caveat. Tested on Dart 3.11 and Flutter 3.27.1. - [Cursor Ships a TypeScript SDK That Turns Its Coding Agent Into a Library](https://startdebugging.net/2026/05/cursor-typescript-sdk-programmatic-coding-agents/): Cursor's new @cursor/sdk public beta exposes the same runtime, harness, and models that drive the desktop app, CLI, and web UI as a TypeScript package. You get sandboxed cloud VMs, subagents, hooks, MCP, and token-based pricing in a few lines of code. - [How to convert T[] to ReadOnlyMemory in C# (implicit operator and explicit constructor)](https://startdebugging.net/2026/05/how-to-convert-array-to-readonlymemory-in-csharp/): Three ways to wrap a T[] in a ReadOnlyMemory in .NET 11: the implicit conversion, the explicit constructor, and AsMemory(). When each is the right call. - [How to package a .NET MAUI app for the Microsoft Store](https://startdebugging.net/2026/05/how-to-package-a-maui-app-for-the-microsoft-store/): End-to-end guide to packaging a .NET MAUI 11 Windows app as an MSIX, bundling x64/x86/ARM64 into a .msixupload, and submitting through Partner Center: identity reservation, Package.appxmanifest, dotnet publish flags, MakeAppx bundling, and the Store-trusted certificate handoff. - [How to target multiple Flutter versions from one CI pipeline](https://startdebugging.net/2026/05/how-to-target-multiple-flutter-versions-from-one-ci-pipeline/): Practical guide to running one Flutter project against multiple SDK versions in CI: a GitHub Actions matrix with subosito/flutter-action v2, FVM 3 .fvmrc as the source of truth, channel pinning, caching, and the gotchas that bite when the matrix grows past three versions. - [Claude Code 2.1.126 Adds `claude project purge` to Wipe All State for a Repo](https://startdebugging.net/2026/05/claude-code-2-1-126-project-purge/): Claude Code v2.1.126 ships claude project purge, a new CLI subcommand that deletes every transcript, task, file-history entry, and config block tied to a project path in a single shot. Includes --dry-run, --yes, --interactive, and --all. - [How to Add Tool Calling to a Microsoft.Extensions.AI Chat Client](https://startdebugging.net/2026/05/how-to-add-tool-calling-to-a-microsoft-extensions-ai-chat-client/): Wire AIFunctionFactory.Create, ChatOptions.Tools, and ChatClientBuilder.UseFunctionInvocation in Microsoft.Extensions.AI 10.5 so an IChatClient can call your .NET methods automatically. Covers OpenAI and Azure OpenAI providers, the FunctionInvokingChatClient knobs that actually matter (iteration limits, concurrent calls, approval prompts, error handling), and streaming responses with tools. - [How to implement drag-and-drop in .NET MAUI 11](https://startdebugging.net/2026/05/how-to-implement-drag-and-drop-in-maui-11/): End-to-end drag-and-drop in .NET MAUI 11: DragGestureRecognizer, DropGestureRecognizer, custom DataPackage payloads, AcceptedOperation, gesture position, and the per-platform PlatformArgs traps on Android, iOS, Mac Catalyst, and Windows. - [How to support dark mode correctly in a .NET MAUI app](https://startdebugging.net/2026/05/how-to-support-dark-mode-correctly-in-a-maui-app/): End-to-end dark mode in .NET MAUI 11: AppThemeBinding, SetAppThemeColor, RequestedTheme, UserAppTheme override with persistence, the RequestedThemeChanged event, and the per-platform Info.plist and MainActivity bits that the docs gloss over. - [How to use Tailwind CSS with Blazor WebAssembly in .NET 11](https://startdebugging.net/2026/05/how-to-use-tailwind-css-with-blazor-webassembly-in-dotnet-11/): A complete .NET 11 setup for Tailwind CSS v4 in a Blazor WebAssembly app: standalone CLI (no Node), MSBuild target, @source directives for Razor and CSS isolation files, and a publish pipeline that survives Native AOT. - [Agent Governance Toolkit puts a YAML policy in front of every MCP tool call from .NET](https://startdebugging.net/2026/05/agent-governance-toolkit-mcp-policy-control-dotnet/): Microsoft's new Microsoft.AgentGovernance package wraps MCP tool calls with a policy kernel, a security scanner, and a response sanitizer. Here is what each piece does and how the wiring looks in C#. - [How to detect N+1 queries in EF Core 11](https://startdebugging.net/2026/05/how-to-detect-n-plus-1-queries-in-ef-core-11/): A practical guide to spotting N+1 queries in EF Core 11: what the pattern looks like in real code, how to surface it via logging, diagnostic interceptors, OpenTelemetry, and a test that fails the build when a hot path regresses. - [How to use compiled queries with EF Core for hot paths](https://startdebugging.net/2026/05/how-to-use-compiled-queries-with-ef-core-for-hot-paths/): A practical guide to EF Core 11 compiled queries: when EF.CompileAsyncQuery actually wins, the static-field pattern, the Include and tracking gotchas, and how to benchmark before and after so you can prove it was worth the extra ceremony. - [How to write a MAUI app that runs on Windows and macOS only (no mobile)](https://startdebugging.net/2026/05/how-to-write-a-maui-app-that-runs-on-windows-and-macos-only/): Strip Android and iOS from a .NET MAUI 11 project so it ships Windows and Mac Catalyst only: the csproj edits, the workload commands, and the multi-targeting that keeps your code clean. - [How to Migrate a Semantic Kernel Plugin to an MCP Server](https://startdebugging.net/2026/05/migrate-a-semantic-kernel-plugin-to-an-mcp-server/): Take an existing Semantic Kernel plugin with [KernelFunction] methods and turn it into a Model Context Protocol server other agents can call. Covers the drop-in WithTools(kernel) bridge, the native [McpServerTool] rewrite, parameter binding, dependency injection, and the gotchas that bite during the cutover. - [How to Run Claude Code in a GitHub Action for Autonomous PR Review](https://startdebugging.net/2026/05/how-to-run-claude-code-in-a-github-action-for-autonomous-pr-review/): Wire up anthropics/claude-code-action@v1 so every pull request gets an autonomous Claude Code review with no @claude trigger. Includes the v1 YAML, claude_args for claude-sonnet-4-6 vs claude-opus-4-7, inline-comment tooling, path filters, REVIEW.md, and the choice between the self-hosted action and the managed Code Review research preview. - [How to set up structured logging with Serilog and Seq in .NET 11](https://startdebugging.net/2026/05/how-to-set-up-structured-logging-with-serilog-and-seq-in-dotnet-11/): A complete guide to wiring Serilog 4.x and Seq 2025.2 into a .NET 11 ASP.NET Core app: AddSerilog vs UseSerilog, two-stage bootstrap logging, JSON configuration, enrichers, request logging, OpenTelemetry trace correlation, API keys, and the production gotchas around buffering, retention, and signal level. - [How to use OpenTelemetry with .NET 11 and a free backend](https://startdebugging.net/2026/05/how-to-use-opentelemetry-with-dotnet-11-and-a-free-backend/): Wire OpenTelemetry traces, metrics, and logs into a .NET 11 ASP.NET Core app with the OTLP exporter, then ship them to a free, self-hosted backend: the standalone Aspire Dashboard for local dev, Jaeger and SigNoz for self-hosted production, and the OpenTelemetry Collector when you need both. - [How to write integration tests against a real SQL Server with Testcontainers](https://startdebugging.net/2026/05/how-to-write-integration-tests-against-real-sql-server-with-testcontainers/): A complete guide to running ASP.NET Core integration tests against a real SQL Server 2022 using Testcontainers 4.11 and EF Core 11: WebApplicationFactory wiring, IAsyncLifetime, swapping the DbContext registration, applying migrations, parallelism, Ryuk cleanup, and CI gotchas. - [VSTest drops Newtonsoft.Json in .NET 11 Preview 4 and what breaks if you relied on it transitively](https://startdebugging.net/2026/05/vstest-removes-newtonsoft-json-dotnet-11-preview-4/): .NET 11 Preview 4 and Visual Studio 18.8 ship a VSTest that no longer flows Newtonsoft.Json into your test projects. Builds that quietly used the transitive copy will break with a single PackageReference fix. - [Claude Code 2.1.122 Lets You Pick a Bedrock Service Tier From an Env Var](https://startdebugging.net/2026/04/claude-code-2-1-122-bedrock-service-tier/): Claude Code v2.1.122 adds the ANTHROPIC_BEDROCK_SERVICE_TIER environment variable, sent as the X-Amzn-Bedrock-Service-Tier header. Set it to flex for a 50 percent discount on agent calls or priority for faster responses, without touching SDK code. - [How to add per-endpoint rate limiting in ASP.NET Core 11](https://startdebugging.net/2026/04/how-to-add-per-endpoint-rate-limiting-in-aspnetcore-11/): A complete guide to per-endpoint rate limiting in ASP.NET Core 11: when to pick fixed window vs sliding window vs token bucket vs concurrency, how RequireRateLimiting and [EnableRateLimiting] differ, partitioning by user or IP, the OnRejected handler, and the distributed deployment pitfall everyone hits. - [How to Call the Claude API from a .NET 11 Minimal API with Streaming](https://startdebugging.net/2026/04/how-to-call-the-claude-api-from-a-net-11-minimal-api-with-streaming/): Stream Claude responses from an ASP.NET Core 11 minimal API end-to-end: the official Anthropic .NET SDK, TypedResults.ServerSentEvents, SseItem, IAsyncEnumerable, cancellation flow, and the gotchas that buffer your tokens silently. With Claude Sonnet 4.6 and Opus 4.7 examples. - [How to use the new System.Threading.Lock type in .NET 11](https://startdebugging.net/2026/04/how-to-use-the-new-system-threading-lock-type-in-dotnet-11/): System.Threading.Lock arrived in .NET 9 and is the default synchronization primitive on .NET 11 and C# 14. This guide shows how to migrate from lock(object), how EnterScope works, and the gotchas around await, dynamic, and downlevel targets. - [How to write a source generator for INotifyPropertyChanged](https://startdebugging.net/2026/04/how-to-write-a-source-generator-for-inotifypropertychanged/): A complete guide to building your own incremental source generator for INotifyPropertyChanged in C# 14 and .NET 11: the IIncrementalGenerator pipeline, marker attributes, partial-class output, the SetProperty pattern, and how to stay AOT-friendly. - [cowork-terminal-mcp: Host Terminal Access for Claude Cowork in One MCP Server](https://startdebugging.net/2026/04/cowork-terminal-mcp-host-terminal-access-for-claude-cowork/): cowork-terminal-mcp v0.4.1 bridges Claude Cowork's sandboxed VM to your host shell. One tool, stdio transport, hard-pinned Git Bash on Windows. - [Export Claude Code Conversations to PDF With jsonl-to-pdf](https://startdebugging.net/2026/04/export-claude-code-conversations-to-pdf-with-jsonl-to-pdf/): A practical guide to turning the JSONL files Claude Code writes under ~/.claude/projects/ into shareable PDFs using jsonl-to-pdf, with sub-agent nesting, secret redaction, compact and dark themes, and CI-friendly batch recipes. - [How to Add Prompt Caching to an Anthropic SDK App and Measure the Hit Rate](https://startdebugging.net/2026/04/how-to-add-prompt-caching-to-an-anthropic-sdk-app-and-measure-the-hit-rate/): Add prompt caching to a Python or TypeScript Anthropic SDK app, place cache_control breakpoints correctly, and read cache_read_input_tokens and cache_creation_input_tokens to compute a real hit rate. With pricing math for Claude Sonnet 4.6 and Opus 4.7. - [How to detect when a file finishes being written to in .NET](https://startdebugging.net/2026/04/how-to-detect-when-a-file-finishes-being-written-to-in-dotnet/): FileSystemWatcher fires Changed before the writer is done. Three reliable patterns for .NET 11 to know a file is fully written: open with FileShare.None, debounce with size stabilization, and the producer-side rename trick that avoids the problem entirely. - [How to share validation logic between server and Blazor WebAssembly](https://startdebugging.net/2026/04/how-to-share-validation-logic-between-server-and-blazor-webassembly/): The single biggest source of validation drift in a Blazor WebAssembly + ASP.NET Core app is the urge to write the rules twice. This guide walks the only layout that scales in .NET 11: a Shared class library that owns the DTOs and their validators, consumed by both the WASM client (EditForm + DataAnnotationsValidator or Blazored.FluentValidation) and the server (minimal API endpoint filter or MVC model binding), with a tested round-trip that maps server-side ValidationProblemDetails back into the EditContext. - [How to use SearchValues correctly in .NET 11](https://startdebugging.net/2026/04/how-to-use-searchvalues-correctly-in-dotnet-11/): SearchValues beats IndexOfAny by 5x to 250x but only when you use it the way the runtime expects. The cache-as-static rule, the StringComparison gotcha, when not to bother, and the IndexOfAnyExcept inversion trick that nobody documents. - [SkiaSharp 4.0 Preview 1: Immutable SKPath, Variable Fonts, and a New Co-Maintainer](https://startdebugging.net/2026/04/skiasharp-4-0-preview-1-uno-platform-comaintainer/): SkiaSharp 4.0 Preview 1 lands with Uno Platform as co-maintainer alongside the .NET team. SKPath becomes immutable behind a new SKPathBuilder, and HarfBuzzSharp gets full OpenType variable font axis control. - [Asp.Versioning 10.0 finally plays nicely with built-in OpenAPI in .NET 10](https://startdebugging.net/2026/04/api-versioning-openapi-dotnet-10/): Asp.Versioning 10.0 is the first release that targets .NET 10 and the new Microsoft.AspNetCore.OpenApi pipeline. Sander ten Brinke's April 23 walkthrough shows how to register one OpenAPI document per API version with WithDocumentPerVersion(). - [How to add OpenAPI authentication flows to Swagger UI in .NET 11](https://startdebugging.net/2026/04/how-to-add-openapi-authentication-flows-to-swagger-ui-dotnet-11/): In .NET 11 the OpenAPI document is generated by Microsoft.AspNetCore.OpenApi and Swagger UI is no longer in the template. Here is how to wire Bearer, OAuth2 with PKCE, and OpenID Connect so the Authorize button actually works. - [How to implement refresh tokens in ASP.NET Core Identity](https://startdebugging.net/2026/04/how-to-implement-refresh-tokens-in-aspnetcore-identity/): Two working paths in .NET 11: the built-in MapIdentityApi /refresh endpoint, and a custom JWT setup with refresh token rotation, family tracking, and reuse detection. - [How to upload a large file with streaming to Azure Blob Storage](https://startdebugging.net/2026/04/how-to-upload-a-large-file-with-streaming-to-azure-blob-storage/): Upload multi-GB files to Azure Blob Storage from .NET 11 without loading them into memory. BlockBlobClient.UploadAsync with StorageTransferOptions, MultipartReader for ASP.NET Core uploads, and the buffering traps that put your payload on the LOH. - [How to Write a CLAUDE.md That Actually Changes Model Behaviour](https://startdebugging.net/2026/04/how-to-write-a-claude-md-that-actually-changes-model-behaviour/): A 2026 playbook for CLAUDE.md files that Claude Code actually follows: the 200-line target, when to use path-scoped rules in .claude/rules/, @import hierarchy and 5-hop max depth, the user-message vs system-prompt gap, the line between CLAUDE.md and auto memory, and when to give up and write a hook instead. Anchored to Claude Code 2.1.x and verified against the official memory docs. - [Claude Code 2.1.119 Pulls PRs From GitLab, Bitbucket, and GitHub Enterprise](https://startdebugging.net/2026/04/claude-code-2-1-119-from-pr-gitlab-bitbucket/): Claude Code v2.1.119 expands --from-pr beyond github.com. The CLI now accepts GitLab merge-request, Bitbucket pull-request, and GitHub Enterprise PR URLs, and a new prUrlTemplate setting points the footer PR badge at the right code-review host. - [How to reduce cold-start time for a .NET 11 AWS Lambda](https://startdebugging.net/2026/04/how-to-reduce-cold-start-time-for-a-dotnet-11-aws-lambda/): A practical, version-specific playbook for cutting .NET 11 Lambda cold starts. Covers Native AOT on provided.al2023, ReadyToRun, SnapStart on the managed dotnet10 runtime, memory tuning, static reuse, trim safety, and how to actually read INIT_DURATION. - [How to Schedule a Recurring Claude Code Task That Triages GitHub Issues](https://startdebugging.net/2026/04/how-to-schedule-a-recurring-claude-code-task-that-triages-github-issues/): Three ways to put Claude Code on a schedule that triages GitHub issues unattended in 2026: cloud Routines (the new /schedule), the claude-code-action v1 with cron + issues.opened, and the session-scoped /loop. Includes a runnable Routine prompt, a complete GitHub Actions YAML, jitter and identity gotchas, and when to pick which. - [How to use Native AOT with ASP.NET Core minimal APIs](https://startdebugging.net/2026/04/how-to-use-native-aot-with-aspnetcore-minimal-apis/): A complete .NET 11 walkthrough for shipping an ASP.NET Core minimal API with Native AOT: PublishAot, CreateSlimBuilder, source-generated JSON, the AddControllers limitation, IL2026 / IL3050 warnings, and EnableRequestDelegateGenerator for library projects. - [How to warm up EF Core's model before the first query](https://startdebugging.net/2026/04/how-to-warm-up-ef-core-model-before-the-first-query/): EF Core builds its conceptual model lazily on the first DbContext access, which is why the first query in a fresh process is several hundred milliseconds slower than every query after it. This guide covers the three real fixes in EF Core 11: a startup IHostedService that touches Model and opens a connection, dotnet ef dbcontext optimize to ship a precompiled model, and the cache-key footguns that silently rebuild the model anyway. - [GitHub Copilot Chat BYOK Goes GA in VS Code: Anthropic, Ollama, Foundry Local](https://startdebugging.net/2026/04/github-copilot-vs-code-byok-anthropic-ollama-foundry-local/): GitHub Copilot for VS Code shipped Bring Your Own Key on April 22, 2026. Wire your own Anthropic, OpenAI, Gemini, OpenRouter, or Azure account into Chat, or point at a local Ollama or Foundry Local model. Billing skips the Copilot quota and goes straight to the provider. - [How to add a global exception filter in ASP.NET Core 11](https://startdebugging.net/2026/04/how-to-add-a-global-exception-filter-in-aspnetcore-11/): A complete guide to global exception handling in ASP.NET Core 11: why IExceptionFilter is the wrong tool, how IExceptionHandler and UseExceptionHandler work together, ProblemDetails responses, multi-handler chains, and the .NET 10 diagnostics suppression breaking change. - [How to Build a Custom MCP Server in C# on .NET 11](https://startdebugging.net/2026/04/how-to-build-a-custom-mcp-server-in-csharp-on-net-11/): Build a working Model Context Protocol server in C# 14 / .NET 11 using the official ModelContextProtocol 1.2 SDK. Covers stdio transport, [McpServerTool] attributes, dependency injection, the stderr logging trap, and registration with Claude Code, Claude Desktop, and VS Code. - [How to mock DbContext without breaking change tracking](https://startdebugging.net/2026/04/how-to-mock-dbcontext-without-breaking-change-tracking/): Mocking DbContext directly silently breaks ChangeTracker, which is why Microsoft discourages it. This guide shows the two patterns that actually work in EF Core 11: SQLite in-memory with a kept-open connection so the real ChangeTracker runs, and the repository pattern that lifts EF Core out of the test entirely. - [How to unit-test code that uses HttpClient](https://startdebugging.net/2026/04/how-to-unit-test-code-that-uses-httpclient/): A complete guide to testing HttpClient in .NET 11: why you should not mock HttpClient directly, how to write a stub HttpMessageHandler, swapping the primary handler with IHttpClientFactory, verifying Polly retries, and the WireMock.Net option. - [Aspire 13.2.4 Patches CVE-2026-40894: Baggage Header DoS in OpenTelemetry .NET](https://startdebugging.net/2026/04/aspire-13-2-4-opentelemetry-cve-2026-40894-baggage-dos/): Aspire 13.2.4 ships an OpenTelemetry bump for CVE-2026-40894, a Gen0 allocation amplification in baggage, B3, and Jaeger propagator parsing. Update OpenTelemetry.Api and OpenTelemetry.Extensions.Propagators to 1.15.3 even if you are not on Aspire. - [How to Build a Custom MCP Server in Python with the Official SDK](https://startdebugging.net/2026/04/how-to-build-a-custom-mcp-server-in-python-with-the-official-sdk/): Build a working Model Context Protocol server in Python using the official mcp 1.27 SDK and FastMCP. Covers Pydantic schemas, the stdio stdout trap, mcp dev / mcp install, and registration with Claude Desktop and Claude Code. - [How to profile a .NET app with dotnet-trace and read the output](https://startdebugging.net/2026/04/how-to-profile-a-dotnet-app-with-dotnet-trace-and-read-the-output/): A complete guide to profiling .NET 11 apps with dotnet-trace: install, pick the right profile, capture from startup, and read the .nettrace output in PerfView, Visual Studio, Speedscope, or Perfetto. - [How to use Channels instead of BlockingCollection in C#](https://startdebugging.net/2026/04/how-to-use-channels-instead-of-blockingcollection-in-csharp/): System.Threading.Channels is the async-first replacement for BlockingCollection in .NET 11. This guide shows how to migrate, how to choose bounded vs unbounded, and how to handle backpressure, cancellation, and graceful shutdown without deadlocking. - [How to write a custom JsonConverter in System.Text.Json](https://startdebugging.net/2026/04/how-to-write-a-custom-jsonconverter-in-system-text-json/): A complete guide to writing custom JsonConverter for System.Text.Json in .NET 11: when you actually need one, how to navigate Utf8JsonReader correctly, how to handle generics with JsonConverterFactory, and how to stay AOT-friendly. - [.NET 10 on Ubuntu 26.04: resolute Container Tags and Native AOT in the Archive](https://startdebugging.net/2026/04/dotnet-10-ubuntu-2604-resolute-container-tags/): Ubuntu 26.04 Resolute Raccoon ships with .NET 10 in the archive, introduces -resolute container tags to replace -noble, and packages Native AOT tooling via dotnet-sdk-aot-10.0. - [How to Build a Custom MCP Server in TypeScript That Wraps a CLI](https://startdebugging.net/2026/04/how-to-build-an-mcp-server-in-typescript-that-wraps-a-cli/): Step-by-step guide to wrapping any command-line tool as a Model Context Protocol server using the TypeScript SDK 1.29. Covers the stdout trap, child_process patterns, error propagation, and a full working git server. - [How to Generate Strongly Typed Client Code from an OpenAPI Spec in .NET 11](https://startdebugging.net/2026/04/how-to-generate-strongly-typed-client-from-openapi-spec-dotnet-11/): Use Kiota, Microsoft's official OpenAPI code generator, to produce a fluent, strongly typed C# client from any OpenAPI spec. Step-by-step: install, generate, wire into ASP.NET Core DI, and handle authentication. - [How to read a large CSV in .NET 11 without running out of memory](https://startdebugging.net/2026/04/how-to-read-a-large-csv-in-dotnet-11-without-running-out-of-memory/): Stream a multi-gigabyte CSV in .NET 11 without OutOfMemoryException. File.ReadLines, CsvHelper, Sylvan, and Pipelines compared with code and measurements. - [How to stream a file from an ASP.NET Core endpoint without buffering](https://startdebugging.net/2026/04/how-to-stream-a-file-from-an-aspnetcore-endpoint-without-buffering/): Serve large files from ASP.NET Core 11 without loading them into memory. Three tiers: PhysicalFileResult for on-disk files, Results.Stream for arbitrary streams, and Response.BodyWriter for generated payloads -- with code for each. - [EF Core 11 Preview 3 Adds RemoveDbContext for Clean Test Provider Swaps](https://startdebugging.net/2026/04/efcore-11-removedbcontext-pooled-factory-test-swap/): EF Core 11 Preview 3 introduces RemoveDbContext, RemoveExtension, and a parameterless AddPooledDbContextFactory overload, removing the boilerplate around swapping providers in tests and centralizing pooled factory configuration. - [How to cancel a long-running Task in C# without deadlocking](https://startdebugging.net/2026/04/how-to-cancel-a-long-running-task-in-csharp-without-deadlocking/): Cooperative cancellation with CancellationToken, CancelAsync, Task.WaitAsync, and linked tokens in .NET 11. Plus the blocking patterns that turn a clean cancel into a deadlock. - [Azure MCP Server Ships Inside Visual Studio 2022 17.14.30, No Extension Required](https://startdebugging.net/2026/04/azure-mcp-server-visual-studio-2022-17-14-30/): Visual Studio 2022 17.14.30 bundles the Azure MCP Server into the Azure development workload. Copilot Chat can hit 230+ Azure tools across 45 services without installing a thing. - [How to use IAsyncEnumerable with EF Core 11](https://startdebugging.net/2026/04/how-to-use-iasyncenumerable-with-ef-core-11/): EF Core 11 queries implement IAsyncEnumerable directly. Here is how to stream rows with await foreach, when to prefer it over ToListAsync, and the gotchas around connections, tracking, and cancellation. - [.NET 10.0.7 Ships Out-of-Band to Fix CVE-2026-40372 in ASP.NET Core Data Protection](https://startdebugging.net/2026/04/dotnet-10-0-7-oob-cve-2026-40372-dataprotection/): A HMAC validation flaw in Microsoft.AspNetCore.DataProtection 10.0.0 through 10.0.6 lets attackers forge ciphertexts. .NET 10.0.7 is the mandatory fix. - [How to use records with EF Core 11 correctly](https://startdebugging.net/2026/04/how-to-use-records-with-ef-core-11-correctly/): A practical guide to mixing C# records and EF Core 11. Where records fit, where they break change tracking, and how to model value objects, entities, and projections without fighting the framework. - [Node.js Addons in C#: .NET Native AOT Replaces C++ and node-gyp](https://startdebugging.net/2026/04/nodejs-addons-dotnet-native-aot/): The C# Dev Kit team swapped its C++ Node.js addon for a .NET 10 Native AOT library, using N-API, UnmanagedCallersOnly, and LibraryImport to produce a single .node file without Python or node-gyp. - [Visual Studio 18.5's Debugger Agent Turns Copilot Into a Live Bug-Hunting Partner](https://startdebugging.net/2026/04/visual-studio-18-5-debugger-agent-workflow/): Visual Studio 18.5 GA ships a guided Debugger Agent workflow in Copilot Chat that forms a hypothesis, sets breakpoints, rides along through a repro, validates against runtime state, and proposes a fix. - [Kestrel starts processing HTTP/3 requests before the SETTINGS frame in .NET 11 Preview 3](https://startdebugging.net/2026/04/aspnetcore-11-kestrel-http3-early-request-processing/): .NET 11 Preview 3 lets Kestrel serve HTTP/3 requests before the peer's control stream and SETTINGS frame arrive, shaving handshake latency off the first request on every new QUIC connection. - [EF Core 11 translates Contains to JSON_CONTAINS on SQL Server 2025](https://startdebugging.net/2026/04/efcore-11-json-contains-sql-server-2025/): EF Core 11 auto-translates LINQ Contains over JSON collections to the new SQL Server 2025 JSON_CONTAINS function, and adds EF.Functions.JsonContains for path-scoped and mode-specific queries that can hit a JSON index. - [How to return multiple values from a method in C# 14](https://startdebugging.net/2026/04/how-to-return-multiple-values-from-a-method-in-csharp-14/): Seven ways to return more than one value from a C# 14 method: named tuples, out parameters, records, structs, deconstruction, and the extension-member trick for types you don't own. Real benchmarks and a decision matrix at the end. - [Agent Skills Land in Visual Studio 2026 18.5: Copilot Auto-Discovers SKILL.md From Your Repo](https://startdebugging.net/2026/04/visual-studio-2026-copilot-agent-skills/): Visual Studio 2026 18.5.0 lets GitHub Copilot load Agent Skills from .github/skills, .claude/skills, and ~/.copilot/skills. Reusable SKILL.md instruction packs travel with your repo. - [RyuJIT trims more bounds checks in .NET 11 Preview 3: index-from-end and i + constant](https://startdebugging.net/2026/04/jit-bounds-check-elimination-index-from-end-dotnet-11-preview-3/): .NET 11 Preview 3 teaches RyuJIT to eliminate redundant bounds checks on consecutive index-from-end access and on i + constant < length patterns, cutting branch pressure in tight loops. - [RegexOptions.AnyNewLine lands in .NET 11 Preview 3: Unicode-aware anchors without the \r? hacks](https://startdebugging.net/2026/04/regex-anynewline-dotnet-11-preview-3/): .NET 11 Preview 3 adds RegexOptions.AnyNewLine so ^, $, \Z, and . recognize every Unicode newline sequence, including \r\n, NEL, LS, and PS, with \r\n treated as one atomic break. - [Aspire 13.2 --isolated: Run Parallel AppHost Instances Without Port Collisions](https://startdebugging.net/2026/04/aspire-13-2-isolated-mode-parallel-apphost-instances/): Aspire 13.2 ships an --isolated flag that gives each aspire run its own random ports and secrets store. It unblocks multi-checkout work, agent worktrees, and integration tests that need a live AppHost. - [.NET 11 Preview 3: dotnet run -e sets environment variables without launch profiles](https://startdebugging.net/2026/04/dotnet-11-preview-3-dotnet-run-environment-variables/): dotnet run -e in .NET 11 Preview 3 passes environment variables straight from the CLI and surfaces them as MSBuild RuntimeEnvironmentVariable items. - [dotnet sln finally edits solution filters from the CLI in .NET 11 Preview 3](https://startdebugging.net/2026/04/dotnet-11-sln-cli-solution-filters/): .NET 11 Preview 3 teaches dotnet sln to create, add, remove, and list projects in .slnf solution filters, so large mono-repos can load a subset without opening Visual Studio. - [dotnet watch in .NET 11 Preview 3: Aspire hosts, crash recovery, and saner Ctrl+C](https://startdebugging.net/2026/04/dotnet-watch-11-preview-3-aspire-crash-recovery/): dotnet watch gains Aspire app host integration, automatic relaunch after crashes, and fixed Ctrl+C handling for Windows desktop apps in .NET 11 Preview 3. - [EF Core 11 Prunes Unnecessary Reference Joins in Split Queries](https://startdebugging.net/2026/04/efcore-11-preview-3-prunes-reference-joins-split-queries/): EF Core 11 Preview 3 removes redundant to-one joins from split queries and drops unneeded ORDER BY keys. One reported scenario got 29% faster, another 22%. Here is what the SQL now looks like. - [System.Text.Json in .NET 11 Preview 3 adds PascalCase and per-member naming policies](https://startdebugging.net/2026/04/system-text-json-11-pascalcase-per-member-naming/): .NET 11 Preview 3 finishes the naming-policy story in System.Text.Json: JsonNamingPolicy.PascalCase, a member-level [JsonNamingPolicy] attribute, and a type-level [JsonIgnore] default for cleaner DTOs. - [Blazor Virtualize Finally Handles Variable-Height Items in .NET 11](https://startdebugging.net/2026/04/blazor-virtualize-variable-height-dotnet-11-preview-3/): ASP.NET Core in .NET 11 Preview 3 teaches the Virtualize component to measure items at runtime, fixing the spacing and scroll jitter that uniform-height assumptions caused. - [Pin Clustering Lands in .NET MAUI 11 Maps](https://startdebugging.net/2026/04/dotnet-maui-11-map-pin-clustering/): .NET MAUI 11 Preview 3 adds built-in pin clustering to the Map control on Android and iOS, with ClusteringIdentifier groups and a ClusterClicked event. - [EF Core 11 Adds GetEntriesForState to Skip DetectChanges](https://startdebugging.net/2026/04/efcore-11-changetracker-getentriesforstate/): EF Core 11 Preview 3 introduces ChangeTracker.GetEntriesForState, a state-filtered enumerator that avoids an extra DetectChanges pass in hot paths like SaveChanges interceptors and audit hooks. - [.NET MAUI 11 Ships a Built-in LongPressGestureRecognizer](https://startdebugging.net/2026/04/maui-11-long-press-gesture-recognizer/): .NET MAUI 11 Preview 3 adds LongPressGestureRecognizer as a first-party gesture, with duration, movement threshold, state events, and command binding, replacing the common Community Toolkit behavior. - [Building a Microsecond-Latency Database Engine in C#](https://startdebugging.net/2026/04/building-a-microsecond-database-engine-in-csharp/): Loic Baumann's Typhon project targets 1-2 microsecond ACID commits using ref structs, hardware intrinsics, and pinned memory, proving C# can compete at the systems programming level. - [C# 14 user-defined compound assignment operators: in-place += without the extra allocation](https://startdebugging.net/2026/04/csharp-14-user-defined-compound-assignment-operators/): C# 14 lets you overload +=, -=, *=, and friends as void instance methods that mutate the receiver in place, cutting allocations for large value holders like BigInteger-style buffers and tensors. - [How Dapper's Default nvarchar Parameters Silently Kill Your SQL Server Indexes](https://startdebugging.net/2026/04/dapper-nvarchar-implicit-conversion-kills-sql-server-indexes/): C# strings sent through Dapper default to nvarchar(4000), forcing SQL Server into implicit conversions and full index scans. Here's how to fix it with DbType.AnsiString. - [EF Core 11 turns on Cosmos DB transactional batches by default](https://startdebugging.net/2026/04/efcore-11-cosmos-transactional-batches/): EF Core 11 groups Cosmos DB writes into transactional batches per container and partition on every SaveChanges, giving best-effort atomicity and fewer roundtrips without any code changes. - [GitHub Copilot Modernization: The Assessment Report Is the Actual Product](https://startdebugging.net/2026/04/github-copilot-modernization-assessment-dotnet/): GitHub Copilot Modernization is pitched as an Assess, Plan, Execute loop for migrating legacy .NET apps. The assessment phase is where the value lives: an inventory report, categorized blockers, and file-level remediation guidance you can diff like code. - [Hot Reload Auto-Restart in Visual Studio 2026: Rude Edits Stop Killing Your Debug Session](https://startdebugging.net/2026/04/visual-studio-2026-hot-reload-auto-restart-rude-edits/): Visual Studio 2026 adds HotReloadAutoRestart, a project-level opt-in that restarts the app when a rude edit would otherwise end the debug session. It is especially useful for Razor and Aspire projects. - [Blazor SSR Finally Gets TempData in .NET 11](https://startdebugging.net/2026/04/blazor-ssr-tempdata-dotnet-11/): ASP.NET Core in .NET 11 Preview 2 brings TempData to Blazor static server-side rendering, enabling flash messages and Post-Redirect-Get flows without workarounds. - [C# 15 Collection Expression Arguments: Pass Constructors Inline with with(...)](https://startdebugging.net/2026/04/csharp-15-collection-expression-arguments/): C# 15 adds the with(...) element to collection expressions, letting you pass capacity, comparers, and other constructor arguments directly in the initializer. - [.NET 11 Adds Native Zstandard Compression to System.IO.Compression](https://startdebugging.net/2026/04/dotnet-11-zstandard-compression-system-io/): .NET 11 Preview 1 ships ZstandardStream, ZstandardEncoder, and ZstandardDecoder in System.IO.Compression, giving you fast, inbox zstd support with no third-party packages. - [EF Core 11 Lets You Create and Apply a Migration in One Command](https://startdebugging.net/2026/04/efcore-11-single-step-migrations-dotnet-ef-update-add/): The dotnet ef database update command now accepts --add to scaffold and apply a migration in a single step. Here is how it works, why it matters for containers and .NET Aspire, and what to watch for. - [EF Core 11 Adds Native SQL Server Vector Search with DiskANN Indexes](https://startdebugging.net/2026/04/efcore-11-sql-server-vector-search-diskann-indexes/): EF Core 11 Preview 2 supports SQL Server 2025 VECTOR_SEARCH() and DiskANN vector indexes directly from LINQ. Here is how to set up the index, run approximate queries, and what changes from the EF Core 10 VectorDistance approach. - [Fluorite: Toyota Built a Console-Grade Game Engine on Flutter and Dart](https://startdebugging.net/2026/04/fluorite-toyota-console-grade-game-engine-flutter-dart/): Fluorite is an open-source 3D game engine that embeds Google Filament rendering inside Flutter widgets and lets you write game logic in Dart. - [Rider 2026.1 Ships an ASM Viewer for JIT, ReadyToRun, and NativeAOT Output](https://startdebugging.net/2026/04/rider-2026-1-asm-viewer-jit-nativeaot-disassembly/): Rider 2026.1 adds a .NET Disassembler plugin that lets you inspect machine code generated by the JIT, ReadyToRun, and NativeAOT compilers without leaving the IDE. - [ASP.NET Core 11 Ships Native OpenTelemetry Tracing: Drop the Extra NuGet Package](https://startdebugging.net/2026/04/aspnetcore-11-native-opentelemetry-tracing/): ASP.NET Core in .NET 11 Preview 2 adds OpenTelemetry semantic attributes directly to HTTP server activity, removing the need for OpenTelemetry.Instrumentation.AspNetCore. - [ReSharper Lands in VS Code and Cursor, Free for Non-Commercial Use](https://startdebugging.net/2026/04/resharper-for-vscode-cursor-free-for-oss/): JetBrains shipped ReSharper as a VS Code extension with full C# analysis, refactoring, and unit testing. It works in Cursor and Google Antigravity too, and costs nothing for OSS and learning. - [C# 15 Union Types Are Here: Type Unions Ship in .NET 11 Preview 2](https://startdebugging.net/2026/04/csharp-15-union-types-dotnet-11-preview-2/): C# 15 introduces the union keyword for type unions with exhaustive pattern matching and implicit conversions. Available now in .NET 11 Preview 2. - [Kestrel Drops Exceptions from Its HTTP/1.1 Parser in .NET 11](https://startdebugging.net/2026/04/kestrel-non-throwing-parser-dotnet-11/): Kestrel's HTTP/1.1 request parser in .NET 11 replaces BadHttpRequestException with a result struct, cutting malformed-request overhead by up to 40%. - [Microsoft Agent Framework 1.0: Building AI Agents in Pure C#](https://startdebugging.net/2026/04/microsoft-agent-framework-1-0-ai-agents-in-csharp/): Microsoft Agent Framework hits 1.0 with stable APIs, multi-provider connectors, multi-agent orchestration, and A2A/MCP interop. Here is what it looks like in practice on .NET 10. - [.NET 11 Runtime Async Replaces State Machines with Cleaner Stack Traces](https://startdebugging.net/2026/04/dotnet-11-runtime-async-cleaner-stack-traces/): Runtime Async in .NET 11 moves async/await handling from compiler-generated state machines into the runtime itself, producing readable stack traces, correct breakpoints, and fewer heap allocations. - [dotnet new webworker: first-class Web Workers for Blazor in .NET 11 Preview 2](https://startdebugging.net/2026/04/dotnet-11-preview-2-blazor-webworker-template/): A new project template in .NET 11 Preview 2 scaffolds the JS plumbing, WebWorkerClient, and JSExport boilerplate needed to run .NET code in a browser Web Worker. - [What 878 Copilot Coding Agent PRs in dotnet/runtime Actually Look Like](https://startdebugging.net/2026/03/copilot-coding-agent-dotnet-runtime-ten-months-data/): The .NET team shares ten months of real data on running GitHub's Copilot Coding Agent in dotnet/runtime: 878 PRs, a 67.9% merge rate, and clear lessons on where AI-assisted development helps and where it still falls short. - [Generative AI for Beginners .NET v2: Rebuilt for .NET 10 with Microsoft.Extensions.AI](https://startdebugging.net/2026/03/generative-ai-beginners-dotnet-v2-dotnet10-meai/): Microsoft's free generative AI course for .NET developers ships Version 2, rebuilt for .NET 10 and migrated from Semantic Kernel to Microsoft.Extensions.AI's IChatClient pattern. - [C# 14 Extension Members: Extension Properties, Operators, and Static Extensions](https://startdebugging.net/2026/02/csharp-14-extension-members/): C# 14 introduces extension members, allowing you to add extension properties, operators, and static members to existing types using the new extension keyword. - [C# 14 idea: interceptors could make System.Text.Json source generation feel automatic](https://startdebugging.net/2026/02/csharp-14-interceptors-system-text-json-source-generation-ergonomics/): A community discussion proposed using C# 14 interceptors to rewrite JsonSerializer calls so they automatically use a generated JsonSerializerContext, keeping AOT-friendly source generation with cleaner call sites. - [C# 14 Null-Conditional Assignment: Using ?. and ?[] on the Left Side](https://startdebugging.net/2026/02/csharp-14-null-conditional-assignment/): C# 14 extends null-conditional operators to work on the left-hand side of assignments, eliminating verbose null checks when setting properties or indexers. - [.NET 10 Post-Quantum Cryptography: ML-KEM, ML-DSA, and SLH-DSA](https://startdebugging.net/2026/02/dotnet-10-post-quantum-cryptography-ml-kem-ml-dsa-slh-dsa/): .NET 10 adds native support for post-quantum cryptography algorithms ML-KEM, ML-DSA, and SLH-DSA, preparing your applications for a quantum-resistant future. - [Polars.NET: a Rust DataFrame engine for .NET 10 that leans on LibraryImport](https://startdebugging.net/2026/02/dotnet-polarsnet-rust-dataframe-engine-with-libraryimport/): A new Polars.NET project is trending after a Feb 6, 2026 community post. The headline is simple: a .NET-friendly DataFrame API backed by Rust Polars, with a stable C ABI and LibraryImport-based interop to keep overhead low. - [Flutter: Droido 1.2.0 is a debug-only network inspector with zero release impact](https://startdebugging.net/2026/02/flutter-droido-1-2-0-debug-only-network-inspector-with-zero-release-impact/): Droido 1.2.0 landed on Feb 8, 2026 as a debug-only network inspector for Flutter. The interesting part is not the UI. It is the packaging story: keep a modern inspector in debug builds while ensuring release builds remain clean, small, and unaffected. - [biometric_signature 10.0.0: `simplePrompt()` is the feature, new `BiometricError` values are the real breaking change (Flutter 3.x)](https://startdebugging.net/2026/02/biometric_signature-10-0-0-simpleprompt-is-the-feature-new-biometricerror-values-are-the-real-breaking-change-flutter-3-x/): biometric_signature 10.0.0 adds simplePrompt() and new BiometricError values. Here is how to handle the breaking change and future-proof your Flutter 3.x auth flows. - [.NET Framework 3.5 Goes Standalone on New Windows Builds: What Breaks](https://startdebugging.net/2026/02/net-framework-3-5-is-going-standalone-on-new-windows-builds-what-breaks-in-automation/): Starting with Windows 11 Build 27965, .NET Framework 3.5 is no longer an optional Windows component. Here is what breaks in CI, provisioning, and golden images, and how to fix it. - [TrailBase v0.23.7: A Single-Binary Firebase Alternative for .NET 10 and Flutter](https://startdebugging.net/2026/02/trailbase-v0-23-7-a-single-executable-firebase-alternative-that-plays-nicely-with-net-10-and-flutter-3-x/): TrailBase is an open-source, single-executable backend built on Rust, SQLite, and Wasmtime. Version 0.23.7 ships UI fixes and improved error handling. - [Debugging Flutter iOS from Windows: a real device workflow (Flutter 3.x)](https://startdebugging.net/2026/01/debugging-flutter-ios-from-windows-a-real-device-workflow-flutter-3-x/): A pragmatic workflow for debugging Flutter iOS apps from Windows: offload the build to macOS in GitHub Actions, install the IPA on a real iPhone, and use flutter attach for hot reload and DevTools. - [Flutter Particles 2.0.2: a quick tour (and a tiny integration snippet) on Flutter 3.x](https://startdebugging.net/2026/01/flutter-particles-2-0-2-a-quick-tour-and-a-tiny-integration-snippet-on-flutter-3-x/): particles_flutter 2.0.2 adds particle shapes, rotation, boundary modes, and emitters. A quick tour of what changed and a tiny integration snippet for Flutter 3.x projects. - [NuGet “become owner” request spam: what to do (and what to lock down) in .NET 9/.NET 10](https://startdebugging.net/2026/01/nuget-become-owner-request-spam-what-to-do-and-what-to-lock-down-in-net-9-net-10/): Defend your .NET packages against NuGet ownership request spam. Lock files, Package Source Mapping, and Central Package Management practices for .NET 9 and .NET 10. - [Scalar in ASP.NET Core: why your Bearer token is ignored (.NET 10)](https://startdebugging.net/2026/01/scalar-in-asp-net-core-why-your-bearer-token-is-ignored-net-10/): If your Bearer token works in Postman but not in Scalar, the problem is likely your OpenAPI document. Here is how to declare a proper security scheme in .NET 10. - [TreatWarningsAsErrors without sabotaging dev builds (.NET 10)](https://startdebugging.net/2026/01/treatwarningsaserrors-without-sabotaging-dev-builds-net-10/): How to enforce TreatWarningsAsErrors in Release builds and CI while keeping Debug flexible for local development in .NET 10, using Directory.Build.props. - [Perfetto + dotnet-trace: a practical profiling loop for .NET 9/.NET 10](https://startdebugging.net/2026/01/perfetto-dotnet-trace-a-practical-profiling-loop-for-net-9-net-10/): A practical profiling loop for .NET 9 and .NET 10: capture traces with dotnet-trace, visualize them in Perfetto, and iterate on CPU, GC, and thread pool issues. - [A WinUI 3 “local-only notes” app is the right kind of boring: offline-first, SQLite, keyboard-first](https://startdebugging.net/2026/01/a-winui-3-local-only-notes-app-is-the-right-kind-of-boring-offline-first-sqlite-keyboard-first/): Miyanyedi Quick Note is a WinUI 3 + SQLite note-taking app that is offline-first and privacy-friendly. Here is why local-only is a feature, plus a minimal SQLite snippet for .NET 8 desktop apps. - [An open-source WPF SSH manager shows a practical pattern: xterm.js in WebView2, secrets via DPAPI](https://startdebugging.net/2026/01/an-open-source-wpf-ssh-manager-shows-a-practical-pattern-xterm-js-in-webview2-secrets-via-dpapi/): SshManager is an open-source WPF SSH manager built on .NET 8. It shows a practical pattern: xterm.js inside WebView2 for terminal rendering, EF Core + SQLite for persistence, and DPAPI for local credential protection. - [CV Shortlist: an AI-powered .NET 10 SaaS went open-source, and the stack is worth studying](https://startdebugging.net/2026/01/cv-shortlist-an-ai-powered-net-10-saas-went-open-source-and-the-stack-is-worth-studying/): CV Shortlist is an open-source .NET 10 SaaS that pairs Azure Document Intelligence with an OpenAI model. The stack, config discipline, and AI integration boundary are worth studying. - [Flutter Text: the `leadingDistribution` detail that changes how your UI “breathes”](https://startdebugging.net/2026/01/flutter-text-the-leadingdistribution-detail-that-changes-how-your-ui-breathes/): The leadingDistribution property in Flutter's TextHeightBehavior controls how extra leading is distributed above and below glyphs. Here is when it matters and how to fix text that looks vertically off. - [ModularPipelines V3: write CI pipelines in C#, debug locally, stop babysitting YAML](https://startdebugging.net/2026/01/modularpipelines-v3-write-ci-pipelines-in-c-debug-locally-stop-babysitting-yaml/): ModularPipelines V3 lets you write CI pipelines in C# instead of YAML. Run them locally with dotnet run, get compile-time safety, and debug with breakpoints. - [TypeMonkey is a good reminder: Flutter desktop apps need architecture first, polish later](https://startdebugging.net/2026/01/typemonkey-is-a-good-reminder-flutter-desktop-apps-need-architecture-first-polish-later/): TypeMonkey, a Flutter desktop typing app, shows why desktop projects need clean architecture from day one: sealed states, interface boundaries, and testable logic. - [Dart 3.12 dev tags are moving fast: How to read them (and what to do) as a Flutter 3.x developer](https://startdebugging.net/2026/01/dart-3-12-dev-tags-are-moving-fast-how-to-read-them-and-what-to-do-as-a-flutter-3-x-developer/): Dart 3.12 dev tags are landing fast. Here is how to read the version string, pin a dev SDK in CI, and triage failures so your Flutter 3.x migration is a small PR instead of a fire drill. - [Deploy a .NET App with Podman + systemd: Stable Restarts, Real Logs, No Magic](https://startdebugging.net/2026/01/deploy-a-net-app-with-podman-systemd-stable-restarts-real-logs-no-magic/): Deploy .NET 9 and .NET 10 services on a Linux VM using Podman and systemd. Get stable restarts, real logs via journald, and a containerized app managed like a proper service -- no Kubernetes required. - [Flet in 2026: Flutter UI, Python logic, and the trade-offs you need to admit upfront](https://startdebugging.net/2026/01/flet-in-2026-flutter-ui-python-logic-and-the-trade-offs-you-need-to-admit-upfront/): Flet lets you build Flutter UIs with Python logic. Here are the real trade-offs: latency from event chatter, ecosystem mismatch with Dart plugins, and split-brain debugging -- plus when it actually makes sense. - [Flutter 3.x gets a new “offline RAG” building block: `mobile_rag_engine` (Rust core)](https://startdebugging.net/2026/01/flutter-3-x-gets-a-new-offline-rag-building-block-mobile_rag_engine-rust-core/): mobile_rag_engine brings on-device RAG to Flutter with a Rust core, ONNX embeddings, HNSW vector search, and SQLite storage. A practical look at the API, integration flow, and shipping constraints. - [FlutterGuard CLI: A Fast “What Can an Attacker Extract?” Check for Flutter 3.x Apps](https://startdebugging.net/2026/01/flutterguard-cli-a-fast-what-can-an-attacker-extract-check-for-flutter-3-x-apps/): FlutterGuard CLI scans your Flutter 3.x build artifacts for leaked secrets, debug symbols, and metadata. A practical workflow for integrating it into CI and handling what it finds. - [gRPC in Containers Feels “Hard” in .NET 9 and .NET 10: 4 Traps You Can Fix](https://startdebugging.net/2026/01/grpc-in-containers-feels-hard-in-net-9-and-net-10-4-traps-you-can-fix/): Four common traps when hosting gRPC in containers with .NET 9 and .NET 10: HTTP/2 protocol mismatches, TLS termination confusion, broken health checks, and proxy misconfiguration -- with fixes for each. - [Microsoft `mcp`: Wiring Model Context Protocol Servers from C# on .NET 10](https://startdebugging.net/2026/01/microsoft-mcp-wiring-model-context-protocol-servers-from-c-on-net-10/): How to wire Model Context Protocol (MCP) servers in C# on .NET 10 using microsoft/mcp. Covers tool contracts, input validation, auth, observability, and production-readiness patterns. - [Monitor Background Jobs in .NET 9 and .NET 10 Without Hangfire: Health + Metrics + Alerts](https://startdebugging.net/2026/01/monitor-background-jobs-in-net-9-and-net-10-without-hangfire-health-metrics-alerts/): Monitor BackgroundService jobs in .NET 9 and .NET 10 without Hangfire using heartbeat health checks, duration metrics, and failure alerts with a practical code example. - [.NET 10 file-based apps just got multi-file scripts: `#:include` is landing](https://startdebugging.net/2026/01/net-10-file-based-apps-just-got-multi-file-scripts-include-is-landing/): .NET 10 adds #:include support for file-based apps, letting dotnet run scripts span multiple .cs files without creating a full project. - [SBOM for .NET in Docker: stop trying to force one tool to see everything](https://startdebugging.net/2026/01/sbom-for-net-in-docker-stop-trying-to-force-one-tool-to-see-everything/): How to track NuGet dependencies and container OS packages for a .NET Docker image using CycloneDX, Syft, and Dependency-Track -- and why one SBOM is not enough. - [System.CommandLine v2, but with the wiring done for you: `Albatross.CommandLine` v8](https://startdebugging.net/2026/01/system-commandline-v2-but-with-the-wiring-done-for-you-albatross-commandline-v8/): Albatross.CommandLine v8 builds on System.CommandLine v2 with a source generator, DI integration, and hosting layer to eliminate CLI boilerplate in .NET 9 and .NET 10 apps. - [Wave-IDE in 2026: the minimum Roslyn plumbing behind a WinForms IDE on .NET 10](https://startdebugging.net/2026/01/wave-ide-in-2026-the-minimum-roslyn-plumbing-behind-a-winforms-ide-on-net-10/): Wave-IDE shows that WinForms and Roslyn on .NET 10 are enough to build a working C# IDE. Here is the minimum plumbing for incremental analysis, completion, and diagnostics. - [AWS Lambda Supports .NET 10: What to Verify Before You Flip the Runtime](https://startdebugging.net/2026/01/aws-lambda-supports-net-10-what-to-verify-before-you-flip-the-runtime/): AWS Lambda now supports .NET 10, but the runtime upgrade is not the hard part. Here is a practical checklist covering cold starts, trimming, native AOT, and deployment shape. - [Flutter 3.38.6 and the `engine.version` Bump: Reproducible Builds Get Easier (If You Pin It)](https://startdebugging.net/2026/01/flutter-3-38-6-and-the-engine-version-bump-reproducible-builds-get-easier-if-you-pin-it/): Flutter 3.38.6 bumped engine.version, and that matters for reproducible builds. Learn how to pin the SDK in CI, avoid engine drift, and diagnose 'what changed' when builds break with no code changes. - [Flutter 3.x routing: tp_router tries to delete your route table (and it’s a compelling idea)](https://startdebugging.net/2026/01/flutter-3-x-routing-tp_router-tries-to-delete-your-route-table-and-its-a-compelling-idea/): tp_router is a generator-driven Flutter router that eliminates manual route tables. Annotate your pages, run build_runner, and navigate with typed APIs instead of stringly-typed paths. - [.NET 10 made your NIC list explode? Filtering GetAllNetworkInterfaces() without lying to yourself](https://startdebugging.net/2026/01/net-10-made-your-nic-list-explode-filtering-getallnetworkinterfaces-without-lying-to-yourself/): How to filter GetAllNetworkInterfaces() in .NET 10 when virtual adapters from Hyper-V, Docker, WSL, and VPNs flood the list. Includes a two-stage filter with explicit tradeoffs. - [Queryable Encryption + Vector Search in the MongoDB EF Core Provider (and why it matters for .NET 9 and .NET 10)](https://startdebugging.net/2026/01/queryable-encryption-vector-search-in-the-mongodb-ef-core-provider-and-why-it-matters-for-net-9-and-net-10/): The MongoDB EF Core provider now supports Queryable Encryption and vector search. Here is what that means for .NET 9 and .NET 10 apps that already use EF Core. - [SwitchMediator v3: A Zero-Alloc Mediator That Stays Friendly to AOT](https://startdebugging.net/2026/01/switchmediator-v3-a-zero-alloc-mediator-that-stays-friendly-to-aot/): SwitchMediator v3 targets zero-allocation, AOT-friendly dispatch for .NET 9 and .NET 10 CQRS services. Here is what that means and how to benchmark your own mediator. - [.NET 10 Performance: SearchValues](https://startdebugging.net/2026/01/net-10-performance-searchvalues/): Use SearchValues in .NET 10 for high-performance multi-string searching. Replaces foreach loops with SIMD-accelerated matching using Aho-Corasick and Teddy algorithms. - [Streaming Tasks with .NET 9 Task.WhenEach](https://startdebugging.net/2026/01/streaming-tasks-with-net-9-task-wheneach/): .NET 9 introduces Task.WhenEach, which returns an IAsyncEnumerable of tasks as they complete. Here is how it simplifies processing parallel results as they arrive. - [C# 13: The End of `params` Allocations](https://startdebugging.net/2026/01/c-13-the-end-of-params-allocations/): C# 13 finally eliminates the hidden array allocation behind params. You can now use params with Span, ReadOnlySpan, List, and other collection types for zero-allocation variadic methods. - [C# Proposal: Discriminated Unions](https://startdebugging.net/2026/01/csharp-proposal-discriminated-unions/): A look at the C# discriminated unions proposal: the union keyword, exhaustive pattern matching, and how it could replace OneOf libraries and class hierarchies. - [.NET 9: The End of lock(object)](https://startdebugging.net/2026/01/net-9-the-end-of-lockobject/): .NET 9 introduces System.Threading.Lock, a dedicated lightweight synchronization primitive that replaces lock(object) with better performance and clearer intent. - [Optimizing Frequency Counting with LINQ CountBy](https://startdebugging.net/2026/01/optimizing-frequency-counting-with-linq-countby/): Replace GroupBy with CountBy in .NET 9 for cleaner, more efficient frequency counting. Reduces allocations from O(N) to O(K) by skipping intermediate grouping structures. ## 2025 - [.NET 10: Stack allocation of arrays of value types](https://startdebugging.net/2025/04/net-10-stack-allocation-of-arrays-of-value-types/): In .NET 10, the JIT can stack-allocate small fixed-size arrays of value types, eliminating heap allocations and delivering up to 60% faster performance compared to .NET 9. - [What’s new in .NET MAUI 10](https://startdebugging.net/2025/04/whats-new-in-net-maui-10/): A summary of new features, improvements, and breaking changes in .NET MAUI 10, released with .NET 10 and C# 14 in November 2025. - [How to change SearchBar’s icon color in .NET MAUI](https://startdebugging.net/2025/04/how-to-change-searchbars-icon-color-in-net-maui/): How to change the SearchBar icon color in .NET MAUI using the new SearchIconColor property introduced in .NET 10. - [C# 14: Simplified parameters with modifiers in lambdas](https://startdebugging.net/2025/04/c-14-simplified-parameters-with-modifiers-in-lambdas/): C# 14 allows using ref, out, in, scoped, and ref readonly modifiers on implicitly typed lambda parameters, eliminating the need to explicitly declare parameter types. - [Partial constructors and events in C# 14](https://startdebugging.net/2025/04/csharp-14-partial-constructors-and-events/): C# 14 lets you declare instance constructors and events as partial members, splitting definitions across files for cleaner code generation and separation of concerns. - [C# 14: nameof support for unbound generic types](https://startdebugging.net/2025/04/c-14-nameof-support-for-unbound-generic-types/): C# 14 enhances the nameof expression to support unbound generic types like List<> and Dictionary<,>, eliminating the need for placeholder type arguments. - [Implicit Span conversions in C# 14 – First-class support for Span and ReadOnlySpan](https://startdebugging.net/2025/04/implicit-span-conversions-in-c-14-first-class-support-for-span-and-readonlyspan/): C# 14 adds built-in implicit conversions between Span, ReadOnlySpan, arrays, and strings, enabling cleaner APIs, better type inference, and fewer manual AsSpan() calls. - [.NET 10: Array Enumeration Performance Improvements (JIT Array De-Abstraction)](https://startdebugging.net/2025/04/net-10-array-ennumeration-performance-improvements-jit-array-de-abstraction/): In .NET 10, the JIT compiler reduces the overhead of iterating arrays through interfaces. See benchmarks comparing .NET 9 vs .NET 10 with foreach, IEnumerable, and conditional escape analysis. - [C# 14 – The field keyword and field-backed properties](https://startdebugging.net/2025/04/c-14-the-field-keyword-and-field-backed-properties/): C# 14 introduces the field contextual keyword for property accessors, letting you add custom logic to auto-properties without declaring a separate backing field. - [.NET Performance: ToList vs ToArray](https://startdebugging.net/2025/01/net-performance-tolist-vs-toarray/): .NET 9 significantly improves ToArray performance using InlineArray, making it faster and more memory-efficient than ToList. See benchmarks comparing .NET 8 vs .NET 9. - [C# 13: Use params collections with any recognized collection type](https://startdebugging.net/2025/01/csharp-13-params-collections/): C# 13 extends the params modifier beyond arrays to support Span, ReadOnlySpan, IEnumerable, and other collection types, reducing boilerplate and improving flexibility. - [How to switch to C# 13](https://startdebugging.net/2025/01/how-to-switch-to-c-13/): How to fix 'Feature is not available in C# 12.0' and switch your project to C# 13 by changing the target framework or setting LangVersion in your .csproj file. ## 2024 - [What’s new in C# 14.0](https://startdebugging.net/2024/12/csharp-14/): A summary of all new features in C# 14.0, including the field keyword, extension members, null-conditional assignment, implicit span conversions, and more. - [C# language version history](https://startdebugging.net/2024/12/csharp-language-version-history/): The evolution of C# has transformed it into a modern, high-performance language. This guide tracks every major milestone. The Early Years (C# 1.0 – 1.2) C# launched in 2002 as a primary language for the .NET Framework. It felt like Java but with a focus on Windows development. Version 1.2 arrived shortly after with small… - [What’s new in .NET 10](https://startdebugging.net/2024/12/dotnet-10/): What's new in .NET 10: LTS release with 3 years of support, new JIT optimizations, array devirtualization, stack allocation improvements, and more. - [.NET 8 ToFrozenDictionary: Dictionary vs FrozenDictionary](https://startdebugging.net/2024/04/net-8-performance-dictionary-vs-frozendictionary/): Convert a Dictionary to a FrozenDictionary with `ToFrozenDictionary()` in .NET 8 for faster reads. Benchmark, when to use it, and the build-time tradeoff. ## 2023 - [Python: Detect text language using Azure AI Language service](https://startdebugging.net/2023/11/python-detect-text-language-using-azure-ai-language-service/): Learn how to detect text language using the Azure AI Language service and the azure-ai-textanalytics Python SDK, with code samples and API payload examples. - [How to: Add AdMob to your MAUI app](https://startdebugging.net/2023/11/how-to-add-admob-to-your-maui-app/): Learn how to display AdMob banner ads in your .NET MAUI app on both Android and iOS, with step-by-step setup and platform-specific handler implementations. - [How to: Detect text language using Azure AI Language service](https://startdebugging.net/2023/11/how-to-detect-text-language-using-azure-ai-language-service/): Learn how to detect text language using the Azure AI Language service, including provisioning, API payloads, and C# SDK examples with TextAnalyticsClient. - [Getting started with .NET Aspire](https://startdebugging.net/2023/11/getting-started-with-net-aspire/): A step-by-step guide to building your first .NET Aspire application, covering project structure, service discovery, and the Aspire dashboard. - [How to install .NET Aspire (dotnet workload install aspire)](https://startdebugging.net/2023/11/how-to-install-net-aspire/): Install .NET Aspire via `dotnet workload install aspire`. Step-by-step setup of .NET 8, the Aspire workload, and Docker on Windows, macOS, Linux. - [What is .NET Aspire?](https://startdebugging.net/2023/11/what-is-net-aspire/): An overview of .NET Aspire, the cloud-oriented framework for building scalable distributed applications, covering orchestration, components, and tooling. - [Converting Megabytes to Kilobytes Made Simple](https://startdebugging.net/2023/11/converting-megabytes-to-kilobytes-made-simple/): Learn how to convert megabytes (MB) to kilobytes (KB) using the simple formula of multiplying by 1,024. Includes practical examples and tips for managing digital storage. - [C# Randomly choose items from a list](https://startdebugging.net/2023/11/c-randomly-choose-items-from-a-list/): In C#, you can randomly select items from a list using Random.GetItems, a method introduced in .NET 8. Learn how it works with practical examples. - [How to publish container as tar.gz in .NET](https://startdebugging.net/2023/11/how-to-publish-container-as-tar-gz-in-net/): Learn how to publish a .NET 8 container as a tar.gz archive using the ContainerArchiveOutputPath property with dotnet publish. - [MAUI: How to register handlers in a library](https://startdebugging.net/2023/11/maui-library-register-handlers/): Learn how to register view handlers and services from within a .NET MAUI library using the builder pattern and MauiAppBuilder extension methods. - [How to fix: ‘Point’ does not have a predefined size, therefore sizeof can only be used in an unsafe context](https://startdebugging.net/2023/11/how-to-fix-point-does-not-have-a-predefined-size-therefore-sizeof-can-only-be-used-in-an-unsafe-context/): Fix the C# error where sizeof cannot be used with Point outside an unsafe context. Two solutions: enabling unsafe code or using Marshal.SizeOf instead. - [C# Access private property backing field using Unsafe Accessor](https://startdebugging.net/2023/11/c-access-private-property-backing-field-using-unsafe-accessor/): Use UnsafeAccessorAttribute in .NET 8 to access auto-generated backing fields of private auto-properties in C# without reflection. - [How to create a 2 column Flexbox layout in React Native](https://startdebugging.net/2023/11/2-column-react-native/): Learn how to create a 2 column Flexbox layout in React Native using flex-wrap, with adjustable column counts and spacing between elements. - [C# ZIP files to Stream](https://startdebugging.net/2023/11/c-zip-files-to-stream/): .NET 8 includes new CreateFromDirectory and ExtractToDirectory overloads that let you create and extract ZIP files directly to and from a Stream, without writing to disk. - [.NET 8 performance: 10x faster GetGenericTypeDefinition](https://startdebugging.net/2023/11/net-8-performance-10x-faster-getgenerictypedefinition/): Benchmarking GetGenericTypeDefinition in .NET 8 vs .NET 7 shows nearly 10x faster performance. See benchmark code and results using BenchmarkDotNet. - [How to take a screenshot in .NET core](https://startdebugging.net/2023/11/how-to-take-a-screenshot-in-net-core/): Learn how to capture a screenshot of your entire desktop from a .NET console application using System.Windows.Forms. Windows-only solution covering all displays. - [Kebab case – everything about it and more](https://startdebugging.net/2023/11/kebab-case-everything-about-it-and-more/): Kebab case is a naming convention used in programming to format variable, function, or file names by separating words with hyphens (“-“). It is also known as “kebab-case”, “hyphen-case”, or “spinal-case”. For example, if you have a variable representing a person’s first name, you would write it in kebab case as: In kebab case, all… - [C# How to update a readonly field using UnsafeAccessor](https://startdebugging.net/2023/11/c-how-to-update-a-readonly-field-using-unsafeaccessor/): Learn how to update a readonly field in C# using UnsafeAccessor, an alternative to reflection without the performance penalty. Available in .NET 8. - [.NET 8 Performance: UnsafeAccessor vs. Reflection](https://startdebugging.net/2023/11/net-8-performance-unsafeaccessor-vs-reflection/): Benchmarking UnsafeAccessor vs Reflection in .NET 8. See how UnsafeAccessor achieves zero-overhead performance compared to traditional reflection. - [C# UnsafeAccessor: private members without reflection (.NET 8)](https://startdebugging.net/2023/10/unsafe-accessor/): Use the `[UnsafeAccessor]` attribute in .NET 8 to read private fields and call private methods at zero overhead — no reflection, fully AOT-compatible. - [How to fix: MissingPluginException – No implementation found for method getAll](https://startdebugging.net/2023/10/how-to-fix-missingpluginexception-no-implementation-found-for-method-getall/): Fix Flutter `MissingPluginException` 'No implementation found for method getAll' on shared_preferences and similar plugins (package_info_plus, etc.) — ProGuard, plugin registration, minSdkVersion, hot restart fixes. - [C# – How to mark features as experimental](https://startdebugging.net/2023/10/experimental-features/): Starting with C# 12, a new ExperimentalAttribute lets you mark types, methods, properties, or assemblies as experimental. Learn how to use it with diagnosticId, pragma tags, and UrlFormat. - [C# – ref readonly parameters](https://startdebugging.net/2023/10/csharp-ref-readonly-parameters/): The ref readonly modifier in C# provides a more transparent way of passing read-only references. Learn how it improves on the in modifier with better constraints and caller visibility. - [What comes after decillion?](https://startdebugging.net/2023/10/what-comes-after-decillion/): What comes after decillion? The answer is undecillion, with 36 zeroes. See the full list of large numbers from million to centillion. - [C# – How to shuffle an array?](https://startdebugging.net/2023/10/c-how-to-shuffle-an-array/): The easiest way to shuffle an array in C# is using Random.Shuffle, introduced in .NET 8. It works in-place on both arrays and spans. - [System.Text.Json – How to modify existing type info resolver](https://startdebugging.net/2023/10/system-text-json-how-to-modify-existing-type-info-resolver/): Use the new WithAddedModifier extension method in .NET 8 to easily modify any IJsonTypeInfoResolver serialization contract without creating a new resolver from scratch. - [HttpClient get JSON as AsyncEnumerable](https://startdebugging.net/2023/10/httpclient-get-json-as-asyncenumerable/): The new GetFromJsonAsAsyncEnumerable extension method in .NET 8 deserializes HTTP response JSON into an IAsyncEnumerable. Learn how to use it with await foreach. - [JsonNode – .NET 8 API updates](https://startdebugging.net/2023/10/jsonnode-net-8-api-updates/): Explore the new .NET 8 API additions to JsonNode and JsonArray, including GetValueKind, GetPropertyName, GetElementIndex, ReplaceWith, and ParseAsync. - [Deep cloning and deep equality of a JsonNode](https://startdebugging.net/2023/10/deep-cloning-and-deep-equality-of-a-jsonnode/): Learn how to use the new DeepClone() and DeepEquals() methods on JsonNode in .NET 8 for deep cloning and comparing JSON nodes. - [System.Text.Json – Disable reflection-based serialization](https://startdebugging.net/2023/10/system-text-json-disable-reflection-based-serialization/): Learn how to disable reflection-based serialization in System.Text.Json starting with .NET 8 for trimmed and native AOT applications using the JsonSerializerIsReflectionEnabledByDefault property. - [C# – What is a NullReferenceException, and how to fix it?](https://startdebugging.net/2023/10/c-what-is-a-nullreferenceexception-and-how-to-fix-it/): Learn what causes a NullReferenceException in C#, how to debug it, and how to prevent it using null checks, the null-conditional operator, and nullable reference types. - [YouTube: Missing option to delete channel](https://startdebugging.net/2023/10/youtube-missing-option-to-delete-channel/): Missing the Remove YouTube Content option? Use YouTube Studio as a workaround to delete your channel when the standard option is unavailable. - [Add/Remove TypeInfoResolver to existing JsonSerializerOptions](https://startdebugging.net/2023/10/add-remove-typeinforesolver-to-existing-jsonserializeroptions/): Learn how to add or remove TypeInfoResolver instances on existing JsonSerializerOptions using the new TypeInfoResolverChain property in .NET 8. - [WPF – Prevent file dialog selection from being added to recents](https://startdebugging.net/2023/10/wpf-prevent-file-dialog-selection-from-being-added-to-recents/): Prevent WPF file dialog selections from appearing in Windows Explorer recents and the Start Menu by setting AddToRecent to false in .NET 8. - [WPF – Individual dialog states using ClientGuid](https://startdebugging.net/2023/10/wpf-individual-dialog-states-using-clientguid/): Use the ClientGuid property in .NET 8 to persist individual dialog states like window size, position, and last used folder across WPF file dialogs. - [C# 12 – Interceptors](https://startdebugging.net/2023/10/c-12-interceptors/): Learn about C# 12 interceptors, an experimental .NET 8 compiler feature that lets you replace method calls at compile time using the InterceptsLocation attribute. - [WPF – Limit OpenFileDialog folder tree to a certain folder](https://startdebugging.net/2023/10/wpf-limit-openfiledialog-folder-tree-to-a-certain-folder/): Learn how to constrain the WPF OpenFileDialog folder tree to a specific root folder using the RootDirectory property in .NET 8. - [Flutter – NoSuchMethod: the method was called on null](https://startdebugging.net/2023/10/flutter-nosuchmethod-the-method-was-called-on-null/): This Flutter error occurs when calling a method on a null object reference. Learn how to diagnose and fix the NoSuchMethod error using the call stack and breakpoints. - [WPF hardware acceleration in RDP](https://startdebugging.net/2023/10/wpf-hardware-acceleration-in-rdp/): Learn how to enable WPF hardware acceleration over RDP in .NET 8 for improved performance and a more responsive remote desktop experience. - [WPF Open / Select Folder Dialog (.NET 8 OpenFolderDialog)](https://startdebugging.net/2023/10/wpf-open-folder-dialog/): Use the new .NET 8 `OpenFolderDialog` in WPF to let users open and select one or multiple folders. Replaces the old WinForms FolderBrowserDialog hack. - [The AI revolution – Should software engineers be afraid for their jobs?](https://startdebugging.net/2023/10/the-ai-revolution-should-software-engineers-be-afraid-for-their-jobs/): Will AI replace software engineers? Exploring the reality behind AI-generated websites, prompt engineering, specialized AI, and why AI is a copilot rather than a replacement. - [Implementation type Data.AppDbContext can’t be converted to service type Microsoft.AspNetCore.Identity.IUserStore](https://startdebugging.net/2023/09/implementation-type-data-appdbcontext-cant-be-converted-to-service-type-microsoft-aspnetcore-identity-iuserstore/): Fix the ASP.NET Core Identity error where AppDbContext can't be converted to IUserStore by adding AddEntityFrameworkStores to your identity configuration. - [.NET 8 – Serializing properties from interface hierarchies](https://startdebugging.net/2023/09/net-8-serializing-properties-from-interface-hierarchies/): .NET 8 adds support for serializing properties from interface hierarchies, including all properties from all interfaces depending on the declared variable type. - [.NET 8 – Deserialize into non-public properties](https://startdebugging.net/2023/09/net-8-deserialize-into-non-public-properties/): Learn how to deserialize JSON into non-public properties in .NET 8 using the JsonInclude attribute and parameterized constructors. - [.NET 8 – How to use JsonStringEnumConverter with native AOT](https://startdebugging.net/2023/09/net-8-how-to-use-jsonstringenumconverter-with-native-aot/): Learn how to use the new JsonStringEnumConverter in .NET 8 for native AOT-compatible enum serialization with System.Text.Json. - [The type or namespace name InterceptsLocationAttribute could not be found](https://startdebugging.net/2023/09/the-type-or-namespace-name-interceptslocationattribute-could-not-be-found/): How to fix error CS0246 for InterceptsLocationAttribute in C# interceptors by defining the attribute yourself. - [.NET 8 – Mark JsonSerializerOptions as readonly](https://startdebugging.net/2023/09/net-8-mark-jsonserializeroptions-as-readonly/): Learn how to mark JsonSerializerOptions instances as read-only in .NET 8 using MakeReadOnly, and how to check the IsReadOnly property. - [.NET 8 – Serialization of Half, Int128, and UInt128](https://startdebugging.net/2023/09/net-8-serialization-of-half-int128-and-uint128/): System.Text.Json in .NET 8 adds built-in serialization support for the Half, Int128, and UInt128 numeric types. - [.NET 8 – Memory is serialized as base64](https://startdebugging.net/2023/09/net-8-memorybyte-is-serialized-as-base64/): Starting with .NET 8, both Memory and ReadOnlyMemory are serialized as Base64 strings, while other types like Memory remain JSON arrays. - [.NET 8 – Include non-public members in JSON serialization](https://startdebugging.net/2023/09/net-8-include-non-public-members-in-json-serialization/): Learn how to include private, protected, and internal properties in JSON serialization in .NET 8 using the JsonInclude attribute. - [dotnet workload clean](https://startdebugging.net/2023/09/dotnet-workload-clean/): Use the `dotnet workload clean` command to remove leftover .NET workload packs after an SDK or Visual Studio update — when to use it, what it removes, and gotchas. - [.NET 8 – Deserialize into read-only properties](https://startdebugging.net/2023/09/net-8-deserialize-into-read-only-properties/): Learn how to deserialize JSON into read-only properties without a setter in .NET 8 using JsonObjectCreationHandling or JsonSerializerOptions. - [.NET 8 – Handle missing members during JSON deserialization](https://startdebugging.net/2023/09/net-8-handle-missing-members-during-json-deserialization/): Learn how to throw exceptions for unmapped JSON properties during deserialization in .NET 8 using JsonUnmappedMemberHandling. - [SQLite-net – No parameterless constructor defined for this object on ExecuteQuery](https://startdebugging.net/2023/09/sqllitenet-no-parameterless-constructor-defined-for-this-object-on-executequery/): How to fix the 'no parameterless constructor defined' error in SQLite-net when using ExecuteQuery with primitive types like string or int. - [C# 12 – Inline arrays](https://startdebugging.net/2023/08/c-12-inline-arrays/): Inline arrays enable you to create an array of fixed size in a struct type. Such a struct, with an inline buffer, should provide performance comparable to an unsafe fixed size buffer. Inline arrays are mostly to be used by the runtime team and some library authors to improve performance in certain scenarios. You likely… - [C# 12 – Collection expressions](https://startdebugging.net/2023/08/c-12-collection-expressions/): C# 12 introduces a new simplified syntax for creating arrays. It looks like this: It’s important to note that the array type needs to be specified explicitly, so you cannot use var for declaring the variable. Similarly, if you wanted to create a Span, you can do: Multi-dimensional arrays The advantages of this terse syntax… - [How to install dotnet script](https://startdebugging.net/2023/08/how-to-install-dotnet-script/): dotnet script enables you to run C# scripts (.CSX) from the .NET CLI. The only requirement is to have .NET 6 or newer installed on your machine. You can use the following command to install dotnet-script globally: Then to execute a script file you simply call dotnet script like in the example below: How… - [Flutter – Fix The getter ‘accentColor’ isn’t defined for the class ‘ThemeData’](https://startdebugging.net/2023/08/flutter-fix-the-getter-accentcolor-isnt-defined-for-the-class-themedata/): The most likely cause of this error is an update to Flutter (flutter upgrade) which led to some incompatibility with your existing code or your project's dependencies. The Theme.of(context).accentColor property has been deprecated since Flutter 1.17 and is entirely removed from the current version, thus the error you are seeing. What to use instead Or, if… - [Flutter: Your project requires a newer version of the Kotlin Gradle plugin](https://startdebugging.net/2023/08/flutter-your-project-requires-a-newer-version-of-the-kotlin-gradle-plugin/): Fix the Flutter error 'Your project requires a newer version of the Kotlin Gradle plugin' by updating the ext.kotlin_version in your build.gradle file to the latest Kotlin release. - [C# How to wait for a process to end?](https://startdebugging.net/2023/08/c-how-to-wait-for-a-process-to-end/): You can use the WaitForExit method to wait for the process to complete. Your code will wait synchronously for the process to finish, then it will resume execution. Let’s look at an example: The code above will start a new cmd.exe process, and execute the timeout 5 command. The process.WaitForExit() call will force your program… - [What does megabyte mean?](https://startdebugging.net/2023/08/what-does-megabyte-mean/): A megabyte (MB) equals one million bytes in the SI system, but can also mean 1,048,576 bytes in computing. Learn about the different definitions and conventions. - [What comes after quadrillion?](https://startdebugging.net/2023/08/what-comes-after-quadrillion/): After quadrillion comes quintillion, with 18 zeroes. Discover the full list of large number names from million all the way to centillion. - [C# 12 – Alias any type](https://startdebugging.net/2023/08/c-12-alias-any-type/): The using alias directive has been relaxed in C# 12 to allow aliasing any sort of type, not just named types. This means that you can now alias tuples, pointers, array types, generic types, etc. So instead of using the full structural form of a tuple, you can now alias it with a short descriptive… - [.NET 8 JsonNamingPolicy: SnakeCaseLower and KebabCaseLower (System.Text.Json)](https://startdebugging.net/2023/08/net-8-json-serialize-property-names-using-snake-case-and-kebab-case/): Use the new .NET 8 `JsonNamingPolicy.SnakeCaseLower` (and SnakeCaseUpper, KebabCaseLower, KebabCaseUpper) to serialize snake_case / kebab-case JSON via System.Text.Json — no custom converter needed. - [Is there a C# With…End With statement equivalent?](https://startdebugging.net/2023/08/is-there-a-c-with-end-with-statement-equivalent/): The With…End With statement in VB allows you to execute a series of statements that repeatedly refer to a single object. Thus the statements can use a simplified syntax for accessing members of the object. For example: Is there a C# syntax equivalent? No. There is not. The closest thing to it would be the… - [C# 12 – Primary constructors](https://startdebugging.net/2023/07/c-12-primary-constructors/): Starting from C# 12, it is possible to define a primary constructor within classes and structs. The parameters are placed in parentheses right after the type name. The parameters of a primary constructor have a broad scope. They can be utilized to initialize properties or fields, serve as variables in methods or local functions, and… - [dotnet new api -aot: ‘-aot’ is not a valid option](https://startdebugging.net/2023/06/dotnet-new-api-aot-aot-is-not-a-valid-option/): Fix the '-aot is not a valid option' error by using the correct double-hyphen syntax: dotnet new api --aot. - [The type or namespace name ‘QueryOption’ could not be found](https://startdebugging.net/2023/06/the-type-or-namespace-name-queryoption-could-not-be-found/): Starting with Microsoft Graph .NET SDK 5.0, the QueryOption class is no longer used. Instead, query options are set using the requestConfiguration modifier. Let’s take a simple example: If you must use QueryOptions, your only alternative is to downgrade the Microsoft Graph package to a 4.x version. - [How to pass arguments to a dotnet script](https://startdebugging.net/2023/06/how-to-pass-arguments-to-a-dotnet-script/): Learn how to pass arguments to a dotnet script using the -- separator and access them via the Args collection. - [How to fix: dotnet ef not found (dotnet-ef does not exist)](https://startdebugging.net/2023/06/how-to-fix-command-dotnet-ef-not-found/): Fix the 'dotnet-ef does not exist' / 'dotnet ef command not found' error by installing the EF Core CLI as a global or local .NET tool. - [How to start programming with C#](https://startdebugging.net/2023/06/how-to-start-programming-with-c/): A beginner's guide to getting started with C# programming, from setting up Visual Studio to writing your first program and finding learning resources. - [How to switch to C# 12](https://startdebugging.net/2023/06/how-to-switch-to-c-12/): Fix C# 12 language version errors by updating your target framework to .NET 8 or setting LangVersion in your .csproj file. - [What’s new in C# 12](https://startdebugging.net/2023/06/whats-new-in-c-12/): An overview of new features in C# 12, including primary constructors, default lambda parameters, collection expressions, inline arrays, and more. - [What’s new in .NET 8](https://startdebugging.net/2023/06/whats-new-in-net-8/): .NET 8 was released on November 14, 2023 as an LTS (Long Term Support) version, meaning it will continue to receive support, updates, and bug fixes for at least three years from its release date. As usual, .NET 8 brings support for a new version of the C# language, namely C# 12. Check out our dedicated page… - [C# 12 – Default values for parameters in lambda expressions](https://startdebugging.net/2023/05/c-12-default-values-for-parameters-in-lambda-expressions/): C# 12 lets you specify default parameter values and params arrays in lambda expressions, just like in methods and local functions. - [C# 11 – Generic attributes](https://startdebugging.net/2023/03/c-sharp-11-generic-attributes/): Learn how to define and use generic attributes in C# 11, including restrictions on type arguments and common error messages. - [C# 11 – file access modifier & file-scoped types](https://startdebugging.net/2023/03/c-11-file-access-modifier/): Learn how the C# 11 file access modifier restricts a type's scope to the file in which it is declared, helping avoid name collisions with source generators. - [C# 11 – Interpolated raw string literal](https://startdebugging.net/2023/03/c-11-interpolated-raw-string-literal/): Learn how to use interpolated raw string literals in C# 11, including escaping braces, multiple $ characters, and conditional operators. - [C# 11 raw string literals (triple-quote syntax)](https://startdebugging.net/2023/03/c-raw-string-literals/): Use C# 11 raw string literals (triple-quote `"""` syntax) to embed whitespace, newlines, and quotes without escape sequences. Rules and examples. - [How to switch to C# 11](https://startdebugging.net/2023/03/how-to-switch-to-c-11/): Fix the 'Feature is not available in C# 10.0' error by switching to C# 11 via target framework or LangVersion in your .csproj file. - [C# throw if null: ArgumentNullException.ThrowIfNull (.NET 6+)](https://startdebugging.net/2023/03/c-best-way-to-throw-exception-if-null/): Use ArgumentNullException.ThrowIfNull in .NET 6+ for concise null checks, or use throw expressions in C# 7+ for older frameworks. ## 2020 - [The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.](https://startdebugging.net/2020/12/azure-the-specified-version-of-microsoft-netcore-app-or-microsoft-aspnetcore-app-was-not-found/): Fix the 'Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found' error by updating your Azure App Service stack and .NET runtime version. - [Azure DevOps Fix: .NET Core SDK requires logout or session restart](https://startdebugging.net/2020/11/azure-devops-fix-since-you-just-installed-the-net-core-sdk-you-will-need-to-logout-or-restart-your-session-before-running-the-tool-you-installed/): How to fix the Azure DevOps build error 'Since you just installed the .NET Core SDK, you will need to logout or restart your session' by switching the build agent specification. - [Get Embedded Resource Stream in .NET Core](https://startdebugging.net/2020/11/get-embedded-resource-stream-in-net-core/): Learn how to retrieve an embedded resource stream in .NET Core by understanding how resource names are composed and using GetManifestResourceStream. - [Azure Functions vs WebJobs – Which to choose](https://startdebugging.net/2020/11/azure-functions-vs-webjobs-which-to-choose/): Compare Azure Functions and WebJobs: key differences in scaling, pricing, triggers, and when to choose one over the other. - [Which to choose: Logic Apps vs Microsoft Power Automate](https://startdebugging.net/2020/11/which-to-choose-logic-apps-vs-microsoft-power-automate/): Compare Azure Logic Apps and Microsoft Power Automate to determine which workflow automation service is best suited for your use case. - [How to use appsettings.json with Xamarin.Forms](https://startdebugging.net/2020/11/how-to-use-appsettings-json-with-xamarin-forms/): Learn how to use appsettings.json configuration files with Xamarin.Forms by embedding the file as a resource and building an IConfiguration object. - [Creating a cross-platform chat app using Xamarin Forms and SignalR](https://startdebugging.net/2020/11/creating-a-cross-platform-chat-app-using-xamarin-forms-and-signalr/): Build a cross-platform real-time chat app in under 5 minutes using Xamarin Forms for the client and ASP.NET Core SignalR for the backend. - [How to fix WordPress Missing MySQL extension after MultiPHP upgrade on HostGator](https://startdebugging.net/2020/11/how-to-fix-wordpress-missing-mysql-extension-after-multiphp-upgrade-on-hostgator/): Fix the 'Missing MySQL extension' WordPress error after upgrading PHP via the MultiPHP manager on HostGator by removing the obsolete handler from .htaccess. - [How to publicly expose your local SignalR service for consumption by mobile clients using ngrok](https://startdebugging.net/2020/11/how-to-publicly-expose-local-signalr-service-publicly-for-mobile-clients/): Use ngrok to publicly expose your local SignalR service so mobile clients can connect without network configuration or SSL workarounds. - [What is the difference between a MegaByte (MB) and a MebiByte (MiB)?](https://startdebugging.net/2020/08/mib-vs-mb/): Learn the difference between megabytes (MB) and mebibytes (MiB), why 1 MB equals 1000 KB (not 1024), and how different operating systems handle these units. - [Polls for Streamlabs – interact with your viewers](https://startdebugging.net/2020/08/polls-for-streamlabs-interact-with-your-viewers/): Learn how to set up and use Streamlabs Polls to interact with your viewers in real-time during your stream using chat-based voting. - [C# using var (using declaration)](https://startdebugging.net/2020/05/c-using-var-using-declaration/): Use C# 8 `using var` declarations to dispose IDisposable objects without nested braces. Syntax, scope rules, and when to prefer `using` blocks instead. - [C# 8.0 Null-coalescing assignment ??=](https://startdebugging.net/2020/04/c-8-0-null-coalescing-assignment/): Learn how the C# 8.0 null-coalescing assignment operator (??=) works, with practical examples including caching and conditional assignment. - [get_category_link generating incorrect url including /blog/](https://startdebugging.net/2020/04/get_category_link-generating-incorrect-url-including-blog/): Fix for WordPress get_category_link generating incorrect URLs that include /blog/ in the path, causing 404 errors on category pages. - [Technology changes on a daily basis, should your business try to keep up?](https://startdebugging.net/2020/04/technology-changes-on-a-daily-basis-should-your-business-try-to-keep-up/): Should your business chase every new technology trend? Probably not. Learn when to upgrade and when to focus on delivering value to your users instead. - [Xamarin Startup Tracing for Android](https://startdebugging.net/2020/04/xamarin-startup-tracing-for-android/): Improve your Xamarin Android app startup time by up to 48% using startup tracing, which AOT-compiles only the code needed at launch. ## 2019 - [AdMob Native Ads in Xamarin Forms (Android)](https://startdebugging.net/2019/09/admob-native-ads-in-xamarin-forms-android/): Step-by-step guide to implementing AdMob Native Ads in a Xamarin Forms Android app using a custom renderer. - [Lighthouse report: Properly size images](https://startdebugging.net/2019/07/lighthouse-report-properly-size-images/): Improve your Lighthouse performance score by properly sizing and optimizing images for the web using tools like Squoosh. - [Xamarin Forms – Using OnPlatform](https://startdebugging.net/2019/07/xamarin-forms-using-onplatform/): Learn how to use OnPlatform in Xamarin Forms to set platform-specific property values in both XAML and C#. - [Lighthouse report: Defer offscreen images in WordPress](https://startdebugging.net/2019/05/lighthouse-report-defer-offscreen-images-in-wordpress/): Improve your WordPress site's Lighthouse performance score by deferring offscreen images with lazy loading. - [Use your Android phone as a webcam for Streamlabs](https://startdebugging.net/2019/04/use-your-android-phone-as-a-webcam-for-streamlabs/): Turn your old Android phone into a webcam for Streamlabs OBS using DroidCam, with step-by-step setup instructions. - [Audit your site’s performance, accessibility and user experience using Google Lighthouse](https://startdebugging.net/2019/04/audit-your-sites-performance-accessibility-and-user-experience-using-google-lighthouse/): Learn how to use Google Lighthouse to audit your website's performance, accessibility, and user experience directly from Chrome DevTools. - [Animating backgrounds with Xamarin Forms](https://startdebugging.net/2019/01/animating-backgrounds-with-xamarin-forms/): Create a smooth animated background effect in Xamarin Forms using ScaleTo animations on layered BoxViews. ## 2018 - [Getting started with CSS in Xamarin Forms 3](https://startdebugging.net/2018/04/getting-started-with-css-in-xamarin-forms-3/): Learn how to use Cascading StyleSheets (CSS) in Xamarin Forms 3, including inline CDATA styles and embedded CSS files. - [Extending your Xamarin Forms AdMob renderer to display Microsoft Ads on UWP](https://startdebugging.net/2018/04/extending-your-xamarin-forms-admob-renderer-to-display-microsoft-ads-on-uwp/): Learn how to extend your Xamarin Forms AdMob renderer to display Microsoft Ads on UWP using the Microsoft Advertising SDK. - [Upgrading to Xamarin Forms 3](https://startdebugging.net/2018/04/upgrading-xamarin-forms-3/): A quick guide to upgrading to Xamarin Forms 3, including common build errors and how to fix them. - [UWP – Using an Acrylic Brush in your Xamarin Forms MasterDetail menu](https://startdebugging.net/2018/01/using-acrylic-brush-xamarin-forms-masterdetail/): Apply the UWP Acrylic Brush to a Xamarin Forms MasterDetail menu using a native platform renderer without any third-party libraries. ## 2017 - [AdMob Smart Banner sizing in Xamarin Forms](https://startdebugging.net/2017/12/admob-smart-banner-sizing-xamarin-forms/): How to calculate the correct AdMob Smart Banner height in Xamarin Forms based on screen density-independent pixels. - [Xamarin ListView performance & replacing it with Syncfusion SfListView](https://startdebugging.net/2017/12/xamarin-listview-performance/): Improve Xamarin Forms ListView scrolling performance with caching strategies, template optimization, and Syncfusion SfListView. ## 2015 - [How To: Add AdMob to your Xamarin Forms app](https://startdebugging.net/2015/09/how-to-add-admob-to-your-xamarin-forms-app/): Step-by-step guide to integrating AdMob ads into your Xamarin Forms app on Android and iOS using custom view renderers. - [Fix Xamarin error – Csc.exe exited with code -1073741790. (MSB6006)](https://startdebugging.net/2015/08/fix-xamarin-error-csc-exe-exited-with-code-1073741790-msb6006/): Fix the Xamarin Csc.exe MSB6006 error by running as Administrator or cleaning the solution bin and obj folders. ## 2014 - [Changing the Cordova version used by Hybrid Apps in Visual Studio 2013](https://startdebugging.net/2014/11/changing-cordova-version-used-hybrid-apps-visual-studio-2013/): How to update the Cordova version used by Hybrid Apps in Visual Studio 2013 by editing the platforms.js file. ## 2013 - [How long does it take a PC to count to one trillion](https://startdebugging.net/2013/10/counting-up-to-one-trillion/): Benchmarking how long it takes a PC to count to one trillion and beyond, with updated results from 2023. - [Adding speech recognition to your WP8 app](https://startdebugging.net/2013/06/adding-speech-recognition-to-your-wp8-app/): Add speech recognition to your Windows Phone 8 app using the SpeechTextBox control from the Windows Phone toolkit. - [Periodically update your live tiles using ScheduledTaskAgent](https://startdebugging.net/2013/06/periodically-update-your-live-tiles-using-scheduledtaskagent/): Use a ScheduledTaskAgent to periodically update your Windows Phone live tiles from an RSS feed. - [Creating wide tiles for your Windows Phone 7 app](https://startdebugging.net/2013/05/creating-wide-tiles-for-your-windows-phone-7-app/): Create wide live tiles for both Windows Phone 7 and 8 using the MangoPollo library with a single piece of code. ## 2012 - [Isolated Storage Settings Helper for Windows Phone](https://startdebugging.net/2012/11/insolated-storage-settings-helper-for-windows-phone/): A simple IsolatedStorageSettingsHelper class for Windows Phone with methods to get, save, and batch-save items in IsolatedStorageSettings. - [Fix Firefox Tabs Having Strange Colors in Windows 8](https://startdebugging.net/2012/11/fix-firefox-tabs-having-strange-colors-in-windows-8/): How to fix the Firefox tab color glitch on Windows 8 with nVidia graphics cards by disabling hardware acceleration. - [AdMob crashing Windows Phone apps. What is the alternative?](https://startdebugging.net/2012/09/admob-crashing-windows-phone-apps-what-is-the-alternative/): AdMob was crashing my Windows Phone app via WebBrowser.InvokeScript. Here's the stack trace, the root cause, and alternative ad networks like InnerActive. - [Mobile HTML5 and jQuery webinar week](https://startdebugging.net/2012/06/mobile-html5-and-jquery-webinar-week/): A series of 3 free webinars on HTML5 and jQuery covering getting started, working with data, and building a real-world app. - [Windows 8 and Secure Boot – What if your PC doesn’t support it?](https://startdebugging.net/2012/06/windows-8-and-secure-boot-what-if-your-pc-doesnt-support-it/): What to do when you get the 'Secure Boot isn't compatible with your PC' error while installing Windows 8, and what Secure Boot actually is. - [8bit Google Maps for NES](https://startdebugging.net/2012/03/8bit-google-maps-for-nes/): Google Maps 8-bit for NES: Google's April Fools' joke brings retro 8-bit graphics to Google Maps with street view, directions, and more. - [3D Animations Using Pure CSS3](https://startdebugging.net/2012/03/3d-animations-using-pure-css3/): Learn how to create 3D animations using pure CSS3 perspective and transform transitions, with cross-browser support for WebKit and Firefox. - [CSS How to use Custom Fonts](https://startdebugging.net/2012/03/css3-custom-fonts/): Learn how to use custom fonts in CSS3 with the @font-face rule, including syntax examples and a demo. - [CSS Textured / Noisy Gradient Background](https://startdebugging.net/2012/03/css3-textured-noisy-gradient-background/): How to create textured, noisy gradient backgrounds in CSS by combining gradient and noise image layers using the background-image property. - [Metro TimeBlock](https://startdebugging.net/2012/02/metro-timeblock/): Metro TimeBlock is a customizable time display control for Windows Phone that lets you set any color, background, and size. - [How to install Windows 8 using a USB drive](https://startdebugging.net/2012/02/how-to-install-windows-8-using-a-usb-drive/): Step-by-step guide to installing Windows 8 from a USB drive using the Windows 7 USB/DVD Download Tool, including tips on formatting, BIOS settings, and troubleshooting. - [Metro and WinRT Webinar on February 2nd](https://startdebugging.net/2012/01/metro-and-winrt-webinar-on-february-2nd/): SilverlightShow webinar on Metro and WinRT for Silverlight/WPF developers, covering how to build Windows 8 apps using your existing XAML experience. - [C# Convert Hex To Color](https://startdebugging.net/2012/01/extension-method-hex-to-color/): A C# extension method that converts hex color codes (both RGB and ARGB formats) to Color objects. - [Windows Phone 7: Getting the current GPS location from the device](https://startdebugging.net/2012/01/windows-phone-7-getting-the-current-gps-location-from-the-device/): How to get the current GPS location on a Windows Phone 7 device using GeoCoordinateWatcher and the PositionChanged event. - [How to create your own code snippets in Visual Studio](https://startdebugging.net/2012/01/how-to-create-your-own-code-snippet/): Step-by-step guide to creating your own code snippets in Visual Studio 2010, including simple snippets and using literals for replaceable parameters. - [Improve productivity by using code snippets](https://startdebugging.net/2012/01/improve-productivity-by-using-code-snippets/): Learn how code snippets in Visual Studio can improve your productivity by letting you insert reusable pieces of code with a short alias. - [31 Days of Windows Phone Metro Design](https://startdebugging.net/2012/01/31-days-of-windows-phone-metro-design/): A new series of articles called 31 Days of Windows Phone Metro Design covers metro design principles and how to make your apps look great. - [Leveraging Windows Azure for the Windows Phone Developer – Webinar](https://startdebugging.net/2012/01/leveraging-windows-azure-for-the-windows-phone-developer-webinar/): Upcoming SilverlightShow webinar by Samidip Basu on leveraging Windows Azure for Windows Phone development, covering push notifications, OData, SQL Azure, and more. - [Transparent TextBox for Windows Phone](https://startdebugging.net/2012/01/transparent-textbox-for-windows-phone/): A XAML style for Windows Phone that makes a TextBox fully transparent, including removing the white background focus effect when tapped. - [Expression Blend 4 has stopped working? Here’s your FIX.](https://startdebugging.net/2012/01/expression-blend-4-has-stopped-working-heres-your-fix/): Fix for Expression Blend 4 crashing after installing Visual Studio 11 Dev Preview or .NET Framework 4.5, with the ngen commands needed to resolve it.