MS certificering: 70-486, deel 8, conclusie en linkjes van ASP.NET Core

Ingediend door Dirk Hornstra op 11-oct-2018 20:17

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