Freigeben über


2019Logo Visual Studio 2019, Version 16.6: Versionshinweise



Entwicklercommunity | Systemvoraussetzungen | Kompatibilität | Verteilbarer Code | Freigabeverlauf | Lizenzbedingungen | Blogs | Neuerungen in der Visual Studio-Dokumentation


Hinweis

Dies ist nicht die neueste Version von Visual Studio. Das neueste Release können Sie über die Visual Studio-Site herunterladen.



Neues in Visual Studio 2019 Version 16.6

Supportzeitrahmen

Für diese Version wird jetzt kein Support mehr geleistet. Weitere Informationen zur Visual Studio-Unterstützung finden Sie in der Supportrichtlinie für Visual Studio 2019.

Lesen Sie die neueste Version der Versionshinweise, oder besuchen Sie die Visual Studio-Website, um die neueste Version von Visual Studio 2019 herunterzuladen.

Visual Studio 2019 Version 16.6 – Releases

Archivierte Versionsanmerkungen von Visual Studio 2019

Visual Studio 2019-Blog

Im Visual Studio 2019-Blog finden Sie alle wichtigen Informationen zu Produkten direkt vom Visual Studio-Engineeringteam. In den folgenden Beiträgen finden Sie ausführliche Informationen zu den Visual Studio 2019-Releases:

Jetzt an der Diskussion zu Versionsanmerkungen teilnehmen


Versionshinweise-Symbol Visual Studio 2019, Version 16.6.4

Veröffentlichung: 14. Juli 2020

Sicherheitshinweis für Version 16.6.4

CVE-2020-1393 Sicherheitsrisiko durch Rechteerweiterungen beim Standardcollectordienst für den Diagnosehub

Ein Sicherheitsrisiko durch Rechteerweiterungen liegt vor, wenn der Windows-Diagnosehub-Standardsammlungsdienst Eingaben nicht ordnungsgemäß bereinigt, sodass in Folge ein unsicheres Ladeverhalten von Bibliotheken auftritt.

CVE-2020-1416 Sicherheitsrisiko durch Rechteerweiterungen in Visual Studio

In Visual Studio liegt beim Laden von Softwareabhängigkeiten ein Sicherheitsrisiko durch Rechteerweiterungen vor.

CVE-CVE-2020-1147 Sicherheitsrisiko durch .NET Core-Denial-of-Service-Angriffe

Ein nicht authentifizierter Remoteangreifer könnte dieses Sicherheitsrisiko durch speziell gestaltete Anforderungen an eine ASP.NET Core-Anwendung oder andere Anwendungen ausnutzen, die bestimmte XML-Typen analysieren. Das Sicherheitsupdate behebt dieses Sicherheitsrisiko, indem die für die XML-Nutzlast zulässigen Typen eingeschränkt werden.

Wichtige in Visual Studio 2019, Version 16.6.4 behobene Probleme


Versionshinweise-Symbol Visual Studio 2019, Version 16.6.3

Veröffentlicht: 30. Juni 2020

Wichtige in Visual Studio 2019, Version 16.6.3 behobene Probleme


Versionshinweise-Symbol Visual Studio 2019, Version 16.6.2

Veröffentlicht: 9. Juni 2020

Sicherheitshinweis für Version 16.6.2

CVE-2020-1108 / CVE-2020-1108Sicherheitsrisiko durch Denial-of-Service-Angriffe in .NET Core

Microsoft hat Updates für .NET Core 2.1 und .NET Core 3.1 veröffentlicht, um CVE-2020-1108 umfassend zu behandeln. Kunden, die eine dieser .NET Core-Versionen verwenden, sollten die neueste Version von .NET Core installieren. Die neuesten Versionsnummern und Anweisungen zum Aktualisieren von .NET Core finden Sie in den Versionshinweisen.

CVE-2020-1202 / CVE-2020-1203: Sicherheitsrisiko durch Rechteerweiterungen beim Diagnostics Hub Standard Collector-Dienst

Es besteht ein Sicherheitsrisiko für Rechteerweiterungen, wenn Diagnostics Hub Standard Collector oder Visual Studio Standard Collector Objekte im Speicher nicht richtig verarbeiten.

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 Sicherheitsrisiko durch Rechteerweiterungen im Standardcollectordienst für den Diagnosehub

Wenn der Diagnostics Hub Standard Collector-Dienst bestimmte Dateivorgänge nicht ordnungsgemäß verarbeitet, besteht ein Sicherheitsrisiko durch Rechteerweiterungen.

Wichtige in Visual Studio 2019, Version 16.6.2 behobene Probleme


Versionshinweise-Symbol Visual Studio 2019, Version 16.6.1

Veröffentlicht: 01. Juni 2020

Wichtige in Visual Studio 2019, Version 16.6.1 behobene Probleme


Versionshinweise-Symbol Visual Studio 2019, Version 16.6.0

Veröffentlicht am 19. Mai 2020

Sicherheitshinweis für Version 16.6.0

CVE-2020-1108 Sicherheitsrisiko durch Denial-of-Service-Angriffe in .NET Core

Ein nicht authentifizierter Remoteangreifer könnte dieses Sicherheitsrisiko durch Ausgeben speziell gestalteter Anforderungen an eine .NET Core-Anwendung ausnutzen. Das Sicherheitsupdate reagiert auf dieses Sicherheitsrisiko, indem korrigiert wird, wie .NET Core-Webanwendungen Webanforderungen behandeln.

CVE-2020-1161 Sicherheitsrisiko durch Denial-of-Service-Angriffe in .NET Core

Ein nicht authentifizierter Remoteangreifer könnte dieses Sicherheitsrisiko durch Ausgeben speziell gestalteter Anforderungen an eine ASP.NET Core-Anwendung ausnutzen. Das Sicherheitsupdate reagiert auf dieses Sicherheitsrisiko, indem korrigiert wird, wie ASP.NET Core-Webanwendungen Webanforderungen behandeln.

Inhalte von Visual Studio 2019 Version 16.6.0


C++

Verbesserte Doxygen-/XML-Kommentargenerierung: Generieren Sie Doxygen- oder XML-Dokumentationskommentarstubs automatisch durch Eingeben von „///“ oder „/**“ oberhalb von Funktionen. Diese werden jetzt auch in QuickInfos angezeigt.

Generieren und Verarbeiten von Kommentaren im Doxygen-Stil
Generieren und Verarbeiten von Kommentaren im Doxygen-Stil

Ninja-Unterstützung für CMake für Linux/WSL: Verwenden Sie Ninja als zugrundeliegenden Generator, wenn Sie CMake-Projekte in WSL oder einem Remotesystem erstellen. Ninja ist nun der Standardgenerator beim Hinzufügen einer neuen Linux- oder WSL-Konfiguration.

Debuggen von Vorlagen für das Remote-CMake-Debuggen: Wir haben die Vorlagen für das Debuggen von CMake-Projekten über ein Remotesystem mit Linux oder WSL mit gdb vereinfacht.

Erste Unterstützung für C++ 20-Konzepte: IntelliSense erkennt nun C++ 20-Konzepte und schlägt diese in der Memberliste vor.

Debuggen

Aktivieren Sie das Anhängen des Momentaufnahmedebuggers, ohne dass ein Neustart erforderlich ist: Der Momentaufnahmedebugger kann jetzt in Azure App Services (ASP.NET Core 3.1) installiert werden, ohne dass ein Neustart erforderlich ist. So können Sie ohne Dienstunterbrechung debuggen und Ihre Probleme in Echtzeit diagnostizieren! Beim erstmaligen Anfügen des Momentaufnahmedebuggers wurde bisher die Installation der Websiteerweiterung „Momentaufnahmedebugger“ in Ihrer Azure App Service-Bereitstellung gestartet, für die ein Neustart erforderlich war.

Verbesserungen bei der Benutzererfahrung für die Dekompilierung: Beim Dekompilieren werden vorhandene PDB-Dateien verwendet, um bessere Bezeichnungen für lokale Variablen zu erzielen.

Git-Produktivität

  • Klonen Sie ein Repository mit nur einer Projektmappe, damit diese Projektmappe automatisch geladen wird, nachdem der Klonvorgang abgeschlossen wurde.

JavaScript/TypeScript

  • TSServer-Fortschrittsbalken: Während der Sprachdienst ein TypeScript-Projekt öffnet, kann der Benutzer den Status des konfigurierten Projekts beim Öffnen im Widget für Hintergrundaufgaben anzeigen.

  • Neues JavaScript-/TypeScript-Debuggen mit mehreren Zielen und Service Worker-Unterstützung: Der JavaScript-/TypeScript-Debugger unterstützt jetzt das Debuggen von Service Workern, Workerrollen, iFrames und Seiten-JavaScript zur gleichen Zeit! Außerdem bietet die neue Debugbenutzeroberfläche Unterstützung für das Debuggen Ihrer Back-End-Knotenserveranwendungen und des clientseitigen JavaScript-Codes im Browser zur gleichen Zeit. Diese Funktion ist noch experimentell. Sie können die neue Debugbenutzeroberfläche im Menü „Debugoptionen“ aktivieren.

  • Die Implementierungen von Signaturhilfe und Gehe zu-Definition wurden aktualisiert, um LiveShare-Szenarien besser zu unterstützen.

Microsoft Fakes für .NET Core- und SDK-Projekte

Microsoft Fakes unterstützt jetzt .NET Core. Viele Benutzer möchten Ihre Apps und Testsammlungen zu .NET Core migrieren. Jetzt kann dieser Prozess größtenteils mit der Fakes-Unterstützung für .NET Core durchgeführt werden. Sie können dieses Feature unter Extras > Optionen > Vorschaufeatures aktivieren. Fakes ist ein Simulationsframework, mit dem Sie Tests isolieren können, indem Sie bestimmte Teile des Produktcodes mit Stubs oder Shims simulieren. Mit diesem Verfahren können Sie einen Test aus dem Produktcode lösen, damit beim Testen nur die relevanten Bestandteile im Fokus stehen.

Editor

Listenansicht: Mit der neuen Funktion „In Dateien suchen“ haben wir Feedback erhalten, dass das vorherige Ergebnisformat (Nur-Text ohne Formatierung) für bestimmte Zwecke nützlich war. Die Listenansicht ist jetzt im Ergebnisbereich verfügbar, um auf die Ergebnisse im vorherigen Format zuzugreifen.

Suche wiederholen: Das Ergebnisfenster aus einem Vorgang „In Dateien suchen“ enthält jetzt eine Schaltfläche zum „Wiederholen der Suche.“ Diese Schaltfläche übernimmt alle Optionen, die für eine Suche verwendet werden, und füllt den Bereich „In Dateien suchen“ erneut mit diesen auf. Dadurch wird es einfacher, eine Suche zu wiederholen, nachdem einige Änderungen vorgenommen wurden, oder eine Suche zu optimieren, um die Ergebnisse einzugrenzen. Wenn sich der Fokus im Fenster „Ergebnisse“ befindet, geben Sie ALT+R ein, und drücken Sie dann die EINGABETASTE, um die Suche sofort zu wiederholen.

.NET-Produktivität

Es gibt nun eine Codekorrektur zum Hinzufügen: wenn ein Ausdruck nicht implizit umgewandelt werden kann. Platzieren Sie den Cursor auf dem Fehler, und drücken Sie (STRG+.), um das Menü Schnellaktionen und Refactorings zu öffnen. Klicken Sie auf Add explicit cast (Explizite Umwandlung hinzufügen). Hinzufügen einer expliziten Umwandlung

Vereinfachen Sie die Umgestaltung bedingter Ausdrücke: Vereinfachen Sie bedingte Ausdrücke, indem Sie unnötigen Code entfernen. Platzieren Sie Ihren Cursor auf dem bedingten Ausdruck. Drücken Sie (Ctrl+. ), um das Menü Schnellaktionen und Refactorings zu öffnen. Klicken Sie auf Simplify conditional expression (Bedingten Ausdruck vereinfachen). Vereinfachen bedingter Ausdrücke

Konvertieren Sie reguläre Zeichenfolgenliterale in verbatim Zeichenfolgenliterale umgestalten: Platzieren Sie den Cursor auf das reguläre Zeichenfolgenliteral. Drücken Sie (Ctrl+. ), um das Menü Schnellaktionen und Refactorings zu öffnen. Klicken Sie auf In ausführliche Zeichenfolge konvertieren. In ausführliche Zeichenfolge konvertieren

Konvertieren Sie ausführliche Zeichenfolgenliterale an reguläre Zeichenfolgenliterale: Platzieren Sie den Cursor auf das Literal der Verbatim-Zeichenfolge. Drücken Sie (Ctrl+. ), um das Menü Schnellaktionen und Refactorings zu öffnen. Klicken Sie auf In reguläre Zeichenfolge konvertieren. In reguläre Zeichenfolge konvertieren

Massenkonfigurieren Sie den Schweregrad der Analysekategorien direkt über den Editor: Platzieren Sie den Cursor auf den Fehler, die Warnung oder den Vorschlag und den Typ (Strg+.), um das Menü Schnelle Aktionen und Umgestaltungen auszulösen. Klicken Sie auf „Issues unterdrücken oder konfigurieren“. Klicken Sie anschließend auf Schweregrad für alle Analysetools für {Kategoriename} konfigurieren. Dadurch wird die vorhandene EditorConfig-Datei mit dem neuen Schweregrad für die Kategorie aktualisiert. Analysekategorien für Massenkonfiguration

Unterstützung der Schnellinfoformatvorlage für XML-Kommentare, die Rückgabe- und Werttags enthalten: Fahren Sie mit dem Mauszeiger über das Element. In der QuickInfo werden dann die unterstützten Stile aus den XML-Kommentaren über Ihrem Code angezeigt. XML-Formatvorlagenunterstützung für Returns und Werttags

Fügen Sie Dateiheader zu vorhandenen Dateien, Projekten und Lösungen mit EditorConfig hinzu: Zuerst müssen Sie Ihrer EditorConfig-Datei die file_header_template-Regel hinzufügen. Legen Sie anschließend den Wert so fest, dass dieser mit dem Headertext übereinstimmt, der angewendet werden soll. Regel für Dateiheader hinzufügen

Platzieren Sie dann Ihren Cursor auf der ersten Zeile einer beliebigen C#- oder Visual Basic-Datei, und drücken Sie (STRG+.), um das Menü Schnellaktionen und Refactorings zu öffnen. Klicken Sie auf Dateibanner hinzufügen. Wenn Sie den Dateiheader auf alle Dateien eines vorhandenen Projekts oder einer vorhandenen Lösung anwenden möchten, klicken Sie unter der Option Alle Vorkommen korrigieren in auf Projekt oder Lösung. Hinzufügen von Dateiheadern

Tools für die Entwicklung von Webanwendungen

Neue Erfahrung bei der Konfiguration von Azure-Diensten und Emulatoren: Die Registerkarte „Verbundene Dienste“ bietet nun eine neue Oberfläche für die Verbindung Ihrer Anwendung mit Azure-Diensten wie Azure SQL, Storage, Key Vault und vielen anderen. Sie hilft Ihnen dabei, neue Instanzen bereitzustellen (oder vorhandene auszuwählen), und stellt sicher, dass Ihr Code über die aktuellsten NuGet-Pakete und den richtigen Startkonfigurationscode verfügt. Nach Möglichkeit sind auch Optionen für die lokale Emulation verfügbar.

Updates für das Veröffentlichen-Erlebnis: Für die Veröffentlichung steht nun eine neue assistentenähnliche Oberfläche zum Erstellen neuer Veröffentlichungsprofile zur Verfügung, die Sie durch die Optionen führt. Selbst wenn einige Visual Studio-Komponenten in Ihrer Installation fehlen, haben Sie weiterhin Zugriff auf sämtliche Veröffentlichungsziele und -optionen. Fehlende Komponenten werden identifiziert und nach Bedarf zur Installation angefordert. Die Zusammenfassungsseite für das Veröffentlichungsprofil wurde ebenfalls aktualisiert und entspricht nun der auf der Registerkarte „Verbundene Dienste“ verfügbaren Oberfläche zum Konfigurieren von Abhängigkeiten von Azure-Diensten.

Windows Forms

Windows Forms-Designer für .NET Core

Der Windows Forms-Designer für .NET Core-Projekte ist jetzt verfügbar. Um den Designer in Visual Studio zu aktivieren, navigieren Sie zu „Extras > Optionen> Umgebung > Previewfunktionen“, und wählen Sie die Option „Use the preview Windows Forms designer for .NET Core apps“ (Vorschauversion des Windows Forms-Designers für .NET Core-Apps verwenden) aus.

Windows Forms-Designer für .NET Core

In diesem Release haben wir die folgenden Verbesserungen vorgenommen, einschließlich Unterstützung für zusätzliche Steuerelemente:

  • Unterstützung für alle Dialogfeldsteuerelemente, PropertyGrid, HScrollBar, VScrollBar, DomainUpDown und TrackBar.
  • Drag & Drop-Verbesserungen
  • Auswahlverbesserungen
  • Stabilitätsverbesserungen und Fehlerbehebungen

WPF- und UWP Tools

Azure Key Vault im Verpackungsassistenten: UWP-Entwickler können jetzt Ihre App-Pakete mit Codesignaturzertifikaten direkt über den Paketerstellungs-Assistenten in Azure Key Vault signieren. Sie benötigen dafür nur den URI des Schlüsseltresors und die entsprechenden Berechtigungen für Ihr Microsoft-Konto. Das ausgewählte Zertifikat wird in den lokalen Zertifikatspeicher des Benutzers importiert, in dem es zum Signieren verwendet werden kann. Lokale kennwortgeschützte Zertifikate können jetzt auch mit Geheimnissen aus einem Schlüsseltresor entschlüsselt werden.

XAML Hot Reload und die visuelle Livestruktur unterstützen jetzt das Anfügen an mehrere Prozesse gleichzeitig. Das ist z. B. nützlich, wenn eine Lösung mehrere WPF- oder UWP-Projekte gleichzeitig startet oder die UWP-App mehrere Instanzen verwendet. Deshalb haben wir die visuelle Livestruktur mit einem neuen Prozessknoten auf oberster Ebene aktualisiert, um Elemente aus demselben Prozess zu gruppieren. Visuelle Live-Struktur mit mehreren angefügten Prozessen

Toolbox unterstützt jetzt NuGet-Pakete mit mehreren VisualStudioToolsManifest.xml-Dateien: Dadurch können NuGet-Paketautoren ändern, welche Steuerelemente in der Toolbox basierend auf der Framework-/Plattformversion des referenzierenden Projekts angezeigt werden. Die Toolbox zeigt die Elemente des Manifests an, dessen Toolunterverzeichnis Zielframeworkmoniker (TFM) am meisten mit dem Zielframework bzw. der Zielplattform des Projekts übereinstimmt. Wenn keine TFM-Übereinstimmung gefunden wird, findet ein Fallback auf das Manifest am Stamm des Toolverzeichnisses statt. Dieses Stammmanifest ist auch für die Kompatibilität mit älteren Versionen von Visual Studio erforderlich.

Neue Einstellung: Xaml Hot Reload beim Speichern. XAML Hot Reload sendet standardmäßig alle gültigen XAML-Änderungen in Echtzeit an die ausgeführte App. In diesem Release haben wir eine neue Einstellung hinzugefügt („Debug“ > „Optionen“ > „Allgemein“ > „UI-Debugtools für XAML aktivieren“ > „Bei Dokumentspeicherung XAML Hot Reload anwenden“), über die Entwickler auswählen können, wie dies umgesetzt wird. Wenn diese Einstellung aktiviert ist, werden XAML Hot Reload-Änderungen erst beim Speichern der bearbeiteten Datei übernommen.

Unterstützung für dunkles Design für Klassen-Designer hinzugefügt.

Klassen-Designer unterstützt jetzt das dunkle Design

Xamarin

XAML Hot Reload kann jetzt nur das neu laden, was sich auf Ihrer Seite geändert hat, anstatt die ganze Seite. Probieren Sie es aus, indem Sie die Einstellung „Optionen für das erneute Laden“ unter Extras > Optionen > Xamarin > Hot Reload ändern.

Zeigen Sie auf der Seite in Ihrer ausgeführten Anwendung eine visuelle Echtzeitstruktur von Elementen an. Öffnen Sie die visuelle Echtzeitstruktur während einer XAML Hot Reload-Debugsitzung über Debuggen > Windows > Visuelle Echtzeitstruktur.

Überschreiben Sie die Einstellungen Ihres Emulators, z. B. dunkler/heller Modus, Schriftgrößen usw. mithilfe des Pads „Umgebungseinstellungen“. Öffnen Sie dieses während einer XAML Hot Reload-Debugsitzung über Debuggen > Windows > Umgebungseinstellungen.

Sie können eine Lint-Konfigurationsdatei verwenden und aus noch mehr IntelliSense-Vorschlägen auswählen, wenn Sie Ihre Android-XML-Datei bearbeiten.


Fehlerkorrekturen

Wichtige in Visual Studio 2019, Version 16.6.0 behobene Probleme

  • Wenn das Featureflag für die neue Git-Oberfläche aktiviert ist, wird eine Meldung im Team Explorer angezeigt, die Benutzer zum neuen Git-Toolfenster leitet.
  • Zeitweilige Verzögerungen auf der Benutzeroberfläche wurden behoben, die verursacht wurden, wenn Visual Studio geschlossen wurde, während der WinForms-.NET Core-Designer noch geöffnet war.
  • Es wurden Probleme behoben, die beim Erstellen von Projekten mit Typanbietern aufgetreten sind und zur Laufzeit eine Ausnahme für fehlende Methoden ausgelöst haben.
  • Die Projekterstellung für .NET Framework-Projekte wurde korrigiert.
  • Das neue Feature „In Dateien suchen“ berücksichtigt jetzt die Optionen unter „Extras > Optionen > Suchen und ersetzen“.
  • Es wurde ein Fehler behoben, bei dem Git-Repositorys beim Schließen eines Ordners und Öffnen einer Projektmappe nicht geändert wurden.
  • Es wurde ein Fehler behoben, der beim Buildvorgang für iOS-Apps mit vollständigen Debugsymbolen aufgetreten ist.
  • Es wurde eine Rückwärtsnavigation über Windows zu Bereitstellungsprofilen und Zertifikaten von Mac-Distributionen hinzugefügt.
  • Es wurde ein Fehler behoben, der dazu geführt hat, dass Visual Studio 2019 nicht mehr reagiert hat, wenn in bestimmten Szenarios mit Xamarin-Projekten gearbeitet wurde.
  • Eine Tastenkombination für die Option „Mit Headern kopieren“ im Ergebnisraster für SQL-Skripts wurde hinzugefügt.
  • SSDT-Benutzer können jetzt die Berücksichtigung der Groß-/Kleinschreibung für alle Versionen über SQL Server 2008 festlegen.
  • Die Barrierefreiheit des Dialogfelds „Verbindungseigenschaften“ wurde verbessert.
  • Es wurden gelegentliche Abstürze korrigiert, die bei Verwendung des Indikators „Tested By CodeLens“ (Durch CodeLens getestet) aufgetreten sind.
  • Sicherstellung, dass die automatische Auffüllung von Text in „In Dateien suchen“ dem Legacyverhalten entspricht
  • Es wurde sichergestellt, dass das Verhalten der NACH-LINKS-TASTE in „In Dateien suchen“ korrekt ist.
  • Ein Problem, das C++-Benutzer der C++20-Bereichsbibliothek daran hinderte, Algorithmen zu verwenden

Aus der Entwicklercommunity


Bekannte Probleme

Unter dem folgenden Link können Sie sich über alle offenen Probleme und verfügbaren Problemumgehungen in Visual Studio 2019 informieren.

Visual Studio 2019, Version 16.6 – Bekannte Probleme

Feedback und Vorschläge

Wir freuen uns auf Ihr Feedback! Informieren Sie uns über die Option Ein Problem melden in der oberen rechten Ecke im Installer oder direkt in der Visual Studio-IDE über mögliche Probleme. Das Feedbacksymbol befindet sich oben rechts. Sie können einen Vorschlag zu einem Produkt einreichen oder Ihre Probleme in der Entwicklercommunity für Visual Studio nachverfolgen, in der Sie auch Fragen stellen und nach Antworten suchen sowie neue Features vorschlagen können. Über unseren Livechatsupport erhalten Sie zudem kostenlose Hilfe bei der Installation.


Blogs

Profitieren Sie von den Einblicken und Empfehlungen auf der Webseite mit Blogs zu Entwicklertools, um sich bei allen Releases auf dem neuesten Stand zu halten und Zugang zu ausführlichen Beiträgen zu zahlreichen Funktionen zu erhalten.


Verlauf der Versionshinweise zu Visual Studio 2019

Weitere Informationen bezüglich der früheren Versionen von Visual Studio 2019 finden Sie auf der Seite Verlauf der Versionshinweise zu Visual Studio 2019.


Seitenanfang