6 cosas que no debe hacer en los controladores ASP.NET

Los controladores ASP.NET deben ser delgados





Oh, esta perogrullada siempre repetida, cubierta de toneladas de eufemismo.





¿Por qué deberían ser delgados? ¿Cuál es el plus? ¿Cómo adelgazar si no lo son ahora? ¿Cómo los mantienes delgados?





( ) . , .





, , .





, 6 , , . , , .





1. (DTO)

, , - , , HTTP.





, - :





public IActionResult CheckOutBook([FromBody]BookRequest bookRequest)
{
    var book = new Book();

    book.Title = bookRequest.Title;
    book.Rating = bookRequest.Rating.ToString();
    book.AuthorID = bookRequest.AuthorID;

    //...
}
      
      



, , . HTTP .





2.

, , . , .





, -. , . ASP.NET MVC, .





!





public IActionResult Register([FromBody]AutomobileRegistrationRequest request)
{
    // ,  VIN   ...
    if (string.IsNullOrEmpty(request.VIN))
    {
        return BadRequest();
    }
    
    //...
}
      
      



3. -

-, , - .





. , ( ), , .





4.

, . , , .





, ASP.NET ( , ).





User



  , / -, , , - .





5.

, !





public IActionResult GetBookById(int id)
{
    try
    {
      //  ,    -...
    }
    catch (DoesNotExistException)
    {
      // ,    ...
    }
    catch (Exception e)
    {
      // ,   ...
    }
}
      
      



, , , , , . , , - .





-, - . , , - .





6. /

, ,



. CRUD , , .





, .





, , , , .





( ). , , .





public IActionResult CheckOutBook(BookRequest request)
{
    var book = _bookRepository.GetBookByTitleAndAuthor(request.Title, request.Author);

    //        ,   
    //         
  	// ...

		return Ok(book);
}
      
      



CRUD , , , .





( ) - CQRS .





!


, , ? - ? ? !





"C# ASP.NET Core ".





, , , 5 .









UPD:

4 , , . « ?» « ?».





, , , , . , — HTTP . , HTTP , HTTP .





« , ?» « ?» — , , .








All Articles