/2016-T-514-VEFT

Primary LanguageHTMLApache License 2.0Apache-2.0

2016-T-514-VEFT

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

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:

1. Web Services

Historical background

Types of web services

2. REST

REST Resources

REST and HTTP

Using HTTP Verbs

HTTP Status codes

Response format

Versioning

REST Maturity Model

HATEOAS

Further reading

3. SOAP

What

Why

Why not

REST vs SOAP

Helpful resources

4. ASP.NET Web API

History

Installing

Creating a Web API project

Architecture

JSON or XML?

CORS

5. Web API Routing

Routing

Parameters

Parameters from the HTTP body

6. API Documentation

API Documentation

Machine-readable documentation

Week 02:

1. Web Service Architecture

Web Service Architecture

Entities, DTO and ViewModels

Project Setup

Adding a new project to our solution

2. Unit of Work

Unit of Work

Command/Query Object Pattern

3. Dependency Injection

Dependency Injection

Constructor Injection

Setter Injection

Property Injection

Poor man's DI

NInject

Week 03:

1. LINQ

LINQ

Materializing queries

Accessing records - Single record

Accessing records - More than one

Join

Extending LINQ

2. Entity relationships

Entity relationships

Entity Framework Relationships

Loading options

3. Mapping

Mapping

4. Fluent API

Fluent API

Week 04:

Unit Testing

Unit Testing

Unit test setup

System Under Test

Arrange/Act/Assert

Test data

Assert section

Exceptions in unit tests

Auto test generation

For/against

Week 05:

1 Globalization and Localization in ASP.NET

Introduction

Detect user's language

Multiple languages in web API

2. Validation

Data Annotations

Moving validation to the service layer

Handling Validation Errors

3. Exception Handling

HttpResponseException

Exception Filters

Logging unhandled exceptions

Global IExceptionHandler

4. Tracing

Default Tracing

Add traces to your code

Creating Custom Trace Writer

5. ELK

Week 06:

1. Security

OAuth

Oauth 1.0

OAuth 2.0

OAuth and .NET

OpenID Connect

OpenID Connect basic specs

2. OData

OData

Querying Data

OData and .NET

Week 07:

1. Caching

Caching

Web API caching

ETags

CacheCow

ASP.NET Web API CacheOutput

Custom Server side cache example

Week 08:

1. Microservices

Microservices

2. NodeJS and ECMASCript 6

Week 09:

1. NodeJS

Node.js

How to install Node.js

Nodejs shell

Node.js is single threaded and asynchronous

Echo server

Web service in node.js

2. Express

Express

Download and install

Middleware

Lets dance

MEAN Stack

Helpful resources

Week 10:

1. NodeJS Unit tests

Unit Testing

How to install Mocha

The node JS function under test.

Our first Mocha test

Running Mocha

2. Message Queues

RabbitMQ

Installing RabbitMQ

Example 1

Message acknowledgment

Message durability

Week 11:

1. Document Storage

MongoDB

Data models.

Indexes

Replication

Sharding

Setup

Mongo

Mongoose

Setup

Getting started

Validating in mongoose

Simple validation

Regular expression

Asynchronous validation

Built in validators.

2. Elastic Search

Elasticsearch

Download and install

Indexing

Search

Basic text search

Query in list

Query by range on dates

Advanced key storing

Using Elasticsearch with MongoDB

Week 12:

1. Deployment

2. Docker