Ein Einblick in die von ASP.NET angebotenen Zustandsverwaltungstechniken

2

Es gibt eine allgemeine Einschränkung, die bei der Funktionsweise fast aller Webanwendungen beobachtet werden kann, die zu ihrem zustandslosen Verhalten beiträgt. Es ist die intermittierende Verbindung zwischen dem Server und dem Client.

Bei der Implementierung von HTTP (Hyper Text Transfer Protocol) für die Kommunikation über das Internet wird ein bestimmtes Muster befolgt, das als Anfrage und Antwort bekannt ist. Dieses Muster ist eigentlich zustandslos, da es den Zustand einer Anfrage oder der entsprechenden Antwort nicht beibehält. Daher erstellt der Webserver jedes Mal, wenn ein Client eine Anfrage an den Webserver initiiert, ein vollständig neues Objekt der Anfrage. Dies führt letztendlich zu einer Unterbrechung der Verbindung und zu Engpässen in der Leistung.

Glücklicherweise bietet ASP.NET eine großartige Lösung, um dieses Problem mit mehreren effektiven Zustandsverwaltungstechniken für Webanwendungen zu lösen.

Lassen Sie uns über die erstaunlichen Angebote von ASP.NET nachdenken und verstehen, wie es dabei hilft, den Zustand der Steuerelemente beizubehalten.

Es wurde beobachtet, dass, wenn das Anforderungs- und Antwortmuster die Roundtrips erzeugt, der Serversteuerwert irgendwie weiterverkauft wird, während der HTML-Steuerwert verschwindet. Dies liegt daran, dass die Sever Controls implizit die State-Management-Technik (View State) implementieren, die es ihr ermöglicht hat, die Zustände beizubehalten.

ASP.NET bietet eine Reihe brillanter Zustandsverwaltungsmethoden, die alle für unterschiedliche Anwendungen gedacht sind. Sie werden grundsätzlich in zwei große Kategorien unterteilt, nämlich Client-basierte Zustandsverwaltung und Server-basierte Zustandsverwaltung. Hier ist eine kurze Einführung in verschiedene Techniken.

Clientbasierte Zustandsverwaltung

Bei diesem Ansatz werden die Daten auf dem Computer des Clients oder auf der Seite gespeichert, ohne die Ressourcen des Servers zu involvieren. Diese gespeicherten Daten umfassen alle Informationen, die sich auf die Interaktion zwischen dem Client und dem Server beziehen. Da die Daten auf der Seite des Clients gespeichert werden, sind sie anfälliger für Hackerangriffe, wodurch die Techniken weniger sicher, aber skalierbarer werden.

Mit diesem Ansatz erleichtert ASP.NET die unten genannten Methoden:

1) Ansichtsstatus:

Diese Methode auf Seitenebene hilft, die Informationen über eine bestimmte Seite zu speichern, bis sie aktiv ist. Das heißt, sobald der Benutzer auf eine andere Seite umleitet, verschwinden alle gespeicherten Informationen. Es hilft somit, den Zustand auf Seitenebene beizubehalten. Bei dieser Technik werden die Daten in der Wörterbuchobjektform gespeichert (als Paar aus Schlüssel und Wert). Alle Informationen werden in einem Hash-Format auf der Seite selbst gespeichert, jedoch in einem verborgenen Feld. Es kann einen Zeichenfolgenwert verbrauchen, aber nur bis zu einem bestimmten Wert, wenn der Wert überschritten wird, wird ein weiteres verstecktes Feld verbraucht.

Bei ASP.NET ist der Ansichtszustand die Standardmethode, die zum Speichern des Zustands für Webanwendungen verwendet wird. Es ist ziemlich einfach zu implementieren und ideal für die Verwendung, wenn ein Benutzer auf dieselbe Seite umgeleitet wird und wir die Informationen daher persistent halten müssen, bis er selbst auf eine andere Seite umleitet.

Vorteile der Verwendung von View State:

  • Sichern Sie die gespeicherten Informationen vor Laien, indem Sie sie im Hash-Format speichern. Um sie vor Hackern zu schützen, können Sie die Informationen in einem verschlüsselten Format aufbewahren.
  • Sie können es nach Belieben anpassen.
  • Es ist eine großartige Option, wenn Sie mehrere Postbacks auf einer einzigen Webseite implementieren möchten.

Nachteile der Verwendung von View State:

  • Es ist kein sicherer Ansatz, daher können damit keine sensiblen Daten gespeichert werden.
  • Es kann Overhead-Probleme verursachen oder die Ladezeit verlängern, indem es die Seite mit vielen Informationen überfrachtet.
2) Kekse:

Es bietet dem Kunden eine große Anpassungsfähigkeit, da Cookies entweder während der Browsersitzung des Kunden oder ua im System des Kunden gespeichert werden. Tatsächlich kann man sogar die Informationen zu Benutzern speichern und die Nutzung verfolgen. Es besitzt eine kleine Textdatei mit der maximalen Größe von 4096 Bytes, und ein Client-Computer kann maximal 300 Cookies enthalten, während eine Domäne oder ein Server maximal 20 Cookies unterstützen kann.

Cookies werden weiter in zwei Kategorien unterteilt, nämlich:

Persistenter Cookie – Diese Art von Cookies weist ein Ablaufdatum auf und wird dauerhaft auf der Festplatte gespeichert, die auf dem Computer des Kunden verfügbar ist. Wenn dem dauerhaften Cookie kein Ablaufdatum entspricht, wird es als vorübergehendes oder nicht dauerhaftes Cookie betrachtet.

Non-persistentes Cookie oder Transientes Cookie – Da diese Art von Cookies für eine vorübergehende Zeit im Browserspeicher des Clients gespeichert werden, geht das Cookie nach dieser bestimmten Zeit verloren.

Vorteile der Verwendung von Cookies:

  • Es verbraucht nur ein paar Bytes Speicher pro Cookie.
  • Einfach und ganz einfach zu bedienen.

Nachteile der Verwendung von Cookies:

  • Es bietet keinen sicheren Ansatz, da es die Informationen auf dem Computer des Kunden speichert und daher das Speichern sensibler Daten keine praktikable Wahl ist.
  • Jeder Benutzer kann die Cookies deaktivieren, indem er entsprechende Änderungen an den Browsereinstellungen vornimmt.
3) Versteckte Felder:

Dies ist im Grunde ein Serversteuerelement, das bei der Verwaltung des Werts auf Seitenebene hilft und einem Ansichtsstatus ein wenig ähnelt. Sein Wert wird über die HTTP-Formularsammlung gesendet und zusammen mit ihm wird auch der Wert anderer Steuerelemente gesendet.

Vorteile der Verwendung von versteckten Feldern:

  • Es ist ganz einfach zu bedienen.
  • Da der Wert nur auf der Seite gespeichert wird, werden die Serverressourcen überhaupt nicht verwendet. Somit schonen die Hidden Fields die Server-Ressourcen.

Nachteile der Verwendung von versteckten Feldern:

  • Wenn mehrere Hidden Fields auf einer Seite implementiert werden, wird die Seite letztendlich schwerer und voluminöser und erhöht somit die Ladezeit der Seite.
  • Dieser Ansatz ist nicht ideal zum Speichern der sensiblen Daten. Da die Daten nicht in einem verschlüsselten oder gehashten Format gespeichert werden, ist diese Technik nicht ganz sicher.
4 Antragsstaat:

Dieser Zustand eignet sich perfekt zum Speichern der Daten, auf die in der gesamten Anwendung zugegriffen werden muss. Es belegt die Serverressourcen, da es die Daten im Serverspeicher speichert. Der Anwendungsstatus ist nicht auf einen bestimmten Benutzer oder eine bestimmte Sitzung beschränkt, sondern gilt für alle Sitzungen und Benutzer. In diesem Fall werden die Daten jedoch nur solange aufbewahrt, bis die Anwendung läuft, sobald die Anwendung beendet oder neu gestartet wird, gehen die gesamten gespeicherten Daten verloren. Tatsächlich wird es auch verschwendet, wenn ein Webserver neu gestartet wird, da die Daten am Ende des Servers gespeichert werden.

Im Anwendungszustand wird ein Objekt der HttpApplicationState-Klasse verwendet, um die Daten zu speichern. Diese Klasse ist eine benannte Objektsammlung, was bedeutet, dass sie Daten eines beliebigen Typs enthält. Es könnte Teil eines Schlüssel/Wert-Paares sein.

Vorteile des Bewerbungsstaates:

  • Der Anwendungsstatus hat globalen Geltungsbereich. Auf die Daten kann jederzeit zugegriffen werden, wenn die Anwendung ausgeführt wird.
  • Standardmäßig gibt es keine Ablauffrist.

Nachteile des Antragsstaates:

  • Der Anwendungsstatus erfordert Serverressourcen zum Speichern von Daten. Dies kann zu Skalierbarkeitsproblemen führen, wenn es nicht richtig gehandhabt wird.
  • Application State ist nicht threadsicher, daher müssen wir Locks implementieren.
  • Bei einem Anwendungsausfall oder Neustart gehen alle gespeicherten Daten verloren.
5 Sitzungsstatus:

Diese Methode wird am häufigsten von mehreren Entwicklern verwendet, um den Anwendungsstatus beizubehalten. Bei diesem Ansatz wird der Wert in Form einer Wörterbuchsammlung gespeichert, d. h. er wird als Schlüssel und Wert gepaart. Hier werden die Serverressourcen vollständig verwendet, um den Zustand der Anwendung zu speichern. Da das Gespeicherte nicht an die Clients weitergegeben wird, bietet diese Technik eine sichere und hochsichere Methode.

Bei diesem Ansatz wird für jeden Benutzer eine separate Sitzung mit einer eindeutigen ID generiert. Da diese ID auf dem System des Kunden gespeichert wird, werden Cookies zu ihrer Speicherung verwendet. Die Sitzung wird beendet, sobald sich der Benutzer von der Anwendung abmeldet, und wenn er später zur Anwendung zurückkehrt, wird eine neue Sitzung erstellt.

Es kann in jedem der vier Modi verwendet werden. Hier sind die Modi:

  • AUS – Um die Sitzung zu deaktivieren, dh wenn Sie den Sitzungsstatus nicht in Ihre Anwendung aufnehmen möchten, können Sie den AUS-Modus aktivieren.
  • InProc – Die Sitzungsvariablen werden standardmäßig in diesem Modus gespeichert. Hier wird der Wert in demselben Prozess gespeichert, in dem die ASP.NET-Anwendung tatsächlich ausgeführt wird. Es liefert somit eine hervorragende Leistung.
  • State Server – In diesem Modus werden die Daten in einem separaten Prozess innerhalb des Windows-Dienstes gespeichert. Auf diese Weise werden die beiden Prozesse isoliert, einer, in dem die Anwendung ausgeführt wird, und der zweite, in dem die Daten gespeichert werden. Daher ist seine Leistung nicht so gut wie im InProc-Modus.
  • SQL Server – Hier werden Sitzungsdaten in SQL Server gespeichert. Es ist schwierig, im InProc-Modus mit mehreren Server-Rechnern zu verwalten. Dafür ist es besser, die Daten nur auf dem SQL-Server zu speichern, damit die Daten zentral für alle Maschinen zugänglich sind. Dieser Modus bietet größtmögliche Sicherheit, liefert jedoch eine eingeschränkte Leistung.

Diese fünf sind die am häufigsten verwendeten Zustandsverwaltungstechniken für ASP.NET-Anwendungen. Integrieren Sie diese Technik in Ihre Anwendung, die vollständige Datensicherheit und schnelle Leistung gewährleisten kann.

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen