/2015-T-514-VEFT

Primary LanguageC#Apache License 2.0Apache-2.0

2015-T-514-VEFT

A repository for the Web Services course, taught in fall 2015, there's also a repository for last years course.

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

Useful tools

Further reading

3. SOAP

What

Why

REST vs SOAP

Helpful resources

4. ASP.NET Web API

Architecture

JSON or XML?

More on return values

Returning errors

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

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:

1. 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

I18N, G11N and L10N

Detect user's language

Multiple languages in web API

2. Validation

Data Annotations

Moving validation to 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. OData

OData

Querying Data

OData and .NET

2. Paging

Implementation in Web API

3. Authentication and Authorization

OAuth

Oauth 1.0

OAuth 2.0

OAuth and .NET

OpenID Connect

OpenID Connect basic specs

4. Security

Common vulnerabilities

SQL injection

Cross-site scripting

Cross-site Request Forgery

Open Web Application Security Project

sqlmap

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

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

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