Five-Project Series

Automate an Inspection Process with ASP.Net Core you own this product

prerequisites
basic knowledge of C#, SQL, HTTP, YAML, JSON • basic debugging techniques
skills learned
interpret an OpenAPI specification • implement and test an HTTP API with ASP.NET Core • use ASP.NET Core for authentication and authorization
Ruben Vandeginste
5 weeks · 6-8 hours per week average · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • share your subscription with another person
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Play the role of a software engineer for Boutique, a software development company. Your task is to complete a project that automates a client’s inspection process from start to finish. You’ll create and configure an ASP.NET Core host and implement the first endpoint, a health check, as well as endpoints for CRUD (create, read, update, and delete) operations according to the OpenAPI specifications. To enable employees to use all of the API’s functionality and customers to have read access to their own data, you’ll add authentication and authorization. You’ll help the client’s employees document their inspections by implementing endpoints for uploading and downloading photos and notes. To get the API production-ready, you’ll add logging functionality and create custom middleware for cross-cutting concerns including handling exceptions. When you’re finished, you’ll have learned the skills you need to use ASP.NET Core to build a complete HTTP API that’s robust, stable, and easy to maintain.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

This was a great project. I felt I learned a lot about the .NET ecosystem and how to write unit tests.

Jonathan Reeves, Software Engineer, First Tactica

liveProject author Ruben Vandeginste shares what he likes about the Manning liveProject platform.

here's what's included

Project 1 Create an HTTP API

Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.

Project 2 Implement CRUD Endpoints

The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.

Project 3 Authenticate and Authorize

Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.

Project 4 Search and File Download

As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.

Project 5 Stability and Logging

Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Automate an Inspection Process with ASP.Net Core project for free

The instructions are precise and adjusted to the content. The additional help of the books is of great added value.

José Francisco Ibarra, Senior Software Developer, BestSecret

The series was logically structured and provides good content and examples.

Keith Hollen, Senior Data Engineer, Arvest Bank

project author

Ruben Vandeginste

Ruben Vandeginste received his PhD in computer science from KU Leuven, Belgium, in 2007. Soon afterward, he began working for PeopleWare, where he’s currently a software architect and technical lead. He designs and helps implement administrative applications, with a focus on backend services built with Microsoft’s .NET stack, and he’s well-versed in implementing HTTP APIs with Web API and ASP.NET Core.

Prerequisites

These liveProjects are for developers who know the basics of C# and want to learn how to implement HTTP APIs using the ASP.NET Core framework. To begin these liveProjects, you’ll need to be familiar with the following:

TOOLS
  • Basic C#
  • Basic HTTP
  • Basic YAML and JSON
  • Basic SQL
TECHNIQUES
  • Basic debugging techniques

you will learn

In this liveProject series, you’ll learn to:

  • Interpret an OpenAPI specification
  • Configure and use the Microsoft DI container
  • Set up an HTTP API host with ASP.NET Core
  • Configure routing for endpoints in the HTTP API
  • Set up API versioning
  • Use Postman for manual testing of the API
  • Set up Swagger UI using the Swashbuckle middleware and use this for both documentation and manual testing
  • Implement integration tests for the API, including database access
  • Set up and configure JSON serialization for the HTTP API
  • Set up and configure validation for incoming data
  • Set up and configure logging
  • Gain insight into how the ASP.NET Core processing pipeline works, how middleware can be plugged into it, and how middleware can be used for cross-cutting concerns
  • Set up and configure CORS middleware
  • Set up and configure authentication and authorization in the context of an external identity provider, using JWT
  • Gain insight into different ways to approach authorization, both for static authorization (action allowed based on a specific group, role, or claim) and dynamic authorization (action allowed for data that the user has access to or data that the user owns)

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.