38
ASP .NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag [email protected]

ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag [email protected]

Embed Size (px)

Citation preview

Page 1: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

ASP .NET In der Projektpraxis

Hannes PreishuberMCSD, MCSE, MCT

CEO ppedv ag

[email protected]

Page 2: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Agenda

Active Server Pages eine Success Story Warum wechseln ASP .NET was ists ASP .NET was bringts Anwendungsdesign in .NET Portierung ASP -> .NET

Page 3: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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.

Page 4: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 5: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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)

Page 6: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

• ....

Page 7: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 8: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 9: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Bestandteile

ASPX-Seite

• HTML-Layout

• Server-Controls

Codebehind-Seite

• Programmcode in beliebiger Programmiersprache

• Nutzung von Assemblies einer beliebigen Programmiersprache

Resource-Datei BIN-Verzeichnis

Page 10: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 11: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 12: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 13: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Argument: Web Forms

HTML

• Runat="server"

Server Controls

• Textbox, Label ..

DataList Controls

• Datagrid, Datalist, Repeater

Validation

• Feldprüfung

Rich Controls

• Kalender

Page 14: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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>

Page 15: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Vorteile WebForms

Objektmodell Datenbindung Validierbar Viewstate Erzeugen Browser HTML Code User Controls

• Kombinieren von WebControls (Menü)

Page 16: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

File Upload

FTPPosting Acceptor

<form enctype="multipart/form-data" action="/scripts/cpshost.dll?PUBLISH" method="POST">

Drittanbieter Tool

• Safileup

WebDav Erweitertung von HTTP 1.1Per ASP

Request.BinaryRead(Request.TotalBytes)

Page 17: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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)

Page 18: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 19: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Datenbindung

Connection String

• Speichern in Web.ConfigDim 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).Defaultvie

w

Page 20: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Datagrid

Design Time Control (DTC)

• Recordset

• Datagrid

Dicke Library

• _ScriptLibrary

Aber sogar editierbar!

• Hart aber möglich • Q229672

Page 21: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Datagrid

visuelles Grid Binden an Daten

• Tabelle, XML, Array, Hashtable

editierbar Customizing

• Checkboxen, Buttons, Grafiken, Links

Events

• ItemCommand

Page 22: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Mail Versand

CDONTS oder CDOSYS

• SMTP Server des IIS

Fremde Komponenten

• Smtp Mailer

Hardcore INET Objekt

Page 23: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Mail Versand

Imports System.Web.Util Generieren einer MailMessage• Dim mymail as new MailMessage

Füllen des Mail Containers• Mymail.from="[email protected]"

Smtpmail.Send• Smtpmail.send

Page 24: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Grafik anzeigen

Balkengrafik aus ASP

• dehnen eines GIF‘s

Office Web Components

• Excel Chart

ASP Image Komponenten

Page 25: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Grafik anzeigen

Imports System.Drawing

• Aktuell nur Drawing2D

Image Control auf aspx• <asp:image id=Bild imageurl="bild.aspx">

Erzeuge Bild• Bild=New Bitmap(300,230,...)

Speichern• Bild.Save(Stream,ImageFormat.PNG)

• Response.BinaryWrite(Stream.ToArray)

Page 26: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Architektur

Anforderungen an Softwareentwicklung

• Code reuse

• Skalierbar

• Ausfallsicher

Vorteile von Architektur

• Gezielteres vorgehen

• Später keine Grenzen

Architektur<>Pflichtenheft

• Grobes Konzept

Page 27: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Windows DNADas Entwicklungsmodell für Windows

ExternExterneeAAnwendungennwendungen

Mainframe-SystemeMainframe-Systeme

DatDatenbankenenbanken

Thin Thin ClientClient

Rich Rich ClientClient

Page 28: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 29: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 30: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Sample:IBuySpy

Sample Downloadbar

• http://www.ibuyspy.com/

Klassische 3 Tier Applikation

Page 31: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Web Farm

State Management

• Einrichten über web.config

• Cookies

• Cookieless

• Stateserver• InProc

• OutProc

• SQL Server• Scripte InstallSqlState.sql

Page 32: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Warum portieren

Web Forms

• Trennung Code und UI

Web Farmen

• State & Session Management

Installation

• Copy, WEB.CONFIG

Performance

• Caching, Compiliert

Webservices konsumieren

Page 33: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 34: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.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

Page 35: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Fehlersuche

Neues Error Fenster

• Lokal andere Meldungen

Tracing

• Page Level

• Application Level über Web.config

Debugging

• Ohne Visual Studio

• dbgclr.exe

Performance Counters

Page 36: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Das Finale: ASP .NET

Webanwendungen

• Verschiedene Clients• Browser, Mobile und Webservice Consumer

Einfacheres Erstellen Mächtigere Funktionen Designed für Enterprise Lösungen

Page 37: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

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

Page 38: ASP.NET In der Projektpraxis Hannes Preishuber MCSD, MCSE, MCT CEO ppedv ag HannesP@ppedv.de

Fragen!?

Uff...Uff...