Gerald Versluis @jfversluis.dev · 15/09/2026Your app feels slow. The process you are profiling might be innocent. This Visual Studio walkthrough separates CPU work from waiting, then finds 50 ms added to every streamed update. devblogs.microsoft.com/visualstudio… 010
Gerald Versluis @jfversluis.dev · 14/09/2026That thing you learned the hard way? It might be a .NET Conf talk. Community Days CFP is open: remote 30-minute sessions, Nov 12-13. .NET 11 demos are preferred, but any useful .NET topic can be considered. Submit by Oct 6: sessionize.com/dotnetconf-community… 001
Gerald Versluis @jfversluis.dev · 12/09/2026Long press is built into .NET MAUI 11. This sample covers MinimumPressDuration, AllowableMovement, GestureStatus, commands, touch position, tap coexistence, and a two-finger iOS/Mac example. github.com/dotnet/maui-samples/tree… 030
Gerald Versluis @jfversluis.dev · 11/09/2026Which bug has a habit of waiting until after publish to show itself? Trimming, Native AOT, linker behavior, environment-specific configuration, signing, or path casing? What would you add to the list? 100
Gerald Versluis @jfversluis.dev · 11/09/2026Friday .NET tip: scanning text for the same substrings repeatedly? Build SearchValues<string> once, then use ContainsAny. Need the position? Use IndexOfAny. .NET 9+, Ordinal or OrdinalIgnoreCase only. learn.microsoft.com/dotnet/api/syst… 010
Gerald Versluis @jfversluis.dev · 10/09/2026I'm live on .NET Unboxed right now, showing some of the new .NET MAUI 11 bits 🎁 The team is opening .NET 11 RC1, with Jon Galloway, Daniel Roth, Mads Torgersen, and more. Come hang out: www.youtube.com/watch?v=5fvi7m1QxIY 030
Reposted by Gerald Versluis.NET @dot.net · 10/09/2026〰️ HAPPENING TODAY - .NET Unboxed: .NET 11 Release Candidate 1!! 〰️ Join the team LIVE as they show off their favorite features in .NET 11 in this release party for .NET 11 RC 1!! See you here at 11AM PT ➡️ msft.it/63320aXhLE 034
Gerald Versluis @jfversluis.dev · 10/09/2026I’m surprised FireOS was supported to begin with 🤪 I mean with the power of AI we are able to move fast… 200
Gerald Versluis @jfversluis.dev · 10/09/2026C# 15 preview lets break and continue target an enclosing labeled loop. That can remove a state flag or awkward goto from genuinely nested control flow. For a simple loop, keep it simple. devblogs.microsoft.com/dotnet/dotne… 110
Gerald Versluis @jfversluis.dev · 10/09/2026Per-solution themes make Visual Studio 2026 windows easy to spot. The useful part is settings.VisualStudio.json beside the solution. Commit it for team settings, or keep it personal with .gitignore. devblogs.microsoft.com/visualstudio… 020
Gerald Versluis @jfversluis.dev · 09/09/2026Tomorrow I'm joining .NET Unboxed for .NET 11 RC1 🎁 I'll show some of the new .NET MAUI 11 bits, alongside Jon Galloway, Daniel Roth, Mads Torgersen, and more. Thursday, 20:00 CEST / 18:00 UTC www.youtube.com/watch?v=5fvi7m1QxIY Which MAUI 11 bit are you most curious about? 000
Gerald Versluis @jfversluis.dev · 09/09/2026A GitHub Actions job that only reads Dependabot alerts should not get unrelated token access. Use vulnerability-alerts read at job level. Once you specify permissions, omitted ones become none. docs.github.com/actions/reference/w… 010
Gerald Versluis @jfversluis.dev · 09/09/2026A green managed test run does not prove the Native AOT publish behaves the same. Keep the fast lane. Add one representative native test lane. Verify test count and outcomes. A passing subset is still a false green. MSTest 4.4: devblogs.microsoft.com/dotnet/mstes… 000
Gerald Versluis @jfversluis.dev · 08/09/2026Ah any way you can easily dig that one up? Yeah feature parity with WPF is definitely not a goal for us, but anything we can do to make things easier between stacks should be something we should consider. 200
Gerald Versluis @jfversluis.dev · 08/09/2026Feel free to open an issue with a spec that we can look at for .NET 12 100
Gerald Versluis @jfversluis.dev · 08/09/2026We have been addressing a lot of those and even have an AI powered scanner now to look for those. If you have any to share that we still missed open issues and send them my way! I would think OpacityMasks might be something that’s not on all platforms? I’m not very familiar with them. 100
Gerald Versluis @jfversluis.dev · 08/09/2026Content exclusions now carry into agentic work. The GitHub Copilot app and Copilot CLI keep excluded files out of context. Available for Copilot Business and Enterprise. github.blog/changelog/2026-09-02-co… 000
Gerald Versluis @jfversluis.dev · 08/09/2026Unfortunately not, those teams will have to provide their own implementations of this! But we’re happy to assist! 110
Gerald Versluis @jfversluis.dev · 08/09/2026Stop creating every XAML resource at startup. .NET MAUI 11 XAML Source Generation turns dictionary entries into factories and creates them on demand. The benchmark shows up to ~8× faster dictionary initialization. No XAML rewrite. github.com/dotnet/maui/pull/33826 130
Gerald Versluis @jfversluis.dev · 07/09/2026The code is written. The PR still has review feedback, failed checks, and a merge conflict. VS Code 1.136 adds Agent Merge (preview). It can keep working through those blockers until the PR is ready. Which one would you hand off first? aka.ms/VSCode/136 000
Gerald Versluis @jfversluis.dev · 05/09/2026MAUI Day Skopje is 12 days away 🇲🇰 September 17. One free, in-person day focused on .NET MAUI, with sessions, speakers, and plenty of time to talk with the community. If Skopje is within reach, go check it out: mauiday.net/skopje Anyone here joining? 100
Gerald Versluis @jfversluis.dev · 04/09/2026September is here. What is the one thing you want to ship before the month is over? A feature, a release, an experiment, or that tiny fix that keeps getting bumped. What are you building? 310
Gerald Versluis @jfversluis.dev · 04/09/2026One important detail: `Task.WhenEach` yields the completed tasks, not their results. Await each task inside the loop to get its result and observe exceptions. Would this replace a helper in your codebase? 000
Gerald Versluis @jfversluis.dev · 04/09/2026Tasks rarely finish in the order you started them. Since .NET 9, `Task.WhenEach` lets you process them as they complete with `await foreach`. No `WhenAny` loop. No removing finished tasks yourself. learn.microsoft.com/dotnet/api/syst… 110
Gerald Versluis @jfversluis.dev · 03/09/2026We're live! .NET MAUI meets GitHub Copilot Canvas 🤝 Join David Ortinau, Dominik Titl, and me as we inspect running MAUI apps, analyze layouts, record interactions as tests, and use captured evidence to diagnose failures. Watch now: www.youtube.com/watch?v=A5Pr5N999tc 010
Gerald Versluis @jfversluis.dev · 03/09/2026Useful boundaries: it only affects capture, not pick operations. Windows and Tizen ignore it. On iOS and Mac Catalyst, add `NSPhotoLibraryAddUsageDescription` to Info.plist. Android before API 29 also needs `WRITE_EXTERNAL_STORAGE`. Would you enable it for every capture? 110
Gerald Versluis @jfversluis.dev · 03/09/2026Capture it. Keep it. .NET MAUI 11 Preview 7 adds `SaveToGallery` for Media Picker photo and video capture. It is opt-in and works on Android, iOS, and Mac Catalyst. learn.microsoft.com/dotnet/api/micr… 131
Gerald Versluis @jfversluis.dev · 03/09/2026Worktrees appear alongside your branches in the Git Repository window, branch picker, and repository picker. Stash and switch, or one worktree per task, which is your default? 000
Gerald Versluis @jfversluis.dev · 03/09/2026Half-finished work, no stash required. Visual Studio 2026 now supports Git worktrees. Create one from a branch or commit, open it in a new window, and delete it when done. learn.microsoft.com/visualstudio/re… 121
Gerald Versluis @jfversluis.dev · 02/09/2026Tomorrow at 20:00 CEST / 18:00 UTC: .NET MAUI meets GitHub Copilot Canvas 🤝 Join David Ortinau, Dominik Titl, and me to see a tool inspect apps, analyze layouts, record interactions as tests, and capture evidence when things fail. www.youtube.com/watch?v=A5Pr5N999tc 000
Gerald Versluis @jfversluis.dev · 02/09/2026Also new: resolving a Copilot review comment lets you choose Addressed, Won't fix, or Incorrect. That feedback goes back to the product team and helps improve the experience. Which update matters most in your repos? 000
Gerald Versluis @jfversluis.dev · 02/09/2026One caveat for automatic reviews on bot-authored PRs: Copilot Business or Enterprise organizations need paid AI credits enabled, plus the policy allowing members without a Copilot license to use code review on GitHub.com. Usage is billed to the organization. 110
Gerald Versluis @jfversluis.dev · 02/09/2026Bot PR or very large PR? Copilot code review covers both. Copilot cloud agent PRs now get full agentic reviews. The old 300-file / 20,000-line limit no longer applies. github.blog/changelog/2026-08-27-co… 110
Gerald Versluis @jfversluis.dev · 02/09/2026Supported edits include properties, bindings, resources, and adding, removing, or reordering child elements. Changing `x:Name` or the root type still needs page recreation. C# changes, files, and NuGet packages still need a rebuild. Useful, but still preview. 000
Gerald Versluis @jfversluis.dev · 02/09/2026Your MAUI page can stay alive while its XAML changes underneath it. .NET MAUI 11 Preview 7's Incremental Hot Reload patches every live instance of an affected page or control. It works with `dotnet watch` too. devblogs.microsoft.com/dotnet/dotne… 120
Reposted by Gerald VersluisUpdate Conference @updateconference.bsky.social · 01/09/2026AI is everywhere. Useful #AI is harder to find. That’s why the AI sessions at #UCP26 focus on what really matters. Meet the speakers: 👉 @jfversluis.dev, @konradkokosa.bsky.social, Karl-Henrik Nilsson, @chrisnas.bsky.social, @kajetanduszynski.bsky.social 👉 prague.updateconference.net/en/2026/sche... 011
Gerald Versluis @jfversluis.dev · 01/09/2026By default, VS Code shows up to two recently updated external sessions. Use the External filter or `chat.agentSessions.showExternal` to decide which ones appear. You need a Copilot subscription to continue in VS Code. Would this change how you use Copilot CLI? 100
Gerald Versluis @jfversluis.dev · 01/09/2026Start in Copilot CLI. Continue in VS Code. VS Code 1.135 shows recent external Copilot sessions in the Sessions list. Open one to view the conversation and keep going. code.visualstudio.com/updates/v1_13… 100
Gerald Versluis @jfversluis.dev · 01/09/2026I like this C# 15 preview feature: `closed` hierarchies. The compiler knows every direct subtype, so your switch can be exhaustive without a fallback. Add another subtype later and the switch is flagged for you. learn.microsoft.com/dotnet/csharp/l… 160
Gerald Versluis @jfversluis.dev · 31/08/2026.NET Conf returns November 10-12! 🎉 Three days, free and online, with the official launch of .NET 11. The schedule is still coming together. For now, save the dates. What are you hoping to see this year? devblogs.microsoft.com/dotnet/dotne… 100
Gerald Versluis @jfversluis.dev · 22/08/2026Under the hood: one JSON file per app, automated link checks and duplicate detection, then an approved label adds the listing. The showcase itself is a Blazor WebAssembly static site on GitHub Pages. 010
Gerald Versluis @jfversluis.dev · 22/08/2026Last week I said: send a PR to add your app to Built with .NET MAUI. You no longer need one. 😅 There is now a static showcase with search and filters, plus an issue form with automated validation. Huge shoutout to @james.montemagno.com! jfversluis.dev/built-with-maui 141
Gerald Versluis @jfversluis.dev · 21/08/2026That isn't just preference. .NET's design guidance says methods are preferable when access is slow, has side effects, depends on execution order, or can return a different result each time. learn.microsoft.com/dotnet/fundamen… 000
Gerald Versluis @jfversluis.dev · 21/08/2026C# 14 adds extension properties. That's not permission to hide work as data. `customer.FullName`? Good fit. `customer.CustomerHistory` hitting a database? That's a method. Properties should feel field-like. Expensive work, side effects, and surprises belong in methods. Agree? 210
Gerald Versluis @jfversluis.dev · 21/08/2026You define the event ID, level, template, and typed parameters on a partial method. The generator writes the implementation. Useful for request pipelines, queue processors, parsers, and loops. Normal `LogInformation` is still fine when the path is cold. 000