Bereich: Allgemein
Unverarbeiteter Stoff ASP.NETSeite Anlegen
Seitenaufbau
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
CodeFile=Datei mit Code Behind
Inherits= Abgeleitet von... StartphaseErster Seitenaufruf /
Session Beginn
- Event Application Start
- Event Session Start
- Event Page_PreInit (ab v2.0 z.B. für Masterpage)
- Event Page Init
- Event Page Load
- Event PreRender
- Seite wird zum Browser gesendet
- Event Page Unload wird auf dem Server ausgelöst
Weiterer Seitenaufruf (PostBack) ohne Controls
- Page Load
- Page PreRender
- Seite zum Client
- Page Unload
Weiterer Seitenaufruf (PostBack) mit Controls
Inhalte von Controls werden in ViewState übertragen.
- Page Load
- Page PreRender
- Seite zum Client
- Page Unload
Session Ende
Session wird standardmässig nach 20 Minuten automatisch beendet.
- Event Session_End wird auf dem Server ausgelöst
- Event Application_End
Weitere Events
- Page_Error
- Page_AbortTransaction
- Page_CommitTransaction
- Page_DataBinding
- Page_Dispose
Validation Controls
- TextBox erstellen
- Required Validator erstellen
- Eigenschaft Text (Erscheint im Required Validator bei fehlender Eingabe)
- ControlToValidate bestimmen. Für welches Control gillt dieser Validator
Navigation zwischen Seiten
- Hyperlink
- LinkButton, ImageButton, Button
- Response.Redirect("NextPage.aspx")
- Server.Transfer()
- Server.Execute() Im Bereich einer Seite wird eine andere Seite
ausgeführt. Eher durch Masterpage ablösen
- window.open() Client-seitiges JavaScript.
in Page Load:
int x = request....
onclick="window.open('Seite.aspx')" value="xxxx"
ZustandsmanagementServer-Seitig
- Session State
- Application State
- Cache Objekt (Performance optimierung, nicht für Zustandmanagement)
- Klassenvariablen (static)
- Datenbank
Client-Seitig
- Cookies
- ViewState (beidseitig)
- String Abfragen (QueryString)
- Versteckte Felder
Technik |
senden vin 1. Seite |
lesen auf 2. Seite |
Verstecktes Feld |
HTML-Tag: <input type="hidden" value="Wert" id="KeyName"> |
C# Code: string strValue = Request.Params["KeyName"]; |
Cookie |
HttpCookie myCookie = new HttpCookie("MyTestCookie");
DateTime now = DateTime.Now;
myCookie.Value = now.ToString();
myCookie.Expires = now.AddMinutes(1);
Response.Cookies.Add(myCookie);Ohne Ablaufdatum ist das Cookie
flüchtig und wird beim Beenden des Browsers gelöscht. |
HttpCookie myCookie = new HttpCookie("MyTestCookie");
myCookie = Request.Cookies["MyTestCookie"];
if(myCookie != null) {
string vName = myCookie.Name;
string vWert = myCookie.Value;
} |
ViewState |
|
|
Session Objekt |
C# Code: Session["Vorname"] = "Hallo"; |
C# Code: string vVorname = Session["Vorname"]; |
Application Objekt |
C# Code: Application["Benutzer"] = "Markus"; |
C# Code: string vBenutzer = Application["Benutzer"]; |
Globale Variablen in global.asax |
|
|
Session
Lebensdauer der Session (in Minuten)
Session.Timeout = 5;
Maximale Grösse: Unbegrenzt
Application Objekt
Gibt es pro Server einmal, mehrere Benutzer greifen gemeinsam darauf zu.
Schreibender Zugriff muss, weil die Möglichkeit des Mehrfachzugriff besteht,
gelockt werden. Application.Lock(); in try bis Application.Unlock() (in finally
weil immer ausgeführt wird)
WebService
Ein Webservice ist die Kommunikation zwischen zwei Applikationen. Der
Webservice liefert der Applikation XML Daten oder Empfängt Daten von der
Applikation. Webservice erstellen
- Neues Projekt ASP.NET Webservice mit Name TimeUtility
- Ausführen und es geht schon.
- Neue Methode wie helloWorld implementieren.
Anwendung erstellen
- Neues Windows Form Projekt mit Button und Textbox
- - Add Service Reference mit Adresse von WebService
- Go testet
- Advance -> Webreference Name festlegen z.B. TimeUtility
- Im Code Button1_Click code für Webservice aufruf schreiben
- TimeUtility.Service1 svrc = new WebServiceClient.TimeUtility.Service1();
- TextBox1.Text = svrc.getTime("Wsdkdkdk");
Fehlerbehandlung
GetLastError()
ClearError() Fehlerseiten definieren im WebConfig
<CustomErrors mode = "on" defaultRedirect="ErrDefault.aspx">
<error statusCode="401" edirect="ErrUnathorize.aspx" />
</customErrors>
Mode=On Fehlerseite kommt im Debug
Mode=off Im Debug wird gedebugt, Fehler erscheint nur online Seitenspezifischer Ausnahmefehler behandeln
<@page ErrorPage="ErrDefailt.aspx" %> Fehlerbehandlung auf Applikationsbasis
Tools
Log4net opensource Tool für logging
Trace.axd
Wenn in WebConfig konfiguriert liefert jede WebApplikation ein Log aus.
<trace></trace>
Eigene TraceMeldungen:
Trace.Write("Text");
Trace.Warn("Text");
Benutzerverwaltung
|