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