The University of Southampton

COMP6205 Web Development

Module Overview

The aims of the module are

  • To provide students with the opportunity to improve their understanding of web development, and their judgement of the effectiveness of different development techniques, both in theory and in practice.
  • To cover important techniques and issues in designing, building and deploying robust large scale web systems
  • To consider development methods and patterns which enhance maintainability and testability, such as web components, MVC, ORM, HTML template engines, and automated web testing
  • To familiarise students with the ASP.NET web development framework, and compare this with other frameworks and approaches to web development.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Modern web standards, technologies, and techniques, including content management systems and responsive web design
  • The ASP.NET web development framework, including ASP.NET MVC
  • Similarities and differences with alternatives such as Enterprise Java, OO PHP, Python/Django, and Web Forms
  • Techniques for deploying and testing web sites, and for enhancing their performance and scalability

Subject Specific Intellectual

Having successfully completed this module, you will be able to:

  • Evaluate alternative server-side frameworks, and contrast client-side and server-side web programming
  • Model and manage web performance using a range of methods
  • Explain the limitations of partitioning and parallelism in improving web performance

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Design and build ASP.NET MVC web sites using professional web development tools such as IDEs, HTML template engines, test automation, and Object-Relational Mapping software

Syllabus

  • Review of modern web standards such as HTML5 and CSS3
    • web templates and template engines
    • responsive web design
  • Web Information Architecture and Content Management Systems
    • intranet search techniques, use of metadata
    • examples of CMS/Portals such as Sharepoint and Drupal
  • Web Development using ASP.NET
    • underlying .NET technologies such as C#, ASP, and LINQ
    • ASP.NET Razor and MVC
    • comparison with other approaches such as:  Java Enterprise (JSP, JDBC), Python/Django, Object Oriented PHP, and ASP.NET Web Forms
    • comparison of client-side versus server-side programming
  • Patterns and methods to enhance maintainability and testability
    • dependability injection and inversion of control
    • Model-View-Controller (MVC) and variants (MV*)
    • object relational mapping (ORM)
  • Business Logic
    • maintaining web state (page, session, and application lifetime and scope)
    • persistence using Entity Framework and LINQ
    • techniques for validating input data in each tier and their benefits
  • Testing, deployment and configuration
    • private, test and public builds
    • web site hosting
    • classification and management of detected errors
    • range and use of web test automation tools
  • Performance modelling and management
    • partitioning and parallelism, Amdahl’s law
    • performance modelling and benchmarking
    • graceful degradation (admission control, disabling recommendations)

Learning & Teaching

Learning & teaching methods

Pre-requisites

Professional web sites are constructed using standards such as HTML5 and CSS3.  They typically connect to a back-end database, either directly or using an API.  In addition, you should have some understanding of networking and security, for example familiarity with HTTPS.

Web development also involves the use of modern object oriented languages such as C#, Java, JavaScript and PHP (OO from version 5 onwards).  It is expected you will be comfortable with using language features such as inheritance and interfaces as associative arrays and iterators.  You will, moreover, be comfortable with the language of design patterns, including the classic Model-View-Controller (MVC).

There will be a diagnostic test at the start of this module.  Students who have some minor gaps in their background knowledge will be given directed reading to help them catch up, and given the opportunity to participate in a study group.  Students with more significant gaps will be advised to reconsider their choice of this option.

ActivityDescriptionHours
Lecture36

Assessment

Assessment methods

MethodHoursPercentage contribution
An ASP.NET MVC Web Development Exercise-30%
Exam2 hours70%

Referral Method: By examination

Share this module FacebookTwitterWeibo