Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen ASP.NET 2.0 Steffen Forkmann, msu solutions GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen ASP.NET 2.0 Steffen Forkmann, msu solutions GmbH"—  Präsentation transkript:

1 Grundlagen ASP.NET 2.0 Steffen Forkmann, msu solutions GmbH

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

3 3 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

4 4 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

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

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

7 7 Key-Concepts Server controls –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.

8 8 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

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

10 10 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

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

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

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

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

15 15 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

16 16 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

17 17 Demo Seitenvorlagen (Master Pages)

18 18 Themes Vorher:Nachher:

19 19 DataAccess 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 )

20 20 Problem 1: Verschlüsselung AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAed...GicAlQ== 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(); }

21 21 DataAccess 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 )

22 22 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

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

24 24 Demo Data Binding

25 25 DataAccess 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 )

26 26 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] Lösung: 1.Eingaben validieren! 2.Parametrisierte Queries: myCommand = new SqlCommand("select * from users where " + " username and Password myParameter = myCommand.Parameters.Add( new SqlDbType.VarChar, 50)); myParameter.Direction = ParameterDirection.Input; myParameter.Value = Request.Form["username"]; Select * from users where username= or 1=1 --- and password=

27 27 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

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

29 29 Demo LogIn

30 30 Autorisierung Erlaube Adminstratoren und lehne Rest ab: Auch für Unterverzeichnisse bzw. einzelne Seiten einstellbar

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

32 32 Demo SiteMap

33 33 SQL-Caching Aufgabe: –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)

34 34 SQL-Caching (Polling) SQL-Server 2000: Mit aspnet_regsqlcache entsprechende Tabellen konfigurieren Web.config: ASP.NET-Seite oder DataSource für Caching konfigurieren: OutputCacheduration="3600" varybyparam="none" sqldependency="Northwind:Categories"%>

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

36 36 URL-Mapping Virtuelle URLs werden auf physische URLs abgebildet Wichtig für Suchmaschinen Virtuelle URL Physische URL

37 37 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

38 38 Literatur Kostenlos verfügbare Online-Bücher und Artikel C# OpenBook Einstieg in VB.NET OpenBook Einstieg in ASP.NET OpenBook 3-tier Architecture with ASP.NET 2.0

39 39 Vielen Dank Gibt es Fragen? Gerne beantworte ich diese auch via an Die Vortragsfolien können auf der Webseite herunter geladen werden


Herunterladen ppt "Grundlagen ASP.NET 2.0 Steffen Forkmann, msu solutions GmbH"

Ähnliche Präsentationen


Google-Anzeigen