ASP .NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag [email protected] Agenda Active Server Pages eine Success Story Warum wechseln ASP .NET was ists ASP .NET.
Download
Report
Transcript ASP .NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag [email protected] Agenda Active Server Pages eine Success Story Warum wechseln ASP .NET was ists ASP .NET.
ASP .NET
In der Projektpraxis
Hannes Preishuber
MCSD, MCSE, MCT
CEO ppedv ag
[email protected]
Agenda
Active Server Pages eine Success Story
Warum wechseln
ASP .NET was ists
ASP .NET was bringts
Anwendungsdesign in .NET
Portierung ASP -> .NET
Das häufigste Frontend wird in Zukunft
Browser basiert sein.
Der Benutzer will jede Art von
Informationen fließen sehen. Grenzen
wie Betriebsystem oder Prozessoren
interessieren ihn dabei nicht.
Active Server Page ASP
Voll integriert in IIS
(VB)Script in HTML-Seiten
•
Extension ASP
Alle COM-Objekte verfügbar
•
Z.B. ADO
Sechs eingebaute Objekte
•
Server, Response, Request...
Entwicklungswerkzeug Visual InterDev
ASP Grenzen
Script Programmierung
Code & Design in einer Seite
Session Management
•
Cookies & Web Farms
Installation & Betrieb
•
Austauschen einer DLL
Fehlersuche
Code Sichtbar für Admin
DTCs (Design Time Controls)
Hier kommt....
Seite.ASPX
•
•
•
•
•
•
•
•
•
<> ASP 4.0
Auch bekannt als ASP+
Riesen Schritt
Voll kompiliert
Objektorientiert
Basiert und nutzt .NET Framework
Keine DLL's mehr registrieren
Einfach Hype
....
Wie bekomme ich .NET
Visual Studio .NET (RC1)
•
Download oder Bestellen
Komponenten Update
•
1 CD inkludiert in Visual Studio .NET
ASP .NET Premium
•
•
18 MB Download von zb www.ASP.net
Mehr Features als ASP .NET
•
4 Prozessoren, Chaching, Web Farm Session
State
Grundlagen .NET
Zwei Techtalk's
Was ist ASP .NET
•
•
Basis Beta 1
http://www.microsoft.com/germany/ms/msdnevents/techtalk/
download/TT-0201-PPT.ppt
Was ist das NET Framework & VB .NET
• Basis Beta 2
•
http://www.microsoft.com/germany/ms/msdnevents/techtalk/
download/TT-0901.ppt
Bestandteile
ASPX-Seite
•
•
Codebehind-Seite
•
•
HTML-Layout
Server-Controls
Programmcode in beliebiger
Programmiersprache
Nutzung von Assemblies einer
beliebigen Programmiersprache
Resource-Datei
BIN-Verzeichnis
Warum Codebehind?
Trennen von User-Interface und
Logik
•
Webdesigner bekommen ihre Chance
Compiler kann übersetzen
Drei Arten
•
•
•
In Site
Src
Codebehind
n. Sprachen
•
VB.NET und C# als Hauptkandidaten
Unterschiede
C#
•
•
•
•
•
•
•
Neu und schön
Case Sensitiv
Java & C++
Überladen von
Operatoren
Dokumentieren
Unmanaged Code
CSC
VB .NET
•
•
•
•
•
10 Jahre Wissen
Option explizit
VB Dialekte
IDE komfortabler
VBC
Kein Unterschied
Beide Sprachen nutzen das
Framework
•
•
•
•
•
•
•
•
Common Language Runtime
Common Type System
Common Language Specification
.NET Klassenbibliothek
Intermediate Language
Just in Time Compiler
Garbage Collection
Objektorientiert
Argument: Web Forms
HTML
•
Runat="server"
Server Controls
•
Textbox, Label ..
DataList Controls
•
Datagrid, Datalist, Repeater
Validation
•
Feldprüfung
Rich Controls
•
Kalender
Objektmodell
<script language="VB" runat="server">
Sub Btn_Click(Sender As Object, E As
EventArgs)
Message.Text = "Hi " & Name.Text
End Sub
</script>
<form action="myform.aspx" runat=server>
Name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter"
Onclick="Btn_Click" runat=server/>
<asp:label id="Message" runat=server/>
</form>
Vorteile WebForms
Objektmodell
Datenbindung
Validierbar
Viewstate
Erzeugen Browser HTML Code
User Controls
•
Kombinieren von WebControls (Menü)
File Upload
FTP
Posting Acceptor
<form enctype="multipart/form-data"
action="/scripts/cpshost.dll?
PUBLISH" method="POST">
Drittanbieter
• Safileup
WebDav
Tool
Erweitertung von HTTP 1.1
Per ASP
Request.BinaryRead(Request.TotalBytes)
File Upload
Imports System.Web.Util
Form erzeugen
• encType="multipart/form-data"
Input Element
• <input
id=Upload1 type=file
runat="Server">
Input Button
Upload Code
• Upload1.PostedFile.SaveAs(Datei)
Datenbindung
Connection String
ADO Objekt erzeugen
• Server.CreateObject("ADODB.Recordset“)
Open Cursortype u Locktype
<%=rs.fields(„Name“)%>
Connection bleibt offen (pooling)
Datenbindung nur an DTCs
Datenbindung
Connection String
•
Speichern in Web.Config
Dim hshTable as NameValueCollection =
CType(Context.GetConfig("system.web/myconf"),
NameValueCollection)
Dim dsn as String = CType(hshTable.Item("DBCON"),
String)"), Hashtable)("DBCON")), String)
DatasetCommand
• mCmd("select
* ",con)
DataSet statt Recordset
• mCmd.Filldataset(myDS,"tbName")
Table Objekt an Grid binden
• Gr.Datasource=mCmd.Tables(0).Defaultview
Datagrid
Design Time Control (DTC)
•
•
Recordset
Datagrid
Dicke Library
•
_ScriptLibrary
Aber sogar editierbar!
•
Hart aber möglich
•
Q229672
Datagrid
visuelles Grid
Binden an Daten
•
Tabelle, XML, Array, Hashtable
editierbar
Customizing
•
Checkboxen, Buttons, Grafiken, Links
Events
•
ItemCommand
Mail Versand
CDONTS oder CDOSYS
•
SMTP Server des IIS
Fremde Komponenten
•
Smtp Mailer
Hardcore INET Objekt
Mail Versand
Imports System.Web.Util
Generieren einer MailMessage
• Dim
mymail as new MailMessage
Füllen des Mail Containers
Smtpmail.Send
• Mymail.from="[email protected]"
• Smtpmail.send
Grafik anzeigen
Balkengrafik aus ASP
•
dehnen eines GIF‘s
Office Web Components
•
Excel Chart
ASP Image Komponenten
Grafik anzeigen
Imports System.Drawing
•
Aktuell nur Drawing2D
Image Control auf aspx
• <asp:image
id=Bild imageurl="bild.aspx">
Erzeuge Bild
• Bild=New
Speichern
Bitmap(300,230,...)
• Bild.Save(Stream,ImageFormat.PNG)
• Response.BinaryWrite(Stream.ToArray)
Architektur
Anforderungen an Softwareentwicklung
•
•
•
Code reuse
Skalierbar
Ausfallsicher
Vorteile von Architektur
•
•
Gezielteres vorgehen
Später keine Grenzen
Architektur<>Pflichtenheft
•
Grobes Konzept
Windows DNA
Das Entwicklungsmodell für Windows
Datenbanken
Mainframe-Systeme
Thin
Client
Rich
Client
Externe
Anwendungen
Architektur in .NET
Keine COM Objekte mehr
•
•
Aber COM+ Unterstützung
•
System.Enterpriseservices
Kein eigener Komponentendienst
Asynchrone Prozesse
•
•
Keine Callbacks
DisConnected Data
Keine zentrale Registrierung
•
Rechte Verwaltung
Architektur in .NET
Datenbank
•
Stored Procedures
Datenzugriff
•
ADO .NET
Middle Tier
•
•
•
COM Objekte über Wrapper einbinden
Assamblies als COM Ersatz
WebServices liefern Funktionalität
Frontend
•
Web Forms
Sample:IBuySpy
Sample Downloadbar
•
http://www.ibuyspy.com/
Klassische 3 Tier Applikation
Web Farm
State Management
•
•
•
•
•
Einrichten über web.config
Cookies
Cookieless
Stateserver
•
•
InProc
OutProc
SQL Server
•
Scripte InstallSqlState.sql
Warum portieren
Web Forms
•
Trennung Code und UI
Web Farmen
•
State & Session Management
Installation
•
Copy, WEB.CONFIG
Performance
•
Caching, Compiliert
Webservices konsumieren
Wie portieren?
Umbenennen der ASP Seite (ASPX)
Prozedur Aufruf mit "( )"
Variablen deklarieren
Kein SET mehr
Standardeigenschaften ergänzen
Aspcompat in Page Direktive setzen
.....
Quelle www.devtrain.de
aspcompat
<%page aspcompat=true%>
•
•
•
•
•
Page läuft im STA
•
Single Threaded Apartment
Nur für ASPX Seiten
Alle VB 6.0 COM sind STA
Manche COM Objekte können MTA & STA
•
•
Umschalten über Registry
Makfre15.bat & makapt15.bat
ASP Objekte in COM Objekten
•
•
OnStartPage & OnEndPage Eventhandlers
ObjectContext
Fehlersuche
Neues Error Fenster
•
Lokal andere Meldungen
Tracing
•
•
Page Level
Application Level über Web.config
Debugging
•
•
Ohne Visual Studio
dbgclr.exe
Performance Counters
Das Finale: ASP .NET
Webanwendungen
•
Verschiedene Clients
•
Browser, Mobile und Webservice Consumer
Einfacheres Erstellen
Mächtigere Funktionen
Designed für Enterprise Lösungen
Wo gibt’s weitere Info’s?
MSDN Online
• http://www.microsoft.com/germany/msdn
MSDN Quickie
• http://www.microsoft.com/germany/msdn/quickie
MSDN TechTalk-Newsgroup
• news://msnews.microsoft.com/microsoft.public.de.german.techtalk
www.devtrain.de
•
http://www.devtrain.de
www.gotdotnet.de
Bücher
• ASP3.0/ASP+ Sybex Verlag Hannes Preishuber
Fragen!?
Uff...