`` `csharp
usando o sistema;
usando system.collections.generic;
usando System.Linq;
usando System.Threading.Tasks;
usando o Microsoft.aspnetcore.mvc;
namespace myaspnetCoreApp
{
// Esta é uma classe de controlador, que lida com solicitações a rotas específicas
[Apicontroller]
[Rota ("[controlador]")] // define a rota base para o controlador
Classe pública WeatherforecastController:ControllerBase
{
String estático de estática privada [] resumos =novo []
{
"Congelamento", "Braço", "Froto", "Cool", "Mild", "Harm", "Balmy", "Hot", "Sweltering", "Scorching"
};
// Este é um método de ação, que lida com uma solicitação HTTP específica
[Httpget] // Especifica que este método lida com solicitações obtidas
Public Ienumerable
get ()
{
// Isso gera alguns dados aleatórios de previsão do tempo
var rng =new Random ();
retornar enumerável.Range (1, 5) .Select (Index => New WeatherForecast
{
DATE =DATETime.now.adddays (índice),
Temperatura =rng.next (-20, 55),
Resumo =resumos [rng.next (resumos.length)]
})
.Toarray ();
}
}
// Este é um modelo de dados simples que representa uma previsão do tempo
A classe pública Weatherforecast
{
Public DateTime Data {get; definir; }
public int temperaturec {get; definir; }
Public String Resumo {get; definir; }
// Esta é uma propriedade que calcula a temperatura em Fahrenheit
public int temperaturef => 32 + (int) (temperatura / 0,5556);
}
}
`` `
Explicação:
1. Usando diretrizes:
* `Usando o System;`:importa o espaço para nome do sistema, que fornece classes fundamentais como 'DateTime`, `Random`, etc.
* `Usando System.Collection.Genic;`:Importa o espaço para nome de coleções genéricas, fornecendo classes como `ienumerable`,` list`, etc.
* `Usando System.Linq;`:Importa o espaço para nome do LINQ, fornecendo métodos para trabalhar com coleções.
* `usando o System.Threading.Tasks;`:Importa o espaço para nome de tarefas, permitindo operações assíncronas.
* `Usando Microsoft.aspnetcore.mvc;`:importa o espaço para nome do MVC do ASP.NET Core, fornecendo classes como `controlerbase`,` httpget`, `apicontroller`, etc.
2. Namespace:
* `namespace myaspnetCoreApp`:define o espaço para nome do código, que ajuda a organizar e evitar conflitos de nome.
3. Classe do controlador:
* `[Apicontroller]`:um atributo que indica que esta classe é um controlador, responsável por lidar com solicitações.
* `[Rota (" [controlador] ")]`:define a rota base para o controlador, o que significa que solicitações para `/WeatherFeCast` serão tratadas por este controlador.
* `Public Class WeatherForecastController:ControllerBase`:esta linha define a classe controladora, herdando do` controlerbase`. A classe `controlerbase` fornece métodos para lidar com solicitações e respostas HTTP.
4. Método de ação:
* `[Httpget]`:atributo que especifica esse método manipula solicitações.
* `Public Ienumerable get ()`:a definição do método.
* `IEnumerable `:o tipo de retorno, indicando que esse método retornará uma coleção de objetos `WeatherFeCast '.
* `Get ()`:o nome do método, que também é a rota para esta solicitação específica.
* Dentro do método:
* `var rng =new Random ();`:cria uma nova instância da classe `aleatória`, usada para gerar valores aleatórios.
* `Enumerable.Range (1, 5) .Select (Index => New WeatherForecast ...)`:Esta linha cria uma coleção de 5 objetos de previsão do tempo usando o LINQ.
* `return ....toArray ();`:retorna a coleção gerada como uma matriz.
5. Modelo de dados:
* `Public Class Weatherforecast`:define uma classe simples representando uma previsão do tempo.
* `public DateTime Data {get; definir; } `:Representa a data da previsão.
* `public int temperaturec {get; definir; } `:Representa a temperatura em Celsius.
* `Public String Resumo {get; definir; } `:Representa um resumo das condições climáticas.
* `public int temperaturef => 32 + (int) (temperatura / 0,5556);`:uma propriedade calculada que converte Celsius em Fahrenheit.
Resumo:
Este programa demonstra a estrutura básica de um aplicativo ASP.NET Core MVC, incluindo:
* controlador: Lida com solicitações com base em rotas.
* Método de ação: Processa solicitações específicas em um controlador.
* Modelo de dados: Representa os dados que estão sendo tratados pelo aplicativo.
* Atributos: Usado para definir o comportamento das classes e métodos.
Este exemplo é simples, mas fornece uma base para a criação de aplicações mais complexas. Você pode expandi -lo adicionando mais controladores, métodos de ação e modelos de dados, além de usar outros recursos do núcleo do ASP.NET, como middleware, injeção de dependência e integração do banco de dados.