ASP Core - Concurreren met het LAMP framework - [L]inux - [A]pache - [M]ySQL - [P]HP - Zie MvcPattern.jpeg - View voor de presentatie - ViewModel voor user input validatie en view-specifieke logica - Model voor entiteiten - Agent voor communicatie met de backend - Eventueel een repository voor lokale opslag - Controller om alles aan elkaar te knopen - ModelBinder - /Auto/Create -> public IActionResult Create (Auto auto) - Onderdeel van ASP.NET MVC stack - Op basis van key-value pairs die binnenkomen wordt er iets van gemaakt - Bijvoorbeed van type auto - Kijken naar type auto - Kijken naar properties - Kijken welke het beste matchen - User input validatie als het een model is - Werkt niet met losse properties - Dependency injection - ASP.NET Core komt met zijn eigen dependency injection framework - Startup.ConfigureServices(IServiceCollection services) - services.AddScoped(); - Bij ieder request een nieuw object - services.AddTransient(); - Iedere keer een nieuw object - services.AddSingleton(); - Altijd hetzelfde object - services.AddDbContext(options => options.UseSqlServer("ConnectionString")); - Connectionstring gaat in de AppSettins.json - Configuration.GetConnectionString("Naam"); - Routes - routes.MapRoute( name: "default", template: "Okkasjonnetje/{kleur?}", new { controller = "Home", action = "Index" }); - [Route("Okkasjonnetje/{kleur}")] - Validators - Include scripts vinkje - Custom validator - ... : IValidatableObject - public IEnumerable Validate (ValidationContext validationContext) { if(...) { yield return new ValidationResult ("", new string [] { "Kleur", "Merk" }); } }