Introduction to ASP.NET • What is .NET • What is ASP.NET and how is different from ASP – ASP: server side technology for creating dynamic web pages using scripting languages eg vb script. – ASP.NET: server side technology for creating dynamic web pages using Fully Fledged programming languages supported by .NET – VB.NET: our chosen language for writing ASP.NET pages What is .NET? • • A Microsoft strategy and new technology for delivering software services to the desktop and to the web Components include: – MS Intermediate Language; all code is complied into a more abstract, – – – – • • • trimmed version before execution. All .NET languages are compiled to MSIL – the common language of .NET The CLR- common language runtime; responsible for executing MSIL code; interfaces to Windows and IIS A rich set of libraries (Framework Class Libraries) available to all .NET languages The .NET languages such as C#, VB.NET etc that conform to CLR ASP.NET is how the Framework is exposed to the web, using IIS to manage simple pages of code so that they can be complied into full .NET programs. These generate HTML for the browser. Built on open protocols (XML, SOAP) Future for development of MS & non-MS based systems. Also heading towards the “Internet Operating System” Common Language Runtime Type System Compilers use the runtime type system to produce type compatible components Components C# VB C++ Common Type System Compilers Runtime Environment Robust And Secure • Native code compilation • Code correctness and type-safety • MSIL No interpreter Install-time or run-time IL to native compilation IL can be verified to guarantee type-safety No unsafe casts, no uninitialized variables, no out-of-bounds array indexing Evidence-based security Policy grants permissions based on evidence (signatures, origin) .NET Execution Model VB Native Code VC ... Script IL Common Language Runtime Standard JIT Compiler Native Code Common Language Runtime • Lightweight Just-in-time compiler: – – – – MSIL to Native machine language Can be ported to numerous platforms Free/Net BSD UNIX port has been announced “MONO” Open source movement Framework Overview VB C++ C# JScript … Common Language Specification Win Forms Data and XML Base Class Library Common Language Runtime Visual Studio.NET Web Forms (ASP.NET) .NET Framework Architecture System.WinForms System.Web Web Services Web Forms ASP.NET Application Services Controls Drawing Windows Application Services System Base Framework ADO.NET XML SQL Threading IO Net Security ServiceProcess Common Language Runtime Type System Metadata Execution ASP.NET • ASP.NET provides a means of exposing the .NET Framework and its functionality to the WWW • Contains a number of pre-built types that take input from .NET types and represents them in a form for the web (such as HTML) • Class browser: http://interdev.csse.monash.edu.au/quickstart/asppl us/samples/classbrowser/vb/classbrowser.aspx Web Services • Web Services also provide a means to expose .NET functionality on the web but Web Services expose functionality via XML and SOAP (cf: function calls over the web) How ASP.NET works • When .NET is installed, IIS is configured to look for files with the .aspx extension and to use the ASP.NET module (aspnet_isapi.dll) to handle them. • ASP.NET parses the .aspx file and arranges it in a predefined class definition and generates an asp.net page object. • The page object generates html that is sent back to IIS and then the browser. • NOTE: only .aspx files are parsed (if it is pure html don’t save it as an aspx file as it will slow down the server. ASP.NET samples • Page directives: <%@ page language = “VB” debug="true" trace="true“ %> • <script language = “VB” runat=“server”> VB.NET code declarations ……….. </script> • Message.aspx <html> <head> <title>Inserting ASP.NET code Example</title> </head> <body> Line1: First HTML Line<br /> Line2: Second HTML Line<br /> Line3: Third HTML Line<br /> </body> </html> • Note this has no asp code so better to use .html extension • Message2.aspx <script language="VB" runat="server"> Sub Page_Load() Response.Write ("First ASP.NET Line<br />") Response.Write ("Second ASP.NET Line<br />") Response.Write ("Third ASP.NET Line<br />") End Sub </script> <html> <head> <title>Inserting ASP.NET code Example</TITLE> </head> <body> Line1: First HTML Line<br /> Line2: Second HTML Line<br /> Line3: Third HTML Line<br /> </body> </html> • Message3.aspx html> <head><title>Inserting ASP.NET code Example</title></head> <body> Line1: First HTML Line<br /> Line2: Second HTML Line<br /> Line3: Third HTML Line<br /> <script language="VB" runat="server"> Sub Page_Load() Response.Write ("First ASP.NET Line<br />") Response.Write ("Second ASP.NET Line<br />") Response.Write ("Third ASP.NET Line<br />") End Sub </script> </body> </html> Render or inline code block – interweave1.aspx <html> <head> <title>Interweaving ASP.NET code and HTML Example</title> </head> <body> Line1: First HTML Line<br /> <% Response.Write ("First ASP.NET Line<br />") %> Line2: Second HTML Line<br /> <% Response.Write ("Second ASP.NET Line<br />") %> Line3: Third HTML Line<br /> <% Response.Write ("Third ASP.NET Line<br />") %> </body> </html> NOT RECOMMENDED. Interweave2.aspx A Server control script language="VB" runat="server"> Sub Page_Load() Message.Text="The ASP.NET line" End Sub </script> <html> <head> <title>Inserting ASP.NET code Example</TITLE> </head> <body> First HTML Line<br/> <asp:label id=Message runat="server"/> <br /> Second HTML Line<br/> </body> </html> Page class events • Page_init • Page_load • Server_Controls • Page_prerender • Page_Unload ASP.NET Vs PHP Feature PHP ASP.NET HTML Yes Yes CSS Yes Yes ‘php Templates’ Yes UserControls ServerControls (buttons,grids etc) No Yes Javascript Yes Yes + Validation controls Database Conn Yes Yes Cookies & Sessions Yes Yes VIEWSTATE No Yes POSTBACK No Yes Examples • quickstart – webforms – – – – – – – Intro4 shows VIEWSTATE Intro6 shows a click event Intro7 shows a usercontrol with a calander Intro8 shows a db connection Intro9 & 10 show asp.net templates Intro11shows validation controls Intro13 shows code behind pages • Server directives eg trace and debug – trace The lab environment. • IIS server – interdev.csse.monash.edu.au/cse2030…. • Each student has write access to their own directory on interdev (Sstudentnum) • URL: http:\\interdev.csse.monash.edu.au/cse2030/Sstude ntnum/message.aspx • Alternative to .Net is webmatrix • Interdev is not accessible outside Monash network.