Bedeutung von Monitoring und Debugging für ASP.NET-Anwendungen
Für eine erfolgreiche Softwareentwicklung sind das Überwachen (Monitoring) und die Fehlerbehebung (Debugging) essenzielle Bestandteile. Sie gewährleisten die Stabilität und optimale Leistung von Anwendungen.
ASP.NET, ein auf .NET basierendes Open-Source-Framework, ermöglicht es Entwicklern, vielseitige Webseiten, Anwendungen und Dienste zu erstellen. Hierbei kommen Technologien wie CSS, HTML und JavaScript zum Einsatz. Zudem lassen sich Web-APIs entwickeln, die über JSON oder XML mit diversen Geräten, inklusive mobiler Geräte, kommunizieren.
Die Funktionalität von ASP.NET lässt sich durch die SignalR-Bibliothek erweitern. SignalR nutzt HTML5-basierte WebSockets und andere Schnittstellen, um eine dynamische Mehrwege-Kommunikation zwischen Server und Client zu realisieren.
Microsoft bietet weitere Frameworks zur Erweiterung der ASP.NET-Funktionen an. Dazu gehören dynamische Daten, Frameworks für Datenanwendungen, AJAX-Funktionalität und ein MVC-Framework (Model-View-Controller) für die Entwicklung von Webanwendungen.
Warum das Debuggen von ASP.NET-Anwendungen unerlässlich ist
Im Design- und Entwicklungsprozess sind Fehler unvermeidlich. Es ist von entscheidender Bedeutung, diese frühzeitig zu erkennen und zu beheben. Dadurch werden der Aufwand minimiert und spätere Engpässe verhindert.
Der Debugging-Prozess zielt darauf ab, logische und syntaktische Fehler zu identifizieren und zu korrigieren.
Beim Debuggen setzt der Entwickler Haltepunkte in der ASP.NET-Anwendung. Diese Haltepunkte unterbrechen die Programmausführung, um die Korrektheit des Codes Schritt für Schritt zu prüfen. Dies ermöglicht es Entwicklern, Codeabschnitte zu analysieren, bevor die Fertigstellung oder Reparatur erfolgt.
Überwachungsanforderungen für ASP.NET-Anwendungen
Die Überwachung von ASP.NET-Anwendungen stellt sicher, dass sie gemäß den definierten Indikatoren funktionieren. Bei Problemen sollten Entwickler schnell reagieren, um die Benutzererfahrung nicht zu beeinträchtigen.
Überwachungsereignisse sind entscheidend für die Aufrechterhaltung der Laufzeit der Anwendung und die zeitnahe Behebung von Fehlern. Gründe für die Überwachung von ASP.NET-Anwendungen sind unter anderem:
- Überprüfung der Verfügbarkeit und Nutzung der Website
- Erkennung von Ausnahmen beim Laden einer Seite
- Sicherstellung der korrekten Ausführung von Backend-Prozessen
- Überwachung ressourcenintensiver Prozesse, die die Hauptprozesse verlangsamen könnten
Für Unternehmen, ob klein oder groß, ist es wichtig, die Reaktionsfähigkeit von ASP.NET-Anwendungen, die Online-Verfügbarkeit, die Kundenreaktion, Backend-Prozesse usw. zu überwachen. So wird eine optimale Endbenutzererfahrung und bessere Geschäftsergebnisse sichergestellt.
Mindestens sollte das Unternehmen wissen, ob die Anwendung online ist und wie sie performt. Ist die Seite schnell oder langsam? Sind die Kunden zufrieden? Diese Fragen müssen jederzeit beantwortet und überwacht werden können.
Im Folgenden werden Werkzeuge vorgestellt, die für das Debuggen und Überwachen von ASP.NET-Anwendungen verwendet werden.
Ausgewählte Tools zur Überwachung und Fehlerbehebung
New Relic
New Relic bietet Einblicke in das .NET Framework und .NET Core sowie andere Sprachen und Komponenten von Microsoft. Die Software hilft dabei, Engpässe in Anwendungen und Diensten zu identifizieren und zu beheben, bevor sie die Kundenerfahrung negativ beeinflussen.
Die Software ist anpassungsfähig und überwacht Anwendungen in Rechenzentren, Cloud-Umgebungen sowie Webdienste von Amazon, Microsoft Azure, und anderen Anbietern.
Die dynamische Programmanalyse diagnostiziert und löst Probleme in der Produktionsphase. Ein Ausnahmewarnmechanismus hilft bei der Behebung von Problemen, bevor Benutzer davon betroffen sind.
New Relic bietet somit ein umfassendes Paket für die Überwachung des gesamten ASP.NET-Frameworks, einschließlich Echtzeitüberwachung, Betriebsverfolgung, Warnmeldungen, Diagnose und Fehlerbehebung.
Funktionen:
- Vergleich der Leistung vor und nach der Codeimplementierung
- Visualisierung von Service-Maps für verteilte Anwendungen und Service-Abhängigkeiten
- Zentralisiertes Dashboard zur Überwachung aller laufenden Anwendungen und des Zustands
- Echtzeitdatenerfassung zur Beurteilung der App-Leistung
Die Transparenz, Messbarkeit und Wirtschaftlichkeit dieser Software stellen Vorteile für kleine und mittlere Unternehmen dar. Die grundlegenden Funktionen sind für einen Benutzer kostenlos. Die Preise für zusätzliche Benutzer und Funktionen beginnen bei 99 US-Dollar.
ManageEngine
Die Anwendungsüberwachung von ManageEngine wurde von Gartner neun Mal als „Magic Quadrant“ ausgezeichnet. Sie bietet detaillierte Einblicke in die Leistung verschiedener Webanwendungen und die wichtigsten Benutzererfahrungen, um Probleme zu identifizieren und zu beheben, bevor Endbenutzer betroffen sind.
Vom Code bis zur URL kann der gesamte Anwendungsstapel überwacht, Leistungsprobleme verfolgt und Fehler behoben werden, bevor es zu größeren Problemen kommt.
Leistungsmetriken wie Seitenladezeiten, Downloadzeiten usw. können auf dem Dashboard verfolgt werden. Unternehmen jeder Größe können die Software verwenden, um die Anwendungsleistung zu verfolgen, die Echtzeitleistung zu überwachen und Engpässe zu beheben.
Funktionen:
- Verfolgung von Benutzeraktionen und deren Auswirkung auf Antwortzeiten und Fehler
- Identifizierung von Webtransaktionen, die zu einer schlechten Benutzererfahrung führen (Apdex-Score)
- Nutzung von Wasserfalldiagrammen zur Identifizierung langsam ladender Komponenten
- Aufzeichnung wichtiger Webpfade und Wiedergabe in Minutenschnelle
Neben dem .NET-Framework kann die Software auch für andere Webanwendungen wie Java, NodeJS, Ruby on Rails und PHP genutzt werden. Eine 30-tägige kostenlose Testphase ist verfügbar. Die Preise für Jahres- und Dauerlizenzen sind auf Anfrage erhältlich.
Sentry
Sentry ist eine weitverbreitete Software zur Fehler- und Leistungsüberwachung in ASP.NET-Anwendungen für Unternehmen jeder Größe. Sie wird von über 80.000 Organisationen weltweit genutzt, darunter Microsoft, Disney und Reddit.
Der gesamte Anwendungsstapel kann überwacht werden, einschließlich Dateinamen und Zeilennummern. Ausnahmen, Debug-Protokolle, Netzwerkabfragen, Datenbankabfragen und frühere Fehler können gefiltert und zur Analyse gruppiert werden.
Die Möglichkeit, benutzerdefinierte Umgebungstags für Ausnahmen zu erstellen, hilft bei der Kategorisierung von Anwendungen, Geschäftsproblemen und Benutzerfehlern. Die ASP.NET-Ausnahmebehandlung basiert auf Parametern wie HTTP-Anforderung, Workflowphase und Hostname.
Funktionen:
- Verteiltes End-to-End-Tracking zur Erkennung fehlerhafter API-Aufrufe
- Effizientes Management und Behebung von ASP.NET-Fehlern durch automatische E-Mail-Benachrichtigungen
- Zusammenführung doppelter Fehler nach Version zur Identifizierung potenzieller Auswirkungen auf zukünftige Versionen
Eine kostenlose Version steht Entwicklern für die grundlegende Leistungsüberwachung zur Verfügung. Die kostenpflichtige Version beginnt bei 26 US-Dollar pro Monat.
DotTrace
Der DotTrace Profiler unterstützt Unternehmen bei der Identifizierung von Leistungsengpässen in verschiedenen .NET-Anwendungen, einschließlich Desktop-Anwendungen, Windows Communication Foundation, Windows Universal Platform-Diensten, ASP.NET-Anwendungen, Unit-Tests, Mono- und Unity-Anwendungen.
Eine Besonderheit ist die Möglichkeit der sofortigen Profilerstellung jeder statischen Methode. So können Codeabschnitte direkt nach dem Schreiben analysiert werden, ohne eine Lösung zu erstellen oder ein Bereitstellungsskript auszuführen.
SQL-Verbindungen können nachverfolgt werden, um langsame SQL-Abfragen und Leistungsstatistiken zu identifizieren. Dies ermöglicht die Untersuchung von Leistungsproblemen in der Produktionsumgebung.
Funktionen:
- Schnelle Analyse von asynchronem Code
- Remote-Profilanwendungen ohne Installation
- Analyse von langsam eingehenden HTTP-Anforderungen zur Ermittlung der Ursache
- Schätzung von Leistungsverbesserungen durch Neuberechnung der Zeit aller Funktionen in einem Snapshot
DotTrace bietet ein TeamCity-Plug-in für die Profilerstellung von CI-Server-Integrationstests. Die Software ist Teil des dotUltimate-Softwarepakets, das sechs zusätzliche Tools enthält. Die Preise für dotUltimate beginnen bei 399 US-Dollar im ersten Jahr für einen Benutzer.
Dynatrace
Dynatrace ist ein umfassendes .NET-Paket zur Überwachung von Browseranwendungen, IIS, Datenbanken, Diensten und Aktivitäten. Die PurePath-Technologie ermöglicht die Erfassung von Zeit- und Kontextebenen für jede Transaktion in .NET-Umgebungen.
Vorkonfigurierte Dashboards überwachen in Echtzeit alle Leistungsmetriken, einschließlich einzelner Transaktionen, SQL-Anweisungen und Codeebenen. Es werden verschiedene Fehlerverfolgungsmetriken wie Garbage Collection, Webanforderungsgröße, Threads, .NET-Speicher, Neustarts, Fehlerrate und Bandbreite angezeigt.
Funktionen:
- Beobachtung von Leistungsmetriken wie CPU- und Speicherauslastung, Netzwerkverkehr und TCP-Neuübertragungen
- Reverse-Tracing-Funktionen helfen, die Auswirkungen von Datenbankausdrücken auf die Benutzererfahrung zu verstehen
- Automatische Identifizierung und Zuordnung aller Anwendungen und Geschäftstransaktionsflüsse in .NET-Anwendungen
- Verfolgung der Leistungsmetriken von Webservern wie Prozesse, Datenverkehr und Abfragen
Die Kosten für die Full-Stack-Überwachungssoftware betragen 69 US-Dollar. Für einzelne Module gibt es separate Preisstrukturen.
AppDynamics
Die AppDynamics Plattform wurde von Cisco übernommen und bietet eine Komplettlösung zur Überwachung und Verwaltung der Leistung von .NET-Anwendungen.
Die Software unterstützt nahezu alle .NET-Überwachungsframeworks, darunter ADO, ASP, IIS, asynchrone Überwachung, eigenständige Anwendungen, Windows-Dienste, Azure, Sharepoint-Server, Remote-Dienste und MVC5.
Ein spezielles Business Transaction Management Board überwacht den Status und Statistiken von Geschäftstransaktionen, wie Aufrufe pro Minute und langsame Transaktionen.
Funktionen:
- Automatische Snapshots langsamer oder ausstehender Transaktionen zur schnellen Analyse und Fehlerbehebung
- Grafische Darstellung der Leistungsstatistik
- Schnelle Bereitstellung durch den Schnellmontagemechanismus
Die Software wird mit einer 15-tägigen Testphase geliefert. Die Preisstruktur basiert auf CPU-Kernen und beginnt bei 6 US-Dollar pro Monat für die Infrastructure Monitoring Edition. Es gibt drei weitere Editionen: Premium (60 $/m), Enterprise (90 $/m) und Echtzeit-Benutzerüberwachung (0,06/m pro 1000 Token).
ANTS Performance Profiler
Der ANTS Performance Profiler wurde entwickelt, um Leistungsprobleme in .NET Standard-, .NET Core- und Drittanbieter-Frameworks, SQL-Abfragen zu identifizieren. Er wird für Desktopanwendungen, ASP.NET-Anwendungen und ASP.NET Model-View-Controller genutzt.
Die Software bietet umfassende ASP.NET-Leistungsdaten für .NET-Code und Datenbankabfragen. Eine genaue Diagnose ermöglicht es, bis auf die Ebene langsamer Codezeilen zur Problemerkennung vorzudringen.
Die Aufrufbaumstruktur identifiziert teure Methoden, Datenbankabfragen und Webabfragen, um langsame Aktivitäten zu beheben. Die Professional Edition unterstützt SQL- und Oracle-Datenbanken, um die Effektivität von .NET-Code bei Datenbankabfragen zu testen.
Funktionen:
- Umfangreiche E/A-Leistung bei Festplattenaktivität
- Verfolgung von ausgehenden HTTP-Anforderungen
- Verbindung von Zeitelementen mit SQL-Abfragen
- Überwachung der CPU-spezifischen Leistung von .NET- oder ASP.NET-Anwendungen
Die Testphase beträgt 14 Tage. Die Software ist in zwei Editionen verfügbar: Standard und Professional. Die Standardpreise beginnen bei 545 US-Dollar pro Benutzer.
Retrace
Stackify Retrace ist eine benutzerfreundliche SaaS-basierte Software zur Überwachung von ASP.NET- und Java-Anwendungen. Sie bietet End-to-End-Lösungen, einschließlich Anwendungsüberwachung, Transaktionsverfolgung, Metrikprotokollierung, Fehlerberichterstattung und Warnmeldungen.
Die hauseigene „App Score“-Funktion bietet detaillierte Informationen. Das Dashboard liefert Daten zu allen Metriken, um die Anwendung präzise zu überwachen, wie z. B. Webabfragen, SQL-Abfrageleistung und langsame Webabfragen.
Die Webplattform zeigt die Server- und Anwendungsleistung in Bezug auf CPU- und Speicherauslastung, kritische Transaktionen pro Minute, Fehler und Zufriedenheitswerte.
Funktionen:
- Automatisierung des Deployment-Tracking mit CI/CD-Tools
- Schnelle Erkennung von Leistungsänderungen oder Fehlerraten
- Erkennung der Verarbeitungsdauer für Webanforderungen
- Schnelle Fehlerbehebung und Erkennung von Optimierungspotenzialen
Die Software ist 14 Tage lang kostenlos verfügbar. Die Kosten beginnen bei 10 US-Dollar pro Monat für die Vorproduktion und/oder 25 US-Dollar pro Monat für die Produktion.
MiniProfiler
MiniProfiler ist eine Open-Source-Plattform für .NET, ASP.NET, ASP.NET Core und ASP.NET MVC. Entwickelt wurde sie von Mitgliedern des Stack Overflow-Teams.
MiniProfiler hilft beim Debuggen und Optimieren der Leistung jeder Seite, indem es die Verarbeitungszeit für jeden Anwendungsbereich und Datenbankanfragen verfolgt.
Die Plattform hilft Entwicklern, Verzögerungen zu identifizieren und Korrekturen vorzunehmen. Zu den besten Funktionen gehören Speicher-, Call-Stack- und Datenbankprofile.
Fazit
Die Erstellung einer robusten Anwendung ist komplex und erfordert viele Arbeitsstunden. Die genaue Ursache von Leistungsproblemen ist schwer zu ermitteln. Die genannten Tools helfen, den Prozess zu vereinfachen.
Wir hoffen, dieser Beitrag hat Ihnen bei der Optimierung von ASP.NET-Anwendungen geholfen. Eventuell interessieren Sie sich auch für ASP.NET-Hosting-Plattformen.