Introduction to ASP .NET Prehistory of ASP .NET • Original Internet – text based • WWW – static graphical content HTML (client-side) • Need for interactive and animated content Javascript (client-side) • Need for database-driven web sites CGI, ASP, JSP, PHP, ColdFusion (server-side) About Processing on the Web • Hypertext Transfer Protocol (HTTP) • Request-Response Model • Statelessness of the web browser builds an HTTP request and sends it to the IP address indicated by the URL. Safari Web server Web server on the destination host machine (identified by IP address) receives the request and, after any necessary processing, the requested file is returned. Web Server • Running on Host – In Microsoft world this is Internet Information Server (IIS) • Linux Apache – With ASP and .NET Framework, IIS can produce dynamic content (automaticallygenerated Technologies for Server Side Processing • • • • • CGI – Common Gateway Interface Java Server Pages (JSP), Java Servlets ActiveX Server Pages (ASP) PHP Preprocessor (PHP) ASP .NET Server-side processing enables 3-tier architectures Three-Tier Architectures • Three layers: – Client – Application server – Database server GUI interface (I/O processing) Business rules Data storage Browser (with HTML/Javascript) Web Server (with ASP .NET) DBMS Thin Client PC just for user interface and a little application processing. Limited or no data storage (sometimes no hard drive) Three-tier architecture Thinnest clients Business rules on separate server DBMS only on DB server Problems with Old ASP • Code mixing (HTML, Javascript, VBScript inline) hard to understand and maintain • Interpreted no compiled ahead of time, slows processing • ASP .NET allows for both code separation and pre-compiled processing • Same is true with PHP and JSP – Frameworks exist for both to enable code separation ASP .NET’s improvements over old ASP • More object-oriented and event-driven – – • Multiple Language Support (VB, C#, C++, JScript.NET) – – • – can separate HTML code (display) from VB/C# code (server side processing) through use of server or user controls use of code-behind files Smart Code Output – – • “automatic HTML-generators” Code Separation Support – • via Common Language Runtime other languages can be added to the list Powerful control objects (server controls, user controls) – • robust class library ability to create more efficient and reusable code automatic generation of browser/device compatible output use of form validation controls Deployment - easier administration of web sites – – – simplicity in installing components Use of web.config file for configuration and bin directory for Assemblies (DLLs) .NET Framework Terms • NET Framework – software framework that runs primarily on Microsoft Windows. – Framework – • Common Language Runtime (CLR) – run time environment that provides the underlying infrastructure for Microsoft's .NET framework (pp17-18) • Assembly – a .dll file (dynamic link library) that contains executable code compiled for the CLR (pp14-17) http://en.wikipedia.org/wiki/.NET_Framework These compilers generate managed code. Managed code is code that is run within the Common Language Infrastructure (CLI). Common Intermediate Language (CIL) is like Java’s bytecode Common Language Runtime (CLR) is like Java’s virtual machine Virtual Execution System (VES) is the “simulated CPU” upon which the CLR operates. Note: Visual C++ can compile into either managed or unmanaged code. Unmanaged code is compiled directly to the machine language of the CPU, and is not part of the CLR