diff --git a/1-aspnet-introduction-slides.html b/1-aspnet-introduction-slides.html
new file mode 100644
index 0000000..c96e264
--- /dev/null
+++ b/1-aspnet-introduction-slides.html
@@ -0,0 +1,479 @@
+
1. Introduction to ASP.NET
APIs are interfaces that applicaitons use to communicate with each other
+Xamarin for mobile
+Use of NuGet packages add modularity and decrease the minimum memory footprint of your projects
\ No newline at end of file
diff --git a/1-aspnet-introduction.md b/1-aspnet-introduction.md
index 760df5e..fb0af69 100644
--- a/1-aspnet-introduction.md
+++ b/1-aspnet-introduction.md
@@ -3,35 +3,42 @@ marp: true
paginate: true
math: mathjax
theme: buutti
-title: 2. ASP.NET Basics
+title: 1. Introduction to ASP.NET
---
-# ASP.NET Basics
+# Introduction to ASP.NET
-# ASP.NET Basics
+## ASP.NET
-# ASP.NET Core
-
-* __ASP.NET Core__ is
-* a framework for building internet connected applications, like
+* ASP.NET is a server-side framework developed by Microsoft
+* Introduced in 2002
+* Successor to Microsoft's Active Server Pages (ASP) technology
+* Runs on the .NET platform, and can use all .NET supported programming languages
+* A framework for building Internet-connected applications, like
* Web apps
* Web APIs
* Backend for desktop & mobile apps
-* rebuilt from ground up, NOT an update for the old ASP.NET
-* open source, cross platform
-* __ASP__ .NET Core supports the use of __NuGet packages__ , which can be added to your projects modularly
-* In this course, we will be focusing on web APIs and won't be covering the front end development tools of ASP.NET
----
-APIs are interfaces that applicaitons use to communicate with each other
+## ASP.NET Core
+
+* *__ASP.NET Core__* is a complete redesign & rewrite of ASP.NET
+ * Introduced in 2016
+ * Initially ran on both versions of .NET (Framework and Core)
+ * .NET Framework support was eventually dropped
+* Open source, cross-platform
+* Enhanced security compared to ASP.NET
+* We will be focusing on Web APIs and won't be covering the frontend development tools of ASP.NET
+
+
-# ASP.NET Core (continued)
+### Why use ASP.NET Core?
+* As a .NET application, supports *__NuGet packages__* that can be added to your projects modularly
* Full support for C#
* Base Class Library
* Great community support
@@ -40,303 +47,369 @@ Use of NuGet packages add modularity and decrease the minimum memory footprint o
* Some companies have a long history with Microsoft frameworks
* ASP.NET is the logical choice in that case
* .NET is constantly getting updates and new releases
- * Learning to read documentations is key
----
-
-BCL includes all the things you have learned so far
+ * Learn to read [the documentation](https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-9.0)!
-__Swagger & Swagger UI__
+## Swagger & Swagger UI
-
+
+
-Swagger/OpenAPI: Language-independent specification for describing REST APIs without needing to look at the source code
+* [Swagger](https://swagger.io/) (now [OpenAPI](https://swagger.io/docs/specification/v3_0/about/)) is a language-independent specification for describing REST APIs without needing to look at the source code
+* [Swagger UI](https://swagger.io/tools/swagger-ui/): Web-based UI for automatically providing information about the API (actions and their capabilities) using the specification above
+* The default implementation of Swagger UI in ASP.NET is called [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) (see [docs](https://learn.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?view=aspnetcore-7.0
+))
+* Useful for basic debugging and testing
-Swagger UI: Web-based UI for automatically providing information about the API (actions and their capabilities) using the specification above
+
+
-The default implementation of Swagger UI in ASP.NET is called [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
+
-Useful for basic debugging and testing
+
+
----
+## Exercise 1: Creating an ASP.NET Core Web Application
+
-https://learn.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?view=aspnetcore-7.0
+1) Open Visual Studio and from the right select *Create a new project*
+2) Search for *ASP.NET* and select _ASP.NET Core Web API_ ***(NOTE: Not Web App!)***
-# Exercise 1: Creating an ASP.NET Core Web Application
+
+
-Open Visual Studio and from the right select "Create a new project"
+
-Search for _ASP.NET_ and select _ASP.NET Core Web API_
+
---
-Configure for HTTPS would give the project the add secure authenticationThis would be for sensitive data
+
-# Creating an ASP.NET Core Web Application (continued)
+3) Give a *Project name* and set a *Location* for the repository, and check *Place solution and project in the same directory*. Click *Next* in the bottom right corner.
+4) Select *.NET 9.0* under *Framework*. *Authentication type* should be *None* for now. Uncheck *Configure for HTTPS*. Click *Create* in the bottom right corner.
-Give a name and click "Next" in the bottom right corner. Select .NET 7.0 under "Framework". Authentication type should be "None" for now. Uncheck "Configure for HTTPS" and click "Create" in the bottom right corner.
+
+

+* ***Note:*** *Configure for HTTPS* would enforce HTTPS for added security (see [docs](https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-9.0&tabs=visual-studio%2Clinux-sles))
-
-
----
+
+
-Configure for HTTPS would give the project the add secure authenticationThis would be for sensitive data
+
-The new project is now created. Start debugging from the top (the play button with the text "http").
+
+
-
---
-Configure for HTTPS would give the project the add secure authenticationThis would be for sensitive data
+
-A web page should open, showing SwaggerUI for a weather forecast API. Click it open and select "Try it out". Execute the GET request and see what it returns.
+5) Add [Swagger](https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-8.0&tabs=visual-studio
+) to your project. Go to *View > Other Windows > Package Manager Console* and run the following command:
+ ```
+ Install-Package Swashbuckle.AspNetCore -Version 6.6.2
+ ```
-
+
-
-
-
---
-Configure for HTTPS would give the project the add secure authenticationThis would be for sensitive data
+
-# Creating an ASP.NET Core Web Application
+6) Make sure `Program.cs` includes the following lines:
+ ```csharp
+ builder.Services.AddControllers();
-Close the window. Browse through the source files on Solution Explorer on the right and check where the weather forecasts come from.
+ builder.Services.AddEndpointsApiExplorer(); // add this
+ builder.Services.AddSwaggerGen(); // add this
-
+ // ...
----
+ if (app.Environment.IsDevelopment())
+ {
+ app.UseSwagger(); // add this
+ app.UseSwaggerUI(); // add this
+ app.MapOpenApi();
+ }
+ ```
-Configure for HTTPS would give the project the add secure authenticationThis would be for sensitive data
+---
-# ASP.NET Core Web API
+
-In the previous exercise, we chose an API template for our new project, which have some files and dependencies already added
+7) Start debugging from the top (the ▶ button with the text *http*).
+ * Click OK to trust the sertificates.
-The weather forecasts come from "WeatherForecastController.cs" in the "Controllers" folder (more on Controllers later)
+
-Throughout this course, the aim is to get an understanding of the underlying logic of ASP.NET Core
+8) Open the Swagger UI in a web browser by going to `http://localhost:/swagger`.
+ * The port number is shown on the debug console window that should now be open.
+
-You can use the API template for the assignments, though
+---
-# Program.cs
+
-The Program.cs file in ASP.NET 7 is the file where the services for the web application are configured and middleware is defined
+9) A web page should open, showing SwaggerUI for a weather forecast API. Click it open 🔽.
+10) Click *Try it out*, and 11. *Execute* the **GET** request and see what it returns.
-The file starts with defining the builder for the web application
+
+
-var builder = WebApplication.CreateBuilder(args);
+
-The program is actually a console application, which also hosts a web server
+
+
-By default, ASP.NET applications use Kestrel and IIS as a server: [https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-7.0](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-7.0)
+
+
-# Services
+
+
-* The controllers and some other components (like Swagger) are added to the application as services
- * Services are components that are available anywhere within your program via dependency injection (more on that [later in the course](https://docs.google.com/presentation/u/0/d/1vDSvwMafnibrc8ZfQXlKFAm2m--3b-aUUAxQUGzTBf0/edit) )
-* builder.Services.AddControllers();builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();
-* As the comment right above it suggests, more can be added as needed
---
-This will make more sense after we start adding own services
+
-# Configuring Middleware
+12) Close the window. Browse through the source files on Solution Explorer on the right and check where the weather forecasts come from.
-Handling of each HTTP request is defined as a set of middlewares
+
-Middleware is software that's assembled into an app pipeline to handle requests and responses
+
-They can decide whether to pass the request into the next middleware, or modify the data/request as needed.
+
-if (app.Environment.IsDevelopment()){ app.UseSwagger(); app.UseSwaggerUI(); } app.UseAuthorization(); app.MapControllers(); app.Run();
+## ASP.NET Core Web API contents
-# Routing
+* In the previous exercise, we chose an API template for our new project, which have some files and dependencies already added
+* The weather forecasts come from `WeatherForecastController.cs` in the *Controllers* folder
+ * (More on Controllers later...)
+* Throughout this training, the aim is to get an understanding of the underlying logic of ASP.NET Core
+* You can use the API template for the assignments, though
-__Routing __ is how web APIs match the requested URI to a corresponding action
+## `Program.cs`
-The URI:s that can be used to get a response from the API are called the __endpoints __ of the API
+* The `Program.cs` file in ASP.NET 7 is where the ***services*** for the web application are configured and the ***middleware*** is defined
+* The file starts with defining the builder for the web application
+ ```csharp
+ var builder = WebApplication.CreateBuilder(args);
+ ```
+* The program is actually a console application that also hosts a web server
+* The default server in ASP.NET applications is [Kestrel](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-9.0) (lightweight, cross-platform)
+ * The old default is [IIS](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-9.0) (Windows-specific, nowadays used as a [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy) server)
-| __Request method__ | __Endpoint__ | __Action__ |
-| :-: | :-: | :-: |
-| __GET __ | __http://someserver.com/api/products__ | __GetProducts()_ |
-| __GET __ | __http://someserver.com/api/products/3__ | __GetProduct(int id)_ |
-| __POST __ | __http://someserver.com/api/products__ | __PostProduct()_ |
+### Services
-# Attributes
+* The controllers and some other components (like Swagger) are added to the application as ***services***
+ * Services are components that are available anywhere within your program via *dependency injection* (introduced in [C# Basics Lecture 15](https://gitea.buutti.com/education/csharp-basics/src/branch/main/15-design-patterns-in-csharp.md))
-Attributes are a way of attaching metadata with code (classes, methods, properties, etc.)
+ ```csharp
+ // Add services to the container.
-In ASP.NET, attributes have a strong role in __routing__ :
+ builder.Services.AddControllers();
+ builder.Services.AddEndpointsApiExplorer();
+ builder.Services.AddSwaggerGen();
+ ```
+* As the comment above suggests, more services can be added as needed
-[ApiController]
+### Middlewares
-[Route("[controller]")]
+* Handling of each HTTP request is defined as a set of [middlewares](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-9.0)
+* Middleware is a software that's added into the middle of an app pipeline to handle requests and responses
+* Middleware can decide whether to modify the data/request as needed, and pass the request into the next middleware
+ ```csharp
+ if (app.Environment.IsDevelopment()){
+ app.UseSwagger();
+ app.UseSwaggerUI();
+ app.MapOpenApi();
+ }
+ app.UseAuthorization();
+ app.MapControllers();
+ app.Run();
+ ```
-public class WeatherForecastController : ControllerBase
+## Routing
-{
+* *__Routing__* is how web APIs match the requested URI to a corresponding action
+* The URIs that can be used to get a response from the API are called the *__endpoints__* of the API
-//...
+| Request method | Endpoint | Action |
+|:---------------|:---------------------------------------|:---------------------|
+| `GET` | `http://someserver.com/api/products` | `GetProducts()` |
+| `GET` | `http://someserver.com/api/products/3` | `GetProduct(int id)` |
+| `POST` | `http://someserver.com/api/products` | `PostProduct()` |
-}
+## Attributes
-__…__
+* ***Attributes*** ([see C# Basics: Lecture 15](/:root/education/csharp-basics/15-design-patterns-in-csharp#attributes)) are a way of attaching metadata to entities (classes, methods, properties, etc.)
+* In ASP.NET, attributes have a strong role in *__routing__*:
+ ```csharp
+ [ApiController] // Attribute routing requirement,
+ // automatic HTTP 400 response, and more
+ [Route("[controller]")] // HTTP GET requests are routed to this method
+ public class WeatherForecastController : ControllerBase
+ {
+ //...
+ }
+ // ...
+ [HttpGet] // URIs with "/weatherforecast" are routed to this class
+ public IEnumerable Get()
+ {
+ //...
+ }
+ ```
-[HttpGet]
-public IEnumerable Get()
-{
-//...
+## Attribute Routing
-}
+| | Attribute | Request |
+|:------------------|:-------------------------------------------------|:---------------------------------------------|
+| Class: Method: | `[Route("api")]` `[HttpGet]` | `GET /api` |
+| Class: Method: | `[Route("api")]` `[HttpGet("products")]` | `GET /api/products` |
+| Class: Method: | `[Route("api")]` `[HttpGet("products/{id}")]` | `GET /api/products/12` |
+| Class: Method: | `[Route("api")]` `[HttpPost("products")]` | `POST /api/products` |
-Attribute routing requirement, automatic HTTP 400 response, and more
-HTTP GET requests are routed to this method
-URIs starting with "/weatherforecast" are routed to this class
-
-# Attribute Routing
-
-| _Attribute_ | _Request_ |
-| :-: | :-: |
-| Class: [Route("api")]Method: [HttpGet] | _GET http://localhost:54106/api_ |
-| Class: [Route("api")] __ __ Method: [HttpGet("products")] | _GET http://localhost:54106/api/products_ |
-| Class: [Route("api")] __ __ Method: [HttpGet("products/{id}")] | _GET http://localhost:54106/api/products/12_ |
-| Class: [Route("api")] __ __ Method: [HttpPost("products")] | _POST http://localhost:54106/api/products_ |
-
-# Exercise 2: Setting up Routes
-
-Change the routes in WeatherForecastController.cs so that the forecast result is printed at
-
-[http://localhost:xxxxx/](http://localhost:54106/weatherforecast)api/weatherforecast
+## Exercise 2: Setting up Routes
+
+1) Change the routes in `WeatherForecastController.cs` so that the forecast result is printed at
+ `http://localhost:/api/weatherforecast`
instead of
+ `http://localhost:/weatherforecast`
-http://localhost:xxxxx/weatherforecast
-
-You can see the route change in the Swagger UI get method.
-
-# Handling HttpGet Requests
-
-We have now established how to call methods with HTTP requests
-
-Additional parameters can be passed to the method with the URI:
-
-[Route("api")]
-
-// class declaration
-
-// …
-
-[HttpGet("list/{someText}")]
-
-public string[] GetArrayOfStrings(string someText)
+You can see the route change in the Swagger UI `GET` method.
-{
+## Handling HttpGet Requests
-return Enumerable.Range(1, 5).Select(index => new string(someText))
+* We have now established how to call methods with HTTP requests
+* Additional parameters can be passed to the method with the URI:
+ ```csharp
+ [Route("api")]
+ // class declaration
+ // ...
-.ToArray();
+ [HttpGet("list/{someText}")]
+ public string[] GetArrayOfStrings(string someText)
+ {
+ return Enumerable.Range(1, 5).Select(index => new string(someText))
+ .ToArray();
+ }
+ ```
-}
+
-The URI parameters can be made optional with '?'
-
-A default value must be then set for the method parameter:
-
-[Route("api")]
-
-// class declaration
-
-// …
-
-[HttpGet("list/{someText?}")]
-
-public string[] GetArrayOfStrings(string someText = "default")
-
-{
+---
-return Enumerable.Range(1, 5).Select(index => new string(someText))
+* The URI parameters can be made optional with '?'
+* A default value must be then set for the method parameter:
+ ```csharp
+ [Route("api")]
+ // class declaration
+ // ...
-.ToArray();
+ [HttpGet("list/{someText?}")]
+ public string[] GetArrayOfStrings(string someText = "default")
+ {
+ return Enumerable.Range(1, 5).Select(index => new string(someText))
+ .ToArray();
+ }
+ ```
-}
+

-Apply constraints for the parameters by setting them after ':'
+
-If the URI doesn't fit the constraints, the response will hold a 404 status code
+---
-[HttpGet("products/{id:int}")] // Required type: int
+* Apply constraints for the parameters by setting them after `:`
+* If the URI doesn't fit the constraints, the response will hold a `404` status code
+ ```csharp
+ [HttpGet("products/{id:int}")] // Required type: int
+ [HttpGet("list/{value:length(3,40)}")] // Required length: 3-40
+ ```
-[HttpGet("list/{value:length(3,40)}")] // Required length: 3-40
+

-# Exercise 3: Returning Your Own List
-
-Change the Get method so that instead of returning an IEnumerable of WeatherForecast objects, it returns a List of string objects. Fill the list with e.g. names and make it as long as you want. Test with browser (Swagger UI).
+
-Create a new method, which is routed at http://localhost:xxxxx/api/numberlist/k, where _k_ is any integer. The method should return an array of integers from 1 to _k_ . For example: http://localhost:xxxxx/api/numberlist/5 would return [1,2,3,4,5]. Test with browser (Swagger UI).
+## Exercise 3: Returning Your Own List
+
-# Postman
+1) Change the `GET` method so that instead of returning an `IEnumerable` of `WeatherForecast` objects, it returns a `List` of `string` objects.
+ * Fill the list with e.g. names and make it as long as you want. Test with browser (Swagger UI).
+2) Create a new method routed at `http://localhost:/api/numberlist/k`, where `k` is any integer. The method should return an array of integers from `1` to `k`.
+ * For example, `http://localhost:/api/numberlist/5` would return `[1,2,3,4,5]`. Test with browser (Swagger UI).
-HTTP POST requests cannot be made with the browsers location bar
+## Postman
-In websites, POST requests are usually made with forms
+* HTTP `POST` requests cannot be made with the browser's address bar, only `GET`!
+* In websites, `POST` requests are usually made with forms
+* In applications, all requests are sent by the client application
+* For testing APIs, multiple tools like [Postman](https://www.postman.com/) or [Insomnia](https://insomnia.rest/) exist
+* Before we cover handling `POST`, `PUT` and other requests in ASP.NET, let's first see how to make them with Postman
-In applications, all requests are sent by the client application
+
-For testing APIs, multiple tools like __Postman __ exist
+
-Before we cover handling POST, PUT and other requests in ASP.NET, let's first see how to make them with Postman
+
-
+## Benefits of using Postman
-# Postman (continued)
+* When developing APIs, tools like Postman will almost always surface in the development cycle
+* Postman lets you create configured HTTP requests to APIs, and save them to a JSON file
+* This is great for testing your APIs without having to write code just for that purpose
+* Supports all the necessary HTTP requests, like `GET`, `POST`, `PUT` and `DELETE`
-When developing APIs, Postman will almost always turn up in the development cycle
+## Exercise 4. Creating requests with Postman
+
-Postman lets you create configured HTTP requests to APIs
+Run the Weather API program, and test both methods with Postman.
-This is great for testing your APIs without having to write code just for that purpose
+1) To get started, open Postman (You can sign in or skip the login)
+ * Close the opened window to go straight to making requests
-Supports all the necessary HTTP requests, like GET, POST and DELETE
+
-# Creating Requests with Postman
+
-* To get started, open Postman
- * You can sign in or skip the login
-* Close the opened window to go straight to making requests
+
-
+---
+
-# Creating Requests with Postman (continued)
+
+
-Create your request by selecting the method and entering the URL
+2) Create your request by selecting the method and entering the URL
+3) The response with the content body and status code show up below!
-The response with the content body and status code show up below
+
+

-# Exercise 4: Trying out Postman
-
-Run the program you have worked on in the previous lecture assignments. Test both methods with Postman.
-
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index af9ccca..4678efa 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,7 @@
| # | Lecture | Slides |
|:--|:--------------------------------------------------------------------------|:---------------------------------------------------------------------|
-| 1 | [Introduction to the Internet](1-introduction-to-the-internet.md) | [Download slides](1-introduction-to-the-internet-slides.html) |
-| 2 | [ASP.NET Basics](2-aspnet-core-basics.md) | [Download slides](2-aspnet-core-basics-slides.html) |
+| 1 | [Introduction to ASP.NET](1-aspnet-introduction.md) | [Download slides](1-aspnet-introduction-slides.html) |
| 3 | [HTTP Responses & Status Codes](3-http-responses-and-status-codes.md) | [Download slides](3-http-responses-and-status-codes-slides.html) |
| 4 | [MVC Pattern & Repositories](4-mvc-pattern-and-repositories.md) | [Download slides](4-mvc-pattern-and-repositories-slides.html) |
| 5 | [5. REST Architecture](5-rest-architecture.md) | [Download slides](5-rest-architecture-slides.html) |
diff --git a/imgs/2-aspnet-core-basics_1.png b/imgs/2-aspnet-core-basics_1.png
index 885b1d5..ebf2cfc 100644
Binary files a/imgs/2-aspnet-core-basics_1.png and b/imgs/2-aspnet-core-basics_1.png differ
diff --git a/imgs/2-aspnet-core-basics_14.png b/imgs/2-aspnet-core-basics_14.png
index 468e509..c166194 100644
Binary files a/imgs/2-aspnet-core-basics_14.png and b/imgs/2-aspnet-core-basics_14.png differ
diff --git a/imgs/2-aspnet-core-basics_15.png b/imgs/2-aspnet-core-basics_15.png
index fd99777..538f1ee 100644
Binary files a/imgs/2-aspnet-core-basics_15.png and b/imgs/2-aspnet-core-basics_15.png differ
diff --git a/imgs/2-aspnet-core-basics_2.png b/imgs/2-aspnet-core-basics_2.png
index 56f5cd2..39fb030 100644
Binary files a/imgs/2-aspnet-core-basics_2.png and b/imgs/2-aspnet-core-basics_2.png differ
diff --git a/imgs/2-aspnet-core-basics_3.png b/imgs/2-aspnet-core-basics_3.png
index 72a58c1..72137f9 100644
Binary files a/imgs/2-aspnet-core-basics_3.png and b/imgs/2-aspnet-core-basics_3.png differ
diff --git a/imgs/2-aspnet-core-basics_4.png b/imgs/2-aspnet-core-basics_4.png
index 0b9a1e5..600b09d 100644
Binary files a/imgs/2-aspnet-core-basics_4.png and b/imgs/2-aspnet-core-basics_4.png differ
diff --git a/imgs/2-aspnet-core-basics_4_1.png b/imgs/2-aspnet-core-basics_4_1.png
new file mode 100644
index 0000000..e721564
Binary files /dev/null and b/imgs/2-aspnet-core-basics_4_1.png differ
diff --git a/imgs/2-aspnet-core-basics_4_2.png b/imgs/2-aspnet-core-basics_4_2.png
new file mode 100644
index 0000000..b6113f7
Binary files /dev/null and b/imgs/2-aspnet-core-basics_4_2.png differ
diff --git a/imgs/2-aspnet-core-basics_5.png b/imgs/2-aspnet-core-basics_5.png
index dbabf94..f937361 100644
Binary files a/imgs/2-aspnet-core-basics_5.png and b/imgs/2-aspnet-core-basics_5.png differ
diff --git a/imgs/2-aspnet-core-basics_6.png b/imgs/2-aspnet-core-basics_6.png
index e9d63ab..297b706 100644
Binary files a/imgs/2-aspnet-core-basics_6.png and b/imgs/2-aspnet-core-basics_6.png differ
diff --git a/imgs/2-aspnet-core-basics_7.png b/imgs/2-aspnet-core-basics_7.png
index 2f3205c..b1b2270 100644
Binary files a/imgs/2-aspnet-core-basics_7.png and b/imgs/2-aspnet-core-basics_7.png differ
diff --git a/imgs/2-aspnet-core-basics_8.png b/imgs/2-aspnet-core-basics_8.png
index a611f4c..c88e8fa 100644
Binary files a/imgs/2-aspnet-core-basics_8.png and b/imgs/2-aspnet-core-basics_8.png differ