{"id":578616,"date":"2025-07-15T11:24:29","date_gmt":"2025-07-15T10:24:29","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=578616"},"modified":"2025-07-15T11:55:04","modified_gmt":"2025-07-15T10:55:04","slug":"dotinsights-july-2025","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/zh-hans\/dotnet\/2025\/07\/15\/dotinsights-july-2025","title":{"rendered":"dotInsights | July 2025"},"content":{"rendered":"\n<p><strong>Did you know?<\/strong> Because of C#\u2019s ability to use verbatim strings, <a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/csharp\/language-reference\/tokens\/verbatim\" target=\"_blank\" rel=\"noopener\">you can use reserved keywords as variable names<\/a> by prefixing them with the <code>@<\/code> symbol. For example, var <code>@class = new Class();<\/code> is a perfectly valid statement to make an instance of the <code>Class <\/code>class. But keep in mind &#8211; just because you could doesn\u2019t mean you should.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2559\" height=\"1439\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/07\/DN-social-BlogFeatured-1280x720-2x.png\" alt=\"dotInsights | July 2025\" class=\"wp-image-578627\"\/><\/figure>\n\n\n\n<p>Welcome to dotInsights by JetBrains! This newsletter is the home for recent .NET and software development related information.<\/p>\n\n\n\n<p>??\ufe0f <a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/07\/14\/jetbrains-net-days-online-2025-call-for-speakers\/\">JetBrains .NET Days Online 2025 \u2014 Call for Speakers<\/a> ?\ufe0f?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">? Links<\/h2>\n\n\n\n<p>Here\u2019s the latest from the developer community.<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=lkZ6Wo65ULA&amp;ab_channel=EmilyBache\" target=\"_blank\" rel=\"noopener\">How to Safely Refactor Legacy Code Using Adapt Parameter<\/a> ?- Emily Bache<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=qRuGy7tZdus&amp;ab_channel=FlashOWare\" target=\"_blank\" rel=\"noopener\">2code ^ !2code [S2025E06] The .NET Dispose Pattern<\/a> ? &#8211; Stefan P\u00f6lz &amp; Eva Ditzelm\u00fcller<\/li>\n\n\n\n<li><a href=\"https:\/\/steven-giesel.com\/blogPost\/c518e8d6-54b4-407f-af82-e79e0889bc03\" target=\"_blank\" rel=\"noopener\">.NET 10 Performance Edition<\/a> &#8211; Steven Giesel<\/li>\n\n\n\n<li><a href=\"https:\/\/www.telerik.com\/blogs\/check-out-drawingview-net-maui\" target=\"_blank\" rel=\"noopener\">Check Out the DrawingView in .NET MAUI<\/a> &#8211; Leomaris Reyes<\/li>\n\n\n\n<li><a href=\"https:\/\/thenewstack.io\/vibe-coding-fad-future-or-folly\/\" target=\"_blank\" rel=\"noopener\">Vibe Coding: Fad, Future or Folly?<\/a> &#8211; Liz Acosta<\/li>\n\n\n\n<li><a href=\"https:\/\/www.techrepublic.com\/article\/ai-and-recruitment\/\" target=\"_blank\" rel=\"noopener\">AI in Recruitment: Smarter, Faster, Fairer\u2026 or Not?<\/a> &#8211; Lin Grensing-Pophal<\/li>\n\n\n\n<li><a href=\"https:\/\/www.woodruff.dev\/day-12-genetic-algorithms-elitism-for-evolution-survival-of-the-fittest\/\" target=\"_blank\" rel=\"noopener\">Keep your best solutions safe and evolving strong. Survival of the fittest, in C#<\/a> &#8211; Chris Woodruff<\/li>\n\n\n\n<li><a href=\"https:\/\/www.dennisdoomen.com\/2025\/06\/library-starter-kit.html\" target=\"_blank\" rel=\"noopener\">Kickstarting your libraries with the .NET Library Starter Kit<\/a> &#8211; Dennis Doomen<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=envR1c2cZ3Y&amp;ab_channel=GuiFerreira\" target=\"_blank\" rel=\"noopener\">How to Use Embeddings with Postgres (Surprisingly Easy)<\/a>? &#8211; Gui Ferreira<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=0IKSU-TKJBk&amp;ab_channel=CodeOpinion\" target=\"_blank\" rel=\"noopener\">This Is Why Breaking Your API Contract Keeps Breaking Clients<\/a> ?- Derek Comartin of CodeOpinion&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/khalidabuhakmeh.com\/server-sent-events-in-aspnet-core-and-dotnet-10\" target=\"_blank\" rel=\"noopener\">Server-Sent Events in ASP.NET Core and .NET 10<\/a> &#8211; Khalid Abuhakmeh<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=975HcGOTix4&amp;ab_channel=EdAndersen\" target=\"_blank\" rel=\"noopener\">JetBrains goes to war with ReSharper in VS Code<\/a> ? &#8211; Ed Andersen&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/jeremydmiller.com\/2025\/06\/05\/low-ceremony-railway-programming-with-wolverine\/\" target=\"_blank\" rel=\"noopener\">Low Ceremony Railway Programming with Wolverine<\/a> &#8211; Jeremy D. Miller<\/li>\n\n\n\n<li><a href=\"https:\/\/duendesoftware.com\/blog\/20250527-the-role-of-authenticationproperties-in-aspnet-core\" target=\"_blank\" rel=\"noopener\">The role of AuthenticationProperties in ASP.NET Core<\/a> &#8211; Maarten Balliauw<\/li>\n\n\n\n<li><a href=\"https:\/\/bartwullems.blogspot.com\/2025\/06\/api-contracts-and-nullability-in-aspnet.html\" target=\"_blank\" rel=\"noopener\">API contracts and nullability in ASP.NET Core<\/a> &#8211; Bart Wullems<\/li>\n\n\n\n<li><a href=\"https:\/\/www.code4it.dev\/csharptips\/task-whenall-vs-task-waitall-error-handling\/\" target=\"_blank\" rel=\"noopener\">C# Tip: Handling exceptions with Task.WaitAll and Task.WhenAll<\/a> &#8211; Davide Bellone<\/li>\n\n\n\n<li><a href=\"https:\/\/github.blog\/engineering\/infrastructure\/how-github-engineers-tackle-platform-problems\/\" target=\"_blank\" rel=\"noopener\">How GitHub engineers tackle platform problems<\/a> &#8211; Fabian Aguilar Gomez<\/li>\n\n\n\n<li><a href=\"https:\/\/damienbod.com\/2025\/06\/10\/experimental-alternative-flow-for-oauth-first-party-applications\/\" target=\"_blank\" rel=\"noopener\">Experimental alternative flow for OAuth First-Party Applications<\/a> &#8211; Damien Bowden<\/li>\n\n\n\n<li><a href=\"https:\/\/www.syncfusion.com\/blogs\/post\/wpf-sqlite-crud-datagrid\" target=\"_blank\" rel=\"noopener\">Easily Bind SQLite Database and Perform CRUD Actions in WPF DataGrid<\/a> &#8211; Amal Raj Umapathy Selvam<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=fwKZIaEU7_Y&amp;ab_channel=NDCConferences\" target=\"_blank\" rel=\"noopener\">Old to Gold: How to Modernize Your Legacy ASP.NET Apps Gradually<\/a> ?- Jonathan J Tower at NDC Melbourne<\/li>\n\n\n\n<li><a href=\"https:\/\/www.c-sharpcorner.com\/article\/types-of-classes-in-c-sharp-with-examples-concrete-static-abstract-sealed-and-m\/\" target=\"_blank\" rel=\"noopener\">Types of Classes in C# with Examples | Concrete, Static, Abstract, Sealed, and More<\/a> &#8211; Mahesh Chand<\/li>\n\n\n\n<li><a href=\"https:\/\/www.milanjovanovic.tech\/blog\/run-csharp-scripts-with-dotnet-run-app-no-project-files-needed\" target=\"_blank\" rel=\"noopener\">Run C# Scripts With dotnet run app.cs (No Project Files Needed)<\/a> &#8211; Milan Jovanovi\u0107<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">? From our .NET Guide<\/h2>\n\n\n\n<p>Each month we feature tutorials or tips from our <a href=\"https:\/\/www.jetbrains.com\/guide\/dotnet\" target=\"_blank\" rel=\"noopener\">.NET Guide<\/a>.<\/p>\n\n\n            <div class=\"newsletter\">\n                                                            <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/www.jetbrains.com\/guide\/assets\/thumbnail-bd064d4e.png\" alt=\"High Performance JSON Serialization With Code Generation on C# 11 and .NET 7.0\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>High Performance JSON Serialization With Code Generation on C# 11 and .NET 7.0<\/h3>\n                                                        <p>In this talk by Ian Griffiths, you will see how features added to recent versions of C# can dramatically improve parsing and generation of JSON data compared with longer-established .NET JSON handling mechanisms. <\/p>\n                                                            <a href=\"https:\/\/www.jetbrains.com\/guide\/dotnet\/links\/high-performance-json-serialization-with-code-generation-on-csharp-11-and-dotnet-7.0\/\" class=\"btn\" target=\"_blank\" rel=\"noopener\">See More<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/www.jetbrains.com\/guide\/assets\/thumbnail-a44efacd.png\" alt=\"Profile an HTTP request\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>Profile an HTTP request<\/h3>\n                                                        <p>Timeline profiling combines profiler data with event traces. What happens when an HTTP request is made? Tip by Khalid Abuhakmeh.<\/p>\n                                                            <a href=\"https:\/\/www.jetbrains.com\/guide\/dotnet\/tips\/dottrace-profile-http-request\/\" class=\"btn\" target=\"_blank\" rel=\"noopener\">See More<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <\/div>\n    \n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u2615 Coffee Break<\/h2>\n\n\n\n<p>Take a break to catch some fun social posts.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Developers Testing vs Testers Testing #developer #testing\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/d_DQOwNZOIA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/youtube.com\/shorts\/M19kLhI8jRQ?si=R_rZJF8jrUf3eDSk\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">?\ufe0f JetBrains News<\/h2>\n\n\n\n<p>What\u2019s going on at JetBrains? Check it out here:<\/p>\n\n\n\n<p>??\ufe0f <a href=\"http:\/\/blog.jetbrains.com\/dotnet\/2025\/07\/09\/jetbrains-net-days-online-2025-call-for-speakers\/\">JetBrains .NET Days Online 2025 \u2014 Call for Speakers<\/a> ?\ufe0f?<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7TqkvVXKxFA&amp;ab_channel=JetBrains\" target=\"_blank\" rel=\"noopener\">Why Did JetBrains Create Mellum?<\/a> ?<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=c--l1DZaeC0&amp;ab_channel=JetBrains\" target=\"_blank\" rel=\"noopener\">You think it \u2013 Junie helps make it happen<\/a> ?<\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/05\/19\/resharper-comes-to-microsoft-visual-studio-code\/\">ReSharper Comes to Microsoft Visual Studio Code: Public Preview Now Open<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/10\/sql-and-nosql-query-langauge-support-come-to-resharper\/\">SQL and NoSQL Query language support come to ReSharper!<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/16\/opentelemetry-plugin-for-jetbrains-rider\/\">OpenTelemetry Plugin for JetBrains Rider: Observability Inside Your IDE<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/30\/resharper-and-rider-2025-1-4\/\">ReSharper and Rider 2025.1.4: Another Set of Bug-fixes Released<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/26\/rider-2025-2-eap-7-low-level-exception-suppression\/\">Rider 2025.2 EAP 7: Low-Level Exception Suppression and Other Updates for Debugging Games<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/16\/rider-eap-5-new-monitoring-tool-opentelemetry-plugin\/\">Rider 2025.2 EAP 5: Reimagined Monitoring Tool Window and New OpenTelemetry Plugin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/13\/jetbrains-gamedev-days-2025-call-for-speakers\/\">JetBrains GameDev Days 2025 \u2013 Call for Speakers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2025\/06\/12\/resharper-and-rider-2025-1-3-important-updates-released\/\">ReSharper and Rider 2025.1.3: Important Updates Released<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-center\">\u2709\ufe0f Comments? Questions? Send us an\u00a0<a href=\"mailto:dotnet-advocates@jetbrains.com\">email<\/a>.\u00a0<\/p>\n\n\n\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/lp\/dotinsights-monthly\/\" target=\"_blank\" rel=\"noopener\">Subscribe to dotInsights<\/a><\/p>\n","protected":false},"author":901,"featured_media":578627,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992],"tags":[8363],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet\/578616"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/901"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=578616"}],"version-history":[{"count":11,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet\/578616\/revisions"}],"predecessor-version":[{"id":582927,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet\/578616\/revisions\/582927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/578627"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=578616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=578616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=578616"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=578616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}