Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Steffen Forkmann, msu solutions GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Steffen Forkmann, msu solutions GmbH"—  Präsentation transkript:

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

2 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

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

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

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

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

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 Visual Web Developer 2005 Kostenloser Download als Express-Version:

12 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

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

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

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 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 Seitenvorlagen (Master Pages)
Demo Seitenvorlagen (Master Pages)

18 Themes Page Theme=“Design"> Vorher: Nachher:

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

20 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(); }

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

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 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 Demo Data Binding

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

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= 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 and Password myParameter = myCommand.Parameters.Add( new SqlDbType.VarChar, 50)); myParameter.Direction = ParameterDirection.Input; myParameter.Value = Request.Form["username"];

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

29 Demo LogIn

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

31 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

32 Demo SiteMap

33 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)

34 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"%>

35 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

36 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

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 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 Vielen Dank Gibt es Fragen?
Gerne beantworte ich diese auch via an Die Vortragsfolien können auf der Webseite herunter geladen werden


Herunterladen ppt "Steffen Forkmann, msu solutions GmbH"

Ähnliche Präsentationen


Google-Anzeigen