1 / 30

COMP2121 Internet Technology

COMP2121 Internet Technology. Richard Henson April 2011. Week 10: Running Dynamic Web pages. Objectives Explain briefly how the .net framework uses programming code running on a web server Explain what .net controls controls are, and why they are so useful in server scripting.

Download Presentation

COMP2121 Internet Technology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP2121Internet Technology Richard Henson April 2011

  2. Week 10: Running Dynamic Web pages • Objectives • Explain briefly how the .net framework uses programming code running on a web server • Explain what .net controls controls are, and why they are so useful in server scripting

  3. Advantages of using ASP.NET scripts • Asp.net code: • is compiled, not interpreted • v1 relied on an additional /bin folder for deployed “assemblies” or “controls” containing executable code • v2 onwards used /app_code folder – latter more flexible; could be referred to directly from a site configuration file • uses xml-type tags • can be written using a variety of programming languages • language declared at beginning of file • is full object-oriented and can easily be used as “controls” to respond to on-screen “events”

  4. Running controls with ASP.NET • Microsoft developed an “intermediate language” (IL) for .net framework • could be readily converted into machine code but the IL not easily hacked • Source code for .net development can be written in any language that can be translated into IL • VB.NET built on existing practice from asp • C# has proved to be most popular with developers, many of whom had previously used “C” and C++ • why use VB.net, when you can use C…?

  5. Components of the evolving .net framework • Evolving? • now at version v4.0 • .net common language infrastructure (CLI) • “managed execution” framework for scripts on an IIS web server • runs Intel x86 IL (Intermediate Language) code • Common Language run-time (CLR) for executing controls • ready to run • development language irrelevant

  6. Components of the evolving .net framework • /App_Data folder for database, web applications also must have a web.config file in the application root folder • As well as app_data folder, .net apps from v2 onwards also support the following additional folders: • app_code for“assemblies” (compiled code) & executables • app_browsers, app_themes, app_localresources, app_globalresources, app_webreferences…

  7. How the .net environment manages an application • “Assemblies” from .aspx files added to /app_code folder • CLI executes IL assemblies as CLR (runtime) • just a set of Win32 DLLs (dynamic link library files) created by compiling the assembly components • written in IL • makes sure script execution is “controlled” and kept within memory boundaries • loaded implicitly when a .net application is run

  8. Mechanism of Loading Assemblies for processing • “AppDomain” sets up a security boundary in memory for each application • Code (.exe, or .dll) loaded into process “spaceperfo” • JIT (Just in Time) compilation ensures “flat out performance” of the application… • cf Wallace & Grommit – latter lays out the track as the train is about to pass along it

  9. HTTP processing • Whole .net architecture designed “with failure in mind” • overall control with http.sys process • if memory usage gets too large… • whole .net framework pulled down and restarted… • Each AppDomain uses a pipeline of objects to handle requests • Httpapplication – oversees flow • Httpcontext – tracks “per request” state • Modules – generic “pluggable services • Handlers – http requests • Covers most (all?) eventualities and makes sure requests are correctly dealt with – no muddling of threads (!)

  10. Very Useful ASP.net components: 1. Web Controls • Reusable classes used to render parts of a page • Similar to Windows “forms” • New control created for each request • view state/Event tracking handled automatically • A typical web page may have a hierarchical structure of web controls to makes them easily manageable

  11. Very Useful ASP.net components: 2. Event Handlers • HTTP is stateless (no data retention) • no multi-step processes possible • e.g. HTML form contents disappear once form submitted • Web Controls provide scope for handling events, when triggered (or raised) • e.g. Page_Load, OnClick • “PostBack architecture” • allows web forms data to reappear on the screen

  12. Very Useful ASP.net components: 3. Master Pages & Themes • Master Page • resides in .master file • defines template for other pages • cf PowerPoint slide master • Contains top <html>, <body>, <form> tags • “Page” command utilises master either “static” or “dynamic” • “Page_init” process renders components • Themes • allow common styles to be applied across a series of pages • Developers can still use .CSS files • fully supported by the master file and page “themes” concepts

  13. .net Development and RAD tools • Don’t be phased by the .net architecture and use of a programming language like C… • the syntax of object-oriented C# is similar to Java • RAD tools such as Dreamweaver (earlier versions) and Visual Web Developer make development easy by… • providing a range of web controls already written in C# and ready to compile • helping with putting controls/assemblies into the /app_code folder • setting up the web.config file • many other previously written controls are available on the web

  14. Using Relational Databases • Real advantage of a true relational database is that SQL can be used for r/w & query database operations • so .net work with database involves AQL queries as well • As before, the RAD environment can use wizards to write the queries for you…

  15. Databases and the .net architecture • To make a two-way link between database and server scripts, it is just necessary to: • make relevant Microsoft data access components (MDAC) available … • define “datasets” (aspx) for the database using a programming language & embedded SQL • provide connectivity link to the database using the appropriate web control

  16. Microsoft Data Access Components (MDAC) • Provide connectivity between the system and a wide range of databases • Easily downloaded: • www.microsoft.com/data/download_21242023.htm • Just because a database type doesn’t seem to be represented, doesn’t mean that it can’t be… MDAC is regularly updated

  17. Database Design • Same principles apply as with any other relational database management system (RDBMS)… • identify entities & attributes • produce entity relationship • define logic relationships between entities • make sure data is fully normalised • create tables & links • use embedded SQL statements in the server script to communicate with the data: • extract data from specific fields in particular tables • put data into specific fields in particular tables • However, some “self-taught” developers will be unaware of this, and try to build the data round the processing…

  18. Evolution of connectivity between Applications & RDBMS • In the early web development days… • for the connection of an application to a relational databases… • a client application had to be written to use the proprietary API (application program interface) • Even then, there was a problem: • what if more than one RDBMS needs to be used? • The solution would be to use several different APIs (Application Programming Interfaces) • each needed a client application… • added greatly to the complexity of the task!

  19. The Microsoft Solution:the ODBC API • Aspiration: the “Universal Data Access” (UDA) model • all data consumers interact with all data providers… • response to the “API for each application” problem • First stage: ODBC = Open Database Connectivity • Developed in early 1990s: • common API for writing applications to access ANY relational DBMS for which an ODBC driver had been written • Once the APIs had all been written, tried, and tested… • any relational database with an ODBC compliant interface could use them • DSN model offered easy database path connectivity string management

  20. ActiveX • The next stage in evolution of Microsoft’s data objects model • sexy name for OLE v2.0 • made up of… • OLE • Object Linking and Embedding… • Combined with COM • Common Object Model • ActiveX Data Objects make up a series of modular components called ADO • used for “run-time” web applications • basis of .net controls

  21. More about ActiveX Data Objects (ADO) • Designed to simplify the writing of client applications to access data sources through OLE DB providers • more flexible than the earlier ODBC model • had to be specified on the local machine • limited to the data providers on that machine • Active X uses a common, easy-to-use object model • data sources can now also include: • spreadsheets • graphics • web pages

  22. OLE DB • Application of OLE/ActiveX principles to connectivity between applications and relational database management systems • interface specification provides a layer of abstraction between: • a data provider e.g. relational DBMS • a data consumer e.g. business object or client application

  23. Universal Data Access in practice

  24. Making a connection to a database on the web server • Each new version of .net provides more database controls • RAD tools very helpful at making these accessible… • server-script can then use SQL commands to link to and communicate smoothly with database tables • can save a lot of time…

  25. How FTP works • Used with TCP/IP to send files from one site (server) to another (client): • all Internet Servers have unique IP addresses • IP address used by IP protocol to manager transfer of data packets from one site to another • TCP used to arrange packets into the correct order, through listening on port 21 (as opposed to HTTP packets, which use port 80) • data rearranged into correct format for screen presentation by FTP protocol

  26. How FTP works • Server offers FTP as a web service • username/password controlled access to folders • tends to be associated with a www service • Device defined to be accessed through TCP port 21 • FTP service accessed by FTP clients via TCP/IP and the Internet

  27. FTP Servers • Set up (by default) to listen for FTP requests on TCP port 21 • During FTP access: • FTP client tools attempt to log on to the server, and get access to the directory or directories provided by the service • FTP client tool receives/sends selected files from/to appropriate directory on the FTP server • communication channel is terminated

  28. Windows FTP Servers • FTP service provided as a component of: • Internet Information Server (Microsoft) • Apache web server • Other third party products: • WS FTP server (Ipswitch) • FTP Serv-U

  29. Unix FTP servers • NOTE: to avoid upsetting Unix’s file system, filenames should be lower case and avoid punctuation • Examples: • ftpd (ftp daemon) – based on original DARPANet specification • Apache web server (originally for Unix)

  30. Thanks for listening… 

More Related