A repository for the Web Services course, taught in fall 2014.
Note that student contribution to the material is not only welcome, but highly appreciated! Feel free to fork this
repository, make changes you would like to see, and then issue a pull request. For further details, check the
Github help pages.
If you fork this repository, and would later like to incorporate the latest changes into your own forked version,
check out this tutorial.
Week 00:
Good to know
1. Git and GitHub
2. The Basics
3. Tutorials
Week 01:
Web Services
1. Historical background
2. Types of web services
REST Services
1. REST Resources
2. REST and HTTP
3. Using HTTP Verbs
4. HTTP Status codes
5. Versioning
6. REST Maturity Model
7. HATEOAS
8. Further reading
ASP.NET Web API
1. Architecture
2. JSON or XML?
3. CORS
Web API Routing
1. Routing
2. Parameters
3. Parameters from the HTTP body
API Documentation
1. API Documentation
2. Machine-readable documentation
Week 02:
Web Service Architecture
1. Web Service Architecture
2. Entities, DTO and ViewModels
3. Project Setup
Unit of Work
1. Unit of Work
2. Command/Query Object Pattern
Dependency Injection
1. Dependency Injection
2. Constructor Injection
3. Setter Injection
4. Property Injection
5. Poor man's DI
6. NInject
Assignment 1
1. Assignment 1
2. Install Visual Studio
3. Create a simple Web API
4. Install ASP.NET vNext
Week 03:
1. Assignment1 Starter Code
LINQ
1. LINQ
2. Materializing queries
3. Accessing records - Single record
4. Accessing records - More than one
5. Join
6. Extending LINQ
Entity relationships
1. Entity relationships
2. Entity Framework Relationships
3. Loading options
Mapping
1. Mapping
Fluent API
1. Fluent API
Week 04:
Example
1. Example
Assignment
1. Week 4 assignment
2.LINQ join
3. Entity relationships
4. Auto mapper
Unit Testing
1. Unit Testing
2. Unit test setup
3. System Under Test
4. Arrange/Act/Assert
5. Test data
6. Assert section
7. Exceptions in unit tests
8. Auto test generation
9. For/against
Week 05:
Globalization and Localization in ASP.NET
1. Introduction
2. Detect user's language
3. Multiple languages in web API
Validation
1. Data Annotations
2. Moving validation to service layer
3. Handling Validation Errors
Exception Handling
1. HttpResponseException
2. Exception Filters
3. Logging unhandled exceptions
4. Global IExceptionHandler
Tracing
1. Default Tracing
2. Add traces to your code
3. Creating Custom Trace Writer
Week 06:
1. CoursesAPI-OpenID-Demo
2. Skil 1 - Nuget
Security
1. OAuth
2. Oauth 1.0
3. OAuth 2.0
4. OAuth and .NET
5. OpenID Connect
6. OpenID Connect basic specs
OData
1. OData
2. Querying Data
3. OData and .NET
Week 07:
Caching
1. Caching
2. Web API caching
3. ETags
4. CacheCow
5. ASP.NET Web API CacheOutput
6. Custom Server side cache example
Week 08:
Examples
1. Cinema example
2. Flask Movie example
3. Flask Restful Movie example
Install instructions
1. Python set-up Ubuntu
2. Python set-up OSX
Assignments
1. Python Lab Assignments
2. Lab Solutions
Flask REST
1. Flask-Restful
Week 09:
Node
1. NodeJS
Assignments
1. Lab Assignments
2. Lab Solutions
Week 10:
Elastic Search
1. Elasticsearch
2. Download and install
3. Indexing
4. Search
5. Basic text search
6. Query in list
7. Query by range on dates
Examples
1. MyBlogAPI
2. SQLAlchemy-Elasticsearch
Week 11:
RabbitMQ
1. RabbitMQ
2. Installing RabbitMQ
3. Example 1
4. Message acknowledgment
5. Message durability
Assignments
1. Lab Assignments
Examples
1. Pizza
Week 12:
Project 3
1. Kodemon
2. Kodemon Python decorator
3. Kodemon UDP server
4. Kodemon API
5. Interface which presents the data