0% found this document useful (0 votes)
86 views17 pages

Core Guide Complete

Uploaded by

Mr Z
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views17 pages

Core Guide Complete

Uploaded by

Mr Z
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

You might also like