380 likes | 489 Views
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.
E N D
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
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 Unterschiede
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 Tool • Safileup • WebDav 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 • 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 Datenbanken Mainframe-Systeme ExterneAnwendungen Thin Client Rich Client
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
Uff... Fragen!?