Kapitel 10: ASP.NET. SoPra 2008 Kap. 10: ASP.NET (1/25)



Ähnliche Dokumente
ASP.NET Grundlagen. Was ist ASP.NET

Session Management und Cookies

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Microsoft.NET & IBM System i - Webanwendungen mit AJAX - I Christian Neißl,

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Applets I. Grundlagen der g Applet-Programmierung

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

RESTful Web. Representational State Transfer

ASP.NET. von Patrick A. Lorenz. 1. Auflage. ASP.NET Lorenz schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG. Hanser München 2002

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Web Engineering.

Lokale Installation von DotNetNuke 4 ohne IIS

Erstellung botoptimierter Partnerlinks

Sicherheit in Rich Internet Applications

Dynamische Webseiten mit PHP 1

Java zur Realisierung von Internetanwendungen

Internetanbindung von Datenbanken

Microsoft.NET & IBM System i - Webanwendungen und Webservices II Christian Neißl,

Dokumentation: Content App Framework

Wiederholung: Beginn

GEONET Anleitung für Web-Autoren

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Java - Webapplikationen

Leseprobe. Webseiten entwickeln mit ASP.NET

Multivariate Tests mit Google Analytics

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Einführung Internettechnologien. - Clientseitige Programmierung -

Installation des edu- sharing Plug- Ins für Moodle

AJAX Implementierung mit Joomla!

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

Proseminar: Website-Management-Systeme

Zeitstempel für digitale Dokumente. Ein neuer Dienst in der DFN-PKI

Eltako-FVS. Lizenzaktivierung ohne Internetverbindung

Datenbank-basierte Webserver

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Installationsleitfaden zum Fakturierungsprogramm

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Auszug aus JAX-WS Folien

Programmieren 2 (Prof. Hasbargen) Klausur

Microsoft.NET und SunONE

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Dokumentation Externe Anzeige von Evento Web Dialogen

Adminer: Installationsanleitung

Herzlich willkommen im Modul Web-Engineering

5.2 Neue Projekte erstellen

Architektur des agimatec-validation Frameworks

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

Java: Vererbung. Teil 3: super()

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Benutzerinformation zum IP-Update: Wie aktualisiere ich meine IP-Adresse? Datenstand: / Version 1.0

NEWpixi* API und die Umstellung auf REST. Freitag, 3. Mai 13

Online-Publishing mit HTML und CSS für Einsteigerinnen

Step by Step Webserver unter Windows Server von Christian Bartl

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

7 SharePoint Online und Office Web Apps verwenden

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Multimedia Engineering II - Übung 2

ASP: Active Server Pages

.NET Framework. 3. Das.NET Framework

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

4 Installation und Verwaltung

goalio Documentation Release goalio UG

XMLBeam. Einfach XML-Handling. W3L AG

Anwendungsprotokolle: HTTP, POP, SMTP

Browserbasiertes, kollaboratives Whiteboard

Einrichtung Secure-FTP

Datenbanksysteme SS 2007

Informatik I: Einführung in die Programmierung

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

12. Dokumente Speichern und Drucken

Wordpress am eigenen Server installieren

Erste Schritte mit Sharepoint 2013

Support-Tipp Mai Release Management in Altium Designer

Kurzanweisung für Google Analytics

Information über die WebServices der Parlamentsdienste

NETZWERKINSTALLATION DER MAGIX ACADEMIC SUITE

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Java Webentwicklung (mit JSP)

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

MCRServlet Table of contents

Objektorientierte Programmierung

Durch Standardisierung können Webservices von jedem Cluster verwendet werden, unabhängig von Betriebssystem und verwendeter Sprache.

Applications Applets (eingeschränkte Rechte)

Clientkonfiguration für Hosted Exchange 2010

Kommunikations-Parameter

HTML Formulare. Benutzerschnittstelle für interaktive Webseiten

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Internet und WWW Übungen

Sicherheit in Webanwendungen CrossSite, Session und SQL

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Transkript:

Kapitel 10: ASP.NET SoPra 2008 Kap. 10: ASP.NET (1/25)

Webanwendungen Wie programmiert man Webseiten? Experten für JavaScript, DOM benötigt? Jede dynamische Version jeder Webseite extra erstellen? Spezialanpassungen pro Browser? Experten für PHP, Perl,... benötigt? SoPra 2008 Kap. 10: ASP.NET (2/25)

Webanwendungen Lösung Programmiermodell Trennung von statischen und dynamischen Teilen, Trennung von GUI-Elementen und Anwendungslogik Programmierung in ordentlicher Programmiersprache dazu passende Laufzeitumgebung auf dem Server Laufzeitumgebung generiert HTML/JavaScript SoPra 2008 Kap. 10: ASP.NET (3/25)

Webanwendungen Vorteile Übersichtlich, wartbar, wiederverwendbar Keine Spezialkenntnisse nötig Beliebige Programmiersprachen unterstützt Bibliotheken für (komplexe) Standardelemente Einheitliches Look-and-Feel SoPra 2008 Kap. 10: ASP.NET (4/25)

Das.NET Framework VB C++ C# JScript J# Common Language Specification Windows Forms ASP.NET Web Services.NET Framework Class Library Common Language Runtime Windows Operating System Common Language: Microsoft Intermediate Language Typsystem, Metadaten, plattformunabhängig, Just-in-time Compiler entspricht ungefähr Java Byte Code SoPra 2008 Kap. 10: ASP.NET (5/25)

ASP.NET Framework für Webseiten und Controls (Themes, Skins, Web parts, Master pages) ASP.NET Compiler Benutzerauthentisierung und -autorisierung Unterstützung für Zustandsinformation zwischen Seitenzugriffen Unterstützung für Debugging/Tracing XML Web Services Deployment von Anwendungen AJAX Erweiterungen SoPra 2008 Kap. 10: ASP.NET (6/25)

ASP.NET Trennung von Code und Daten (Code-behind) GUI-Elemente (Controls), statische Teile, html: name.aspx C#-Methoden, Anwendungslogik: name.aspx.cs Zusammenhang über Events name.aspx und name.aspx.cs werden zusammen in.dll kompiliert. URL name.aspx: von.net Framework generierte Seite SoPra 2008 Kap. 10: ASP.NET (7/25)

Beispiel: Calendar.aspx <%@ Page Language="C#" CodeFile="Calendar.aspx.cs" %> <html xmlns="http://www.w3.org/1999/xhtml" > <body> <form id="form1" runat="server"> <asp:label ID="Label1" runat="server" BackColor="#C0FFC0" Font-Bold="True" Font-Size="XX-Large" Text="Mein Calender" Width="216px"> </asp:label> <asp:calendar ID="Calendar1" runat="server" OnSelectionChanged="update"> viele Attribute... </asp:calendar></body></html> SoPra 2008 Kap. 10: ASP.NET (8/25)

ASP.NET ASP.NET Web Controls: Attribut runat="server": Benutzerinteraktion wird zum Server zurückgeschickt (Standard HTML-Attribut) Neue Elemente: asp:label, asp:calendar, asp:updatepanel Neue Attribute: SelectedDayStyle Neue Events: OnSelectionChanged="update" Ajax: z. B. ajaxtoolkit:autocompleteextender SoPra 2008 Kap. 10: ASP.NET (9/25)

Mein Kalender SoPra 2008 Kap. 10: ASP.NET (10/25)

Der Browser erhält...... eine Standard HTML-Seite (ohne spezielle Tags) mit... hidden form für Benutzeraktionen + interner Zustand mit eventtarget, eventargument, viewstate, eventvalidation JavaScript-Methode den Kalender als <table> dopostback (füllt die Form und schickt sie weg) Jeder Tag: <a href="javascript: dopostback( Calendar1, 2330 )" (2330: Anzahl Tage seit 1.1.2000... ) Viele Style-Anweisungen Unterschiedlicher Code pro Browser SoPra 2008 Kap. 10: ASP.NET (11/25)

ASP.NET: Das Objektmodell Webseite = (abgeleitet von) class System.Web.UI.Page Controls (in name.aspx) = Felder im Page-Objekt ID der Control = Name des Feldes Web Control = Objekt/Klasse asp:label = class System.Web.UI.WebControls.Label Attribute = Properties/Felder der Klasse Eventhandler = C#-Methoden SoPra 2008 Kap. 10: ASP.NET (12/25)

Beispiel: Calendar.aspx.cs Die code-behind Datei: using System; using... public partial class Calendar : System.Web.UI.Page { protected void update(object sender, EventArgs e) { this.label1.text = this.calendar1.selecteddate.toshortdatestring(); } } SoPra 2008 Kap. 10: ASP.NET (13/25)

Eine Webseite <% Page... > Inherits= Klassenname Codefile= Dateiname MasterPageFile, Title, StylesheetTheme AutoEventWireup= true : Die Handler für Page events haben einen vordefinierten Namen, Page eventname (true ist der Default) SoPra 2008 Kap. 10: ASP.NET (14/25)

Beispiel: Calendar.aspx.cs Calendar Name der Seite (URL) (selbstdefinierte) Klasse in C# Label1, Calendar1: IDs in.aspx Felder in.cs update Wert von onselectionchanged in.aspx Methode in.cs SoPra 2008 Kap. 10: ASP.NET (15/25)

.NET und IIS.NET Framework aus.aspx und.aspx.cs wird temporäre, reine C# Datei erzeugt. Datei wird kompiliert..net Framework erzeugt HTML code. IIS Arbeitet über die Dateiendung:.aspx ASP.NET wird aufgerufen.htm(l): wird direkt an Browser geschickt SoPra 2008 Kap. 10: ASP.NET (16/25)

Seitenaufruf in ASP.NET SoPra 2008 Kap. 10: ASP.NET (17/25)

Application Life Cycle Beim ersten Aufruf einer Seite: ApplicationManager erzeugt Application Domain zur Trennung verschiedener Anwendungen. In der domain: HostingEnvironment wird erzeugt (mit Pfad zur Anwendung usw.) Für jeden Aufruf einer Seite: HttpContext wird erzeugt mit: HttpRequest (Browser-Anfrage: Parameter, Cookies, Browser Info) HttpResponse (Antwort an den Browser: für die fertige html-seite) HttpApplication wird erzeugt (benutzerdefiniert in Global.asax) Module werden erzeugt (z. B. für Session state) init-methode der Seite wird aufgerufen SoPra 2008 Kap. 10: ASP.NET (18/25)

Page life cycle Die Phasen einer Seite: 1. Page request von ASP.NET behandelt 2. Start Properties werden gesetzt (z. B. IsPostBack) 3. Page initialization Controls werden erzeugt 4. Load Postback Information verarbeiten 5. Validation für validator controls 6. Postback event handling 7. Rendering Seite für Client aufbereiten 8. Unload Seite wurde verschickt SoPra 2008 Kap. 10: ASP.NET (19/25)

Page life cycle Events Die zugehörigen Events: 1. Page PreInit: Mit IsPostBack feststellen, ob erster Seitenaufruf Dynamische Controls erzeugen Master Page und Themes setzen 2. Page Init: Lesen oder Setzen von Control properties 3. Page Load: Lesen und Ändern von Control properties 4. Control events (Button clicks, Formularfelder,... ) 5. Page PreRender: Letzte Änderungen an der Seite 6. Page Unload: Aufräumarbeiten (Logging beenden,... ) SoPra 2008 Kap. 10: ASP.NET (20/25)

WebServices in ASP.NET WebService: HTTP-Protokoll mit XML-Daten: W3C-Standard SOAP = Simple Object Access Protocol Standard zum Aufruf von Methoden und zur Parameterübergabe (sehr verbose) <soap12:envelope...><soap12:body> methode </soap12:body> Kurzform: nicht-standardisiertes XML POST WebService.asmx/getInfos WebService.asmx: URL des Webservice getinfos: aufgerufene Methode Antwort abhängig von Implementierung SoPra 2008 Kap. 10: ASP.NET (21/25)

WebServices in ASP.NET (2) Content-Type: application/json json = JavaScript Object Notation (IETF RFC 4627) Austausch von JavaScript Objekten, Arrays, primitiven Typen: [{ " type":"data", "name":"guck mal!", "file":"blinkeye.gif" }] Ergebnis kann mit eval verarbeitet werden Sicherheit: JavaScript Hijacking SoPra 2008 Kap. 10: ASP.NET (22/25)

WebServices: der Server Endung.asmx: <%@ WebService CodeBehind=".../myService.cs" %> myservice.cs: 1. Annotation für die Klasse: [WebService(Namespace = http://tempuri.org/ )] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1 1)] [System.Web.Script.Services.ScriptService] // Ajax-Extensions! 2. public class myservice : System.Web.Services.WebService 3. Annotation [WebMethod] pro Methode 4. Methode: public ImageInfo[] getimageinfos() {... } ASP.NET transformiert Antwort in XML oder json SoPra 2008 Kap. 10: ASP.NET (23/25)

Session Management Standardmäßig mit Cookies: ASP.NET generiert eindeutigen (temporären) Cookie Set-Cookie: ASP.NET SessionID=bwro13552lt... ; path=/; HttpOnly im Header einer Seite Browser schickt dann Cookie bei jeder Anfrage mit: Cookie: ASP.NET SessionID=bwro13552lt... Cookie wird erst erzeugt, wenn Session State verwendet wird: HttpContext.Current.Session Start event: kann in Session OnStart behandelt werden Timeout nach x Minuten SoPra 2008 Kap. 10: ASP.NET (24/25)

Session State Standardmäßig aktiviert Viele Möglichkeiten... Application state: HttpApplicationState global für die Anwendung, für kleine Datenmengen Session state: HttpSessionState pro Session, für temporäre (sensitive) Daten Profile Properties benutzerspezifisch, persistent Datenbankanschluss SoPra 2008 Kap. 10: ASP.NET (25/25)