Rider 2020.1 führt das Backend unter MacOS und Linux standardmäßig auf der .NET-Core-Runtime aus und bietet Xamarin Hot Reload und Dynamic Program Analysis. Die Severities im Editor lassen sich jetzt auf einfache Weise konfigurieren, die Datenflussanalyse ist für Integer-Werte verfügbar und die Code-Completion ist schneller geworden. Das Debug-Fenster wurde überarbeitet, und die „Extract Class“-Refaktorierung sowie Coverage-Filter wurden neu eingeführt.
Begrüßen Sie die .NET-Core-Edition von Rider! Anstelle der Mono-Runtime wird das Backend jetzt unter macOS und Linux endlich standardmäßig auf der .NET-Core-Runtime ausgeführt. Eines fällt sofort auf:
Übrigens bietet die aktuelle .NET-Core-Version 3.1 zahlreiche Performance-Verbesserungen im Vergleich zu 3.0.
Bitte beachten Sie, dass Windows vorerst außen vor bleibt – die Unterstützung ist auf MacOS und Linux beschränkt. Wir haben vor, die Windows-Unterstützung noch in diesem Jahr nachzureichen.
Sie möchten mehr über die Umstellung von Mono auf .NET Core erfahren und die Performance-Diagramme sehen? Details dazu finden Sie in diesem Blogbeitrag!
Sollten bei der Ausführung des Rider-Backends auf .NET-Core Probleme auftreten, können Sie unter Help | Switch IDE runtime to Mono jederzeit zur Mono-Runtime zurückkehren. Und wenn etwas nicht wie erwartet funktioniert, vergessen Sie nicht, uns Bescheid zu sagen.
Die Erstunterstützung für Xamarin Hot Reload ist da! Rider wendet jetzt alle Änderungen, die an Xamarin Forms XAML vorgenommen werden, automatisch auf die Anwendung an, die auf einem Gerät oder in einem Simulator debuggt wird – und zwar ohne erneutes Builden und Deployment der gesamten Anwendung.
Eine Einschränkung ist zu beachten: Wenn ein PC/Laptop mit Rider und ein iOS-Gerät sich nicht in demselben WLAN befinden, funktioniert Hot Reload auch dann nicht, wenn das iOS-Gerät über USB mit dem PC/Laptop verbunden ist.
Außerdem wurde in der Xamarin-Unterstützung eine wichtige Fehlerkorrektur vorgenommen: Der Fehler „Invalid target architecture 'arm64e'“ wird nicht länger angezeigt, wenn ein Xamarin.iOS-Projekt auf dem iPhone XS Max ausgeführt wird.
Weitere Updates finden Sie in unserem Blogbeitrag.
Wir freuen uns, Ihnen die Dynamische Programmanalyse vorstellen zu können. Jedes Mal, wenn Sie Ihr Projekt in Rider ausführen, erfasst DPA Daten zur Arbeitsspeicherzuteilung. Sobald Sie die Anwendung schließen, zeigt DPA Ihnen eine Liste der erkannten Probleme an: Closures und Zuweisungen an große und kleine Objektheaps. Das Großartige daran ist, dass Sie keine Profiling-Sitzungen starten oder Snapshots erstellen müssen. Sie arbeiten einfach wie gewohnt, und alle Daten werden im Hintergrund mit praktisch null Overhead erfasst. Tests von DPA mit einer Vielzahl von Lösungen in der Praxis haben eine Verlangsamung von nur 0 bis 2 Prozent ergeben.
Ein Hinweis: DPA ist nur unter Windows verfügbar. Zur Aktivierung ist keine separate Lizenz erforderlich.
Erfahren Sie mehr: Speicherprobleme in Ihrer App mit dynamischer Programmanalyse automatisch erkennen
Diese Version von Rider führt eine neue Art der Codeanalyse ein, um die Verwendung von Integer-Werten in Ihrer Anwendung zu verfolgen. Durch diese neuartige Analyse wird nachverfolgt, wie sich die Werte aller lokalen int
-Variablen verändern. Alle Operationen mit diesen Variablen werden auf Korrektheit überprüft, um nutzlose oder möglicherweise fehlerhafte Codeabschnitte zu erkennen. Im Einzelnen werden Sie in folgenden Fällen gewarnt:
wahr
oder falsch
ergeben switch
-Prüfungen von int
-Werten1
, Addition von 0
usw. int
-Überläufe0
Um die Genauigkeit der Analyse zu verbessern, haben wir zwei neue JetBrains.Annotations-Attribute hinzugefügt, die mit int
-Typmembern und -Parametern verwendet werden können: [NonNegativeValue]
und [ValueRange(from, to)]
. Diese Attribute geben an, wie welche Werte die jeweiligen int
-Member während der Laufzeit annehmen können.
ScriptableObjects
sowie die Werte von serialisierten Feldern an. Boo.Lang.List
oder System.Diagnostics.Debug
vor. Wir verbessern laufend die Unterstützung für C#-8-Sprachmerkmale. Wir haben die C#-Sprachunterstützung unter der Haube umfassend refaktoriert, um Codeanalysen und andere Funktionen wie das Refactoring und ReSharper Build auf die Unterstützung von nullbaren Referenztypen (NRT) vorzubereiten. Rider 2020.1 meldet bei der Codeanalyse Compiler-Warnungen für nullbare Referenztypen und bietet Quick-Fixes für die meisten Probleme an.
Mehrere neue Inspektionen und Quick-Fixes bieten außerdem folgende Möglichkeiten:
async
-Methodenüberladungen (falls verfügbar) anstelle von sync
-Überladungen nameof
-Ausdrucks statt mit typeof(SomeType).Name den Namen des aktuellen Typs auszulesen Im vergangenen Jahr wurde uns mehrfach berichtet, dass das Anzeigen des Code-Completion-Popups zu lange dauert. Wir haben unsere Hausaufgaben gemacht: Wenn Sie mit der Eingabe beginnen, wird das Code-Completion-Popup jetzt viel schneller angezeigt, insbesondere bei großen Projektmappen.
Eine weitere praktische Neuerung in dieser Version ist die Möglichkeit, als Obsolete markierte Member von der Code-Completion auszuschließen.
Und last but not least werden beim Übernehmen eines Elements aus dem Code-Completion-Popup Ihre Codestil-Einstellungen berücksichtigt.
Wir haben die Benutzeroberfläche des Debug-Toolfensters komplett überarbeitet – jetzt sieht das Fenster wirklich schön übersichtlich und aufgeräumt aus. Wenn nur eine einzige Debugging-Sitzung ausgeführt wird, ist das Tab-Layout vereinfacht, da alle Tabs jetzt auf einer Ebene sind. Die Tab-Beschriftungen nehmen weniger Platz ein, sodass mehr Platz für Debugger-Inhalte übrigbleibt. Und bei mehreren Sitzungen wird eine weitere Tab-Ebene hinzugefügt, um die Sitzungen zu trennen.
Gleichzeitig haben wir die Ansichten Threads und Frames zusammengefasst. Wenn Sie die Threads-Ansicht gerade nicht brauchen, können Sie sie ausblenden, indem Sie auf das Symbol „Threadansicht ausblenden“ klicken.
Wir haben auch die Debugger-Engine aktualisiert, um Sie beim Debuggen noch besser zu unterstützen:
Mit dieser neuen Funktion können Sie die Hervorhebungsstufen im Editor auf einfache Weise anpassen. Mit nur einem Klick auf ein nicht modales Popup können zahlreiche Elemente ein- oder ausschalten, zum Beispiel Code Vision, Parameterhinweise, Unity-Performance-Hinweise, Fehler, Warnungen, Empfehlungen und Kontextaktionen. Achten Sie auf das Bleistift-Symbol in der unteren rechten Ecke des Code-Editor-Tabs.
Wir haben die Symbolleisten in den Fenstern Unit Test Session und Unit Test Explorer optimiert.
Darüber hinaus haben wir drei wichtige Funktionen hinzugefügt:
Erfahren Sie mehr: Test-Runner-Updates in Rider 2020.1
In Rider 2019.3 haben wir einen experimentellen TFS-Client eingeführt, der bei der Aktion „Checking for changes“ erhebliche Geschwindigkeitssteigerungen ermöglichte. Auch im aktuellen Release-Zyklus haben wir intensiv an diesem Client weitergearbeitet.
Jetzt ist endlich das erste Release unseres TFS-Clients da, und es bringt viele Verbesserungen mit. Zwei von ihnen sind besonders wichtig. Erstens kann die Versionsverwaltungs-Integration jetzt für TFS-Workspaces aktiviert werden, die mit Visual Studio lokal erstellt wurden. Dadurch ist es nicht mehr erforderlich, in Rider einen lokalen Workspace neu zu erstellen. Zweitens haben wir die Performance der Vorgänge Löschen und Rollback erheblich gesteigert.
Um den TFS-Client zu verwenden, aktivieren Sie ihn unter Settings | Version Control | TFVC.
Wie alle JetBrains-IDEs verwendet jetzt auch Rider JetBrains Mono als Standardschriftart in allen Designs. Wir hoffen, dass Ihnen die neue Schrift gefällt!
Eine weitere ReSharper-Funktion, die bisher in Rider fehlte, ist jetzt endlich verfügbar: Namespaces können automatisch importiert werden, wenn Code aus einer Datei in der Projektmappe eingefügt wird.
Wenn Sie NuGet-bezogene Dateien manuell bearbeiten, können Sie sich jetzt auf Unterstützung durch Rider freuen. Die Erstunterstützung umfasst die Bearbeitung von NuGet.Config-, packages.config- und *.nuspec-Dateien, inklusive Code-Completion, Syntaxüberprüfung und Kurzdokumentations-Popup.
Erwähnenswert sind auch diese kleineren Verbesserungen:
Mit Extract Class ist jetzt eine weitere lang erwartete Refaktorierungsoption aus ReSharper in Rider verfügbar.
Sie sind sich unsicher, ob Sie das brauchen? Stellen Sie sich eine Klasse vor, die eigentlich die Arbeit von zwei unterschiedlichen Klassen erledigt. Dieses Refactoring bietet die sicherste und effektivste Methode, diese komplexe Klasse in zwei Klassen aufzuteilen, die jeweils nur einen Aufgabenbereich haben. Extract Class hilft Ihnen bei der Auswahl der Methoden und Felder, die von der alten zur neuen Klasse verschoben werden sollen. Die Refaktorierung warnt Sie auch bei Abhängigkeits- und Zugriffsproblemen und schlägt Möglichkeiten zur Konfliktauflösung vor.
Die Solution-Explorer-Ansicht bietet zwei neue Ordner, die nützliche Informationen zu Ihrem Projekt zusammenfassen: Implicit references (als Unterordner des Assemblies-Ordners) und MSBuild import targets.
Darüber hinaus gibt es einige kleinere Updates:
Um Ihnen mehr Kontrolle über die Anzeige der Unit-Test-Coverage-Ergebnisse zu geben, haben wir Coverage-Filter hinzugefügt. Unter Preferences/Settings | Build, Execution, Deployment | dotCover | Filtering können Sie Filter festlegen.
Wenn Sie Performance-Profiling unter Linux oder macOS betreiben, haben wir gute Nachrichten für Sie: .NET-Core-Anwendungen können auf diesen Betriebssystemen endlich im Tracing-Modus profiliert werden. Außerdem können Sie unter Linux den Profiler jetzt an .NET-Core-Anwendungen anhängen.
Der Decompiler und der IL-Viewer von Rider wurden um mehrere neue Funktionen ergänzt:
Um die F#-Unterstützung in Rider zu verbessern, haben wir eine Menge Verbesserungen und Korrekturen vorgenommen, die Ihnen bei der täglichen Routine helfen sollten:
this.Eigenschaft
) und Indexierausdrücke ("foo".[1]
). ()
-Ausdruck ausgewählt werden.Weitere Details zu Neuerungen und Korrekturen finden Sie im GitHub-Repo.