.NET with Web API, React and Azure

Summary

This is a 5-day public course in London on 20 - 24 June with a maximum of 5 attendees. The fee is £1400+VAT. Contact us to make a booking.

The content detailed in the next section includes programming in C# 10, interacting with a database, building a REST API with a React Client and hosting the application on Azure.

Course content

1. Programming in C#
Review of C# fundamentals                                                            
Video
  • This is intended as a recap for developers who are already familiar with object-oriented programming but may not be up to date with best practices and new additions to the language.
  • Overview of .NET 6 and C# 10 including the CLR, CTS and CLS
  • Syntax including data types, operators and statements
  • Class design including UML, encapsulation, expression-bodied members, auto-implemented properties, overloaded constructors, inheritance and overriding, abstract classes, structs
  • Handling and throwing exceptions; recursive methods
  • Passing parameters by reference with the in, out and ref keywords
  • Unit testing with xUnit, including parameterised tests and substituting dependencies for mock objects with the Moq library.
2 units
2. Collections
Comparing classes and interfaces in the collections framework
  • The collections interface hierarchy with IList and IDictionary implementations. Polymorphism and numeric formatting.
  • Using FIFO and LIFO collections including Stack, Queue and LinkedList
  • ISet implementations including HashSet and SortedSet. Overriding Equals and GetHashCode, implementing IComparer
  • Relative speeds of collection methods and Big O notation
  • Writing a generic class that implements ICollection, using the Array class. Using the yield keyword to get an Enumerator
1 unit
3. LINQ
Using Language-Integrated Query to interrogate collections.
  • Using LINQ Query syntax
  • Understanding LINQ method syntax, including extension methods, generic delegates, lambda expressions, covariance and contravariance
  • Filtering, selecting and aggregation operations
  • Building a repository class, using a HashSet persisted to a file with JsonSerializer. Unit testing the repository with XUnit and Moq.
1 unit
4. SQL
Communicating with a SQL Server database.
  • Transact-SQL types. Creating tables, insert, update, delete and select statements. Primary and foreign keys, table joins
  • Getting a connection, IDisposable types and using statements. Transactions; pessimistic and optimistic concurrency control
  • Building repository classes and writing integration tests
1 unit
5. Entity Framework
Object-relational mapping with Entity Framework Core.
  • Configuring a DbContext, data seeding. Test-driven development
  • Entity classes, generated values, foreign key properties, data annotations, optimistic concurrency control
  • Managing database schemas, using migrations to sync the data model with the database; reverse engineering
  • Querying with LINQ, eager and lazy loading of related data
  • Saving data; entity state; adding, modifying and removing tracked entities
  • Asynchronous methods, the Task class, using the await keyword, starting a background thread with Task.Run
  • Building a Service Layer for separation of business logic (services) and data-access logic (repositories)
2 units
6. Web API
Creating RESTful services with ASP.NET Core.
  • Controller classes; HTTP methods and status codes; route mapping and constraints
  • Configuring dependency injection; CORS; debugging with Postman
  • Unit testing the controller with xUnit and Moq
  • Generating a SHA256 hashed password
  • Claims-based authentication, symmetric encryption, generating a JSON Web Token (JWT), authenticating the JWT on the server
  • Writing controller methods that call the service layer, including the JWT in the HTTP header
  • Creating a release build and deploying the service
3 units
7. React
A JavaScript library for building user interfaces
  • Understanding toolchains, packages and modules. Using Visual Studio Code with Node Package Manager to create a single page app
  • Javascript and Typescript syntax review including data types, operators, variable declaration and scope, control structures, objects, constructors, arrays, inline and arrow functions
  • JSX. Components and props. Handling events
  • State and lifecycle with state and effect hooks; the virtual DOM; debugging with React developer tools
  • Conditional rendering, extracting components into a hierarchy, lifting shared state; HTML forms and controlled components
  • Generating HTML lists and tables; array functions including map and filter; for loops
  • Connecting to a REST service; promise objects and async functions
  • Authentication; obtaining a JSON Web Token and including the token in HTTP requests
  • Creating a production build and deploying the application
4 units
8. Azure
Configuring Azure Platform as a Service (PaaS).
  • Using the Azure command-line interface (CLI) to create resources
  • Creating an Azure SQL database and configuring firewall rules
  • Creating a Web App that can access the database uing Azure Active Directory Authentication
  • Using a Key Vault to store secrets
  • Local Git deployment to Azure App Service
1 unit

Venue

The course wil be held at modern serviced offices next to Paddington Basin in West London