Hieronder volgen de linkjes, eerst even de beoordeling van dit boek.
Beoordeling
Bij de start van het lezen van dit boek heb ik een aantal zaken benoemd uit de specs voor het examen en vroeg me af: "wordt dit in het boek behandeld". En zo nee, worden er nog andere dingen behandeld die dan toch nog de moeite waard zijn. Dit was het lijstje (meteen maar even met mijn feedback):
"choose between ASP.NET Core and ASP.NET"
Dat wordt duidelijk besproken. Bouw je wat nieuws geënt op MVC, kies van voor Core. Heb je WebForms, gebruik je functies die nog niet geïmplementeerd worden door Core, kies dan voor ASP.NET.
"configure middleware to enable session and application state in ASP.NET Core"
Dit komt mij niet bekend voor, daarom via Google gezocht. Daarbij kom ik uit op de documentatie van Microsoft: link. De app.UseSession en app.AddSession heb ik in dit boek niet gezien.
"work with static files in ASP.NET core"
Dit wordt al in het begin besproken, de app.UseStaticFiles() in de Configure-functie.
"implement ASP.NET Core Identity"
Hoofdstuk 8 gaat wel over authenticatie en identificatie, dus op zich is de inhoud van het boek voldoende. Wel ga ik nog even de online-documentatie van Microsoft zelf doornemen, link.
Conclusie? Het boek is een goed boek om als je net als ik bekend bent met de klassieke ASP.NET wilt gaan beginnen met ASP.NET Core. In dit boek krijg je duidelijke voorbeelden en referenties hoe je zelf je project op kunt gaan zetten. Qua antwoorden op de vragen zoals die mogelijk in het examen gesteld worden lijkt het niet volledig te zijn. Daarom is het nog zaak om wel je zelf daar nog meer in te gaan verdiepen. Daar zal ik in volgende posts op terugkomen.
Linkjes
Het .NET Core platform is open source en terug te vinden op deze twee Github-locaties:
https://github.com/dotnet/coreclr
https://github.com/dotnet/corefx
OWIN is de specificatie om .NET los te trekken van de host (IIS). De specs zijn hier te vinden: http://owin.org/
Het maken van projecten kun je in Visual Studio doen. In hoofdstuk 2 worden een aantal alternatieven genoemd. Zo is daar Yeoman, waarmee je een structuur in code op kunt zetten (meer basic). Zo te zien kun je dit met meerdere projecten gebruiken. Hier staat meer informatie: http://yeoman.io/learning
Een andere IDE is JetBrain's Rider. Hier staat meer informatie: https://www.jetbrains.com/rider/
Om uit te vogelen wat er in de CreateDefaultBuilder-functie gebeurt, kun je het beste even in de source op Github kijken.
Je kunt een extern DI (Dependency Injection) framework registreren in ConfigureServices. Hierbij worden Autofac en StructureMapp genoemd. StructureMap staat op Github: linkje. De link naar Autofac staat niet in het boek, maar neem ik voor de volledigheid wel even op: https://autofac.org/
Overzicht van de MVCRouteHandler-code zodat je kunt zien wat er eigenlijk gebeurt: http://bit.ly/2kOrKcJ
Het overzicht van configureerbare opties, bijvoorbeeld het RequireHttpsAttribute staat hier: https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.mvcoptions?view=aspnetcore-2.1
Het overzicht van MVC Services die in de AddMvc methode zit, hier kan de broncode geraadpleegd worden: http://bit.ly/2l3H8QK
De werking van de ASP.NET MVC action invoker is te raadplegen in de implementatie van de ControllerActionInvoker op http://bit.ly/2kQfNAA
DbContextOptions object als argument meegeven aan de provider, zorgt dat je met een generiek EF-based provider kunt werken. Voorbeeld is hier te vinden: http://bit.ly/2uQBJmK
Het Dapper Micro Entity Framework van Stack Overflow: https://github.com/stackexchange/dapper
Het NPoco Micro Entity Framework van Schotime: https://github.com/schotime/npoco
Micro Entity Framework PetaPoco: https://github.com/CollaboratingPlatypus/PetaPoco
Het Insight Micro Entity Framework: https://github.com/jonwagner/Insight.Database
In Memory Data Store Redis: https://redis.io/
In Memory Data Store ServiceStack: https://servicestack.net/
In Memory Data Store Cassandra: http://cassandra.apache.org/ bruikbaar in ASP.NET Core met de DataStax driver: https://www.datastax.com/
Uitleg over ASP.NET Core, het EF Core met een bestaande database: http://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db
Uitleg over transactions in EF Core: https://docs.microsoft.com/en-us/ef/core/saving/transactions
De broncode van de classes in ASP.NET Core die gerelateerd zijn aan de Web API is hier te vinden: https://github.com/aspnet/Mvc/tree/release/2.2/src/Microsoft.AspNetCore.Mvc.Core
Identity Server versie 4 voor ASP.NET Core: https://www.identityserver.com/
Uitgebreidere informatie over het beschermen van een Web API is hier te vinden: http://docs.identityserver.io/en/release/topics/grant_types.html
Voor alle opties die je hebt met identityserver en het nuget package IdentityServer4.EntityFramework kun je hier informatie vinden: http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html
De auteur van dit boek heeft op Github allemaal codevoorbeelden staan die bij dit boek horen, gesorteerd per hoofdstuk: https://github.com/despos/ProgCore
In hoofdstuk 11 heeft hij een applicatie met 1 formulier verdeeld over meerdere tabbladen en raadt ons aan om ubq-core.js in de Ch11 map te bekijken.
Het streamen van grotere bestanden, informatie is hier te vinden: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1
Text-templates met het lichtgewicht Mustache-framework: https://mustache.github.io/
Het KnockoutJS framework: https://knockoutjs.com/
Het Angular framework: https://angular.io
Wat wordt door welke browser ondersteund? Hier te vinden: https://caniuse.com/
Cliënt-side ontdekken wat je browser kan doen: https://modernizr.com/
Browserdetectie: https://www.quirksmode.org/js/detect.html
Regex om mobiele browsers te detecteren (verouderd, gedateerd 2014): http://detectmobilebrowsers.com
Tools, een client-side sniffer WURFL.js, een CDN voor afbeeldingen ImageEngine: https://web.wurfl.io/
Commerciële partij voor mobiele optimalisatie: https://www.scientiamobile.com/
Client Hints, experimentele HTTP-headers: https://httpwg.org/http-extensions/client-hints.html
dotPeek, gebruik deze als symbol server: bit.ly/2AnTOvK
ILSpy is een open-source de-compiler: https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy
Meer informatie over http.sys: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/httpsys
Apache proxy voor Kestrel: https://docs.microsoft.com/en-us/aspnet/core/publishing/apache-proxy
Op een later punt headers zetten, meer info: https://stackoverflow.com/questions/43403941
Voorbeeld publiceren vanuit Visual Studio: https://github.com/despos/ProgCore/tree/master/Src/Ch15
Informatie over publish-profielen: https://docs.microsoft.com/en-us/aspnet/core/publishing/web-publishing-vs
Uitleg over de RuntimeIdentifiers-tag in .csproj: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
Uitleg over Core ISAPI-module: https://docs.microsoft.com/en-us/dotnet/core/fundamentals/servers/aspnet-core-module
Uitleg Azure Service Fabric: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started
Hosting-opties bij Azure: https://docs.microsoft.com/en-us/azure/app-service/choose-web-site-cloud-service-vm
Azure tools voor VS Code: https://marketplace.visualstudio.com/items?itemName=bradygaster.azuretoolsforvscode
Deployen naar Amazon Web Services en Elastic Beanstalk toolkit: https://aws.amazon.com/blogs/developer/aws-and-net-core-2-0
Uitleg over publiceren naar Nginx: https://docs.microsoft.com/en-us/dotnet/core/publishing/linuxproduction
Benchmarks van ASP.NET Core: https://github.com/aspnet/benchmarks
Meer benchmark-testing: bit.ly/2wuvhDl
OWIN webserver in pure .NET: https://github.com/Bobris/Nowin
ASP.NET Core hosten als Windows service: https://docs.microsoft.com/en-us/aspnet/core/hosting/windows-service
De github van de ASPNET Core code: https://github.com/aspnet/
.NET E-book over micro-services: aka.ms/microservicesebook
Analyzer of je code naar ASP.NET Core te porten is: https://github.com/Microsoft/dotnet-apiport
Roadmap van Entity Framework Core: https://github.com/aspnet/EntityFramework/wiki/Roadmap