ASP .NET In der Projektpraxis MSDN TechTalk – November 2001 ASP .NET in der Projektpraxis 1 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
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) Komponenten Update 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 Resource-Datei 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# VB .NET 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 Server Controls DataList Controls Validation 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 Drittanbieter Tool <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 Input Element 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 DatasetCommand DataSet statt Recordset 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) Dicke Library Recordset Datagrid Dicke Library _ScriptLibrary Aber sogar editierbar! Hart aber möglich Q229672
Datagrid visuelles Grid Binden an Daten editierbar Customizing Events Tabelle, XML, Array, Hashtable editierbar Customizing Checkboxen, Buttons, Grafiken, Links Events ItemCommand
Mail Versand CDONTS oder CDOSYS Fremde Komponenten 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 Office Web Components dehnen eines GIF‘s Office Web Components Excel Chart ASP Image Komponenten
Grafik anzeigen Imports System.Drawing Image Control auf aspx 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 DNA Das Entwicklungsmodell für Windows Datenbanken Mainframe-Systeme Externe Anwendungen Thin Client Rich Client
Architektur in .NET Keine COM Objekte mehr Asynchrone Prozesse Aber COM+ Unterstützung System.Enterpriseservices Kein eigener Komponentendienst Asynchrone Prozesse Keine Callbacks DisConnected Data Keine zentrale Registrierung Rechte Verwaltung
Architektur in .NET Datenbank Datenzugriff Middle Tier Frontend 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 Klassische 3 Tier Applikation 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 Web Farmen Installation Performance 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 Tracing Debugging Performance Counters Lokal andere Meldungen Tracing Page Level Application Level über Web.config Debugging Ohne Visual Studio dbgclr.exe Performance Counters
Das Finale: ASP .NET Webanwendungen Einfacheres Erstellen 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 TechTalk – November 2001 ASP .NET in der Projektpraxis 37 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
MSDN TechTalk – November 2001 ASP .NET in der Projektpraxis 38 Fragen!? MSDN TechTalk – November 2001 ASP .NET in der Projektpraxis 38 Uff...