ASP.
NET Core Complete Guide Notes
1. Fundamentals of [Link] Core
[Link] Core is a cross-platform framework for building web applications and APIs.
Key components:
- Controller: Handles HTTP requests.
- Middleware: Processing components that run request-response cycles.
- Views: Razor-based templates to render HTML responses.
- [Link]: The entry point where the application is configured and started.
2. Controllers and Views
Controllers handle incoming requests and return views or JSON responses.
Example Controller:
```csharp
public class HomeController : Controller
public IActionResult Index() => View();
```
Example View (`[Link]`):
```html
<h1>Welcome to [Link] Core!</h1>
Page 1
[Link] Core Complete Guide Notes
```
3. Dependency Injection (DI)
DI allows the automatic provision of services, promoting loose coupling.
Register services in `[Link]`:
```csharp
public void ConfigureServices(IServiceCollection services)
[Link]<IMyService, MyService>();
```
Inject the service in the controller:
```csharp
public class HomeController : Controller
private readonly IMyService _myService;
public HomeController(IMyService myService) => _myService = myService;
```
4. Routing
Page 2
[Link] Core Complete Guide Notes
Routing defines URL patterns and their mappings to controllers and actions.
Example route in `[Link]`:
```csharp
public void Configure(IApplicationBuilder app)
[Link]();
[Link](endpoints =>
[Link](
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
```
5. Model Binding
Model binding maps form data or route data to model properties.
Example model:
```csharp
public class Person
public string Name { get; set; }
Page 3
[Link] Core Complete Guide Notes
public int Age { get; set; }
```
Controller action to bind the model:
```csharp
public IActionResult Submit(Person person)
// Use the person object
return View();
```
6. Working with Models
Models define the structure and validation logic of data.
Data Annotations for validation:
```csharp
public class Person
[Required]
public string Name { get; set; }
[Range(18, 120)]
Page 4
[Link] Core Complete Guide Notes
public int Age { get; set; }
```
7. Views and Razor Syntax
Razor syntax allows embedding server-side code into HTML.
Example Razor code for displaying a model:
```csharp
<h1>@[Link]</h1>
<p>Age: @[Link]</p>
```
8. Working with Forms
Use HTML form elements with Razor to capture user input.
```html
<form asp-action="Submit">
<input asp-for="Name" />
<input asp-for="Age" />
<button type="submit">Submit</button>
</form>
```
Page 5
[Link] Core Complete Guide Notes
9. Validation
[Link] Core uses Data Annotations and ModelState validation.
Example in controller:
```csharp
public IActionResult Submit(Person person)
if (![Link])
return View(person);
// Proceed if valid
return RedirectToAction("Success");
```
10. Data Annotations and Custom Validation
Data Annotations provide built-in validation like `[Required]`, `[Range]`, etc.
Custom Validation example:
```csharp
public class Person
Page 6
[Link] Core Complete Guide Notes
[CustomValidation(typeof(PersonValidator))]
public int Age { get; set; }
public class PersonValidator : ValidationAttribute
public override bool IsValid(object value)
int age = (int)value;
return age >= 18 && age <= 120;
```
11. Database First Approach (EF Core)
EF Core allows using existing databases to generate models and perform CRUD operations.
Example DbContext:
```csharp
public class ApplicationDbContext : DbContext
public DbSet<Person> Persons { get; set; }
```
Page 7
[Link] Core Complete Guide Notes
12. CRUD Operations with EF Core
CRUD operations:
Create:
```csharp
[Link](new Person { Name = "John", Age = 25 });
[Link]();
```
Read:
```csharp
var person = [Link](1);
```
Update:
```csharp
[Link] = "Updated Name";
[Link]();
```
Delete:
```csharp
var person = [Link](1);
[Link](person);
Page 8
[Link] Core Complete Guide Notes
[Link]();
```
13. Handling Requests and Responses
Model Binding and ModelState validation handle incoming data and return appropriate responses.
Example controller:
```csharp
public IActionResult Submit(Person person)
if (![Link])
return BadRequest(ModelState);
return Ok(person);
```
14. Sessions and Cookies
Sessions store data for the duration of a user session.
Example session:
```csharp
Page 9
[Link] Core Complete Guide Notes
[Link]("UserName", "JohnDoe");
```
Cookies store data that persists beyond the session:
```csharp
[Link]("UserName", "JohnDoe");
```
15. Uploading Files (Images)
File upload controller example:
```csharp
public IActionResult Upload(IFormFile file)
if (file != null)
var filePath = [Link]([Link](), "wwwroot/uploads", [Link]);
using (var stream = new FileStream(filePath, [Link]))
[Link](stream);
return Ok("File uploaded successfully.");
return BadRequest("File not uploaded.");
Page 10
[Link] Core Complete Guide Notes
```
16. State Management
TempData holds data for one request.
Example:
```csharp
TempData["Message"] = "This is a temp message.";
```
ViewData and ViewBag also manage short-term data:
```csharp
[Link] = "Hello from ViewBag!";
```
17. Working with Dependencies
DI is used to inject services.
Example:
```csharp
public class HomeController : Controller
private readonly IMyService _myService;
Page 11
[Link] Core Complete Guide Notes
public HomeController(IMyService myService) => _myService = myService;
```
18. Creating APIs in [Link] Core
Controllers with [ApiController]:
```csharp
[ApiController]
[Route("api/[controller]")]
public class ValuesController : ControllerBase
[HttpGet]
public IActionResult Get() => Ok(new { Name = "John", Age = 25 });
```
19. [Link] Core Middleware
Middleware pipeline:
```csharp
public void Configure(IApplicationBuilder app)
[Link]<CustomMiddleware>();
[Link]();
Page 12
[Link] Core Complete Guide Notes
[Link](endpoints => [Link]());
```
20. Configuration and Settings
AppSettings configuration:
```json
"Logging": {
"LogLevel": {
"Default": "Information"
```
21. Localization
Localization example:
```csharp
[Link](options => [Link] = "Resources");
```
22. Creating and Using Custom Middleware
Page 13
[Link] Core Complete Guide Notes
Custom Middleware example:
```csharp
public class CustomMiddleware
private readonly RequestDelegate _next;
public CustomMiddleware(RequestDelegate next) => _next = next;
public async Task Invoke(HttpContext context)
// Custom logic
await _next(context);
```
23. Authentication & Authorization
Authentication:
```csharp
[Link]([Link])
.AddCookie();
```
Authorization:
```csharp
Page 14
[Link] Core Complete Guide Notes
[Link](options =>
[Link]("AdminOnly", policy => [Link]("Admin"));
});
```
24. Logging & Monitoring
Logging:
```csharp
[Link](builder => [Link]());
```
25. Caching
MemoryCache example:
```csharp
[Link]();
var cache = [Link]("cacheKey", entry =>
[Link] = [Link](5);
return "cached data";
});
```
Page 15
[Link] Core Complete Guide Notes
26. Security
XSS Protection and Content Security Policy:
```csharp
[Link](csp => [Link](s => [Link]()));
```
27. Exception Handling in [Link] Core
Custom Middleware for Exception Handling:
```csharp
public class CustomExceptionMiddleware
private readonly RequestDelegate _next;
public CustomExceptionMiddleware(RequestDelegate next) => _next = next;
public async Task Invoke(HttpContext context)
try
await _next(context);
catch (Exception ex)
[Link] = 500;
Page 16
[Link] Core Complete Guide Notes
await [Link]("An error occurred.");
```
28. Dependency Injection (DI)
Registering services in `[Link]`:
```csharp
[Link]<IMyService, MyService>();
```
Page 17