Entwicklung von Web Applikationen mit Microsoft - ASP.NET
Entwicklung von Web Applikationen mit Microsoft - ASP.NET
Entwicklung von Web Applikationen mit Microsoft - ASP.NET
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Gliederung<br />
Vorlesungsreihe<br />
<strong>Entwicklung</strong> webbasierter Anwendungen<br />
<strong>Entwicklung</strong> <strong>von</strong><br />
<strong>Web</strong> <strong>Applikationen</strong><br />
<strong>mit</strong> <strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong><br />
Prof. Dr.-Ing. Thomas Wiedemann<br />
email: wiedem@informatik.htw-dresden.de<br />
HOCHSCHULE FÜR TECHNIK UND WIRTSCHAFT DRESDEN (FH)<br />
Fachbereich Informatik/Mathematik<br />
• <strong>Microsoft</strong>technologien zur <strong>Web</strong>entwicklung<br />
• MS-Http-Server IIS (Internet Information Server )<br />
• frühe Technologien (Frontpage / ActiveX-Controls)<br />
• <strong>ASP</strong><br />
• <strong>ASP</strong>.<strong>NET</strong><br />
• Aktuelle <strong>Entwicklung</strong>en (Silverlight)<br />
• Quellen :<br />
• MSDN<br />
• http://openbook.galileocomputing.de/asp/<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 2<br />
1
MS-Http MS Http-Server Server IIS<br />
Basis für <strong>Microsoft</strong>-<strong>Web</strong>anwendungen i.d.R. der IIS Server :<br />
Historie :<br />
• erste Version als <strong>Microsoft</strong> Internet Information Server als Zusatzpackage<br />
für Windows NT 3.51.<br />
• IIS 2.0 direkt integriert in Windows NT 4.0<br />
• IIS 3.0 unterstützte erstmalig Active Server Pages –Programmierung<br />
• IIS 4.0 <strong>mit</strong> zusätzlichen Modulen : <strong>Microsoft</strong> Transaction Server, MS Index<br />
Server und Certificate Server<br />
• IIS 5.0 direkt integriert in Windows 2000 integriert als „<strong>Microsoft</strong> Internet<br />
Information Services“ (IIS 5.1 in WinXP Prof. für max. 10 Clients) .<br />
• IIS 6.0 komplett neu entwickelt für Windows Server 2003 zur Lösung<br />
vorhandener Sicherheitsprobleme ( <strong>Web</strong> Server Extension wie <strong>ASP</strong>, <strong>ASP</strong><br />
.<strong>NET</strong>, Internet Printing, Server Side Includes (SSI) nicht mehr per default<br />
aktiv, sondern nur durch explizite Aktivierung)<br />
• <strong>Microsoft</strong> Internet Information Services 7 in Windows Vista und in<br />
Windows Server 2008 integriert<br />
� Achtung: jedoch in Win 2008 nicht standardmäßig installiert, sondern über<br />
Featureliste zu installieren !<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 3<br />
Frühe Technologen (Frontpage / ActiveX-Controls)<br />
MS Frontpage – <strong>mit</strong> MS Frontpage Extensions<br />
• proprietärer WYSIWYG-P-HTML-Editor (ab 1996 bei MS) <strong>mit</strong> speziellen<br />
Erweiterungen zur serverseitigen Manipulation der Inhalte (analog zu Server Side<br />
Includes (SSI) )<br />
• dynamische Erstellung <strong>von</strong> Menüs und Einbindung externer Objekte<br />
• Probleme :<br />
� teilweise Generierung <strong>von</strong> nicht-standard-konformen HTML-Code<br />
� Ausführung der FP-Extensions setzt MS-Frontpage-Extr.-kompatiblen Server<br />
voraus (IIS oder Apache <strong>mit</strong> zusätzlich installierten Extensions)<br />
• ab 2006 Ablösung durch <strong>Microsoft</strong> Expression <strong>Web</strong><br />
ActiveX<br />
• MS-Softwarekomponenten, abgleitet vom MS-COM-Standard<br />
• Lauffähig nur im MS-Internet Explorer <strong>mit</strong> allen rechten des Anwenders<br />
• Hauptprobleme : keine Sicherheitsmechanismen – nur durch den ActiveX-<br />
Entwickler und eine Akkreditierung -> potentielle Angriffsmöglichkeit<br />
durch präparierte <strong>Web</strong>seiten <strong>mit</strong> manipulierten Active-Komponenten<br />
• � Technologie hat sich nicht durchgesetzt !<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 4<br />
2
<strong>Microsoft</strong> - <strong>ASP</strong><br />
Active Server Pages (<strong>ASP</strong>) (heute auch Classic-<strong>ASP</strong>)<br />
• Serverseitige Skriptsprache analog zu PHP oder Perl <strong>mit</strong> Interpretation<br />
während der Ausführung - verfügbar sind VBScript und Jscript<br />
• erster Einsatz 1996 <strong>mit</strong> IIS 3.0<br />
• ab 2002 abgelöst durch <strong>ASP</strong>-<strong>NET</strong><br />
Vorteile :<br />
• Relativ effiziente <strong>Entwicklung</strong> allein <strong>mit</strong> Texteditor ohne komplexe<br />
Infrastruktur<br />
Nachteile<br />
• generell Vermischung <strong>von</strong> HTML ( Layout) und Code<br />
Status<br />
• wird noch für alte und kleinere Projekte eingesetzt<br />
• <strong>ASP</strong>-Unterstützung muss im II7 explizit aktiviert werden :<br />
• in der Datei applicationHost.config freischalten<br />
<br />
<br />
Voller Zugriff auf die Ressourcen des Servers <strong>mit</strong> VB-Syntax<br />
<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 6<br />
3
<strong>Microsoft</strong> - <strong>ASP</strong> - Beispiele<br />
Dateneingabe <strong>mit</strong> Html-Standardformular<br />
<br />
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Code Behind Concept<br />
Trennung <strong>von</strong> Layout und Code in getrennten Dateien<br />
- Ablage des (HTML-)Layouts in <strong>ASP</strong>X-Dateien<br />
- dabei Verwendung spezieller <strong>ASP</strong>.<strong>NET</strong>-Server-Steuerelemente<br />
- zugeordnete <strong>ASP</strong>X.VB-Dateien (bzw. .CS / .JS ) <strong>mit</strong> dem Code<br />
- <strong>ASP</strong>.<strong>NET</strong>-Code wird vorkompiliert (und komplett getestet – da<strong>mit</strong> weniger<br />
Probleme <strong>mit</strong> Syntaxfehlern zur Laufzeit)<br />
<strong>ASP</strong>X-Datei HTML-Code <strong>ASP</strong>X.VB-Datei <strong>mit</strong> <strong>ASP</strong>.<strong>NET</strong>-Progr.-Sprache (hier VB)<br />
<br />
<br />
<br />
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Direkte Ausführung in der <strong>ASP</strong>X<br />
- analog zu <strong>ASP</strong> kann Code jedoch auch direkt in der <strong>ASP</strong>X-Datei ausgeführt<br />
werden – (dann jedoch nur interpretiert und nicht vorkompiliert !)<br />
<br />
<strong>ASP</strong>.<strong>NET</strong>-Demo1 <strong>ASP</strong>.<strong>NET</strong>-Demo1 <br />
<br />
Sub Sub tfMeldung_Change(ByVal Sender Sender As As Object, Object, ByVal ByVal E As AsEventArgs) EventArgs)<br />
lblMeldung.Text lblMeldung.Text = "Hallo "Hallo " " + tfMeldung.Text<br />
tfMeldung.Text<br />
lblMeldung.ForeColor = Drawing.Color.Brown<br />
End End Sub Sub<br />
<br />
<br />
<strong>ASP</strong>.<strong>NET</strong> --Demo Demo <br />
<br />
")%><br />
Bitte Bitte geben geben Sie Sie Ihren Ihren Namen Namen ein: ein:<br />
<br />
<br />
<br />
<br />
<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 11<br />
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Wesentliche Verbesserungen<br />
Verbesserungen im Vergleich zu <strong>ASP</strong><br />
- Code-Compilierung verbessert die Performance deutlich (Kompilierter Code ist<br />
verwalteter Code und wird <strong>von</strong> der Common Language Runtime (CLR) verwaltet.<br />
Code wird zuerst in <strong>Microsoft</strong> Intermediate Language (MSIL) kompiliert und beim<br />
Aufruf der Seite in native Maschinensprache übersetzt.<br />
- Komplette Verfügbarkeit des gesamten .<strong>NET</strong>-Sprachumfangs statt VBScript (bzw.<br />
Jscript) erhöht die Flexibilität und mögliche Komplexität <strong>von</strong> <strong>Applikationen</strong><br />
- Die Basissyntax entspricht der <strong>von</strong> VB.<strong>NET</strong> und C#.<strong>NET</strong> (siehe entsprechende Quellen)<br />
- Besonderheiten und spezielle Objekte für die <strong>Web</strong>entwicklung werden nachfolgend kurz<br />
vorgestellt.<br />
- es können neue <strong>ASP</strong>.<strong>NET</strong>-Server-Steuerelemente entwickelt und eingebunden<br />
werden<br />
- ereignisgesteuerte Programmierung auf der Serverseite erleichtert die<br />
<strong>Entwicklung</strong><br />
- starke Verbesserung des Sitzungsmanagements :<br />
- <strong>ASP</strong>.<strong>NET</strong> kapselt die Sessioninformationen in den <strong>Web</strong>seiten selbst und erlaubt da<strong>mit</strong><br />
Verteilungen über mehrere Server hinweg möglich (ist bei Cookie-basierten Systemen<br />
sonst eine generelles Problem)<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 12<br />
6
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Das Response -Objekt<br />
- Das Response-Objekt stellt die (Rück-)Verbindung zum Server dar.<br />
- Hauptfunktion .write ( String) zum Schreiben <strong>von</strong> Text<br />
- Bei C#-Wandlung <strong>von</strong> Zahlen <strong>mit</strong>: Response.Write(Convert.ToString(6))<br />
- Ausgabepuffer kann explizit gesteuert werden <strong>mit</strong> Clear-, Flush- und End-<br />
Methoden<br />
- zusätzlich kann die Pufferung komplett abgeschaltet werden <strong>mit</strong><br />
<br />
- Weitere Funktionen Steuerung des Ausgabeflusses, z.B. Redirect auf eine andere<br />
Seite<br />
<br />
<br />
Sub SubPage_Load(obj Page_Load(objas as Object, Object, e as as EventArgs) EventArgs)<br />
Response.Redirect("http://www.microsoft.de")<br />
End End Sub Sub<br />
<br />
<br />
<br />
Hallo! Hallo!<br />
<br />
<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 13<br />
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Das Request-Objekt<br />
- Das Request-Objekt enthält die Daten vom Browserrequest.<br />
Für Get-Requests:<br />
Bsp.: Aufruf <strong>von</strong> http://www.myserver.de?id=123&option=V<br />
- Request.Querystring //liefert kompletten Request als Text: id=123&option=V<br />
- Request.Querystring("id") //liefert 123 zurück<br />
Für POST-Requests:<br />
- Request.Form //liefert alle Formularwerte zurück<br />
- Request.Form(name) //liefert einzelnen Wert anhand des Arguments<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 14<br />
7
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Das Cookie - Objekt<br />
- Über das Response-Objekt besteht auch Schreib-Zugriff auf die Cookies.<br />
Response.Cookies("MeinCookie").Value = "Einzelnes "Einzelnes Cookie" Cookie"<br />
Response.Cookies("Demobereich")("Benutzername") = “Tom" “Tom"<br />
Response.Cookies(" Demobereich Demobereich ")("Auflösung") ")("Auflösung") = “1024x780"<br />
“1024x780"<br />
Response.Cookies("Demobereich ").Expires ").Expires = DateTime.FromString("4/1/2002")<br />
Response.Cookies("Demobereich ").Expires ").Expires = DateTime.Now.AddMonths(1)<br />
- Über das Request-Objekt besteht analog Lese-Zugriff auf die Cookies.<br />
v1 v1 = Request.Cookies("MeinCookie").Value<br />
username username = Request.Cookies(" Request.Cookies(" Demobereich Demobereich ")("Benutzername")<br />
")("Benutzername")<br />
aulsg aulsg = Request.Cookies(" Request.Cookies(" Demobereich Demobereich ")("Auflösung")<br />
")("Auflösung")<br />
- Hinweis: Die Sessionverwaltung wird <strong>von</strong> <strong>ASP</strong>.<strong>NET</strong> durch wesentlich<br />
leistungsfähigere Methoden unterstützt.<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 15<br />
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Das Session -Objekt<br />
- Das Session-Objekt verwaltet Session-Informationen über bestimmte Zeiträume.<br />
- Unterscheidung erfolgt über eindeutige Session.SessionID (120bit-Wert)<br />
- Hauptmethoden<br />
Session(variablenname) = wert // Schreiben eines Sessionswertes<br />
Session.Add(variablenname, wert)<br />
v = Session(variablenname) // Lesen eines Sessionswertes<br />
- Zusätzliche Methoden<br />
Session.Timeout = 20 // Wert in Minuten<br />
Session.Abandon // Beendet (löscht) Session definiert !<br />
Vorgehensweise bei Browsern ohne Cookieunterstützung<br />
- Browser-Cookieunterstützung wird <strong>von</strong> <strong>ASP</strong>.<strong>NET</strong> überwacht<br />
- Bei fehlender Cookieunterstützung erfolgt AUTOMATISCHE Codierung der<br />
SessionID als Anhang in der URL ( Cookie-Munging ) :<br />
www.myserver.de/form1.aspx?SessionID=R2GeHTWSHD<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 16<br />
8
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Weitere Objekte<br />
Page-Objekt -enthält Eigenschaften, Methoden und Events der Seite, u.a. :<br />
- Eigenschaft IsPostBack - bei Wahr wurde die Seite das 2. Mail gesendet<br />
- Definiert auch DataBinding zur Datenbankanbindung<br />
- Event OnLoad – wird aktiviert bei Laden der Seite<br />
Sub SubPage_Load(obj Page_Load(objas as object, object, e as as eventArgs) eventArgs)<br />
dim dim intStunde intStundeas as integer integer = Jetzt.Hour: Jetzt.Hour: Dim Dim s as as string string<br />
If If intStunde intStunde < 12 12 then then s= s= "Guten "Guten Morgen!“ Morgen!“ elseif elseif intStunde intStunde > 12 12 & intStunde intStunde < 18 18<br />
then thens= s= "Guten "Guten Tag!“ Tag!“ else else s: s: = "Guten "Guten Abend!“ Abend!“<br />
End End If: If: Label1.Text Label1.Text += += s : : End End Sub Sub<br />
HttpApplication-Objekt – wird GENAU EINMAL pro Applikation gehalten :<br />
- Daten und Methoden dieses Objektes sind für die gesamte Anwendung verfügbar<br />
und beziehen sich nicht auf einen bestimmten Benutzer.<br />
- sehr hilfreich für globale Meldungen oder Manipulationen über alle Sessions<br />
Application(“AktWerbung")=“Werbung“...Response.Write(Application(" AktWerbung "))<br />
HttpServerUtility-Objekt -Server -stellt zentrale Hilfunktionen zur Verfügung<br />
- Weiterleitung zu anderer Seite OHNE Redirect per Browser (Ums. im Server selbst)<br />
If (strPasswort = “xxx") Then Server.Transfer("erfolgreich.aspx")<br />
Server.Execute(„zwischenrechnung“) - überträgt an andere Seite, kehrt jedoch zurück<br />
- HtmlEncode / HtmlDecode / UrlEncode / UrlDecode konvertiren jewiels nach den<br />
Regen <strong>von</strong> HTML oder URL´s : Server.HtmlEncode ("“) => <br><br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 17<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – <strong>Web</strong>formulare<br />
- <strong>Web</strong>formulare verwenden <strong>ASP</strong>.<strong>NET</strong>-spezifische Server-Steuerelemente,welche<br />
vom Server zur Generierung des eigentlichen HTML-Formulars verwendet werden :<br />
- Bei bekanntem Browser können dessen Eigenarten berücksichtigt werden.<br />
- Es lassen sich vom Server aus bereit die Verarbeitungsmethoden und Verknüpfungen<br />
vorbereiten (Reduzierung der <strong>Entwicklung</strong>saufwandes)<br />
- <strong>Web</strong>server-Steuerelemente stellen komplett neue Elemente bereit, welche später den<br />
Code für das Formularelement erzeugen :<br />
- Der <strong>ASP</strong>.<strong>NET</strong>-Server-Code <br />
- erzeugt für den Browser <br />
- HTML-Server-Steuerelemente stellen die bekannte HTMl-Formularelemente dar,<br />
ergänzt um das Attribut runat="server" – da<strong>mit</strong> besteht programmtechnischer<br />
Zugriff auf die Attribute des Steuerelementes<br />
- Prinzipiell können auch die HTML-Formularsteuerelemente verwendet werden.<br />
- Validierungssteuerelemente sind speziell zur Prüfung der Nutzereingaben<br />
vorgesehen<br />
- Mit Benutzer- Steuerelementen können neue, meist komplexe Steuerelemente durch<br />
den Entwickler definiert werden.<br />
Einsatzempfehlung<br />
- HTML-Server-Steuerelemente sinnvoll zur Migration <strong>von</strong> Standard-HTML zu <strong>ASP</strong><br />
- <strong>Web</strong>server-Steuerelemente bei Aufbau neuer Seiten<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 18<br />
9
MS - <strong>ASP</strong>.<strong>NET</strong> – HTML-Server-Steuerelement<br />
- Die Option runat="server" erlaubt die programmtechnische<br />
Manipulation des HTML-Codes (hier der Grafikausrichtung).<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – Benutzer -Steuerelement<br />
- Mit der Option @ Control kann ein neues, benutzerdefiniertes <strong>Web</strong>server-<br />
Steuerelemente definiert werden (Ablage in .ascx-Dateien )<br />
- Dabei sind auch Parameter definierbar (siehe HintergrundFarbe)<br />
<br />
<br />
public public HintergrundFarbe HintergrundFarbeas as String String = "White" "White"<br />
public publicBenutzername Benutzername as as string string<br />
public publicPasswort Passwort as as string string<br />
public public sub subSenden(obj Senden(objas as object, object, e as as eventargs) eventargs)<br />
Meldung.Text Meldung.Text = “Name:“ “Name:“ & Benutzer.Text Benutzer.Text & "PW:" "PW:" & Pass.Text Pass.Text<br />
end end sub sub<br />
<br />
<strong>ASP</strong>.<strong>NET</strong> – Dynamisches Erzeugen <strong>von</strong> Steuerelementen<br />
- es können durch <strong>ASP</strong>.<strong>NET</strong>-Code auf dem Server dynamisch<br />
Elemente erzeugt werden.<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – Datenbankanbindung<br />
- Es werden die bekannten .<strong>NET</strong>-Verfahren <strong>mit</strong> OLEDB verwendet.<br />
<br />
<br />
<br />
<br />
<br />
sub subPage_Load(obj Page_Load(objas as Object, Object, e as as EventArgs) EventArgs) 'Verbindung 'Verbindung konfigurieren<br />
konfigurieren<br />
dim dim objVerbindung objVerbindungas as new new OleDbConnection OleDbConnection _<br />
("Provider=<strong>Microsoft</strong>.Jet.OLEDB.4.0;" & "Data "Data Source=C:\daten\banking.mdb")<br />
'Verbindung 'Verbindung oeffnen oeffnen<br />
dim dim objCmd objCmdas as new newOleDbDataAdapter OleDbDataAdapter ("Select ("Select * * from from Adressen", Adressen", objVerbindung)<br />
objVerbindung)<br />
dim dim ds dsas as DataSet DataSet = new new DataSet(): DataSet(): rem rem Dataset Dataset füllen füllen<br />
objCmd.Fill(ds, objCmd.Fill(ds, "benutzerTabelle")<br />
"benutzerTabelle")<br />
'Datenansicht 'Datenansicht wählen wählen und und an an Server-Steuerelement binden binden<br />
MeineDataList.DataSource = ds.Tables("benutzerTabelle").DefaultView<br />
MeineDataList.DataBind()<br />
end end sub sub<br />
<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 25<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – Datenbankabruf<br />
- Itemlist iteriert selbständig über ALLE Datensätze<br />
- DataItem realisiert Zugriff auf Daten<br />
<br />
<br />
<br />
<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – Datenbankabruf<br />
- Spezielle Steuerelemente unterstützen komplexe Datenbankoperationen<br />
- DataGrid ist eines der leistungsstärksten Elemente<br />
%>'/><br />
<br />
/><br />
... ...<br />
<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – <strong>Web</strong>service-Client - <strong>Entwicklung</strong><br />
- Ausgehend <strong>von</strong> einem publizierten WS kann <strong>mit</strong> einem Assistenten<br />
(<strong>Web</strong>verweis hinzufügen) ein <strong>Web</strong>service-Client angelegt werden<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 29<br />
MS - <strong>ASP</strong>.<strong>NET</strong> – Aufruf des <strong>Web</strong>services<br />
- Über den importierten <strong>Web</strong>Service kann dann ein entsprechendes Zugriffsobjekt<br />
angelegt werden.<br />
- Über das Objekt sind die Servicedienste aufrufbar.<br />
Partial Partial Class Class _Default _Default<br />
Inherits Inherits System.<strong>Web</strong>.UI.Page<br />
Protected Protected Sub Sub Button1_Click(ByVal sender sender As As Object, Object, ByVal ByVal e As As<br />
System.EventArgs) System.EventArgs) Handles Handles Button1.Click<br />
Button1.Click<br />
Dim Dim webservice As As New New localhost.Service1()<br />
Dim Dim s As As String String<br />
s = webservice.HelloWorld()<br />
TextBox1.Text TextBox1.Text = "WS-Rückgabe:" "WS-Rückgabe:" & s<br />
End End Sub Sub<br />
End End Class Class<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 30<br />
15
<strong>Microsoft</strong> - <strong>ASP</strong>.<strong>NET</strong> – Zusammenfassung<br />
Vorteile :<br />
- <strong>ASP</strong>.<strong>NET</strong> ist durch das CodeBehind-Concept und die verfügbaren<br />
Steuerelemente sehr leistungsfähig und erlaubt schnelle<br />
<strong>Entwicklung</strong>szyklen<br />
- Anbindung an gesamte .<strong>NET</strong>-<strong>Entwicklung</strong>sschiene erlaubt<br />
Nachnutzung <strong>von</strong> eventuell vorhandenem .<strong>NET</strong>-Code<br />
Nachteile :<br />
- Bindung an <strong>Microsoft</strong> (.<strong>NET</strong>-Bibliothek, kompatibler Server bzw.<br />
IIS, Betriebssystem)<br />
- Die <strong>Entwicklung</strong> <strong>von</strong> <strong>Microsoft</strong> war in den letzten Jahren nicht<br />
immer investitionssichernd -> viele neue Technologien <strong>mit</strong> teilweise<br />
großen Sprüngen ohne die Option <strong>von</strong> sanften Migrationen<br />
Bewertung : bei bereits vorhandenem <strong>Microsoft</strong>-IT-Portfolio sinnvolle<br />
<strong>Entwicklung</strong>sumgebung<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 31<br />
<strong>Microsoft</strong> - Aktuelle <strong>Entwicklung</strong>en - Silverlight<br />
<strong>Microsoft</strong> Silverlight :<br />
- proprietäre Technologie <strong>von</strong> <strong>Microsoft</strong> <strong>mit</strong> Schwerpunkt auf<br />
Erstellung <strong>von</strong> Rich Internet Applications (RIAs)<br />
- benötigt (noch) entsprechendes Browser-Plug-ins<br />
- verfügbar für IE, Firefox, Safari und Opera (unter Win und Mac,<br />
teilweise auch für Linux (z.B. <strong>von</strong> Novell -> Moonlight)<br />
- abgeleitet aus der Windows Presentation Foundation (WPF/.<strong>NET</strong>3.0)<br />
- enthält auch eine Submenge der XAML (eXtensible Application<br />
Markup Language)-Beschreibungssprache<br />
- 2 Optionen für die Programmierung<br />
- eine JavaScript API, welche den Scriptcode durch den Browser interpretiert und<br />
direkt auch <strong>mit</strong> dem HTML-Code verknüpft werden<br />
- eine „managed API for Silverlight“, welche kompilierten Code der .<strong>NET</strong><br />
common language runtime (CLR) verwendet -> deutlich leistungsfähiger<br />
- Zielrichtung <strong>von</strong> MS<br />
- Gegengewicht zur Adobe Flash, durch .<strong>NET</strong>-Hinterland durchaus<br />
erfolgversprechend ...<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 32<br />
16
<strong>Microsoft</strong> - Silverlight – Architektur<br />
Quelle: MS - http://msdn.microsoft.com/en-us/library/bb404713(VS.95).aspx<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 33<br />
<strong>Microsoft</strong> - Silverlight – Versionen<br />
<strong>Microsoft</strong> Silverlight 1.0 :<br />
- besteht aus den Komponenten User-IO, User-Interface-Kern<br />
(Renderer), Medienwiedergabe und XAML–Controls<br />
- startet <strong>mit</strong> einem XAML-Canvas-Objekt, auf welchem verschiedene<br />
Grafikelemente darstellbar sind<br />
- Unterstützung <strong>von</strong> Ereignissen und Triggern<br />
<strong>Microsoft</strong> Silverlight 2.0 :<br />
- zusätzliche XAML-Controls (übernommen aus WPF)<br />
- neue Layout-Controls (z.B. StackPanel und das Grid)<br />
- verbesserte Datenanbindung (z.B. DataGrid, LINQ) und Funktionen<br />
zur flexiblen Netzwerkkommunikation (<strong>mit</strong> REST, RSS und WS)<br />
- integrierter Mediaplayer (für WMV), VC-1, HDV,WMA und MP3)<br />
<strong>Microsoft</strong> Silverlight 3.0 (ab Sommer 2009) :<br />
- zur Zeit (Juni 09) im Beta-Test (neues Plugin) – Freigabe der neuen<br />
Version ab Sommer 2009<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 34<br />
17
<strong>Microsoft</strong> - Silverlight – Beispiele<br />
Quelle: http://www.vectorlight.net/liquid_silverlight_controls_demo.aspx<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 35<br />
<strong>Microsoft</strong> - Silverlight – XAML - Basistechnologie<br />
- entwickelt für .Net 3.0 und .<strong>NET</strong> 3.5 für Windows Presentation<br />
Foundation (WPF) und Windows Workflow Foundation (WF)<br />
- allgemeine Beschreibungssprache für Desktop UND <strong>Web</strong>- Gui´s<br />
- für Silverlight wird Untermenge verwendet (früherer Name WPF/E -<br />
“Windows Presentation Foundation Everywhere“ )<br />
- Ereigniscode wird wieder als Code-Behind-Datei abgelegt<br />
Button b = new Button(); b.With=100; <strong>ASP</strong>.<strong>NET</strong>-Code<br />
b.Content = “Hello World!";<br />
b.OnClick += new ClickEvent Handler(HWButton_Click);<br />
Hallo Welt!<br />
<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 36<br />
18
<strong>Microsoft</strong> - Silverlight – LINQ - Basistechnologie<br />
LINQ - Language INtegrated Query<br />
- neue Daten- Abfragesprache ab .<strong>NET</strong> 3,0<br />
- im Gegensatz zu SQL werden Abfragen nicht als String sondern als<br />
(überprüfbarer) Code eingebunden<br />
- da<strong>mit</strong> Prüfung auf Fehler bereits im Compiler (und nicht zur Laufzeit)<br />
- unterstützt werden Datenbanken, XML, Textdaten etc.<br />
var Adressen = new XDocument( LINQ-Code für XML<br />
new XDeclaration("1.0", "utf-8", "yes"),<br />
new XElement("Container", "Inhalt") ... );<br />
string[] names = { "Burke", "Connor",<br />
SQL-like LINQ-Code<br />
"Frank","George", "Harris", "David" };<br />
IEnumerable expr = from s in names<br />
where s.Length == 5 orderby s select s.ToUpper();<br />
foreach (string item in expr)<br />
Console.WriteLine(item);<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 37<br />
<strong>Microsoft</strong> - Trends - Zusammenfassung<br />
- <strong>mit</strong> den aktuellen <strong>Entwicklung</strong>en hat <strong>Microsoft</strong> einige<br />
interessante Ansätze für eine effiziente <strong>Web</strong>entwicklung zu<br />
bieten<br />
- <strong>mit</strong> Silverlight besteht eine gute Konkurrenzsituation zu<br />
Flash<br />
- die Basistechnologien XAML und LINQ sind auch auf<br />
mobilen Geräte sehr effizient umsetzbar<br />
- für die .<strong>NET</strong>-<strong>Entwicklung</strong>sumgebungen Visual Studio<br />
2008 existieren entsprechende Erweiterungen für Silverlight<br />
<strong>Entwicklung</strong> webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 38<br />
19