Web Applicaties Bouwen met Visual Studio .NET Sijmen Koffeman Development Consultant Microsoft
Agenda Wat is “dot NET”? Web Forms ASP.NET Beveiliging Caching
.NET Ontwikkel Platform Web server applicatie Windows desktop applicatie Visual Studio .NET VB.NET WebForms (Web UI) ASP.NET WebForms (Web UI) ASP.NET WinForms (Windows UI) C++ Web Services C# JScript.NET XML Networking ADO.NET (data access) … … Base Classes Common Language Runtime (CLR)
Web Forms Wat zijn Web Forms? Uiteindelijk HTML in de browser Onderdeel van .NET Framework ASP.NET “VB for the Web”
Voordelen van ASP.NET “Event Based Programming Model” Minder code nodig dan bij ASP Snellere executie Meerdere talen mogelijk Side-by-Side
Declaratie en Code Gescheiden! HTML en ASP code zaten in 1 bestand Kan nu ook gescheiden! Visual Studio.NET single file separate files <tags> <tags> code code Form1.aspx Form1.aspx Form1.vb
Web Forms en Events Page_Load Textbox1_Changed Button1_Click Page_Unload Textbox1_Changed Button1_Click Control Events 1. Change Events 2. Action Events Page is loaded and initialized Page is disposed
Web Forms Controls 1/2 45 Controls “Ingebouwd” Geschikt voor elke HTML 3.2 Browser Dus niet alleen IE! Hebben Server Side Events Uitgebreide Controls AdRotator, Calendar, DataGrid, Validator
Web Forms Controls 2/2 Declareren als HTML of XML tag, d.m.v. runat=server attribuut Voorbeeld: <input type=text id=text2 runat=server> <asp:calendar id=myCal runat=server/> Tag identificeert soort control Control wordt geïmplementeerd als een .NET object ID attribuut is de identifier vanuit de code
Uitgebreide Controls 1/2 DataGrid Tag: <asp:datagrid /> Kolom Sortering In-Line Editing HTML Tabel DataBinding Paging
Uitgebreide Controls 2/2 Validatie (Validator Control) Required Range Compare Reguliere Expressie “Custom” Voorbeeld: <asp:RequiredFieldValidator ControlToValidate="txtName" ErrorMessage="Please Enter Your Name" runat="server" />
Demo Code Behind Events Controls
Asp vs. ASP.NET State Asp Session State ASP .NET Session State Introduceerde “Server Affinity” Werkte alleen met Cookies Niet “fault tolerant” ASP .NET Session State Ondersteunt “Web Gardens” and “Server Farms” Kan ook zonder Cookies Betere “fault tolerance”
Configureren van State Via web.config InProc Session state is in process with an ASP.NET worker process. InProc is the default. Off Session state is disabled. SQLServer Session state is using an out-of-process SQL Server to store state information. StateServer Session state is using an out-of-process Windows NT Server to store state information. <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />
Web Applicatie Beveiliging Authentication (identificatie) Authorization (bevoegdheden) Impersonation (...)
Demo Verschillende manieren voor Beveiliging Windows Forms Declaratief Geprogrammeerd
Caching Declaratief Programmeerbaar Pagina Fragment <%@ OutputCache Duration= "500“ VaryByParam=“none” %> Fragment <%@ OutputCache Duration=“60“ VaryByParm=“none” %> Programmeerbaar
Samenvatting Visual Studio.NET + ASP.NET = “Visual Basic voor het Web” Drag-drop-double-click Event-driven, controls Geschikt voor elke client (of specifieke) Groot runtime voordeel t.o.v. Asp: Snelle executie van code Geen moeilijke deployment “Ingebakken” ondersteuning voor beveiliging, “Web Farms”, out-of-proc Session state, caching, etc.
Wat is Cool! ? Code behind Event Based Advanced Controls Security Caching “Infrastructure”