26.11.2012 Aufrufe

Entwicklung von Web Applikationen mit Microsoft - ASP.NET

Entwicklung von Web Applikationen mit Microsoft - ASP.NET

Entwicklung von Web Applikationen mit Microsoft - ASP.NET

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 ("“) => &lt;br&gt;<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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!