48
ASP.NET ASP.NET Meinrad Weiss, Meinrad Weiss, Trivadis AG Trivadis AG [email protected] [email protected] Trivadis @ Trivadis @ DevDays DevDays , , Dezember 2001 Dezember 2001

Meinrad Weiss, ASP - trivadis.com · Console. WriteLine ("Stand: {0}", m_balance) ; ... Control kann mehrmals in ... mit VB6, C++ oder Java 3 Grundlagen der .NET

Embed Size (px)

Citation preview

ASP.NETASP.NET

Meinrad Weiss, Meinrad Weiss, Trivadis AGTrivadis [email protected]@trivadis.com

Trivadis @ Trivadis @ DevDaysDevDays, , Dezember 2001Dezember 2001

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

EncapsulationEncapsulation

�� NurNur Code, Code, keinekeineweitereweitereStrukturierungStrukturierung

EncapsulationLevel 0

EncapsulationLevel 1

Sub-Routinen

Daten

Code

�� StrukturierungStrukturierung in in wiederverwendbarewiederverwendbareSubSub--RoutinenRoutinen

EncapsulationEncapsulation Level 2Level 2�� Bei Level 1 Bei Level 1 EncapsulationEncapsulation ist immer noch eine ist immer noch eine

Trennung von Daten und Subroutinen vorhandenTrennung von Daten und Subroutinen vorhanden�� Die Die objektobjekt--orientierteorientierte Programmierung führt eine Programmierung führt eine

weitere Ebene der weitere Ebene der EncapsulationEncapsulation ein (Level 2)ein (Level 2)�� Daten und Subroutinen, die diese Daten manipulieren, werden Daten und Subroutinen, die diese Daten manipulieren, werden

zusammengefasstzusammengefasst�� Diese neuen Einheiten heissen "Diese neuen Einheiten heissen "KlassenKlassen" (" (ClassesClasses))�� Subroutinen werden "Subroutinen werden "MethodenMethoden" (" (MethodsMethods), Daten "), Daten "FelderFelder" "

((FieldsFields)) genanntgenannt�� Das sind die Bezeichnungen, die in der Regel im Zusammenhang Das sind die Bezeichnungen, die in der Regel im Zusammenhang

mit .NET verwendet werdenmit .NET verwendet werden�� Eine Instanz einer Klasse ist ein Eine Instanz einer Klasse ist ein ObjektObjekt

Klassen/ObjekteKlassen/ObjekteKlasse private Variable

(=Felder)

Methoden

MiniMini--Programm (C#)Programm (C#)�� Struktur eines einfachen C#Struktur eines einfachen C#--ProgrammsProgrammsnamespace Bank_cs // Namespace{

public class BankAccount // Klasse{

private double m_balance ; // Member-Variablepublic boolean Deposit(double amount){double charge = 0.01 ; // lokale Variablem_balance += amount ; // Operationen

m_balance -= (m_balance * charge) ;Console.WriteLine("Stand: {0}", m_balance) ;return true; // Rückgabewert

}}

}

MiniMini--Programm (VB.NET)Programm (VB.NET)�� Struktur eines einfachen VBStruktur eines einfachen VB--ProgrammsProgrammsNamespace Bank_vb ‘ Namespace

Public Class BankAccount ‘ Klasse

Private m_balance As Double ‘ Member-VariablePublic Function Deposit(

amount As Double) As Boolean ‘ Methode

Dim charge As Double = 0.01 ‘ lokale Variablem_balance += amount ‘ Operationenm_balance -= (m_balance * charge)Console.WriteLine("Stand: {0}", m_balance)return true ‘ Rückgabewert

End Function

End ClassEnd Namespace

Klassen Klassen MembersMembersKlasse

Members

MethodenProperties

Data-Members(Fields)

State(Zustand)

Behaviour(Verhalten)

PropertiesProperties�� PropertiesProperties erlauben einen geschützten erlauben einen geschützten

Zugriff auf FelderZugriff auf Felder�� Sehen aus wie globale FelderSehen aus wie globale Felderpublic class Account {

private double m_balance;…public double Balance {

get {return m_balance;

}}

}Account acc = new Account();acc.Deposit(1000.00);Console.WriteLine("Balance: {0}"

, acc.Balance);

Account acc = new Account();acc.Deposit(1000.00);Console.WriteLine("Balance: {0}"

, acc.Balance);

Klasse Klasse versusversus ObjektObjekt

public class Account {

private double m_balance;

public bool Deposit(double amount) {

m_balance += amount;

return true;

}

public bool Withdraw(double amount) {

if ((m_balance - amount) < 0 )

return false;

else

m_balance -= amount;

return true;

}

}

public class Account {

private double m_balance;

public bool Deposit(double amount) {

m_balance += amount;

return true;

}

public bool Withdraw(double amount) {

if ((m_balance - amount) < 0 )

return false;

else

m_balance -= amount;

return true;

}

}

Klasse: Account

Account acc1;

acc1 = new Account();

Account acc2 = new Account();

Account acc1;

acc1 = new Account();

Account acc2 = new Account();

Verwendung von Account

Memory

AccountObjekt

Managed Heap

acc2 (Ref)acc1 (Ref)

Stack

AccountObjekt

MotorFlugzeugRumpfTragflächenLeitwerkMotorStartenLanden

Vererbung (Vererbung (InheritanceInheritance))

SegelFlugzeugRumpfTragflächenLeitwerkKupplungStartenLanden

FlugzeugRumpfTragflächenLeitwerkStartenLanden

Vererbung (2)Vererbung (2)public class Base

{

public void WhoAreYou() {

Console.WriteLine("I am Base");

}

}

public class Derived: Base

{

public void AnotherMethod() {

// something useful

}

}

Derived d = new Derived();

d.WhoAreYou();

d.AnotherMethod();

Base

Derived

Virtuelle MethodenVirtuelle Methoden�� Virtuelle Methoden lassen sich in abgeleiteten Klassen Virtuelle Methoden lassen sich in abgeleiteten Klassen

überschreibenüberschreibenpublic class Base

{

public virtual void WhoAreYou() {

Console.WriteLine("I am Base");

}

}

public class Derived: Base

{

public override void WhoAreYou() {

Console.WriteLine("I am Derived");

...

}

}

Base b = new Derived();

b.WhoAreYou();

Output:

> I am Derived

PolymorphismusPolymorphismus

ShapeShapeShapeShapeGetArea()

Draw()

CircleCircleCircleCircleGetArea()

Draw()

RectangleRectangleRectangleRectangleGetArea()

Draw()

Shape[] shapes = new Shape[3];

shapes[0] = new Circle();

shapes[1] = new Rectangle();

shapes[2] = new Circle();

foreach(Shape s in shapes) {

s.Draw();

}

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

Code Code BehindBehind�� „„Vollständige“ Trennung von Layout und CodeVollständige“ Trennung von Layout und Code�� Das Das CodeCode--behindbehind File ... File ...

�� Enthält eine von Enthält eine von System.Web.UI.PageSystem.Web.UI.Page abgeleitete Klasseabgeleitete Klasse�� Deklariert Server Controls als Deklariert Server Controls als MemberMember--VariablenVariablen (Fields)(Fields)�� Implementiert Implementiert EventEvent--HandlerHandler und Hilfsund Hilfs--MethodenMethoden

�� Das ASPX File ...Das ASPX File ...�� ReferenziertReferenziert das das CodeCode--BehindBehind File in der Page DirektiveFile in der Page Direktive�� Definiert, von welcher Klasse die Page abgeleitet wirdDefiniert, von welcher Klasse die Page abgeleitet wird�� Positioniert die die, im Positioniert die die, im CodeCode--BehindBehind File deklarierten ControlsFile deklarierten Controls

�� MemberMember--VariablenVariablen Name = Name = IDID--AttributAttribut

�� Die von ASP.NET generierte Klasse wird von der Die von ASP.NET generierte Klasse wird von der CodeCode--BehindBehind Klasse abgeleitetKlasse abgeleitet

Code Code BehindBehind (2)(2)namespace WebApplication1

{public class SimpleWebForm : System.Web.UI.Page{

protected Web.UI.WebControls.TextBox txtName;

private void Page_Load(object sender,System.EventArgs e)

{txtName.Text = "Durch Page_Load gesetzt";

}

}

}<%@ Page language="c#"

Codebehind="SimpleWebForm.aspx.cs"

Inherits="WebApplication1.SimpleWebForm" %>

<HTML>

<form id="SimpleWebForm" method="post" runat="server">

<asp:TextBox id="txtName" runat="server"></asp:TextBox>

</form>

</HTML>

Code Code BehindBehind (3)(3)namespace WebApplication1

{public class SimpleWebForm : System.Web.UI.Page{

protected Web.UI.WebControls.TextBox txtName;

private void Page_Load(object sender,System.EventArgs e)

{txtName.Text = "Durch Page_Load gesetzt";

}

}

}<%@ Page language="c#"

Codebehind="SimpleWebForm.aspx.cs"

Inherits="WebApplication1.SimpleWebForm" %>

<HTML>

<form id="SimpleWebForm" method="post" runat="server">

<asp:TextBox id="txtName" runat="server"></asp:TextBox>

</form>

</HTML>

SeitenaufbauSeitenaufbau

ASPXFile

RequestRequest

ASPXASPX

EngineEngineParseParse

Gen’dPageClass

GenerateGenerate

ResponseResponse

RequestRequestInstantiateInstantiate

ResponseResponse

CodeCode--behindbehindclassclass

PagePage

DLLDLL Instantiate, Instantiate, Process and Process and

RenderRender

CompileCompile

ASP.NET Server ControlsASP.NET Server Controls�� HTML ControlsHTML Controls

�� 1 : 1 zu 1 : 1 zu standardstandard HTMLHTML�� zusätzlich zusätzlich idid und und runatrunat AttributAttribut

�� Web ControlsWeb Controls�� Kein 1 : 1 Kein 1 : 1 mappingmapping zu zu standardstandard HTMLHTML�� Beispiel: Beispiel: asp:TextBoxasp:TextBox

�� Magie passiert auf dem ServerMagie passiert auf dem Server

<INPUT id="MyHTMLTextBox"style="Z-INDEX: 101; LEFT: 215px; POSITION: absolute; TOP:64px"type="text"runat="server">

<asp:TextBox id="myWebFormsTextBox„style="Z-INDEX: 102; LEFT: 216px; POSITION: absolute; TOP:80px"runat="server">

</asp:TextBox>

ASP.NET Server Controls (2)ASP.NET Server Controls (2)�� Auf HTML und auf Web Server Controls kann auf dem Server Auf HTML und auf Web Server Controls kann auf dem Server

identisch zugegriffen werdenidentisch zugegriffen werden�� runatrunat = "= "serverserver" " id="XYid="XY""

public class OneHTMLAndOneWebControl : System.Web.UI.Page

{

protected System.Web.UI.WebControls.TextBox WebTextField;

protected System.Web.UI.HtmlControls.HtmlInputText HTMLTextField;

private void Page_Load(object sender, System.EventArgs e)

{

HTMLTextField.Value = "HTML";

WebTextField.Text = "ditto";

}

}<form id="XYZ" method="post" runat="server">

<INPUT id="HTMLTextField" type="text" runat="server">

<asp:TextBox id="WebTextField" runat="server"/>

</form>

Manuell Manuell erzeugt!erzeugt!Manuell Manuell erzeugt!erzeugt!

ASP.NET Server Controls (3)ASP.NET Server Controls (3)�� Der Browser sieht bei HTML und Web Server Controls HTMLDer Browser sieht bei HTML und Web Server Controls HTML

public class OneHTMLAndOneWebControl : System.Web.UI.Page

{

protected System.Web.UI.WebControls.TextBox WebTextField;

protected System.Web.UI.HtmlControls.HtmlInputText HTMLTextField;

private void Page_Load(object sender, System.EventArgs e)

{

HTMLTextField.Value = "HTML";

WebTextField.Text = "ditto";

}

}<form id="XYZ" method="post" runat="server">

<INPUT id="HTMLTextField" type="text" runat="server">

<asp:TextBox id="WebTextField" runat="server"/>

</form>

<form ... >

<input name="HTMLTextField" id="HTMLTextField"

type="text" value="HTML" />

<input name="WebTextField" id="WebTextField"

type="text" value="ditto" />

</form>

ASP.NET Server Controls (4)ASP.NET Server Controls (4)�� Web Controls besitzen Web Controls besitzen konsitentekonsitente

Attribut/Attribut/PropertyProperty Namen Namen �� AbstraktionAbstraktion�� Unterschiedliche Unterschiedliche PropertyProperty Werte könnenWerte können

zu unterschiedlichen HTML Tags führenzu unterschiedlichen HTML Tags führen

<form ... >

HTML Controls

<INPUT id="HTMLSingleLine20" type="text" size="20">

<TEXTAREA id="HTMLMultiLine20" rows="2" cols="20"/>

WEB Controls

<asp:TextBox id="WEBSingleLine20" runat="server" Columns="20"/>

<asp:TextBox id="WEBMultiLine20" runat="server" Columns="20"TextMode="MultiLine"/>

</form>

ASP.NET Server Controls (5)ASP.NET Server Controls (5)

ASP.NET Server Controls (6)ASP.NET Server Controls (6)�� Funktionalität von HTML und Web Controls überschneidet sich Funktionalität von HTML und Web Controls überschneidet sich

nur zum Teilnur zum Teil�� Komplexe Funktionalität wird mittels Web Controls zur Verfügung Komplexe Funktionalität wird mittels Web Controls zur Verfügung

gestelltgestellt�� CalenderCalender ControlControl�� DataData List, List, DataData GridGrid, ..., ...

HTMLHTMLControlsControls

WEBWEBControlsControls

<input <input type="file" />type="file" />

<<asp:TextBoxasp:TextBox>><input type=“text" /><input type=“text" />

<<asp:Buttonasp:Button>><input type=“submit" /><input type=“submit" />

<<asp:Calendarasp:Calendar>>

<<asp:Repeaterasp:Repeater>>

<<asp:DataGridasp:DataGrid>>

<<asp:DataListasp:DataList>>

Controls und EventsControls und Events�� BenutzerBenutzer--Eingaben auf einer WebEingaben auf einer Web--Form erzeugen EventsForm erzeugen Events

�� Beispiel: Betätigen eines ButtonBeispiel: Betätigen eines Button�� Der Programmierer behandelt diese Events in Der Programmierer behandelt diese Events in EventEvent--HandlerHandler MethodenMethoden

�� Analog zu Windows ApplikationenAnalog zu Windows Applikationen�� Die Die EventEvent--HandlerHandler Methoden werden als ein Attribut des entsprechenden Methoden werden als ein Attribut des entsprechenden

ASP.NET Controls definiertASP.NET Controls definiert

private void InitializeComponent()

{

this.FileUpload.Click += newSystem.Web.UI.ImageClickEventHandler(this.FileUpload_Click);

}

private void FileUpload_Click(object sender,

System.Web.UI.ImageClickEventArgs e)

{

Server.Transfer("FileUpload.aspx");

}

Event ReihenfolgeEvent Reihenfolge

Page_LoadPage_Load

Page_UnloadPage_Unload

Textbox1_ChangedTextbox1_Changed

Button1_ClickButton1_Click

Control EventsControl Events

1. Change Events1. Change Events

2. Action Events2. Action Events

Reihenfolge ist nicht Reihenfolge ist nicht vorgegebenvorgegeben

ApplicationApplication/Session Events/Session Events

�� ApplicationApplication und Session Events werden und Session Events werden im im Global.asaxGlobal.asax File definiertFile definiert

Application_StartApplication_Start

EndRequestEndRequest

BeginRequestBeginRequest

Session_StartSession_Start

Beim ersten RequestBeim ersten Request

BeiBei jedemjedem RequestRequest

EinmalEinmal pro Sessionpro Session

BeiBei jedemjedem RequestRequest

ApplikationsApplikations KonfigurationKonfiguration�� ASP.NET Applikationen können mittels dem ASP.NET Applikationen können mittels dem

KonfigurationsKonfigurations--File File Web.configWeb.config an die Umgebung an die Umgebung angepasst werdenangepasst werden�� System KonfigurationSystem Konfiguration

�� State HandlingState Handling�� TraceTrace SettingSetting�� AuthenticationAuthentication�� GlobalisationGlobalisation

�� ApplicationsApplications KonfigurationKonfiguration�� Im Im KonfigurationsKonfigurations File sollte möglichst wenig Information File sollte möglichst wenig Information

gespeichert werdengespeichert werden�� z.B. z.B. ConnectConnect String zu DatenbankString zu Datenbank

�� Modifikation des Files löst einen Restart der Modifikation des Files löst einen Restart der Applikation ausApplikation aus

ApplikationsApplikations KonfigurationKonfiguration�� Das Das <<appSettingsappSettings>> Element ist für Element ist für ApplikationsApplikations

Parameter vorgesehenParameter vorgesehen<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<!-- application specific settings -->

<appSettings>

<add key="connectionString" value="server=localhost;uid=sa..." />

</appSettings>

SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);

�� Mit der statischen Methode Mit der statischen Methode AppSettingsAppSettings der Klasse der Klasse ConfigurationSettingsConfigurationSettings können die Parameter gelesen können die Parameter gelesen werdenwerden

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

Validation ControlsValidation Controls�� Decken einige typische Decken einige typische EingabeEingabe--ValidierungenValidierungen abab

�� RequiredFieldValidatorRequiredFieldValidator�� CompareValidatorCompareValidator�� RangeValidatorRangeValidator�� RegularExpressionValidatorRegularExpressionValidator�� CustomValidatorCustomValidator

�� Ein oder mehrere Validation Controls pro Eingabe Ein oder mehrere Validation Controls pro Eingabe ControlControl möglichmöglich

�� Page.IsValidPage.IsValid�� Die Die PagePage--PropertyProperty IsValidIsValid zeigt bei einem Postback an, ob die zeigt bei einem Postback an, ob die

ValidierungValidierung erfolgreich war erfolgreich war

�� Für "Für "upleveluplevel" Browser wird JavaScript Code für die " Browser wird JavaScript Code für die ValidierungValidierungerzeugterzeugt�� upleveluplevel = IE 4.0 und höher= IE 4.0 und höher

RequiredFieldValidatorRequiredFieldValidator

<form runat="server">

...

<asp:ValidationSummaryid="m_validationSummary"runat="server"HeaderText="Your request could not be processed" />

<asp:RequiredFieldValidatorrunat="server"ControlToValidate="m_symbol"ErrorMessage="Please enter a symbol">*

</asp:RequiredFieldValidator><asp:TextBox id="m_symbol"

runat="server"MaxLength="4"/>

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

DataData BindingBinding�� Einfache Methode, um Daten in UserEinfache Methode, um Daten in User--Interface Interface

Elementen anzuzeigenElementen anzuzeigen

�� Es bestehen spezielle Web Controls für Es bestehen spezielle Web Controls für DataData BindingBinding�� Controls besitzen Controls besitzen DataSourceDataSource AttributAttribut

�� DataData--SourceSource Objekte müssen das Objekte müssen das ICollectionICollection Interface Interface implementierenimplementieren�� ICollectionICollection wird von diversen .NET Klassen unterstütztwird von diversen .NET Klassen unterstützt

�� ArrayArray�� ArrayListArrayList�� HashTableHashTable�� SortedListSortedList�� DataViewDataView�� DataReaderDataReader

DataData Binding (2)Binding (2)

DataSet ds = GetAuthorsData();

m_grid.DataSource = ds.Tables["authors"].DefaultView;

m_grid.DataBind();

�� ASP.NET stellt mehrere Objekte zur ASP.NET stellt mehrere Objekte zur Darstellung der Daten zur VerfügungDarstellung der Daten zur Verfügung�� DataGridDataGrid�� DataListDataList�� DataRepeaterDataRepeater

�� PropertyProperty DataSourceDataSource definiert die Datenquelledefiniert die Datenquelle�� Methode Methode DataBindDataBind() liest die Daten aus der () liest die Daten aus der

Datenquelle und stellt sie in der gewünschten Datenquelle und stellt sie in der gewünschten Form darForm dar

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

User ControlsUser Controls�� User Controls funktionieren ähnlich wie User Controls funktionieren ähnlich wie IncludeInclude FilesFiles

�� Häufig benötigte Funktionen lassen sich in vordefinierten ModuleHäufig benötigte Funktionen lassen sich in vordefinierten Modulen n bereitstellenbereitstellen

�� Besitzen einen eigenen Besitzen einen eigenen NamespaceNamespace�� Keine Namenskonflikte mit bestehenden Objekten auf den ASP SeiteKeine Namenskonflikte mit bestehenden Objekten auf den ASP Seitenn�� Ein User Ein User ControlControl kann mehrmals in einer WEB Page verwendet kann mehrmals in einer WEB Page verwendet

werdenwerden�� User Controls können neben den von Microsoft gelieferten WEBUser Controls können neben den von Microsoft gelieferten WEB--

und HTML Controls weitere User Controls beinhaltenund HTML Controls weitere User Controls beinhalten�� User Controls müssen von der Klasse (direkt oder indirekt) User Controls müssen von der Klasse (direkt oder indirekt)

System.Web.UI.UserControlSystem.Web.UI.UserControl abgeleitet werdenabgeleitet werden�� User Controls können statisch oder dynamisch (zur Laufzeit) in User Controls können statisch oder dynamisch (zur Laufzeit) in

eine eine WEBWEB--PagePage eingebunden werdeneingebunden werden

VerwendungVerwendung von User Controlsvon User Controls

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

SessionsSessions & Web Farmen& Web Farmen�� Wohin mit dem Wohin mit dem SessionSession--StateState??

NLB ClusterNLB Cluster

State?State?

State?State?

State?State?NodeB

NodeA

NodeC

SQL ClusterSQL Cluster

StateState

StateState

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� AusbildungAusbildung

TracingTracing�� Dank der eingebauten Dank der eingebauten TraceTrace Funktionen von ASP.NET lässt sich Funktionen von ASP.NET lässt sich

das Verhalten von WEB Seiten einfach nachvollziehendas Verhalten von WEB Seiten einfach nachvollziehen�� TracingTracing kann auf Applikationskann auf Applikations-- oder oder PagePage--LevelLevel eingeschaltet eingeschaltet

werdenwerden�� web.configweb.config

�� Trace="trueTrace="true" "

<%@ Page language="c#" Trace="true" %>

<HTML>

...

</HTML>

<trace

enabled="true" requestLimit="10"

pageOutput="false" traceMode="SortByTime"

localOnly="true“ />

TracingTracing (2)(2)�� Mit der Methode Mit der Methode Trace.WriteTrace.Write kann kann DebugDebug--InformationInformation in den in den

TraceTrace--OutputOutput geschrieben werdengeschrieben werdenTrace.Write("Inside Page_Load 1: ", txtName.Text);

txtName.Text = "Durch Page_Load gesetzt";

Trace.Write("Inside Page_Load 2: ", txtName.Text);/>

AgendaAgenda�� EinführungEinführung ObjektorientierungObjektorientierung�� Aufbau einer ASP.NET SeiteAufbau einer ASP.NET Seite�� Input ValidationInput Validation�� Data BindingData Binding�� User ControlsUser Controls�� Session StateSession State�� ZusammenfassungZusammenfassung

Was kam zu kurzWas kam zu kurz�� DataBindingDataBinding�� TracingTracing�� GlobalisationGlobalisation�� DebuggingDebugging�� ServerControlsServerControls�� Web Services (SOAP)Web Services (SOAP)�� DeploymentDeployment

C# VB.NET C# & VB.NET

Trivadis Kursangebot .NETTrivadis Kursangebot .NETEinführung OO Einführung in XML

5Introduction to C# Programming for the Microsoft .NET Platform

5Programming with Microsoft Visual Basic .NET

FundierteProgrammiererfahrung

mit VB6, C++ oder Java

3Grundlagen der .NET Programmierung

5Programming the Microsoft .NET Framework using C#

5Programming the Microsoft .NET Framework with Visual Basic.NET

Securing and Deploying Microsoft .NET Assemblies

Programming with ADO.NET Developing Web Services using Microsoft Visual Studio.NET

2Developing Mobile Web Applications Using Microsoft Mobile Internet Toolkit

3Introduction to ASP.NET

MSUGS MSUGS MitgliedschaftMitgliedschaft�� Regelmässige Regelmässige NewslettersNewsletters und Tagungenund Tagungen�� Gratis Microsoft Developer Network JournalGratis Microsoft Developer Network Journal�� Gratis ASP.NET Gratis ASP.NET HostingHosting auf hauf http://ttp://hosting.msugs.chhosting.msugs.ch�� VergünstigungenVergünstigungen

�� Kursangebot Trivadis (10 % Rabatt auf Microsoft Kursangebot Trivadis (10 % Rabatt auf Microsoft Kurse)Kurse)

�� Microsoft Schweiz Microsoft Schweiz DevelopersDevelopers DaysDays

Einzelmitglied: Fr 290.-/JahrFirmenmitglied: Fr 240.-/JahrStudierendes Mitglied Fr 150.-/Jahr www.msugs.chwww.msugs.ch