Der Erfolg von ASP-Anwendungen hängt normalerweise vom Kompromiss zwischen Architektur und Design ab. In Anbetracht des breiten Spektrums der ASP-Technologie und der inhärenten Komplexität der aktuellen Anwendungen ist dieser Kompromiss sehr schwierig. Hier finden Sie eine kurze Einführung in die Prinzipien und die Verwendung von ASP im falschen neuen Technologiekanal.
Die Festlegung von Namenskonventionen und die Standardisierung der Verzeichnisstruktur können Ihnen helfen, die Lesbarkeit und Wartbarkeit Ihrer ASP -Anwendungen erheblich zu verbessern. Obwohl es derzeit keine formellen Standards für ASP -Anwendungen gibt, haben viele Entwickler einige gemeinsame Möglichkeiten etabliert. Hier werde ich Ihnen einige allgemeinere Arten teilen.
Da die ASP -Technologie auf Drehbuchmotoren angewiesen ist und Skripte die Natur haben, nicht streng zu sein, sind auch die Namenskonventionen vage. In Sprachen mit sehr strengen Typen werden Variablen nach ihrem tatsächlichen Typ deklariert. Bei der Verwendung der ASP -Technologie werden Variablen normalerweise in ASP -Code in der Art und Weise deklariert, wie sie Variablen verarbeiten, und nicht in ihrem tatsächlichen Datentyp. Wenn Sie beispielsweise "Visual Basic (R) Scripting Edition (VBScript)" verwenden ", deklarieren Sie zwar alle VBScript -Variablen, die die Erfolgsflagge als BSUCCESS (B für boolean) anstelle von VSUCCESS (V für Variante) deklarieren.
Die folgende Tabelle ist einige häufige Namenskonventionen.
Variabler Präfix:
| Präfix | Variablen verwendet | Variabler Beispiel |
|---|---|---|
| B oder Bln | Boolean | BSUCCESS |
| c oder cur | Währung | Camount |
| d oder dbl | Doppelt | dblquantität |
| dt oder dat | Datum und Uhrzeit | dtdate |
| f oder flt | Schweben | Fratio |
| l oder lng | Lang | lmillisekunden |
| Ich oder int | Ganze Zahl | Sko |
| s oder str | Saite | Sname |
| a oder arr | Array | AUSERS () |
| o oder obj | Com -Objekt | Opipeline |
Variabler Präfix für Datenbankobjekte:
| Präfix | Variablen verwendet | Variabler Beispiel |
|---|---|---|
| CNN | Verbindung | cnnpubs |
| RST | Datensatz | RSSTAUTHORS |
| CMD | Befehl | CMDOPhor |
| fld | Feld | fldlastName |
Verwendung von Bereich und Präfix:
| Präfix | veranschaulichen |
|---|---|
| G_ | In global.asa erstellt. |
| M_ | Für ASP -Seiten oder in Einschlussdateien ist es lokal. |
| (Kein Präfix) | Nichtstatische Variablen, Präfixe sind lokal für den Prozess |
Ein Beitrag in Knowledge Base (KB) "Q110264 Info: Microsoft Consulting Services -Namenskonventionen für Visual Basic" (in englischer Sprache) liefert Einblicke in die Benennung von Konventionen.
Verwenden Sie nach Möglichkeit Verzeichnisstrukturen, um einen konsistenten Standort für Ihre verschiedenen Anwendungskomponenten bereitzustellen. Die tatsächliche Verzeichnisstruktur Ihrer Anwendung liegt natürlich bei Ihnen, aber in der Regel müssen Bilder, Dokumente, Dateien und Komponenten in separate Verzeichnisse einbezogen. Das Folgende ist ein Beispiel für eine einfache ASP -Anwendungsverzeichnisstruktur.
Beispielverzeichnisstruktur:
/SimimateSpapp /docs /bilder /inklusive
Mit einer guten Verzeichnisstruktur können Sie die NTFS -Berechtigungen selektiv anwenden. Sie können auch relative Pfade aus einer ASP -Anwendung verwenden. Sie können beispielsweise den folgenden Code verwenden, um die includedatei top.asp im Include -Verzeichnis von der Standard -Seite zu verweisen.
./includes/top.asp
Beachten Sie, dass die Erweiterung meiner inklusiven Datei .asp, nicht .inc. Dies erfolgt aus Sicherheitsgründen und verwendet die .asp -Erweiterung (und nicht .C.) und ermöglicht auch die Farbcodierung in visueller Interdev (R).
Weitere Tipps und Tipps zu strukturierten ASP -Anwendungen finden Sie im Artikel "ASP -Konventionen" (auf Englisch).
Der ASP läuft unter dem Dienst. Beim Entwerfen einer ASP -Anwendung werden Sie sich sofort mit Sicherheitsumgebungen und Fadenproblemen befassen, denen Sie in Ihrer Desktop -Anwendung nicht begegnen. In einer Desktop-Umgebung wird in der Regel nur eine Ausführung von Single-Thread-Ausführungen ausgeführt und hat Zugriff auf das aktuelle Desktop-System. In Internet Information Services (IIS) werden mehrere Client -Threads in verschiedenen Benutzerumgebungen simuliert, um Ihre Anwendung aufzurufen, und Ihre Anwendung ist auf den Desktop "System" beschränkt.
Was bedeutet das für dich? Bitte lernen Sie den Sicherheitsmodus von IIS. Erinnern Sie sich auch an Sie: Nur weil etwas unter der visuellen Basis -IDE richtig ausgeführt werden kann, heißt das nicht, dass es in der ASP -Technologie sicher laufen kann. Die visuelle Basis -IDE simuliert die Laufzeitumgebung nicht genau. Zu den allgemeinen Designfehlern gehört die Verwendung von .ocx -Steuerelementen, für die Benutzeroberflächen in der ASP -Technologie erforderlich sind, die Verwendung von Komponenten, die für Threads nicht sicher sind, und die Verwendung von Komponenten, die spezielle Benutzerkontexte erfordern. Eines der am einfachsten zu vermeidene Probleme ist der Versuch, auf den Registrierungsschlüssel HKEY_CURRENT_USER (HKCU) aus der Anwendung zuzugreifen (z. B. nennen Sie die Get -Setting -Funktionen von Visual Basic nicht von Visual Basic, die beide von HKCU abhängen). In ähnlicher Weise werden keine Nachrichtenfelder oder andere Dialogfelder angezeigt, in denen der Benutzer mit menschlichem Computer interagieren muss.
Die folgenden Artikel sind ziemlich gute Einführungsbücher zu Sicherheits- und Überprüfungsfragen in der ASP -Technologie:
Die ASP -Technologie bietet einen Repräsentationsdienst, indem HTML -Output generiert wird. Kurz gesagt, es generiert eine Benutzeroberfläche. Sie müssen die Geschäftslogik vom ASP -Repräsentationsskript trennen. Auch wenn Sie keine COM -Komponenten verwenden, um die Geschäftslogik von ASP Code zu trennen, trennen Sie zumindest die Geschäftslogik in Funktionen und fügen Dateien für verbesserte Wartbarkeit, Lesbarkeit und Wiederverwendbarkeit ein. Sie können auch die Vorteile modularer Entwurfsmethoden bei der Fehlerbehebung und Isolationsproblemen zu schätzen wissen.
Wenn Sie Funktionen und Methoden im Skript aufrufen, können Sie den Code vermeiden und Strukturen zu ASP -Anwendungen hinzufügen. Das folgende Beispiel zeigt, wie die Logik in Methodenaufrufe aus ASP -Code unterteilt wird:
lt;% main () mybizMethod () ... sub main () getData () displayData () End sub%>
Dieses Prinzip kann angewendet werden, wenn Techniken mit ASP -Funktionalität verwendet werden. Hier ist ein Beispiel für die Verwendung dieses Prinzips bei der Verwendung von Visual Basic WebClass:
Ein häufiges Problem ist der Übergang vom Desktop -System zum Server. Viele Entwickler mit Desktop -Systemen haben sich noch nie über einige Serverprobleme und Ressourcenfreigabe besorgt. In herkömmlichen Desktop-Anwendungen ist die Verbindung zu einem Server ein zeitaufwändiger Prozess. Um die Benutzererfahrung zu verbessern, wird es normalerweise verwendet, um Ressourcen frühzeitig zu erwerben und die Freigabe von Ressourcen zu verzögern. Beispielsweise werden viele Anwendungen während ihrer Laufzeit immer mit der Datenbank verbunden.
Diese Methode funktioniert in herkömmlichen Desktop -Anwendungen ordnungsgemäß. Der Grund dafür ist, dass die Anzahl der Benutzer sehr klar, leicht zu steuern ist und das Backend und das Frontend eng miteinander verbunden sind. Für aktuelle Webanwendungen ist dieser Ansatz jedoch nicht mehr machbar, da begrenzte Serverressourcen immer mehr Benutzer ausgesetzt sind. Damit Ihre Bewerbung mit der Zunahme der Benutzer fertig werden kann, müssen Sie Ressourcen so spät wie möglich einholen und Ressourcen so früh wie möglich freigeben.
Das Teilen hilft, die Wirksamkeit dieses Ansatzes zu erhöhen. Durch die Freigabe können mehrere Benutzer Ressourcen mit der minimalen Wartezeit und den minimalen Auswirkungen auf den Server freigeben. Wenn Sie beispielsweise mit einer Datenbank arbeiten, können ODBC -Verbindungsfreigabe und OLEDB -Ressourcenfreigabe die Auswahl von Verbindungen aus einem gemeinsam genutzten Pool ermöglichen, wodurch der Overhead der Verbindung mit der Datenbank minimiert wird.
Weitere Informationen zum Teilen von ADO finden Sie unter "Pooling in Microsoft -Datenzugriffskomponenten".
Obwohl das HTTP-Protokoll staatenlos ist, verwenden ASP-Entwickler häufig den in ASP-Funktionen eingebauten Zustandsverlagerungsmechanismus. Unter Verwendung des in der ASP -Technologie eingebauten Anwendungsobjekts können die von Entwicklern gespeicherten Ressourcen von allen Benutzern der Anwendung gemeinsam genutzt werden. Durch die Verwendung integrierter Sitzungsobjekte von ASP sparen Entwickler Ressourcen nur für einen einzelnen Benutzer.
Obwohl es so klingt, als ob es eine sehr bequeme Möglichkeit ist, den Zustand in einem Sitzungsobjekt der ASP -Technologie zu sparen, ist dieser Ansatz zu teuer und kann auch einer der größten einschränkenden Faktoren für die Skalierbarkeit sein. Die Skalierbarkeit einer Anwendung ist im Wesentlichen die Fähigkeit, ihre Leistung weiterhin aufrechtzuerhalten, wenn die Anzahl der Benutzer zunimmt. Für jeden Benutzer konsumiert das Sitzungsobjekt die Ressourcen des Servers, bevor der Sitzungsablauf abgelaufen ist oder aufgegeben wurde. Die Sitzungen binden Sie auch an einen Server und begrenzen Ihre Fähigkeit, den Webcluster zu nutzen. Bitte verwenden Sie ASP -Sitzungsobjekte für das staatliche Management nicht so weit wie möglich. Wenn Sie überhaupt keine Sitzung verwenden, können Sie den Sitzungsstatus Ihrer Webanwendung deaktivieren (siehe IIS -Dokumentation). Andernfalls können Sie den Sitzungsstatus für jede Seite mithilfe der folgenden Anweisung deaktivieren:
< %@EnableSessionState = false %>
Für einige einfache Daten können Sie den QueryString Cookie oder eine versteckte Formulardomäne verwenden, um den Zustand zwischen ASP -Anfragen aufrechtzuerhalten. Für komplexere Informationen wird normalerweise empfohlen, eine Datenbank zu verwenden. Der allgemeine Ansatz besteht darin, eine eindeutige Kennung zu generieren, ihn dann an jeden anforderenden Kunden zu senden und als Feld verstecktes Formular zu speichern. In nachfolgenden Anforderungen wird diese eindeutige Kennung verwendet, um Statussinformationen im Zusammenhang mit dem Benutzer in der Datenbank zu suchen. Dieser Ansatz bietet eine höhere Skalierbarkeit und besserer und klarer Code.
Weitere Informationen zur Verwendung von QueryString Cookies und versteckten Formularfeldern finden Sie unter "Q175167 HowTo: Persisting -Werte ohne Sitzungen".
Wenn Sie ein ASP -Technologieobjekt erstellen, können Sie auswählen
Hier ist eine mögliche Ausnahme: Wenn Sie einen Anruf über eine Firewall tätigen, müssen Sie möglicherweise CreateObject anstelle von Server.CreateObject anrufen. Weitere Informationen finden Sie unter "Q193230 - PRB: Server.createObject fehl, wenn das Objekt hinter der Firewall (Englisch) steht.
Stellen Sie sicher, dass die Fehlerbehandlung in allen ASP -Anwendungen enthalten ist. Stellen Sie sicher, dass Sie nützliche diagnostische Informationen bereitstellen. Ich habe niemanden besprochen, der sich darüber beschwert, dass die Fehlermeldung zu erklärend ist. Stellen Sie sicher, dass Sie die folgenden Informationen in das Fehlerprotokoll aufnehmen:
Da es unter ASP ausgeführt wird, möchten Sie diese Informationen möglicherweise in eine Datei oder ein NT -Ereignisprotokoll schreiben. Sie können auch Anwendungsereignisprotokolle erstellen, die kritische Anwendungsereignisse für die Verwendung bei der Diagnose von Anwendungsfehlern protokollieren.
Der folgende Artikel enthält detaillierte Informationen zu Fehlerbehandlungstechniken:
Ein Browser ist nicht genau die Art und Weise, um es zu testen, sondern kann Ihnen nur die möglichen Verwendungen der Anwendung anzeigen. Bitte legen Sie bestimmte Leistungsziele für Ihre Anwendung fest und verwenden Sie Lastwerkzeuge wie Webanwendungsstress -Tool für Spannungstests. Sie müssen selbst entscheiden, was Ihre Umgebung akzeptieren kann, und hier finden Sie einige gängige Richtlinien, mit denen Sie Ihren Testprozess beginnen können:
Passen Sie die Testumgebung mit der tatsächlichen laufenden Umgebung an, und sogar die Firewall ist keine Ausnahme. Das klingt teuer, aber ich habe gehört, dass Entwickler ihre Arbeit verlieren, weil sie die Firewall nicht berücksichtigen.
Weitere Informationen zum Testen einer ASP -Anwendung mithilfe des Tools für Webanwendungen finden Sie unter "Ich kann sie nicht genug belasten - Laden Sie Ihre ASP -Anwendung."
Der Schutz Ihres Bewerbungsprozesses mit Isolation kann die Serverstabilität erheblich verbessern. Wenn es um Internetanwendungen geht, können die Konsequenzen der Isolation stark variieren: Der eine ist der Anwendungsabsturz und der andere der Serverabsturz. Der Schutz des primären IIS -Prozesses (inetinfo.exe) ist normalerweise eine Liste mit höherer Priorität. Dies ist besonders herausragend, wenn Sie Komponenten verwenden.
Die häufig verwendete Technik zum Schutz des Haupt -ISS -Prozesses besteht darin, Webanwendungen in ihren jeweiligen Speicherplätzen zu ermöglichen. Im Internet Services Manager können Sie diese Option für jedes Web festlegen. Obwohl Systemressourcen, die von Marshallowhalling -Prozessen überfordert sind, einen leichten Einfluss auf die Leistung haben, sind die Kosten für die Anwendungen die Kosten wert. Unter IIS 4.0 können Sie Ihre Anwendung in Prozess und Out-of-Process (OOP) ausführen. Die OOP -Anwendung wird in der neuen mtx.exe -Instanz ausgeführt. Unter IIS 5.0 können Sie andere Isolationsoptionen verwenden. Die Isolationsstufe kann auf "niedrig" (In-Process-Anwendung für Inetinfo.exe), "Medium" (dllhost.exe Shared-Instanz) oder "hoch" (Nicht-Shared-Instanz von dllhost.exe) eingestellt werden.
Neben der Isolierung von Webanwendungen in ihrem eigenen Speicherplatz möchten Sie auch nicht vertrauenswürdige Komponenten isolieren. Komponenten, die nicht vertrauenswürdig sind, sind in der Regel Komponenten, die die Testzeit in der tatsächlichen Umgebung nicht übergeben. Sie können diese Komponenten im Serverpaket ausführen, damit sie in der neuen dllhost.exe -Instanz ausgeführt werden.
Wenn Sie im Allgemeinen einen moderaten Ansatz zwischen Leistung und Schutz verfolgen möchten, ist der folgende Weg: Führen Sie die Webanwendung in einem "hohen" Isolationszustand aus und führen Sie die Komponenten im Bibliothekspaket aus. Dieser Ansatz minimiert die Markenkosten und bietet gleichzeitig den stärksten Schutz zwischen den Prozessen.
Weitere Informationen finden Sie im Artikel "Serverzuverlässigkeit durch Prozessisolation".
Nach IIS 4.0 beträgt die Standardgruppe der Standardgruppe von ASP 10 Threads für jeden MTS-verwalteten Prozessor. In IIS 5.0 beträgt der Standardwert 20. Dies bedeutet, dass jeder Thread eine potenziell wertvolle Ressource ist, mit der mehrere Client -Anforderungen verarbeitet werden können. Sie müssen auch die möglicherweise auftretenden Blockierungsmethoden vermeiden, z. B. große Datenbankanrufe. Wenn Sie einen Job haben, verhindern Sie, dass die ASP -Anwendung die Antwort schnell an den Client zurückgibt. Erwägen Sie, die Warteschlangenfunktion zu verwenden. Beispielsweise kann in NT 4.0 MSMQ verwendet werden. In Windows 2000 können in der Warteschlangekomponenten verwendet werden.
Ein häufiger Nachteil, dass sie in der Sitzung die Bauteile (Ein-getriebene Wohnung) nicht speichern, besteht darin, die visuellen Grundobjekte im Sitzungsbereich zu füllen. Es sperrt den Benutzer auf einen Thread, der dem Zweck des Teilens einer Gruppe nach Threads läuft. Potenzielle Benutzer werden hinter anderen Benutzern blockiert und warten darauf, dass die Threads, die ihre Komponenten erstellen, gültig werden. Sie sollten andere Möglichkeiten nutzen, um auf jeder Seite als staatenlose Komponenten zu entwerfen, die erstellt und zerstört werden können.
Schnelle Tipps: Stellen Sie sicher, dass die Funktion "ASP Skript Debugging" auf dem Server deaktiviert ist (über den Internet Services Manager). Wenn das Debuggen von ASP -Skript aktiviert ist, wird die Ausführung von ASP an einen Thread gesperrt.
Weitere Informationen finden Sie im folgenden Artikel:
Das Erstellen einer ASP -Anwendung erfordert eine beträchtliche Auswahl an Wissen. Eine Herausforderung für ASP -Anwendungen besteht darin, dass es derzeit keine gemeinsamen Regeln gibt (was auch Teil des Spaßes ist). Ein weiteres Problem ist, dass viele Entwickler sich mit der Entwicklung des Desktop -Systems befasst haben, bevor sie mit der Internetentwicklung in Kontakt kamen. Durch die Anwendung der oben genannten Regeln in Ihren ASP -Entwicklungsbemühungen hoffen Sie, kostspielige Fehler zu vermeiden und ziemlich gute ASP -Anwendungen zu entwickeln.
JD Meier wurde an der Ostküste der Vereinigten Staaten geboren und wuchs auf. Nach Horace Greeleys Rat wurde er Entwickler-Support-Ingenieur und konzentrierte sich auf serverseitige Komponenten wie MTS- und ASP-Technologien sowie Windows-DNA-Anwendungen.
Durch den vom Herausgeber des 未分 neuen Technologiekanals eingeführten Inhalte glaube ich, dass jeder ein gewisses Verständnis hat. Wenn Sie mehr technische Inhalte wissen möchten, achten Sie bitte weiter auf den 未分 neuen Technologiekanal!