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

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

Versioning

REST Maturity Model

HATEOAS

Further reading

3. SOAP

4. ASP.NET Web API

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

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

NodeJS

2. Express

Week 09:

1. MongoDB

2. Elastic Search

Elasticsearch

Download and install Indexing

Search

Basic text search

Query in list

Query by range on dates

Week 10:

1. NodeJS Unit tests

2. Message Queues

RabbitMQ

Installing RabbitMQ

Example 1

Message acknowledgment

Message durability

Week 11:

1. Deployment

2. Docker

Week 12:

1. Microservices