meinrad weiss, asp - trivadis.com · console. writeline ("stand: {0}", m_balance) ; ......
Post on 23-Jul-2018
221 Views
Preview:
TRANSCRIPT
ASP.NETASP.NET
Meinrad Weiss, Meinrad Weiss, Trivadis AGTrivadis AGmeinrad.weiss@trivadis.commeinrad.weiss@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
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 (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
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
top related