Steffen Forkmann, msu solutions GmbH

Slides:



Advertisements
Ähnliche Präsentationen
PHP Extension und Application Repository
Advertisements

Objektrelationales Mapping mit JPA
Was gibt´s neues im Bereich Sicherheit
ASP.NET Tips & Tricks Uwe Baumann
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
ASP.NET Überblick und technischer Einstieg
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
SPS / WSS Entwicklung Martin Saternus Technical Student Consultant Microsoft Deutschland GmbH
ASP.NET Episode 2 Uwe Baumann Technologieberater Microsoft Deutschland GmbH weblogs.asp.net/uweinside.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Seite 1Maria, Philipp, Herbert Seite 1 Fitnessplaner Ziele: >Fitnessplaner für Onlinebetrieb >Registrierung >individuelle Trainingsplanerstellung.
Objektrelationales Mapping mit JPA
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
SendEplanung Datenbank
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
Dynamische Webseiten mit PHP
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Introducing the .NET Framework
Content Management Systems RedDot Solutions AG Industriestraße 11 D Oldenburg
NetUSE Web Application Framework Kai Voigt NetUSE AG 28. Februar 2003.
Datenbanken 10: Einfügen, Ändern, Löschen
Einführung MySQL mit PHP
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung Venelina Jordanova
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
Migrieren eines Sharepoint Designer Workflows zu Visual Studio .NET
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Microsoft Internet Information Services (IIS)
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
SharePoint 2010 for Information Architects
SQL Server 2005 CLR-Integration
Mit 3 Schichte zum Erfolg
Michael Köster User Experience Specialist Microsoft Corporation.
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Präsentation von Sonja Pathe
Basiswissen für Partner und interessierte Kunden Technologie.
Brand my SharePoint Grafische Gestaltung von SharePoint-Webseiten
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ASP.NET Seitenübergänge
Folgendes kann missbraucht werden: formulare unverschlüsselte login-informationen ungeschützte includes SQL-injection reto ambühler
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
… und was man damit machen kann.
Intensivmedizin-Applikation mit WPF, WCF und LINQ
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Datenanbindung in Webapplikationen
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
Warum IIS? Best of Microsoft Webserver
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Copyright © 2010 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Homepage-System der SPORTUNION.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
1.
 Präsentation transkript:

Steffen Forkmann, msu solutions GmbH Grundlagen ASP.NET 2.0 Steffen Forkmann, msu solutions GmbH steffen.forkmann@msu-solutions.de http://www.msu-solutions.de

Agenda Was ist ASP.NET eigentlich? Viele Demos der neuen Features Ein paar Folien zum Einstieg Viele Demos der neuen Features MasterPages/ Themes Konfiguration DataBinding (3-Tier Architektur) Provider Model SQL-Caching URL-Mapping

Was ist ASP.NET ASP.NET ist eine Bibliothek für Webseiten und Webservices Basiert auf .NET Runtime und .NET Framework Riesige Objektbibliothek Garbage Collection Eigene Klassen und Assemblies problemlos einbindbar Objektorientiert und eventgesteuert

Was ist ASP.NET (2) Verschiedene Sprachen verfügbar: C#, VB.NET, … Performanz durch kompilierten Code Klare Trennung von Design und Programmcode Automatische Sessionverwaltung Einfache Datenbankintegration, Lokalisierung und Fehlerbehandlung

Weitere Funktionalität ASP.NET Architektur Unmanaged Code HTTP Request HTTP Response IIS ASP.NET Runtime HTTP Module Request Handler Weitere Funktionalität Managed Code

.aspx – Aufbau Direktiven (Inline Code-Blöcke) Statischer Text Control Tags HTML Tags

Key-Concepts Server controls “Event Handler”-Code Kapseln die Erzeugung des eigenen HTML-Output Feuern Ereignisse bei Statuswechseln “Event Handler”-Code Inline oder besser als Code-Behind (in separaten File) Code-Ausführung in Phasen - nicht linear Init, Load, Render, Unload, usw.

Ziele bei ASP.NET 2.0 „Das Rad nicht neu erfinden“ Massive Codereduktion durch deklarative Programmierung und “Zero-Code-Szenarien” (Microsoft spricht von 70% Codereduktion) Standardfunktionalitäten „out of the box“ mitgeliefert: Benutzer- / Rollenverwaltung WYSIWYG „Skins & Themes“ – Architektur Viele neue Controls wie LogIn- und Registrierungs-Dialoge SQL Caching Hohe Flexibilität durch Provider Model In jede Ebene des Technologie-Stacks kann manuell eingegriffen werden

Neue Technologien in ASP.NET 2.0 Daten- controls Login- controls Web Parts Andere neue Controls Controls MasterPages Themes und Skins Lokalisation Kompilierung Framework Page Benutzer- verwaltung Rollen- verwaltung Profile Konfiguration Services und APIs Site Maps Health Monitoring SQL Caching

Vorteile durch VS 2005 “Intellisense Everywhere”! Code behind, Inline code, HTML, CSS, ASP.NET, Web.config, XML Dateien, usw. WYSIWYG HTML Designer CSS Style Generator Leistungsstarker Debugger Edit & Continue Eigene Debugger-Visualizer Integrierter ASP.NET Test-Web Server Testsystem auf lokalem Rechner Webserver wird mit der Visual Studio IDE geschlossen Code wird vom Designer nicht formatiert

Visual Web Developer 2005 Kostenloser Download als Express-Version: www.microsoft.com/germany/msdn/vstudio/express/vwd/default.mspx

Konfiguration Administrative Tools machine.config web.config ASP.NET MMC snap-in Web Site Administration Tool (Webadmin.axd) machine.config Systemweite Standard-Einstellungen web.config Projektspezifische Einstellungen Configuration API

web.config XML-Konfigurationsfile System.Web UI Design WebControls HtmlControls Services Configuration Description Discovery Protocols Caching Hosting Mail SessionState

Durchgehendes Design Standarddesign für die meisten Seiten: Header, Menü, Inhalt, Footer Footer Inhalt Header Navigation

Durchgehendes Design (2) Bisherige Lösungsmöglichkeiten: Include Files: Keine Code-Kapselung (Code passt evtl. nicht 100%) Man bekommt schnell unbalancierte HTML-Tags Selten WYSIWYG-Unterstützung Tool-basierte Lösungen (z.B. Dreamweaver) Meist nur Design-Time-Unterstützung Code für Seite separat Spätere Änderungen sehr schwer

MasterPages Wir wollen: Durchgehendes und wartbares Seitendesign ohne Includes Lösung: MasterPages "Visuelle Vererbung" mit Content Platzhaltern WYSIWYG-Unterstützung durch VS2005 Anwendung deklarativ und programmatisch möglich Verschachtelte MasterPages werden unterstützt

Seitenvorlagen (Master Pages) Demo Seitenvorlagen (Master Pages)

Themes <%@ Page Theme=“Design"> Vorher: Nachher:

DataAccess PHP Es geht auch besser! (auch in PHP ) // Connect mysql_pconnect($dbServer, $dbUser, $dbPsw); mysql_select_db($dbName); // Get data $result = mysql_query(“select * from products”); foreach($result as $row){ … } // update data $query = “insert name, .. into products values (‘$name’, …)”; mysql_query($query); 1. Konfiguration im Code (unverschlüsselt) 2. SQL-Queries im Code 3. Query-Parameter sind potentiell angreifbar Es geht auch besser! (auch in PHP )

Problem 1: Verschlüsselung    <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">   <EncryptedData>    <CipherData>       <CipherValue> AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAed...GicAlQ== </CipherValue>     </CipherData>   </EncryptedData> </connectionStrings> private void ProtectSection(string sectionName) { Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); ConfigurationSection section = config.GetSection(sectionName); if (section != null && section.SectionInformation.IsProtected) { section.SectionInformation.ProtectSection(); config.Save(); }

DataAccess PHP Es geht auch besser! (auch in PHP ) // Connect mysql_pconnect($dbServer, $dbUser, $dbPsw); mysql_select_db($dbName); // Get data $result = mysql_query(“select * from products”); foreach($result as $row){ … } // update data $query = “insert name, .. into products values (‘$name’, …)”; mysql_query($query); 1. Konfiguration im Code (unverschlüsselt) 2. SQL-Queries im Code 3. Query-Parameter sind potentiell angreifbar Es geht auch besser! (auch in PHP )

Problem 2: DataBinding Anbindung visueller Elemente an Daten „Quick and Dirty“, wie in PHP? Oder nach Lehrbuch, durch Zugriff auf Businesslogik und DataAccessLayer? Lösung: Data Provider Controls Deklarative Anwendung  Codereduktion

3-Tier Architektur Strenge Trennung in: Data Access Layer – Datenzugriff (Queries, ConnectionStrings, …) Business Logic Layer – Implementierung der Geschäftsregeln Presentation Layer – Visualisierung der Daten

Demo Data Binding

DataAccess PHP Es geht auch besser! (auch in PHP ) // Connect mysql_pconnect($dbServer, $dbUser, $dbPsw); mysql_select_db($dbName); // Get data $result = mysql_query(“select * from products”); foreach($result as $row){ … } // update data $query = “insert name, .. into products values (‘$name’, …)”; mysql_query($query); 1. Konfiguration im Code (unverschlüsselt) 2. SQL-Queries im Code 3. Query-Parameter sind potentiell angreifbar Es geht auch besser! (auch in PHP )

Problem 3: SQL-Injection string _username = Request.Form["username"]; string _password = Request.Form["password"]; string sql = "select * from users where username='" + _username + "' and password='" + _password + "'"; Username: ' or 1=1 --- Password: [Empty] Select * from users where username=‘‘ or 1=1 --- and password=‘‘ Lösung: Eingaben validieren! Parametrisierte Queries: myCommand = new SqlCommand("select * from users where " + " username = @Username and Password = @Password"); myParameter = myCommand.Parameters.Add( new SqlParameter("@Username", SqlDbType.VarChar, 50)); myParameter.Direction = ParameterDirection.Input; myParameter.Value = Request.Form["username"];

Authentifizierung Aufgabe: Aufwand für Autorisierung und Authentifizierung reduzieren Im besten Fall komplett „out of the Box“ Flexible Anbindung an beliebige Backendsysteme Lösung: Membership-Provider Flexible, modulare Kombination aus Providerkomponenten, API und User Interface-Komponenten

Membership-Provider Controls Membership API (Benutzerverwaltung) Login LoginStatus LoginView Andere Login- Controls Membership API (Benutzerverwaltung) Membership MembershipUser Membership Provider AccessMembershipProvider SqlMembershipProvider Andere Provider Benutzer- daten Access SQL Server Andere Datenquellen

Demo LogIn

Autorisierung Erlaube “Adminstratoren” und lehne Rest ab: Auch für Unterverzeichnisse bzw. einzelne Seiten einstellbar <!-- * = alle, ? = anonym bzw. nicht auth. --> <authorization> <allow verbs="POST" Roles="Administrator" /> <deny users="*" /> </authorization>

Sitemap-Provider Controls Site Navigation API Providers Site Maps Menu TreeView SiteMap- DataSource SiteMapPath Site Navigation API SiteMap SiteMapNode SiteMapNode SiteMapNode Providers XmlSiteMapProvider Other Site Map Providers Site Maps Web.sitemap Other Data Stores

Demo SiteMap

SQL-Caching Aufgabe: Lösung: SQL Caching Hohe Performance bei datengetriebenen, hochfrequentierten Webseiten Lösung: SQL Caching Zusammenarbeit von Datenbank und Webapplikation Cache-Invalidierung bei Datenänderung; Seite wird nur bei geänderten Daten neu gerendert SQL-Server 2000 und 7.0 Polling-Prozess und Trigger (Table-Level) SQL-Server 2005 Direkte Unterstützung durch Notifications (Row-Level)

SQL-Caching (Polling) SQL-Server 2000: Mit aspnet_regsqlcache entsprechende Tabellen konfigurieren Web.config: <system.web> <cache> <sqlCacheDependencyenabled="true"pollTime="1000"> <databases><addname="Northwind" connectionStringName="Northwind"/> </databases> </sqlCacheDependency> </cache> </system.web> ASP.NET-Seite oder DataSource für Caching konfigurieren: <%@ OutputCacheduration="3600" varybyparam="none" sqldependency="Northwind:Categories"%>

Neu registrieren, wenn wieder benachrichtigt werden soll SQL-Caching (Push) IIS Pubs Worker Process (ASP.NET Application) SQL-Server 2005 Notification Queue SQLCommand Table SQLDependency OnChange OnChange UPDATE INSERT DELETE Cache-Invalidierung Neu registrieren, wenn wieder benachrichtigt werden soll

URL-Mapping Virtuelle URLs werden auf physische URLs abgebildet Wichtig für Suchmaschinen <urlMappings enabled="true"> <add url="~/Home.aspx" mappedUrl="~/default.aspx?tabindex=0" /> <add url="~/Forums.aspx" mappedUrl="~/default.aspx?tabindex=1" /> <add url="~/Faq.aspx" mappedUrl="~/default.aspx?tabindex=2" /> </urlMappings> Virtuelle URL Physische URL

Fazit ASP.NET 2.0 soll Produktivität, „gute“ Architektur und Performance vereinen ASP.NET bietet eine drastische Erhöhung der Produktivität für „Allerweltsaufgaben“ bei der Webprogrammierung Kompromisslose Objektorientierung und mehrschichtige Architektur Caching

Literatur Kostenlos verfügbare Online-Bücher und Artikel C# OpenBook http://www.galileocomputing.de/openbook/csharp/index.htm Einstieg in VB.NET OpenBook http://www.galileocomputing.de/openbook/vb_net/ Einstieg in ASP.NET OpenBook http://www.galileocomputing.de/openbook/asp/ 3-tier Architecture with ASP.NET 2.0 http://msdn2.microsoft.com/en-us/library/aa581769.aspx

Vielen Dank Gibt es Fragen? Gerne beantworte ich diese auch via Email an steffen.forkmann@msu-solutions.de! Die Vortragsfolien können auf der Webseite http://www.navision-blog.de/ herunter geladen werden