Joined April 2024
93 Photos and videos
๐—”๐˜€๐—ฝ๐—ถ๐—ฟ๐—ฒ ๐Ÿญ๐Ÿฏ.๐Ÿฏ ๐˜€๐—ต๐—ถ๐—ฝ๐˜€ ๐—ž๐˜‚๐—ฏ๐—ฒ๐—ฟ๐—ป๐—ฒ๐˜๐—ฒ๐˜€ ๐—ฑ๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜ ๐Ÿ“ฆ The new Aspire version brings first-class ๐—ž๐˜‚๐—ฏ๐—ฒ๐—ฟ๐—ป๐—ฒ๐˜๐—ฒ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—”๐—ž๐—ฆ ๐—ฑ๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜ in preview with Helm chart generation. You can declare a Kubernetes environment in your AppHost, run aspire deploy, and Aspire generates a complete Helm chart and applies it end-to-end against your cluster โ€” no separate helm install, kustomize, or hand-rolled manifests required. aspire destroy removes the Helm release and namespace cleanly. New first-class ๐—œ๐—ป๐—ด๐—ฟ๐—ฒ๐˜€๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—š๐—ฎ๐˜๐—ฒ๐˜„๐—ฎ๐˜† ๐—”๐—ฃ๐—œ ๐—ฟ๐—ผ๐˜‚๐˜๐—ถ๐—ป๐—ดย resources let you declare how traffic enters your Kubernetes cluster directly from the AppHost. Aspire generates the corresponding Ingress, IngressClass, Gateway, HTTPRoute, and cert-manager Certificate resources. Learn more: aspire.dev/whats-new/aspire-โ€ฆ #aspire #dotnet
2
2
85
๐—”๐˜‡๐˜‚๐—ฟ๐—ฒ ๐—–๐—ผ๐—ป๐˜๐—ฎ๐—ถ๐—ป๐—ฒ๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—˜๐˜…๐—ฝ๐—ฟ๐—ฒ๐˜€๐˜€ (๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐—ฐ ๐—ฝ๐—ฟ๐—ฒ๐˜ƒ๐—ถ๐—ฒ๐˜„) ๐Ÿ’ฌ If you want to quickly upload an image and have a running app within minutes, you can use the new ๐—–๐—ผ๐—ป๐˜๐—ฎ๐—ถ๐—ป๐—ฒ๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—˜๐˜…๐—ฝ๐—ฟ๐—ฒ๐˜€๐˜€. Itโ€™s simple to set up, requires only essential configuration, and is well-suited for prototypes, AI front-end applications, development tools, and agent backends. ๐—–๐—ผ๐—ป๐˜๐—ฎ๐—ถ๐—ป๐—ฒ๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—˜๐˜…๐—ฝ๐—ฟ๐—ฒ๐˜€๐˜€ do not support advanced platform capabilities such as VNet integration, Private Endpoints, secrets management, managed identity, storage volumes, health probes, or custom domains. You can also now use the Azure portal dedicated to container apps: containerapps.azure.com/logiโ€ฆ #azure #dotnet
1
51
๐—™๐—ผ๐˜‚๐—ป๐—ฑ๐—ฟ๐˜† ๐—Ÿ๐—ผ๐—ฐ๐—ฎ๐—น ๐Ÿญ.๐Ÿญ.๐Ÿฌ ๐—ถ๐˜€ ๐—ป๐—ผ๐˜„ ๐—ฎ๐˜ƒ๐—ฎ๐—ถ๐—น๐—ฎ๐—ฏ๐—น๐—ฒ ๐Ÿ’ก Foundry Local is Microsoftโ€™s cross-platform local AI solution that allows you to run LLMs directly with no cloud dependency, no network latency, and no per-token costs. The new version adds live audio transcription, text embeddings, and the Responses API, making Foundry Local a viable solution for a wide range of use cases. Foundry Local offers advantages over Ollama by automatically detecting your hardware and downloading the most suitable model variant for your system specifications. This plug-and-play approach helps avoid memory allocation issues and reduces the need for technical trial and error. Overall, it is designed to integrate directly into corporate workflows and the Microsoft AI stack. ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป ๐—บ๐—ผ๐—ฟ๐—ฒ: learn.microsoft.com/en-us/azโ€ฆ #dotnet #foundry
1
3
105
๐—–๐—น๐—ผ๐˜€๐—ฒ๐—ฑ ๐—›๐—ถ๐—ฒ๐—ฟ๐—ฎ๐—ฟ๐—ฐ๐—ต๐—ถ๐—ฒ๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ฐ๐—ผ๐—บ๐—ถ๐—ป๐—ด ๐˜๐—ผ ๐—–# ๐Ÿ’ก The new ๐—ฐ๐—น๐—ผ๐˜€๐—ฒ๐—ฑ keyword will allow a class to be marked as closed, restricting inheritance so that derived classes can only be declared within the same assembly. Closed hierarchies, closed enums, and unions together will give C# a complete compile-time exhaustiveness: the compiler tells you about the missing case instead of aย runtime error. Over the past week several "closed classes" PRs were merged into Roslyn: abstract-modifier restrictions and fixes to invalid type suggestions in inexhaustive switch expressions. That is the compiler groundwork for closed hierarchies. Learn more: github.com/dotnet/csharplangโ€ฆ #dotnet #csharp
1
108
๐——๐˜‚๐—ฟ๐—ฎ๐—ฏ๐—น๐—ฒ ๐—ช๐—ผ๐—ฟ๐—ธ๐—ณ๐—น๐—ผ๐˜„๐˜€ ๐—ถ๐—ป ๐˜๐—ต๐—ฒ ๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ผ๐—ณ๐˜ ๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—™๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ ๐Ÿงญ The Agent Framework now has a ๐—ฑ๐˜‚๐—ฟ๐—ฎ๐—ฏ๐—น๐—ฒ workflow programming model via prerelease package ๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ผ๐—ณ๐˜.๐—”๐—ด๐—ฒ๐—ป๐˜๐˜€.๐—”๐—œ.๐——๐˜‚๐—ฟ๐—ฎ๐—ฏ๐—น๐—ฒ๐—ง๐—ฎ๐˜€๐—ธ. You define executors that take input, do work, and produce output, then wire them into a directed graph with WorkflowBuilder. The framework checkpoints state via the Durable Task Scheduler so an orchestration survives process restarts and can span hours or days without losing context. A key feature is that the same workflow runs locally in a single process during development, and using Azure Functions in production. The framework also includes built-in support for parallel agent execution, approval steps with human input, and MCP tool sharing. devblogs.microsoft.com/dotneโ€ฆ #dotnet #agentframework
1
92
๐—š๐—ผ๐˜ƒ๐—ฒ๐—ฟ๐—ป๐—ถ๐—ป๐—ด ๐— ๐—–๐—ฃ ๐˜๐—ผ๐—ผ๐—น ๐—ฐ๐—ฎ๐—น๐—น๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐˜๐—ต๐—ฒ ๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—š๐—ผ๐˜ƒ๐—ฒ๐—ฟ๐—ป๐—ฎ๐—ป๐—ฐ๐—ฒ ๐—ง๐—ผ๐—ผ๐—น๐—ธ๐—ถ๐˜ ๐Ÿ’ก If you have an MCP-driven agent anywhere near production, you have probably had the conversation about what happens when a tool returns something it shouldn't. Microsoft launched the ๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—š๐—ผ๐˜ƒ๐—ฒ๐—ฟ๐—ป๐—ฎ๐—ป๐—ฐ๐—ฒ ๐—ง๐—ผ๐—ผ๐—น๐—ธ๐—ถ๐˜ (Microsoft.AgentGovernance) - a new MIT-licensed package that adds a policy layer between your agent and its tools. Every tool call, resource access, and inter-agent message is evaluated against policyย beforeย execution. Deterministic - not probabilistic. Here is the flow ๐Ÿ‘‡ Agent Action โ–บ Policy Check โ–บ Allow/Deny โ–บ Audit Log The toolkit ships with a quick start called "Your first governed agent" that gets you a working policy in under a screenful of code. If you have not yet figured out how you'll satisfy your security team about agent behavior, this is a good starting point. devblogs.microsoft.com/dotneโ€ฆ #dotnet
60
๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ฒ๐˜…๐˜๐—ฒ๐—ป๐—ฑ ๐—–๐—ผ๐—ฝ๐—ถ๐—น๐—ผ๐˜ ๐—–๐—Ÿ๐—œ ๐Ÿงฉ GitHub Copilot CLI has a ๐—ณ๐˜‚๐—น๐—น ๐—ฒ๐˜…๐˜๐—ฒ๐—ป๐˜€๐—ถ๐—ผ๐—ป ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ that lets you create custom tools, intercept every agent action, inject context, block dangerous operations, and auto-retry errors - and thereโ€™s essentially zero public documentation about it. The extensions feature is experimental but is very promising. The architecture is elegant. Your ๐—ฒ๐˜…๐˜๐—ฒ๐—ป๐˜€๐—ถ๐—ผ๐—ป runs as a separate child process that talks to the CLI over JSON-RPC via stdio. If youโ€™ve usedย Claude Code hooks, you might think this is the same concept but it's quite different. Claude Code hooks are shell commands defined in a JSON settings file. They fire at lifecycle points and execute commands. Thatโ€™s useful, but limited. Copilot CLI extensions areย programmable processes that participate in the agent loop. How to start: check the video by the ๐—ฆ๐˜๐—ฒ๐˜ƒ๐—ฒ ๐—ฆ๐—ฎ๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐—ผ๐—ป ๐Ÿ‘‡ youtube.com/watch?v=HcjUnrS4โ€ฆ #github #copilotcli #copilot
162
๐—ฅ๐—ฒ๐—บ๐—ผ๐˜๐—ฒ ๐—ฐ๐—ผ๐—ป๐˜๐—ฟ๐—ผ๐—น ๐˜ƒ๐—ถ๐—ฎ ๐—–๐—ผ๐—ฝ๐—ถ๐—น๐—ผ๐˜ ๐—–๐—Ÿ๐—œ ๐—ถ๐—ป ๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐—ฐ ๐—ฝ๐—ฟ๐—ฒ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐Ÿ–๏ธ With the new remote control for Copilot CLI, you can start a session on your machine and continue monitoring and steering it from your phone or browser. Think about it: โ€ข Run long tasks locally โ€ข Walk away from your desk โ€ข Check progress and intervene in real time โ€ข Approve actions or adjust direction remotely This is a shift toward more asynchronous, agent-style development where you supervise instead of constantly driving. Start with: ๐—ฐ๐—ผ๐—ฝ๐—ถ๐—น๐—ผ๐˜ --๐—ฟ๐—ฒ๐—บ๐—ผ๐˜๐—ฒ Note: The remote control and CLI policiesย has to be enabled from an Github administrator first. github.blog/changelog/2026-0โ€ฆ #GitHub #Copilot
84
.๐—ก๐—˜๐—ง ๐Ÿญ๐Ÿญ ๐—ฃ๐—ฟ๐—ฒ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐Ÿฏ ๐—ฏ๐—ฟ๐—ถ๐—ป๐—ด๐˜€ ๐˜‚๐—ฝ๐—ฑ๐—ฎ๐˜๐—ฒ๐˜€ ๐˜๐—ผ ๐—ฑ๐—ผ๐˜๐—ป๐—ฒ๐˜ ๐—ฟ๐˜‚๐—ป ๐—ฎ๐—ป๐—ฑ ๐—ฎ๐—ฑ๐˜ƒ๐—ฎ๐—ป๐—ฐ๐—ฒ๐˜€ ๐—ถ๐—ป ๐˜‚๐—ป๐—ถ๐—ผ๐—ป ๐˜๐˜†๐—ฝ๐—ฒ ๐˜€๐˜‚๐—ฝ๐—ฝ๐—ผ๐—ฟ๐˜ ๐Ÿ”Ž ๐Ÿ”นIDE support improvements for ๐˜‚๐—ป๐—ถ๐—ผ๐—ป types (note that polyfills are still required) ๐Ÿ”น๐—ฑ๐—ผ๐˜๐—ป๐—ฒ๐˜ ๐—ฟ๐˜‚๐—ป -e (inline environment variables) ๐Ÿ”นFile-based apps โ†’ multi-file support (#:include) ๐Ÿ”นdotnet watch improvements with Aspire integration and more... Start today: devblogs.microsoft.com/dotneโ€ฆ #dotnet #uniontypes
1
2
9
416

C# file-based apps with multiple files anybody? Coming in .NET 10.0.300 & future .NET 11 previews... @dotnet github.com/DamianEdwards/runโ€ฆ
59
๐—ฆ๐˜๐—ผ๐—ฝ ๐—ฒ๐˜…๐—ฝ๐—น๐—ฎ๐—ถ๐—ป๐—ถ๐—ป๐—ด .๐—ก๐—˜๐—ง ๐˜๐—ผ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—”๐—œ ๐˜„๐—ถ๐˜๐—ต ๐—ฑ๐—ผ๐˜๐—ป๐—ฒ๐˜-๐˜€๐—ธ๐—ถ๐—น๐—น๐˜€ ๐Ÿ’ฌ ๐—ฑ๐—ผ๐˜๐—ป๐—ฒ๐˜-๐˜€๐—ธ๐—ถ๐—น๐—น๐˜€ is a community-built CLI for installing and managing skills that AI coding agents can use when working on .NET projects. Probably you have tried asking Claude for Entity Framework in a .NET 8 project and getting EF6 patterns and explaining to Copilot that Blazor Server and WebAssembly arenโ€™t the same. This catalog of community driven skills will fix this. You can choose among many various skills or even get concrete skill recommendations for your project using: ๐—ฑ๐—ผ๐˜๐—ป๐—ฒ๐˜ ๐˜€๐—ธ๐—ถ๐—น๐—น๐˜€ ๐—ฟ๐—ฒ๐—ฐ๐—ผ๐—บ๐—บ๐—ฒ๐—ป๐—ฑ github.com/managedcode/dotneโ€ฆ #dotnet #ai
5
36
251
12,943
๐—ง๐—ฒ๐—ป ๐— ๐—ผ๐—ป๐˜๐—ต๐˜€ ๐—ผ๐—ณ ๐—–๐—ผ๐—ฝ๐—ถ๐—น๐—ผ๐˜ ๐—–๐—ผ๐—ฑ๐—ถ๐—ป๐—ด ๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—ถ๐—ป ๐—ฑ๐—ผ๐˜๐—ป๐—ฒ๐˜/๐—ฟ๐˜‚๐—ป๐˜๐—ถ๐—บ๐—ฒ ๐Ÿ’ก Steven Toub published the most data-driven public retrospective on AI coding agents in a production open-source project that has appeared to date. Over 10 months, GitHub Copilot Coding Agent submitted 878 pull requests to dotnet/runtime. 535 were merged, a 67.9% success rate. In month one, the merge rate was 41.7%. By month ten, it was 71%. Of all merged Copilot PRs, 0.6% were reverted, which is roughly in line with the human PR revert rate on the repository. The dotnet/runtime team went from "we don't have enough engineers to work on these issues" to "we don't have enough reviewer bandwidth to process the incoming PRs." Writing code is no longer the constraint. Reviewing is(as expected). devblogs.microsoft.com/dotneโ€ฆ #dotnet #copilot
2
3
204
The post includes breakdowns by PR category (bug fixes, tests, refactors, new features), common failure modes (build breaks, test failures, incorrect logic), and the types of tasks where Copilot performs well versus poorly. In conclusion: Copilot is excellent at implementing ๐˜„๐—ฒ๐—น๐—น-๐˜€๐—ฝ๐—ฒ๐—ฐ๐—ถ๐—ณ๐—ถ๐—ฒ๐—ฑ ๐—ฐ๐—ต๐—ฎ๐—ป๐—ด๐—ฒ๐˜€, ๐˜ƒ๐—ฒ๐—ฟ๐˜† ๐—ด๐—ผ๐—ผ๐—ฑ ๐—ฎ๐˜ ๐—ถ๐—ป๐˜ƒ๐—ฒ๐˜€๐˜๐—ถ๐—ด๐—ฎ๐˜๐—ถ๐—ป๐—ด ๐—ถ๐˜€๐˜€๐˜‚๐—ฒ๐˜€, ๐—ฎ๐—ป๐—ฑ ๐—ฟ๐—ฒ๐—น๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ๐—น๐˜† ๐—ฝ๐—ผ๐—ผ๐—ฟ ๐—ฎ๐˜ ๐—ฎ๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐—ถ๐—ป๐—ด ๐˜€๐—ผ๐—น๐˜‚๐˜๐—ถ๐—ผ๐—ป๐˜€, ๐—ฒ๐˜€๐—ฝ๐—ฒ๐—ฐ๐—ถ๐—ฎ๐—น๐—น๐˜† ๐—ถ๐—ป ๐—น๐—ฎ๐—ฟ๐—ด๐—ฒ ๐—ฐ๐—ผ๐—ฑ๐—ฒ๐—ฏ๐—ฎ๐˜€๐—ฒ๐˜€ ๐˜๐—ต๐—ฎ๐˜ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ถ๐—ฟ๐—ฒ ๐—ฏ๐—ฟ๐—ผ๐—ฎ๐—ฑ ๐˜‚๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ๐—ถ๐—ป๐—ด. If your team is seriously evaluating AI coding agents, this is a donโ€™t-miss post: the dotnet/runtime context provides real-world complexity that synthetic benchmarks cannot replicate.
99
๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—™๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ: ๐—•๐—ฎ๐—ฐ๐—ธ๐—ด๐—ฟ๐—ผ๐˜‚๐—ป๐—ฑ ๐—ฅ๐—ฒ๐˜€๐—ฝ๐—ผ๐—ป๐˜€๐—ฒ๐˜€ ๐—ฆ๐—ผ๐—น๐˜ƒ๐—ฒ ๐˜๐—ต๐—ฒ ๐—Ÿ๐—ผ๐—ป๐—ด-๐—ฅ๐˜‚๐—ป๐—ป๐—ถ๐—ป๐—ด ๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—ง๐—ถ๐—บ๐—ฒ๐—ผ๐˜‚๐˜ ๐Ÿ’ค Agents using reasoning models can take minutes to finish a task - deep research, multi-step analysis, lengthy content generation. Keeping an HTTP connection open for that duration is unreliable: load balancers time out, mobile clients disconnect, and any failure discards all progress made so far. Background responses in ๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ผ๐—ณ๐˜ ๐—”๐—ด๐—ฒ๐—ป๐˜ ๐—™๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ let you offload these long-running operations so your application stays responsive and resilient, regardless of how long the agent takes to think. #dotnet #ai devblogs.microsoft.com/agentโ€ฆ
1
125
๐—”๐˜€๐—ฝ๐—ถ๐—ฟ๐—ฒ ๐—–๐—ผ๐—ป๐—ณ ๐—ง๐—ผ๐—ฑ๐—ฎ๐˜† โฐ Aspire got its own conference and dropped the ".NET" from its name. AspireConf streams live today alongside the Aspire 13.2 release, which brings TypeScript AppHost support, Java integrations, and an agent-ready CLI. Agenda: aspire.dev/aspireconf/?cid=aโ€ฆ #dotnet #aspire #aspireconf
3
131
๐—˜๐—ป๐—ต๐—ฎ๐—ป๐—ฐ๐—ฒ๐—บ๐—ฒ๐—ป๐˜๐˜€ ๐—ถ๐—ป ๐—˜๐—™ ๐—–๐—ผ๐—ฟ๐—ฒ ๐Ÿญ๐Ÿญ ๐—ฃ๐—ฟ๐—ฒ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐Ÿฎ ๐—ณ๐—ผ๐—ฟ ๐—ฆ๐—ค๐—Ÿ ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ ๐Ÿ“Š ๐Ÿ”ธ Support for MaxBy() and MinBy() operators in LINQ queries. ๐Ÿ”ธ Integration with SQL Server DiskANN vector indexes and the new VECTOR_SEARCH() function, enabling high-performance vector similarity search scenarios. ๐Ÿ”ธ Create SQL Server full-text catalogs and indexes directly from EF Core. Support for FREETEXTTABLE() and CONTAINSTABLE() full-text search functions. ๐Ÿ”ธ Support for JSON_CONTAINS() to simplify querying JSON data stored in SQL Server. EF Core 11 requires the .NET 11 SDK. learn.microsoft.com/en-us/efโ€ฆ #dotnet #efcore
1
131
๐—ก๐˜‚๐—š๐—ฒ๐˜ ๐˜€๐˜‚๐—ฝ๐—ฝ๐—น๐˜† ๐—ฐ๐—ต๐—ฎ๐—ถ๐—ป ๐—ฎ๐˜๐˜๐—ฎ๐—ฐ๐—ธ - ๐˜„๐—ผ๐—ฟ๐˜๐—ต ๐—ฟ๐—ฎ๐—ถ๐˜€๐—ถ๐—ป๐—ด ๐˜„๐—ถ๐˜๐—ต ๐˜†๐—ผ๐˜‚๐—ฟ ๐˜๐—ฒ๐—ฎ๐—บ ๐˜๐—ต๐—ถ๐˜€ ๐˜„๐—ฒ๐—ฒ๐—ธ ๐Ÿ” Four malicious packages (NCryptYo, DOMOAuth2, IRAOAuth2.0, SimpleWriter) targeted ASP.NET developers using typosquatting and JIT hooking. The goal wasn't to compromise the developer's machine - it was to compromise the applications being built. NCryptYo mimicked Windows' native CNG cryptography provider at the namespace level and installed a local proxy; companion packages exfiltrated ASP.NET Identity data and injected attacker-controlled authorization rules that persisted into deployed production apps. socket.dev/blog/four-malicioโ€ฆ #dotnet
1
2
81
Over 4,500 downloads before removal. The packages are gone from NuGet.org, but the method is worth understanding because the next campaign will use it again. ๐Ÿ“Œ ๐—ง๐—ต๐—ฒ ๐—ฝ๐—ฟ๐—ฎ๐—ฐ๐˜๐—ถ๐—ฐ๐—ฎ๐—น ๐—ฎ๐—ฐ๐˜๐—ถ๐—ผ๐—ป: if you don't have automated NuGet dependency scanning in CI - via Socket, Snyk, or GitHub's built-in Dependabot alerts with NuGet support - this is a good week to add it. The attack surface is your build pipeline, not just your runtime.
53