/2014-T-514-VEFT

A repository for the Web Services course, taught in fall 2014.

Primary LanguageC#Apache License 2.0Apache-2.0

2014-T-514-VEFT

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.

Table of contents

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