V🧀
Size: a a a
V🧀
Lr
IC
Lr
Startup.cs и т.п. А кто знает точно, что вообще происходит в файлах Program.cs и Startup.cs? Зачем там весь этот код?Program.cs:var app = WebApplication.Create(args);Помимо этого, конечно, нужны классы домена и контекста
app.Map("/", () => "Hello World");
app.MapGet("/todos", async () =>
{
using var db = new TodoDbContext();
return await db.Todos.ToListAsync();
});
app.MapPost("/todos", async (Todo todo) =>
{
using var db = new TodoDbContext();
await db.Todos.AddAsync(todo);
await db.SaveChangesAsync();
});
app.Run();
TodoDbContext. И понадобится ещё файл Imports.cs, где будут находиться все директивы using, используемые в приложении (их теперь, чтоб не писать в каждом файле, можно подключить глобально через global using …, по аналогии с файлом ViewImports).MapDelete, MapPatch и т.п.). Как вам?CreateHostBuilder, UseStartup, Configure и ConfigureServices, папки контроллеров и прочего шаблонного кода. Все настройки по умолчанию собраны в WebApplication.Create, а дальше вы просто сопоставляете путь с функцией обработчиком, и вуаля! WebApplication.Create вы можете создать построитель, и внедрить нужные зависимости:var builder = WebApplication.CreateBuilder(args);Далее можно более детально настроить хост, добавить необходимые сервисы. Затем можно выделить настройку сервисов в файл Startup, а сопоставление путей с методами в отдельный файл, а дальше разделить на контроллеры. То есть обучение технологии теперь будет проходить более естественно. Не начиная с многостраничного объяснения, что, где и зачем лежит. Теперь можно начать с элементарного рабочего кода, а дальше (при необходимости) выделять обособленные части в отдельные файлы и постепенно перейти к той структуре, которая нам всем известна.
builder.Services
.AddDbContext<TodoDbContext>(o =>
o.UseSqlite("DataSource=Todos.db"));
var app = builder.Build();
SK
V🧀
SK
Lr
Lr
Lr
SK
Lr
M
SK
Lr
M
Lr
Lr
MN