<Course Number>: Web Development with .NET

Course: <Course name and number, university/college name, etc.>

Course Description:
This course provides a comprehensive introduction to building web applications and web services using the Microsoft .NET development platform.  The key technologies covered include the C# programming language, the ASP.NET system for developing web forms and web services, and ADO.NET for data access.  In addition, time permitting, we'll cover technologies such as the .NET Common Language Runtime, the .NET Framework classes and XML, and topics such as application architecture and design, the architecture of .NET., debugging, deployment, security, scalability, performance and availability.

Credits:  <N> credits.

Class Meetings: <Days, time, building, room number>

Prerequisites:
<Specific course prerequisites>

Students should have experience designing, programming and debugging software.  Familiarity with object-oriented concepts such as classes, encapsulation, inheritance and polymorphism is required, as these topics will only be briefly reviewed.

Some experience with HTML is required

Experience with other Web development technologies (e.g. JavaScript, HTTP, CSS, Active Server Pages, XML) is not required, though a background in any or all of these technologies would be very helpful throughout this course.

Learning Objectives:

The course places emphasis on the underlying technologies (the .NET Framework) over the development tools (Visual Studio.NET), though both are covered.

Instructor: <Instructor's name>

Phone: <Instructor's phone number>

Email: <Instructor's email address>

Office Hours: <Instructor's office hours>

Course Web Site: <Course web site>

Schedule:

Meeting Date Topic
1   The Internet and the World Wide Web
Overview of the .NET development platform
2 Introduction to C#
3 Object-oriented Concepts in C#
4 More C#
5   Databases and Data Access
6 Introduction to ASP.NET and Web Forms
7 Advanced Web Forms
8   More Web Forms
9  

Even More Web Forms

10 XML/Web Services
11   .NET Security
12   CLR
13   Design Considerations
14   Project is due
Project presentations
Review
15   Final exam

Grading Criteria:
20% Homework Assignments
40% Project
40% Final

A deadline will be given for the project and each assignment.  If you cannot make this date please notify the instructor in advance.

The final will be open-book/open-notes, and will be cumulative, covering all material discussed during the course.

We will follow the <Your school> grading system:
    A = Excellent
    B = Good
    C = Satisfactory
    D = Low pass
    F = Fail

Homework Assignments:
Most topics will have an associated homework assignment.  Some of the assignments (C# programming, Web Forms, Web Services) will be graded and will contribute to a portion of a student's course grade.  Other assignments (ADO.NET, XML, .NET Framework classes, CLR) will be not be graded.  All homework assignments will be due one week after being assigned.  Answers to the homework assignments will be given and reviewed one week after the homework is assigned (i.e. the day the homeworks are due).

Project:
Working in teams of 1 or 2, students will specify, design, build and document a Web Form application and a Web Services application.  The applications can be from a problem domain familiar to the student, or can be any other problem of interest.  Examples include: an e-commerce system, a university scheduling system, a stock trading system, a document/knowledge management system, an airline reservation system, etc.  Choose something you're interested in and have some fun.

Each team will create both Web Form and Web Services applications.  The applications can work together, or, optionally, one team can pair up with another team, where a team will create a Web Form application that uses the Web Service application created by another team.  The two teams must coordinate to design compatible applications.

Deliverables for the project include both working software as well as a project report. 

Minimum requirements:

Use of more sophisticated features (e.g. XML, XML Schema, XSLT, class library, ASP.NET caching, web-based or CLR security, HttpHandler or HttpModule, sophisticated use of object-oriented features, etc.) will result in a better grade. 

The project report will include the following sections:

Section Description
Envisioning Vision statement.  What is this application trying to accomplish?
Requirements Functional requirements.  Use cases.  Performance, scalability, security, ...
Logical Design UI screen shots; database schema diagram;
UML diagrams: class, sequence, collaboration, state
Additional material Testing plan; deployment plan; support plan


Emphasis should be placed on listing the design decisions made; explain why one choice was made over other alternatives.

In your report, be sure to point out any advanced features that you used in your project.The written project report will constitute a portion of the grade.  A well-designed application will not receive full credit unless it is also well-documented.

All teams should be prepared to present and discuss their projects on the last day of class.  You should either create a few PowerPoint slides, or be prepared to do a "chalk talk".

Access to .NET Software:
All course work can be done using either the .NET Framework SDK (command-line development tools) or Visual Studio.NET (an IDE: Interactive Development Environment).  There are several ways for you to access  the .NET development platform to do the project and assignments:

  1. Visual Studio.NET DVDs will be provided <Instructor: these can be obtained from Microsoft>.  These will contain an evaluation version of the .NET Platform SDK and Visual Studio.NET.  Installation of either tool set requires a machine (or partition) running Windows NT, Windows 2000 or Windows XP.  You will need to have Administrator access to the machine, and should not use the machine for production work not based upon .NET.
  2. You can purchase student versions of Visual Studio.NET from the school bookstore for $???.
  3. An Internet-accessible server will be provided by the school Computer Science department.  It will allow you to run all the necessary software and develop and test your code.  Details on accessing the server will be forthcoming.  <Instructor: you can set up a Windows machine running Terminal Server, from which students can run Visual Studio.NET.>
  4. Brinkster (http://www.brinkster.com) is a commercial Application Service Provider that provides a basic ASP.NET hosting service for free.

Whichever tool you use (VS.NET or the .NET SDK) make sure that IIS (the Microsoft web server) is installed BEFORE you install .NET.  If you don't do this then ASP.NET won't run.  However, you can fix this by following the directions at http://support.microsoft.com/default.aspx?scid=kb;en-us;306005.

Required Text:
The primary "text" for the course will be a set of PowerPoint slides.  Each slide deck will be presented and discussed in class.  These can be downloaded from the course web site.

General Sources of Information about .NET:
MSDN web site: http://msdn.microsoft.com
MSDN .NET site: http://msdn.microsoft.com/net/
MSDN Library: http://msdn.microsoft.com/library/  
MSDN Reference: http://msdn.microsoft.com/library/?url=/library/en-us/netstart/html/cpframeworkref_start.asp?frame=true

GotDotNet web site: http://www.gotdotnet.com

Recommended Texts:
In addition to the class slides students may want a textbook (or two) to provide an additional point of view.  Below is a list of textbooks that I recommend. 

Inside C#, Second Edition, Tom Archer, Andrew Whitechapel, Microsoft Press, April 2001, ISBN 0-7356-1648-5
This is a great book about the C# language itself.  Very readable, lots of good information. Best comprehensive book on C#.

A Programmer's Introduction to C# (Second Edition), Eric Gunnerson, APress, June 2001, ISBN 1-8931-1562-3
Another great book about C#, written by one of the original C# team members.  Covers C# and much of the .NET Framework.

C# and the .NET Platform, Andrew Troelsen, APress, June 2001, ISBN 1-8931-1559-3
Good book about the C# language along with other parts of the .NET Framework. 

C# Essentials (2nd Edition), Ben Albahari, Peter Drayton, Brad Merrill, O'Reilly & Associates, January 2002, ISBN 0-5960-0315-3
Good, terse description of the C# language.

Designing Microsoft ASP.NET Applications, Douglas J. Reilly, Microsoft Press, November 2001, ISBN 0-7356-1348-6
Good introductory book on ASP.NET.

Programming Microsoft.NET, Jeff Prosise, Microsoft Press, 2002, ISBN 0-7356-1376-1
Excellent coverage of ASP.NET and much of the .NET Framework classes.

Building Web Solutions with ASP.NET and ADO .NET, Dino Esposito, Microsoft Press, February 2002, ISBN 0-7356-1578-0
Lots of good details on data binding and using ADO.NET with ASP.NET.  Advanced, not introductory.

Programming Data Driven Web Applications with ASP.NET, Donny Mack, Doug Seven, Sams, August 2001, ISBN 0-6723-2106-8
Good introduction to ASP.NET and data binding.  Lots of samples given in both C# and VB.NET.

ASP.NET: Tips, Tutorials and Code, Scott Mitchell, Donny Mack, Stephen Walther, Doug Seven, Bill Anders, Adam Nathan, Dan Wahlin, Sams, August 2001, ISBN 0-6723-2143-2

Professional ASP.NET, Dave Sussman, Alex Homer, Rob Howard, Karli Watson, Brian Francis, Richard Anderson, Wrox Press, June 2001, ISBN 1-8610-0488-5 
Lots of information, but can be hard to read.

Attendance:
<Attendance policy>