{"id":394665,"date":"2023-10-10T12:02:09","date_gmt":"2023-10-10T11:02:09","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=394665"},"modified":"2023-11-02T16:19:43","modified_gmt":"2023-11-02T15:19:43","slug":"rider-2023-3-eap-2","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/zh-hans\/dotnet\/2023\/10\/10\/rider-2023-3-eap-2","title":{"rendered":"Rider 2023.3 EAP 2: Debugger Data Flow Analysis, All-In-One Diff Viewer, Better Speed Search, and More."},"content":{"rendered":"\n<p>Hello everyone,&nbsp;<\/p>\n\n\n\n<p>A new <a href=\"https:\/\/www.jetbrains.com\/rider\/nextversion\/\" target=\"_blank\" rel=\"noopener\">EAP build for Rider 2023.3 <\/a>has just landed! Let\u2019s take a look at the most notable updates.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/10\/Blogpost_image_800x400_Rider-2x.png\" alt=\"\" class=\"wp-image-394720\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Debugger<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Data flow analysis<\/h3>\n\n\n\n<p>Data flow analysis (DFA) is a new advanced debugging tool for Rider that predicts potential issues in your code and alerts you to them without the need to execute the code!&nbsp;&nbsp;<\/p>\n\n\n\n<p>DFA is able to:<\/p>\n\n\n\n<ul>\n<li>Highlight the code branches that are going to be executed.<\/li>\n\n\n\n<li>Visually \u201cmute\u201d parts of the program that will not be executed.<\/li>\n\n\n\n<li>Warn you when further execution will end with an exception.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"670\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/10\/rd-233-eap2-debugger-dfa.png\" alt=\"\" class=\"wp-image-394667\"\/><figcaption class=\"wp-element-caption\">In this example, debugger data flow analysis helps you see at once that the method will not be executed beyond the&nbsp;<code>RandomizeBool()<\/code>&nbsp;call because it will throw a&nbsp;<code>NotImplementedException<\/code>.<\/figcaption><\/figure>\n\n\n\n<p>You can learn more about this feature in <a href=\"https:\/\/www.jetbrains.com\/help\/rider\/2023.3\/Data_Flow_Analysis.html\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/rider\/2023.3\/Data_Flow_Analysis.html\" target=\"_blank\" rel=\"noopener\">Rider\u2019s documentation<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">User experience&nbsp;<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Speed Search<\/em> available via shortcut<\/h3>\n\n\n\n<p>The <em>Speed Search<\/em> functionality, allowing you to quickly navigate within tool windows and dialogs, is now available via a shortcut. Once the focus is placed on a tree or list, you can easily invoke the search from the tool window\u2019s <em>Options<\/em> menu, by pressing <em>\u2318 F<\/em> on macOS or <em>Ctrl+F<\/em> on Windows or Linux, or simply by starting to type your query. &nbsp;<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/10\/rd-233-eap2-speed-search-still.png\" alt=\"\" width=\"900\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/10\/rd-233-eap2-speed-search-GIF.gif\">\n\n\n\n<p>You can also assign a custom shortcut for the <em>Speed Search<\/em> function in <em>Settings \/ Preferences | Keymap<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Version Control<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">All-in-one diff viewer<\/h3>\n\n\n\n<p>Rider 2023.3 EAP 2 introduces a revamped way to review changes. Now, instead of going through each file one by one, you can see all of the modified files from a changeset in a single, scrollable frame. This new diff viewer is accessible from the <em>Git Log<\/em> tool window and  is compatible with GitLab and GitHub.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/10\/rd-233-eap2-diff-viewer-still.png\" width=\"900\" data-gif-src=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/dotnet\/rd-233-eap2-diff-viewer-GIF.gif\">\n\n\n\n<h2 class=\"wp-block-heading\">Game development<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Improvements to coding assistance for Unity\u2019s UI style sheets<\/h3>\n\n\n\n<p>The Rider 2023.3 EAP 2 build brings the following improvements to Unity game development:<\/p>\n\n\n\n<ul>\n<li>Code completion for <code>-unity-font<\/code> and <code>-unity-font-definition<\/code>.<\/li>\n\n\n\n<li>The ability to resolve <code>project: <\/code>and <code>unity-theme:<\/code> references in USS files.<\/li>\n\n\n\n<li>The ability to resolve references to packages in USS files.<\/li>\n\n\n\n<li>An <em>Open manifest.json<\/em> link in the Rider package update notification.<\/li>\n<\/ul>\n\n\n\n<p>Notable fixes in this build:<\/p>\n\n\n\n<ul>\n<li>The issue of Rider not being able to recognize values as background-style properties inside USS files (<a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RIDER-99513\" target=\"_blank\" rel=\"noopener\">RIDER-99513<\/a>) has been resolved.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frameworks and technologies<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Entity Framework Core UI plugin is now bundled<\/h3>\n\n\n\n<p>The UI for Entity Framework Core commands are now available inside JetBrains Rider. These commands can assist you in:<\/p>\n\n\n\n<ul>\n<li>Creating migrations.<\/li>\n\n\n\n<li>Updating databases with selected migrations, including autocompletion of migration names.<\/li>\n\n\n\n<li>Creating DbContext scaffolding from existing databases.<\/li>\n\n\n\n<li>Creating SQL scripts from the migration range.<\/li>\n\n\n\n<li>Removing the last created migration.<\/li>\n\n\n\n<li>Suggesting to install dotnet ef command-line tools if not already installed.&nbsp;<\/li>\n\n\n\n<li>Previewing commands before execution.<\/li>\n\n\n\n<li>Persisting selected common preferences between dialogs.<\/li>\n<\/ul>\n\n\n\n<p>For more information, please check out the plugin\u2019s <a href=\"https:\/\/github.com\/JetBrains\/rider-efcore\" target=\"_blank\" rel=\"noopener\">GitHub page<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dynamic Program Analysis<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">New inspections for applications targeting the ASP.NET Core framework<\/h3>\n\n\n\n<p><strong>Dynamic Program Analysis<\/strong> gets three new inspections for applications targeting the ASP.NET Core framework:<\/p>\n\n\n\n<ul>\n<li><em>An MVC action with a large execution time <\/em>is an inspection that alerts you to a longer than expected execution of an MVC controller method.<\/li>\n\n\n\n<li>The <em>A Razor page handler method with a large execution time<\/em> inspection does the same thing for a Razor page.&nbsp;<\/li>\n\n\n\n<li><em>Invoke method with a large execution time<\/em> evaluates the <em>View Component<\/em> method\u2019s performance.<\/li>\n<\/ul>\n\n\n\n<p>All three inspections are designed to alert you to potential backend performance issues that could make your application less responsive.&nbsp;<\/p>\n\n\n\n<p>That\u2019s it for now!<\/p>\n\n\n\n<p>For the full list of updates included in this EAP build, check <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/RIDER?q=Available%20in:%20%7B2023.3%20EAP%202*%7D\" target=\"_blank\" rel=\"noopener\">our issue tracker<\/a>.&nbsp;<\/p>\n\n\n\n<p>Please share your feedback on the latest Rider EAP builds in the comments below or on social media.<\/p>\n","protected":false},"author":1337,"featured_media":390661,"comment_status":"closed","ping_status":"closed","template":"","categories":[89,907,4140],"tags":[5656,600,1978,1941,284],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet\/394665"}],"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\/1337"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=394665"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet\/394665\/revisions"}],"predecessor-version":[{"id":402584,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/dotnet\/394665\/revisions\/402584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/390661"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=394665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=394665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=394665"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=394665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}