This all-day workshop will walk developers through the design and implementation of a robust API layer using Visual Studio 2017, C#, and the ASP.NET Core 2.2 stack.
Today’s client-centric architecture’s frequently involve a mix of UI frameworks such as Angular, React, or even native mobile apps targeting iOS, Android, or Windows devices. One common requirement for each of these modern application frameworks is the need to communicate data back to the server via an easily accessible API layer. As developers who frequently work on both the API and the client, the overall development process needs to support the ability to quickly add code to both layers and to have an efficient debugging experience.
This class will walk all attendees through designing such an API on the Microsoft stack that is flexible, easy to debug, easy to extend, and supports a number of advanced features commonly required by todays architectures. As the class progresses we will work through the full implementation of a secure API that demonstrates a wide variety of real-world scenarios. We will discuss and demonstrate a clean, back-end architecture isolating all data access into an organized repository layer utilized by higher-level business services.
We will also demonstrate how this API can be utilized across a number of UI frameworks including an SPA written in Angular and a cross-platform mobile application developed in Xamarin. The focus will be on setting up an efficient development process between these clients and the API.
All students will be encouraged to implement all features locally and the overall content will be presented in a very “hands on” manner. All code and sample projects will also be provided via a public GitHub repository so that attendees can leverage the core concepts in their own projects upon completion of the course.
Students will get a deep dive into:
- API Structure and Architectural Considerations
- Json Serialization
- Visual Studio Project Setup
- Dependency Injection
- ViewModels and Mapping
- API Documentation
- Data Access Patterns
- State Management
- Versioning APIs with the ASP.NET Core 2+ Versioning Infrastructure
- Debugging APIs
- Unit Testing APIs
- Monitoring API Health
- Deployment and Hosting Options including Docker/Kubernetes