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

Preview:

Citation preview

ASP .NET In der Projektpraxis

Hannes PreishuberMCSD, 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

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

• HTML-Layout

• Server-Controls

Codebehind-Seite

• 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

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)

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

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• Mymail.from="christkindl@himmel.de"

Smtpmail.Send• 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 Bitmap(300,230,...)

Speichern• 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 DNADas Entwicklungsmodell für Windows

ExternExterneeAAnwendungennwendungen

Mainframe-SystemeMainframe-Systeme

DatDatenbankenenbanken

Thin Thin ClientClient

Rich Rich ClientClient

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

Recommended