NET-Architektur

Transcrição

NET-Architektur
Vorlesungsreihe
Grundlagen der Informatik – Teil 3
Die Microsoft - .NET-Architektur und
Web-Entwicklung MS - .NET
Prof. Dr.-Ing. Thomas Wiedemann
email: [email protected]
HOCHSCHULE FÜR TECHNIK UND WIRTSCHAFT DRESDEN (FH)
Fachbereich Informatik/Mathematik
Gliederung
Aktuelle Microsofttechnologien zur Entwicklung

.NET – Ausgangsmotivation und Grundkonzepte


Klassenbibliotheken und -konzepte
Webentwicklung mit ASP-NET

MS-Http-Server IIS (Internet Information Server )

frühe Technologien (Frontpage / ActiveX-Controls)

ASP und ASP.NET, Silverlight
Quellen :
MSDN - http://msdn.microsoft.com/de-de/asp.net/default.aspx
Buch : http://openbook.galileocomputing.de/asp/
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 2
.NET - Einführung & Ausgangslage
•
Programmierung der Windows-BS erfolgte zuerst mit Standard-C/C++ und ab Mitte
der 90er Jahre dann mit der MFC (-> vgl. VL MFC)
•
Parallel wurden von Microsoft weitere Programmiersprachen angeboten :
•
•
Visual Basic (als effiziente und komfortable Hintergrund-Scriptsprache für
Office)
•
J++ - eine MS-eigene Java-Implementierung -> Ärger mit Sun wegen PatentVerletzungen und Abweichungen vom Java-Standard …
Allgemeine Probleme mit diesen Technologien Ende der 90er Jahre:
•
keine einheitliche Datentypen und Aufrufstrukturen zwischen diesen Sprachen
(auch Versionsprobleme), insbesondere Probleme mit verschiedenen StringFormaten …
•
kein voller Sprachumfang in VB und J++ im Vergleich zu C++
•
Probleme mit Speicherverwaltung : VB / J++ automatisch, C++ ohne !
•
keine Portabilität auf Nicht-Windows-Rechner und mobile Geräte -> damit
schlechte Perspektiven Anfang 2000 im Vergleich zu Java !
3
.NET - Konzepte
Neue Strategie bei Microsoft Ende der 90er Jahre :
• komplettes Neu-Design der gesamten Entwicklungsumgebung
• starke Ausrichtung auf Webentwicklung -> Name : .NET
• Übernahme (bzw. Optimierung) von Java-Prinzipien :
• Übersetzung der jeweiligen Sprache in einen Zwischencode Common Intermediate Language (CIL)
•
(vor Standardisierung auch Microsoft CIL = MCIL)
• portable Ausführung des CIL-Codes innerhalb der
Common-Language-Infrastructure (CLI)
• Einheitliche Typen für alle Programmiersprachen - Common
Type System (CTS)
• Automatische Speicherverwaltung (Garbage Collection)
4
.NET – Architektur und Ablauf der Softwarentwicklung
Algorithmus
Basisarchitektur

bislang Fixierung der Tools und
Entw. auf genau eine Sprache

.NET unterstützt VIELE Sprachen
und übersetzt alle in eine gleiche
Zwischensprache – die Common
Intermediate Language (CIL)

Sprachen : C++/CIL, C#,
VB.NET, J# (Java-ähnl.) und weitere

Ausführung des Codes erfolgt
durch die Common Language
Runtime (CLR)-Laufzeitumgebung
Sourcecode in
C++
C#
VB
J#
...
EXE mit CIL
(einheitlicher Bytecode)
CLR - Infrastructure
(Interpreter / Ausführg.)
CL-Bibliotheken ( .NET
– Klassen-bibliothek )
durch Interpretation, damit prinzipiell
austauschbar und Prozessorunabhängig
Prozessor (beliebig)
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 5
.NET – Begriffe und Konzepte

.NET Framework : umfangreiche Klassenbibliothek zur Entwicklung von
Desktop-Anwendungen und Internetapplikationen

Framework Class Library (FCL) in der aktuelle Version 4.5 etwa 13.000 Klassen
und Datentypen in ca. 300 Namespaces

.NET Compact Framework für mobile Geräte (abgerüstet / kompakter)

zusammengefasst und dokumentiert im Software Development Kit (SDK)

Common Language Specification (CLS) definiert grundlegende Sprachfeatures,
welche von allen .NET-Sprachen verarbeitet werden -> möglichst nur diese verw. !

Common Type System (CTS) definiert entspr. Basistypen

In der CLR übersetzt ein Just-in-Time-Compiler (JIT) zur Laufzeit den CIL-Code
in Maschinencode des jeweiligen Prozessors – damit noch relativ performant, aber
prinzipbedingt langsamer als reiner C-Code

Assemblies (Baugruppen) bilden aus den exe- und dll-Dateien einer Anwendung
eine Einheit, welche durch ein Manifest beschrieben werden

Manifest der Assemblies enthält Versionsinformationen, Typenauflistungen, Liste
von Referenzen auf externe Ressourcen, ggf. Berechtigungen
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 6
.NET – Geschichte und Versionen

.NET Version 1.0 veröffentlicht 2002, V 1.1. 2003 als Bestandteil der IDE
Visual Studio.NET 2003 (VS)

.NET Framework 2.0 von 2005 im VS 2005 2000 mit vollst. 64-Bit-Support

.NET Framework 3.0 von 2006 zur Unterstützung der Anwendungsentw. für
Vista (verwendet noch CLR von NET2.0) mit neue Komponenten


Windows Presentation Foundation (GUI-Darstellg. durch Interpretation von XAML-XML-Def.)

Windows Communication Foundation, Windows Workflow Foundation, Windows CardSpace

Silverlight - stark verkleinerte Untermenge für Webbrowser zum Aufbau „reichhaltiger“
Webanwendungen (engl. Rich Internet Application – RIA).
.NET 3.5 von 2007 immer noch mit CLR 2.0 und mit VS 2008 mit teilweiser
Freigabe des Quellcodes unter
Debuggingzwecke freigegeben
der
Microsoft
Reference
Source
License
für

.NET 4.0 von 2010 - nur .NET 4.0 unterstützt noch alte XP- und Windows
2003 –Rechner

.NET 4.5 seit 2012, aktuell (2015) - Version 4.5.2 - keine größeren
Veränderungen gegenüber den vorherigen Versionen
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 7
.NET – Managed / unmanaged Code
Strikte Unterscheidung in

Verwalteter (Managed) Code :
- alle von der CIL/CLR
unterstützten Codeblöcke

Nur für diesen managed Code
wird die Sicherheit und
Zuverlässigkeit bei der
Ausführung garantiert !!!

Unmanaged Code : bisheriger
Code (z.B. C/C++/ VB)

Langfristig sollte für WindowsAnwendungen und Web-Anwendungen
auf MS-Basis nur noch managed Code
verwendet werden
Entwicklung webbasierter Anwendungen
-
Quelle : http://msdn.microsoft.com
Prof. T.Wiedemann
- HTW Dresden -
Folie 8
ASP.NET - Die Sprachen – Überblick

C++ : weitgehend kompatibel zum Standard - C++,
mit Ausnahme der Windows-spezifischen Bibliotheken

C# - nochmals verbessertes C++


Grundsyntax (if / for / while / switch) weitgehend identisch mit
kleinen Abweichungen

KEINE Zeiger mehr

ALLE Datentypen sind Objekte !
J# - zur Umsetzung von Javacode auf .NET

Syntax sehr ähnlich zu Java !

hat sich NICHT durchgesetzt und Microsoft hat im Januar 2007 die
Einstellung bis 2015 erklärt -> NICHT MEHR EINSETZEN !!!!
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 9
Die .NET-Klassenbibliothek
• Die aktuelle .NET-Klassenbibliothek umfasste in der Version 3.5
bereits etwa 11.400 Klassen und andere Datentypen.
•
Die aktuelle Version hat noch ca. 1500 neue Klassen mehr und kommt damit
auf ca. 13.000 Klassen …
• Ähnliche Klassenhierarchie wie bei der MFC.
• Die Basis der Hierarchie bildet die Wurzelklasse Object
(Jede andere Klasse des .NET Frameworks erbt deren Methoden. )
• Zur besseren Strukturierung sind diese Klassen in ca.
300 Namensräume (Namespaces) unterteilt.
• Die Dokumentation der Klassenbibliothek wird von Microsoft im
Software Development Kit (SDK) kostenlos mitgeliefert.
10
Die .NET- Object - Basismethoden
• Die Wurzelklasse Object verfügt über Basismethoden, welche
damit in ALLEN anderen Objekten ebenfalls zur Verfügung stehen :
•
Equals - vergleicht zwei Objektreferenzen und liefert WAHR, wenn beide gleich
sind
•
MemberwiseClone - dupliziert die aktuelle Instanz und liefert die Referenz auf das
Duplikat zurück.
•
Finalize – gibt Ressourcen der Klasse frei, wenn das Objekt zerstört wird
•
GetHashCode - geneiert einen objektspezifischen Identifizierer (analog zu einer
Quersumme über alle Daten-> kann z.<b. für Such- und Sortiervorgänge verwendet
werden …)
•
GetType - liefert die Referenz auf eine Type-Instanz zurück, die den Typ des
aktuellen Objekts beschreibt.
•
ToString - liefert den vollen Namen einer Klasse
11
Die .NET- Namespaces
• Die 300 Namensräume (Namespaces) von .NET sind ähnlich (aber
nicht gleich) wie die MFC-Klassenhierarchie unterteilt.
• Der Basis-Namespace ist
system
!
• Ausgehend von system können alle andere Namespaces durch
Anhängen des Namens eindeutig identifiziert werden !
Beispiele für Namespaces (incl. die Klassen):
• System.IO - Ein- und Ausgabeoperationen
• System.Drawing - grafische Funktionen (unter dem BS)
• System.Windows.Forms – für Windows-basierte Anwendungen
• System.Data – Datenbankfunktionen (über ADO.NET)
12
Weitere .NET- Namensräume

System.Collections und System.Collections.Specialized – definiert Aufzählungen
wie Listen, Hashtabellen und Dictionaries

System.Data.OleDB, System.Data.SqlClient - zum Zugriff auf Datenbanken,
spezielle Microsoft -Datenzugriffstechnologie ADO.NET, OLE-DB-Schnittstelle,
System. Data.SqlClient.für den Microsoft SQL Server

System.Net – stellt die bekannten Netzwerk- und Internetprotokolle bereit, z.B. die
Klassen HttpWebRequest und HttpWebResponse für die Abbildung des httpProtokolls

System.Text – zur effizienten Arbeit mit Texten (Strings)

System. Windows.Forms zum Aufbau von Desktop-Windows-Programmen

System.Web – zum Aufbau von Webservern mit MS-Technologie System.Web.UI für die Seite, System.Web.UI.HtmlControls für HTML-Elemente,
System.Web.UI.WebControls für Serverelemente e

System.Xml – Definition und Verarbeitung von XML-Daten
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 13
Die .NET – Runtime – Engine
Funktionen und Module des Runtime – Systems von .NET :
•
der Class Loader – zum Laden (Instanziieren) von Klassen
•
der Code Manager – welcher Ausführung des Codes verwaltet
•
die Security Engine - zur Berechtigungsverwaltung (=f(User))
•
der Type Checker –> Laufzeit –Typprüfungen -konvertierungen
•
der Garbage Collector für die automatische Speicher-Bereinigung (falls Objekte
nicht mehr benötigt werden)
•
der Exception Manager – zum Abfangen von Ausnahmen (=Laufzeitfehler)
behandlung unterstützt
•
die Debug Machine zum Debuggen der Anwendung
•
der JITter (Just in Time Compiler), um den CIL-Code zur Laufzeit in nativen
Prozessor-Code zu übersetzen
•
der Thread Service zur Unterstützung multithreading-fähiger Anwendungen
•
der COM Marshaller zur Kommunikation mit (alten) COM-Komponenten (COM
= Component Object Model = MFC –Technologie )
14
Die .NET- Assemblies
• Der VS-.NET-Compiler erzeugt als Ergebnis auch .exe oder
.dll –Dateien.
• Im Gegensatz zu VC98 (und anderen Compilern) sind in diesen
Dateien KEINE Maschinencodebefehle enthalten, sondern es
handelt sich um sogenannte Assemblies aus CIL-Code und
Verwaltungsinformationen :
•
Der IL_Code wird erst zur Laufzeit einer Anwendung vom JITter in nativen
Code des jeweiligen Prozessor kompiliert.
•
Eine Assembly auch mehrere Dateien (Ressourcen wie Bilder oder
Multimedia) enthalten.
•
Die Verwaltungsdaten enthalten Metadaten und beschreiben die AssemblyObjekte (Eigenschaften, Methoden, Aufrufparameter). Damit ist eine
vollständige Information für externe Programmaufrufe verfügbar !
•
Meist werden die Informationen im XML-Format gespeichert !
15
.NET – der aktuelle .NET-Framework – Stack
Entwicklung webbasierter Anwendungen
-

neue Funktionen für MulticoreProz. (ab 2010!)

ADO.NET - Datenbanken

Linq : SQL-ähnliche
Datenbanksprache mit Analyse
im Code (bisher nur als Text)

WPF / WF für InternetApplikationen
Prof. T.Wiedemann
- HTW Dresden -
Folie 16
.NET- Spezielle Technologien : WPF
WPF : Windows Presentation Foundation (kurz WPF)
• Grafik-Framework ab .NET 3.0
• wird mit Windows Vista und Windows 7 ausgeliefert
• (nachträgliche Install. auf XP und Server 2003 möglich)
• WPF stellt ein umfangreiches Programmiermodell bereit :
• Präsentation und die Geschäftslogik werden getrennt
• Unter Verwendung der Skriptprache XAML (XML-Format)
• GUI´s werden mit XML-Code beschrieben und sind damit portabel
auf verschiedenen Geräten (z.B. auch Smartphones etc.) , ggf. auch
durch Nutzung von Grafikkartenbeschleunigern
•
parallel auch Bereitstellung für Web-Oberflächen
17
Die .NET- Entwicklungsumgebungen von MS
• Parallel zur Entwicklung des .NET-Frameworks wurden von MS auch
entsprechende Entwicklungsumgebungen bereit gestellt (VisualStudio Versionen - 2003 / 2005 / 2008 / 2010 / 2013 …)
• Verschiedene Editionen :
•
Express Edition – kostenlose Version für einfache Projekte auf Basis von
Konsolen- und Windows-Anwendungen
•
Professional Edition – für professionellen Einsatz in kleineren
Entwicklerteams mit Projektvorlagen für die Entwicklung von Office-Projekten,
Webanwendungen, SharePoint etc. (ca. 1300 €)
•
Premium – zur Entwicklung von Enterprise Anwendungen (verteilte Anwendg.
/ bessere Qualitätssicherung.)
•
Ultimate mit integrierter Lebenszyklusverwaltung (ca. 4000 €)
• Die Versionen ab VS 2010 wurden teilweise wegen sehr großer
Hardwareanforderungen und geringer Performance kritisiert.
18
.NET - Allgemeine Bewertung

durch Hardwareunabhängigkeit nicht mehr auf PC´s angewiesen (Ihr Smartphone ?)

Mono-Projekt portiert Unix-Systeme (+Linux) -> Betriebssystemunabhängig !

Performance und Sicherheit :


eigenes .NET- Garbage-Collection – räumt „vergessene“ oder freigegebene
Speicherbereiche automatisch auf

Spezielle Version XNA basiert auf Visual C# Express und dient zur
Spieleentwicklung für MS Windows unter Verwendung der Technologien
Direct3D/DirectX für die schnelle Darstellung von 2D- und 3D-Grafiken

Sicherheit konnte deutlich gesteigert werden (Programm und Teile davon
laufen analog zu Java in einer eigenen Umgebung (Sandbox) ab

Bei normalen Windows-Programmen keine spürbaren Performanceeinbußen,
eher durch ungünstig programmierte Algorithmen !
Fazit : IN den letzten Jahren hat Microsoft in den Bereichen Performance
und Sicherheit deutlich verbessert und eine Entwicklung mit .NET kann
prinzipiell empfohlen werden (z.T. 4x effizienter als Java)
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 19
.NET- Einsatz im Bereich Automatisierungstechnik
Anwendunsgspezifische Zusammenfassung / Bewertung aus Sicht
der Automatisierungstechnik
• sinnvoll bei der Entwicklung komplexer Bedienoberflächen unter
Windows, für den Lowleveleinsatz eher nicht !!
• eher kritisch bei Einsatz im direkten Steuerungsumfeld,
da z.B. der Garbage-Collector nicht 100% ig definiert arbeitet
• Bindung an einen Hersteller aus Sicht des Monopols eher kritisch,
Konkurrenztechnologien (Sun (Java) wurde von Oracle gekauft,
andere Hersteller nicht mehr sehr stark) sind jedoch auch nicht
unkritisch
• gegenwärtig relativ hohe Investitionssicherheit durch Integration aller
neue MS-Technologien in .NET
20
Webentwicklung auf der Basis des MS-Http-Server IIS
Basis für Microsoft-Webanwendungen i.d.R. der IIS Server :
Historie :
• erste Version als Microsoft Internet Information Server als Zusatzpackage
für Windows NT 3.51.
• IIS 2.0 direkt integriert in Windows NT 4.0
• IIS 3.0 unterstützte erstmalig Active Server Pages –Programmierung
• IIS 4.0 mit zusätzlichen Modulen : Microsoft Transaction Server, MS Index
Server und Certificate Server
• IIS 5.0 direkt integriert in Windows 2000 integriert als „Microsoft Internet
Information Services“ (IIS 5.1 in WinXP Prof. für max. 10 Clients) .
• IIS 6.0 komplett neu entwickelt für Windows Server 2003 zur Lösung
vorhandener Sicherheitsprobleme ( Web Server Extension wie ASP, ASP
.NET, Internet Printing, Server Side Includes (SSI) nicht mehr per default
aktiv, sondern nur durch explizite Aktivierung)
• Microsoft Internet Information Services 7 in Windows Vista und in
Windows Server 2008 integriert
 Achtung: jedoch in Win 2008 nicht standardmäßig installiert, sondern über
Featureliste zu installieren !
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 21
Frühe Technologen (Frontpage / ActiveX-Controls)
MS Frontpage – mit MS Frontpage Extensions
•
•
•
proprietärer WYSIWYG-P-HTML-Editor (ab 1996 bei MS) mit speziellen
Erweiterungen zur serverseitigen Manipulation der Inhalte (analog zu Server Side
Includes (SSI) )
dynamische Erstellung von Menüs und Einbindung externer Objekte
Probleme :
 teilweise Generierung von nicht-standard-konformen HTML-Code
 Ausführung der FP-Extensions setzt MS-Frontpage-Extr.-kompatiblen Server
voraus (IIS oder Apache mit zusätzlich installierten Extensions)
• ab 2006 Ablösung durch Microsoft Expression Web
ActiveX
• MS-Softwarekomponenten, abgeleitet vom MS-COM-Standard
• Lauffähig nur im MS-Internet Explorer mit allen Rechten des Anwenders
• Hauptprobleme : keine Sicherheitsmechanismen – nur durch den ActiveXEntwickler und eine Akkreditierung -> potentielle Angriffsmöglichkeit
durch präparierte Webseiten mit manipulierten Active-Komponenten
•  Technologie hat sich nicht durchgesetzt ! Nicht mehr verwenden !!!
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 22
Microsoft - ASP
Active Server Pages (ASP) (heute auch Classic-ASP)
• Serverseitige Skriptsprache analog zu PHP oder Perl mit Interpretation
während der Ausführung - verfügbar sind VBScript und Jscript
• erster Einsatz 1996 mit IIS 3.0
• ab 2002 abgelöst durch ASP-NET
Vorteile :
• Relativ effiziente Entwicklung allein mit Texteditor ohne komplexe
Infrastruktur
Nachteile
• generell Vermischung von HTML ( Layout) und Code
Status
• wird noch für alte und kleinere Projekte eingesetzt
• ASP-Unterstützung muss im II7 explizit aktiviert werden :
• in der Datei applicationHost.config freischalten
<section name="asp" overrideModeDefault=“Allow" />
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 23
Microsoft - ASP - Beispiele
Direkte Einbindung in den HTML-Code
<html> <body>
<% response.write(“Hallo Welt in ASP ") %>
</body> </html>
Voller Zugriff auf die Ressourcen des Servers mit VB-Syntax
<%
dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fname=fs.CreateTextFile("c:\test.txt",true)
fname.WriteLine("Hello World!")
fname.Close
set fname=nothing
set fs=nothing
%>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 24
Microsoft - ASP - Beispiele
Dateneingabe mit Html-Standardformular
<html> <body>
<form method="get" action=„formular1.asp">
Vorname: <input type="text" name="Vorname" /><br />
Nachname : <input type="text" name="Nachname" /><br /><br />
<input type="submit" value="Submit" />
</form>
</body> </html>
Zugriff über das request-Objekt auf die Formulardaten
<% <body>
Welcome
<% response.write(request.querystring("Vorname"))
response.write(" " & request.querystring("Nachname"))
%>
</body>
%>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 25
Microsoft - ASP.NET
Überblick
- löst ASP (Classic-ASP) seit 2002 ab
- ASP.NET ist kein Upgrade zu ASP sondern eine völlig neue
Technologie auf der Basis von .NET
- behebt Hauptnachteil – Layout/Codemix von ASP durch
Trennung von Layout und Code in getrennten Dateien
- ASP.NET-Webseite können wahlfrei (auch unterschiedlich in
einem Projekt) in allen .Net-Sprachen (C, C#, VB.NET) aber
auch PHP programmiert werden
- Portierung für Linux mit dem Mono-Projekt (jedoch neue
Versionen mit Verzögerung, da keine direkte Unterstützung
durch MS)
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 26
Microsoft - ASP.NET – Code Behind Concept
Trennung von Layout und Code in getrennten Dateien
-
Ablage des (HTML-)Layouts in ASPX-Dateien
dabei Verwendung spezieller ASP.NET-Server-Steuerelemente
zugeordnete ASPX.VB-Dateien (bzw. .CS / .JS ) mit dem Code
ASP.NET-Code wird vorkompiliert (und komplett getestet – damit weniger
Probleme mit Syntaxfehlern zur Laufzeit)
ASPX-Datei HTML-Code
<%@ Page Language="vb"
AutoEventWireup="false"
CodeBehind="Default.aspx.vb"
Inherits="WebApplication1._Default"
%>
<html><body><form id="form1"
runat="server"> <div id="Ausgabe">
<asp:Button
ID="Button1" runat="server"
Text="Button" />
<asp:Label ID="Label1"
runat="server" Text="Label„ >
</asp:Label> ...
Entwicklung webbasierter Anwendungen
ASPX.VB-Datei mit ASP.NET-Progr.-Sprache (hier VB)
ASPX-Datei
Partial Public Class _Default Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Button1_Click(ByVal sender As Object,
ByVal e As EventArgs) Handles Button1.Click
Me.Label1.Text = "Neuer Text "
Me.Label1.BackColor = Drawing.Color.AliceBlue
Me.Label1.ForeColor = Drawing.Color.Red
End Sub End Class
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 27
Microsoft - ASP.NET – Ausführung
- ASPX-Dateien werden ebenfalls geparst und alle ASP.NET-ServerSteuerelemente (erkennbar an <asp:...> werden in Standard-HTMLElemente mit zusätzlichen, verborgenen Attributen umgewandelt
- Der Code wird als DLL generiert und auf den Server geladen.
Aus ASPX-Datei generierter HTML-Code
<body> <form name="form1" method="post" action="default.aspx" id="form1"> <div> <input
type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUKMjA3NjE4MDcz...==" /> </div> <div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"
value="/wEWAwLs8djLBQLs0bLrBgKM54rGBu/xe2+XB" /> </div>
<input name="TextBox1" type="text" value="hh" id="TextBox1" /> <br
/>&nbsp;&nbsp;&nbsp;
<input type="submit" name="Button1" value="Button" id="Button1" /> <br /> <span
id="Label1" style="color:Red;background-color:AliceBlue;">Neuer Text </span>
Code wird als DLL, PDB und
XML-Konfigurationsdatei im
Verzeichnis BIN abgelegt
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 28
Microsoft - ASP.NET – Direkte Ausführung in der ASPX
- analog zu ASP kann Code jedoch auch direkt in der ASPX-Datei ausgeführt
werden – (dann jedoch nur interpretiert und nicht vorkompiliert !)
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>
<html> <head> <title> ASP.NET-Demo1 </title>
<script runat="server">
Sub tfMeldung_Change(ByVal Sender As Object, ByVal E As EventArgs)
lblMeldung.Text = "Hallo " + tfMeldung.Text
lblMeldung.ForeColor = Drawing.Color.Brown
End Sub
</script> </head>
<body>
<font size="5">ASP.NET - Demo </font><hr><p>
<% Response.Write("Direkte Ausgabe ... <p>")%>
<form id="Form2" runat="server"> Bitte geben Sie Ihren Namen ein:
<asp:textbox id="tfMeldung" OnTextChanged="tfMeldung_Change"
runat="server"/>
<asp:button id="btSenden" Text="Senden" runat="server"/><p>
<asp:label id="lblMeldung" font-size="20pt" runat="server"/>
</form> </body></html>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 29
Microsoft - ASP.NET – Wesentliche Verbesserungen
Verbesserungen im Vergleich zu ASP
- Code-Compilierung verbessert die Performance deutlich (Kompilierter Code ist
verwalteter Code und wird von der Common Language Runtime (CLR) verwaltet.
Code wird zuerst in Microsoft Intermediate Language (MSIL) kompiliert und beim
Aufruf der Seite in native Maschinensprache übersetzt.
- Komplette Verfügbarkeit des gesamten .NET-Sprachumfangs statt VBScript (bzw.
Jscript) erhöht die Flexibilität und mögliche Komplexität von Applikationen
- Die Basissyntax entspricht der von VB.NET und C#.NET (siehe entsprechende Quellen)
- Besonderheiten und spezielle Objekte für die Webentwicklung werden nachfolgend kurz
vorgestellt.
-
-
es können neue ASP.NET-Server-Steuerelemente entwickelt und eingebunden
werden
ereignisgesteuerte Programmierung auf der Serverseite erleichtert die
Entwicklung
starke Verbesserung des Sitzungsmanagements :
- ASP.NET kapselt die Sessioninformationen in den Webseiten selbst und erlaubt damit
Verteilungen über mehrere Server hinweg möglich (ist bei Cookie-basierten Systemen
sonst eine generelles Problem)
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 30
Microsoft - ASP.NET – Das Response -Objekt
-
Das Response-Objekt stellt die (Rück-)Verbindung zum Server dar.
Hauptfunktion .write ( String) zum Schreiben von Text
- Bei C#-Wandlung von Zahlen mit: Response.Write(Convert.ToString(6))
-
Ausgabepuffer kann explizit gesteuert werden mit Clear-, Flush- und EndMethoden
zusätzlich kann die Pufferung komplett abgeschaltet werden mit
<% Response.Buffer = False %>
-
Weitere Funktionen Steuerung des Ausgabeflusses, z.B. Redirect auf eine andere
Seite
<%@ Page Language="VB" %>
<script runat="server">
Sub Page_Load(obj as Object, e as EventArgs)
Response.Redirect("http://www.microsoft.de")
End Sub
</script>
<html><body>
Hallo!
</body></html>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 31
Microsoft - ASP.NET – Das Request-Objekt
-
Das Request-Objekt enthält die Daten vom Browserrequest.
Für Get-Requests:
Bsp.: Aufruf von http://www.myserver.de?id=123&option=V
- Request.Querystring
//liefert kompletten Request als Text: id=123&option=V
- Request.Querystring("id") //liefert 123 zurück
Für POST-Requests:
- Request.Form //liefert alle Formularwerte zurück
- Request.Form(name) //liefert einzelnen Wert anhand des Arguments
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 32
Microsoft - ASP.NET – Das Cookie - Objekt
-
Über das Response-Objekt besteht auch Schreib-Zugriff auf die Cookies.
Response.Cookies("MeinCookie").Value = "Einzelnes Cookie"
Response.Cookies("Demobereich")("Benutzername") = “Tom"
Response.Cookies(" Demobereich ")("Auflösung") = “1024x780"
Response.Cookies("Demobereich ").Expires = DateTime.FromString("4/1/2002")
Response.Cookies("Demobereich ").Expires = DateTime.Now.AddMonths(1)
-
Über das Request-Objekt besteht analog Lese-Zugriff auf die Cookies.
v1 = Request.Cookies("MeinCookie").Value
username = Request.Cookies(" Demobereich ")("Benutzername")
aulsg =
Request.Cookies(" Demobereich ")("Auflösung")
-
Hinweis: Die Sessionverwaltung wird von ASP.NET durch wesentlich
leistungsfähigere Methoden unterstützt.
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 33
Microsoft - ASP.NET – Das Session -Objekt
-
Das Session-Objekt verwaltet Session-Informationen über bestimmte Zeiträume.
Unterscheidung erfolgt über eindeutige Session.SessionID (120bit-Wert)
Hauptmethoden
Session(variablenname) = wert // Schreiben eines Sessionswertes
Session.Add(variablenname, wert)
v = Session(variablenname) // Lesen eines Sessionswertes
-
Zusätzliche Methoden
Session.Timeout = 20 // Wert in Minuten
Session.Abandon // Beendet (löscht) Session definiert !
Vorgehensweise bei Browsern ohne Cookieunterstützung
- Browser-Cookieunterstützung wird von ASP.NET überwacht
- Bei fehlender Cookieunterstützung erfolgt AUTOMATISCHE Codierung der
SessionID als Anhang in der URL ( Cookie-Munging ) :
www.myserver.de/form1.aspx?SessionID=R2GeHTWSHD
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 34
Microsoft - ASP.NET – Weitere Objekte
Page-Objekt -enthält Eigenschaften, Methoden und Events der Seite, u.a. :
- Eigenschaft IsPostBack - bei Wahr wurde die Seite das 2. Mail gesendet
- Definiert auch DataBinding zur Datenbankanbindung
- Event OnLoad – wird aktiviert bei Laden der Seite
Sub Page_Load(obj as object, e as eventArgs)
dim intStunde as integer = Jetzt.Hour: Dim s as string
If intStunde < 12 then s= "Guten Morgen!“ elseif intStunde > 12 & intStunde < 18
then s= "Guten Tag!“ else s: = "Guten Abend!“
End If:
Label1.Text += s
: End Sub
HttpApplication-Objekt – wird GENAU EINMAL pro Applikation gehalten :
- Daten und Methoden dieses Objektes sind für die gesamte Anwendung verfügbar
und beziehen sich nicht auf einen bestimmten Benutzer.
- sehr hilfreich für globale Meldungen oder Manipulationen über alle Sessions
Application(“AktWerbung")=“Werbung“...Response.Write(Application(" AktWerbung "))
HttpServerUtility-Objekt - Server - stellt zentrale Hilfunktionen zur Verfügung
-
Weiterleitung zu anderer Seite OHNE Redirect per Browser (Ums. im Server selbst)
If (strPasswort = “xxx") Then Server.Transfer("erfolgreich.aspx")
Server.Execute(„zwischenrechnung“) - überträgt an andere Seite, kehrt jedoch zurück
-
HtmlEncode / HtmlDecode / UrlEncode / UrlDecode konvertiren jewiels nach den
Regen von HTML oder URL´s : Server.HtmlEncode ("<br>“) => &lt;br&gt;
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 35
MS - ASP.NET – Webformulare
-
Webformulare verwenden ASP.NET-spezifische Server-Steuerelemente,welche
vom Server zur Generierung des eigentlichen HTML-Formulars verwendet werden :
- Bei bekanntem Browser können dessen Eigenarten berücksichtigt werden.
- Es lassen sich vom Server aus bereit die Verarbeitungsmethoden und Verknüpfungen
vorbereiten (Reduzierung der Entwicklungsaufwandes)
-
Webserver-Steuerelemente stellen komplett neue Elemente bereit, welche später den
Code für das Formularelement erzeugen :
- Der ASP.NET-Server-Code <asp:Button text="Senden" runat="server" />
- erzeugt für den Browser <input type="submit" name="ctrl1" value="Senden" />
-
HTML-Server-Steuerelemente stellen die bekannte HTMl-Formularelemente dar,
ergänzt um das Attribut runat="server" – damit besteht programmtechnischer
Zugriff auf die Attribute des Steuerelementes
- Prinzipiell können auch die HTML-Formularsteuerelemente verwendet werden.
- Validierungssteuerelemente sind speziell zur Prüfung der Nutzereingaben
vorgesehen
- Mit Benutzer- Steuerelementen können neue, meist komplexe Steuerelemente durch
den Entwickler definiert werden.
Einsatzempfehlung
- HTML-Server-Steuerelemente sinnvoll zur Migration von Standard-HTML zu ASP
- Webserver-Steuerelemente bei Aufbau neuer Seiten
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 36
MS - ASP.NET – HTML-Server-Steuerelement
- Die Option runat="server" erlaubt die programmtechnische
Manipulation des HTML-Codes (hier der Grafikausrichtung).
<script runat="server">
Sub Klick(obj as object, e as EventArgs)
select case obj.Value
case "Links" wort_bild.align = "left"
case "Rechts" wort_bild.align = "right"
End select
End Sub
</script>
<html><body>ASP.NET –Demo –HTML-Web-Steuerlemente <hr><p>
<form runat="server">
<input type="Button" id="Links" runat="server“
Value="Links„ nServerClick="Klick" />
<input type="Button" id="Rechts" runat="server"
Value="Rechts" OnServerClick="Klick" />
</form
<img src="wort.gif" id="wort_bild" runat="server">
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 37
MS - ASP.NET – Webserver-Steuerelement
- Bei Webserver-Steuerelementen muss sich der Entwickler nicht um
die Generierung der Index-Werte u.ä. kümmern.
<script runat="server">
sub Senden(obj as object, e as eventargs)
dim strAlter as string = Alter.SelectedItem.Text
lblMeldung.Text = "Hallo " & tfName.Text & "!<p>" & "Ihr Alter: " & strAlter & "<br>"
If Alter.SelectedIndex < 2 then lblMeldung.Text += "Sie sind aber jung!<p>"
End sub </script>
<html><body> <form runat="server">
<asp:Label id="lblMeldung" runat="server"/><p>
Ihr Alter:
<asp:RadioButtonList id="Alter" runat="server" RepeatDirection="horizontal">
<asp:ListItem><0-20</asp:ListItem>
<asp:ListItem>20-40</asp:ListItem>
</asp:RadioButtonList><p>
<asp:Button id="btSenden" runat="server"
Text="Senden" OnClick="Senden" />
</form></body></html>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 38
MS - ASP.NET – Benutzer -Steuerelement
-
Mit der Option @ Control kann ein neues, benutzerdefiniertes WebserverSteuerelemente definiert werden (Ablage in .ascx-Dateien )
Dabei sind auch Parameter definierbar (siehe HintergrundFarbe)
<%@ Control Language="VB" %>
<script language="VB" runat="server">
public HintergrundFarbe as String = "White"
public Benutzername as string
public Passwort as string
public sub Senden(obj as object, e as eventargs)
Meldung.Text = “Name:“ & Benutzer.Text & "PW:" & Pass.Text
end sub
</script>
<table style="background-color:<%=HintergrundFarbe%>;font: 10pt verdana; >
<tr><td><b>Name: </b></td>
<td> <ASP:TextBox id="Benutzer" runat="server"/></td>
</tr><tr> <td><b>Passwort: </b></td>
<td> <ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr><tr><td></td>
<td><ASP:Button Text="Senden" runat="server" OnClick="Senden" /></td>
</tr> </table>
<ASP:Label id= “Meldung" runat="server"/>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 39
ASP.NET –Einbindung eines Benutzer-Steuerelement
-
Mit der Option <%@ Register wird ein benutzerdefiniertes WebserverSteuerelement eingebunden (Laden aus .ascx-Dateien )
Parameter können angeben werden definierbar (siehe HintergrundFarbe)
<%@ Page Language="VB" %>
<%@ Register TagPrefix="ASPNET" TagName="AnmeldeFormular" _
src="AnmeldeFormular.ascx" %>
<html><body>
<form runat="server">
<ASPNET:Anmeldeformular id="Anmeldeformular1" runat="server"
Passwort="MeinPasswort"
Benutzername="Chris"
HintergrundFarbe= “red" />
</form>
</body></html>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 40
ASP.NET – Dynamisches Erzeugen von Steuerelementen
- es können durch ASP.NET-Code auf dem Server dynamisch
Elemente erzeugt werden.
<script language="VB" runat="server">
sub Page_Load(obj as object, e as eventargs)
dim objTF as TextBox
objTF.ID = "tfEins"
objTF.Text = "Hallo "
Page.Controls.Add(objTF)
end sub
</script>
-
Das Anbinden von Ereignissen muss mit derMethode AddHandler erflgen :
-
AddHandler objTF.TextGeandert,
Entwicklung webbasierter Anwendungen
-
addressOf MyFunction
Prof. T.Wiedemann
- HTW Dresden -
Folie 41
MS - ASP.NET – Validierungssteuerelemente
-
Validierungs-Steuerelemente dienen zur client- UND serverseitigen Überprüfung
von Nutzereingaben und ergänzen i.d.R. ein Webserver-Steuerelement
vom Server werden auch die entsprechenden Javascript-Codes für die
Clientsseitige Validierung erzeugt.
<%@ Page Language="VB" %>
<script runat="server">
sub Senden(obj as object, e as eventargs)
If Page.IsValid then lblMeldung.Text = "Seite OK !“
End sub
</script> <html><body>
<form runat="server"> <asp:Label id="lblMeldung" runat="server"/><p>
Name: <asp:TextBox id=“Name" runat="server" /><br>
<asp:RequiredFieldValidator runat="server" ControlToValidate=“Name“
ErrorMessage=“Name erforderlich"/><p>
<asp:Button id="btnSenden" runat="server„ Text="Senden" OnClick="Senden" />
</form></body></html>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 42
MS - ASP.NET – Datenbankanbindung
- Es werden die bekannten .NET-Verfahren mit OLEDB verwendet.
<asp:Button id="btnSenden" runat="server„ Text="Senden" OnClick="Senden" />
</form></body></html>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
sub Page_Load(obj as Object, e as EventArgs) 'Verbindung konfigurieren
dim objVerbindung as new OleDbConnection _
("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\daten\banking.mdb")
'Verbindung oeffnen
dim objCmd as new OleDbDataAdapter ("Select * from Adressen", objVerbindung)
dim ds as DataSet = new DataSet(): rem Dataset füllen
objCmd.Fill(ds, "benutzerTabelle")
'Datenansicht wählen und an Server-Steuerelement binden
MeineDataList.DataSource = ds.Tables("benutzerTabelle").DefaultView
MeineDataList.DataBind()
end sub
</script>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 43
MS - ASP.NET – Datenbankabruf
-
Itemlist iteriert selbständig über ALLE Datensätze
DataItem realisiert Zugriff auf Daten
<html><body>
<ASP:DataList id="MeineDataList" RepeatColumns="2"
RepeatDirection="Vertical" runat="server">
<ItemTemplate>
<div style="padding:15,15,15,15;font-size:10pt; font-family:Verdana">
<div><i><b> <%# DataBinder.Eval(Container.DataItem, "Vorname")%> &nbsp;
<%# DataBinder.Eval(Container.DataItem, "Nachname")%>
</i></b>
</div><br>
<b>Adresse: </b><%# DataBinder.Eval(Container.DataItem, "Adresse") %><br>
<b>Ort: </b><%# DataBinder.Eval(Container.DataItem, "Ort")%><br>
<b>Bundesland: </b><%# DataBinder.Eval(Container.DataItem, "Bundesland")
...
</div>
<
</ItemTemplate>
</ASP:DataList>
</body></html>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 44
MS - ASP.NET – Datenbankabruf
-
Spezielle Steuerelemente unterstützen komplexe Datenbankoperationen
DataGrid ist eines der leistungsstärksten Elemente
<asp:DataGrid id="DataGrid1" runat="server"
BorderColor="black" : GridLines="Vertical" : Rem weitere Formatierungen ....
<Columns>
<asp:TemplateColumn HeaderText="Name"> <ItemTemplate>
<asp:Label id="Name" runat="server" Text='<%#_
Container.DataItem("Vorname") & " " & Container.DataItem("Nachname") %>'/>
</ItemTemplate> </asp:TemplateColumn>
<asp:BoundColumn HeaderText="Adresse" DataField="Adresse" />
<asp:BoundColumn HeaderText="Stadt" DataField="Stadt"/> ...
<asp:HyperlinkColumn HeaderText="Bearbeiten" text="Bearbeiten"
NavigateURL="bearbeiten.aspx"/>
<asp:ButtonColumn HeaderText="Löschen?" text="X„ CommandName="delete"
ButtonType="PushButton"/>
</Columns>
</asp:DataGrid>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 45
MS - ASP.NET – Webservice-Entwicklung
-
Option Webservice definiert Webservice – Dienst (Server-seitig)
Ablage in .asmx-Datei
ASP.Net generiert auch zusätzliche Dokumentationsseiten (siehe unten)
<%@ WebService Language="VB" Class="Taschenrechner" %>
Imports System.Web.Services
public Class Taschenrechner : Inherits WebService
<WebMethod()>
Public Function Addieren(intA As Integer, intB As Integer) As Integer
Return(intA + intB)
End Function
End Class
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 46
MS - ASP.NET – Webservice-Client - Entwicklung
- Ausgehend von einem publizierten WS kann mit einem Assistenten
(Webverweis hinzufügen) ein Webservice-Client angelegt werden
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 47
MS - ASP.NET – Aufruf des Webservices
-
Über den importierten WebService kann dann ein entsprechendes Zugriffsobjekt
angelegt werden.
Über das Objekt sind die Servicedienste aufrufbar.
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
Handles Button1.Click
System.EventArgs)
Dim webservice As New localhost.Service1()
Dim s As String
s = webservice.HelloWorld()
TextBox1.Text = "WS-Rückgabe:" & s
End Sub
End Class
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 48
Microsoft - ASP.NET – Zusammenfassung
Vorteile :
- ASP.NET ist durch das CodeBehind-Concept und die verfügbaren
Steuerelemente sehr leistungsfähig und erlaubt schnelle
Entwicklungszyklen
- Anbindung an gesamte .NET-Entwicklungsschiene erlaubt
Nachnutzung von eventuell vorhandenem .NET-Code
Nachteile :
- Bindung an Microsoft (.NET-Bibliothek, kompatibler Server bzw.
IIS, Betriebssystem)
- Die Entwicklung von Microsoft war in den letzten Jahren nicht
immer investitionssichernd -> viele neue Technologien mit teilweise
großen Sprüngen ohne die Option von sanften Migrationen
Bewertung : bei bereits vorhandenem Microsoft-IT-Portfolio sinnvolle
Entwicklungsumgebung
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 49
Microsoft - Aktuelle Entwicklungen - Silverlight
Microsoft Silverlight :
- proprietäre Technologie von Microsoft mit Schwerpunkt auf
Erstellung von Rich Internet Applications (RIAs)
- benötigt (noch) entsprechendes Browser-Plug-in
- verfügbar für IE, Firefox, Safari und Opera (unter Win und Mac,
teilweise auch für Linux (z.B. von Novell -> Moonlight) )
- abgeleitet aus der Windows Presentation Foundation (WPF/.NET3.0)
- enthält auch eine Submenge der XAML (eXtensible Application
Markup Language)-Beschreibungssprache
- 2 Optionen für die Programmierung
-
eine JavaScript API, welche den Scriptcode durch den Browser interpretiert und
direkt auch mit dem HTML-Code verknüpft werden
- eine „managed API for Silverlight“, welche kompilierten Code der .NET
common language runtime (CLR) verwendet -> deutlich leistungsfähiger
- Zielrichtung von MS
- Gegengewicht zur Adobe Flash, durch .NET-Hinterland durchaus
erfolgversprechend ...
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 50
Microsoft - Silverlight – Architektur
Quelle: MS - http://msdn.microsoft.com/en-us/library/bb404713(VS.95).aspx
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 51
Microsoft - Silverlight – Versionen
Microsoft Silverlight 1.0 :
- besteht aus den Komponenten User-IO, User-Interface-Kern
(Renderer), Medienwiedergabe und XAML–Controls
- startet mit einem XAML-Canvas-Objekt, auf welchem verschiedene
Grafikelemente darstellbar sind
- Unterstützung von Ereignissen und Triggern
Microsoft Silverlight 2.0 :
- zusätzliche XAML-Controls (übernommen aus WPF)
- neue Layout-Controls (z.B. StackPanel und das Grid)
- verbesserte Datenanbindung (z.B. DataGrid, LINQ) und Funktionen
zur flexiblen Netzwerkkommunikation (mit REST, RSS und WS)
- integrierter Mediaplayer (für WMV), VC-1, HDV,WMA und MP3)
Microsoft Silverlight 3.0 (ab Sommer 2009) :
- zur Zeit (Juni 09) im Beta-Test (neues Plugin) – Freigabe der neuen
Version ab Sommer 2009
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 52
Microsoft - Silverlight – Beispiele
Quelle: http://www.vectorlight.net/liquid_silverlight_controls_demo.aspx
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 53
Microsoft - Silverlight – XAML - Basistechnologie
- entwickelt für .Net 3.0 und .NET 3.5 für Windows Presentation
Foundation (WPF) und Windows Workflow Foundation (WF)
- allgemeine Beschreibungssprache für Desktop UND Web- Gui´s
- für Silverlight wird Untermenge verwendet (früherer Name WPF/E “Windows Presentation Foundation Everywhere“ )
- Ereigniscode wird wieder als Code-Behind-Datei abgelegt
ASP.NET-Code
Button b = new Button(); b.With=100;
b.Content = “Hello World!";
b.OnClick += new ClickEvent Handler(HWButton_Click);
XAML-Code
<Button Name="C_Button" Width="100"
DockPanel.Dock="Fill" Click="HWButton_Click"
Margin="10,10,10,10"> Hallo Welt!
</Button>
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 54
Microsoft - Silverlight – LINQ - Basistechnologie
LINQ - Language INtegrated Query
- neue Daten- Abfragesprache ab .NET 3,0
- im Gegensatz zu SQL werden Abfragen nicht als String sondern als
(überprüfbarer) Code eingebunden
- damit Prüfung auf Fehler bereits im Compiler (und nicht zur Laufzeit)
- unterstützt werden Datenbanken, XML, Textdaten etc.
LINQ-Code für XML
var Adressen = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Container", "Inhalt") ... );
string[] names = { "Burke", "Connor",
"Frank","George", "Harris", "David" };
SQL-like LINQ-Code
IEnumerable<string> expr = from s in names
where s.Length == 5 orderby s select s.ToUpper();
foreach (string item in expr)
Console.WriteLine(item);
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 55
Microsoft - Trends - Zusammenfassung
- mit den aktuellen Entwicklungen hat Microsoft einige
interessante Ansätze für eine effiziente Webentwicklung
zu bieten
- mit Silverlight besteht eine gute Konkurrenzsituation zu
Flash
- die Basistechnologien XAML und LINQ sind auch auf
mobilen Geräte sehr effizient umsetzbar
- für die .NET-Entwicklungsumgebungen Visual Studio
existieren entsprechende Erweiterungen für Silverlight
- Silverlight wird wahrscheinlich in den nächsten Jahren
durch die neueren HTML5-Technologien abgelöst
Entwicklung webbasierter Anwendungen
-
Prof. T.Wiedemann
- HTW Dresden -
Folie 56