Wat speelt er nu bij ShareValue?

Michiel Michiel / 05-04-2022

4 minuten lezen

EF Core 6

Entity Framework Core 6 is gelijktijdig met .NET 6 gelanceerd, namelijk afgelopen november (2021). Daarmee heeft EF Core 6 net als .NET 6 Long Term Support (LTS). EF Core 6 heeft natuurlijk veel wijzigingen ten opzichte van EF Core 5. Een aantal opvallende wijzigingen neem ik door in deze blog. Ook kijk ik vooruit naar november 2022, waar EF 7.0 wordt aangekondigd. Wat kan je daarvan verwachten?

Temporal tabellen

Met Temporal tabellen kan je versies toevoegen aan een bestaande tabel. EF maakt dan een tweede tabel aan met validatiedatums voor de opgeslagen data. Deze temporal tabel kan volledig geconfigureerd worden. Uiteraard kan deze tweede tabel ook gewoon doorzocht worden. Om deze data op te halen zijn er specifieke functies binnen EF beschikbaar.

Momenteel is deze functie alleen beschikbaar binnen Microsoft databases, maar er is ook “third-party” ondersteuning voor PostgeSQL. Meer informatie over Temporal tabellen vind je hier.

Migration Bundles

Met migration bundles kan je één of meer migraties bundelen tot een executable die je kan geïmplementeerd kan worden in een CI/CD omgeving. De functie is enigszins vergelijkbaar met DbUp, al zou ik zelf toch nog eerder DbUp gebruiken dan deze functionaliteit. Bij DbUp zet je alle SQL scripts in een aparte folder en stel je deze in als embedded resource. Een tip hier is om die folder in z’n geheel te markeren als embedded resource door wildcards te gebruiken in het .csproj bestand.

Meer informatie over migration bundles vind je hier. Meer informatie over DbUp staat hier.

Migration Bundles

Pre-convention modelconfiguratie

Door in je DbContext class ConfigureConventions te overschrijven, kun je standaard modelconfiguratie toevoegen. Op basis van het type kan je standaardconfiguratie, zoals string-lengte, unicode en de precisie van decimalen bepalen voor het gehele model.

Met deze configuratie kan je ook converters toevoegen en ook properties bij voorbaat uitsluiten.

Meer informatie over pre-convention modelconfiguratie, vind je hier.

Pre-convention modelconfiguratie

UnicodeAttribute

Met deze attribute kan je aangeven of een property Unicode is of niet. Dit kon je natuurlijk al aangeven in de Entity Type Configuratie, maar niet als attribute. Dat kan nu dus wel.

Standaard zet EF Core string properties om naar Unicode, dus deze attribute is vooral bedoeld om Unicode uit te zetten. Als een database alleen Unicode type accepteert, dan wordt het attribute genegeerd.

UnicodeAttribute is onderdeel van het NuGet-package Microsoft.EntityFrameworkCore.Abstractions.

UnicodeAttribute

Model building verbeteringen

Er zijn nog verschillende andere verbeteringen, waaronder betere ondersteuning van conversies, zodat je aan kan geven hoe je enums wilt opslaan. Ook is het makkelijker geworden om many-to-many koppelingen te configureren.

Wat er nog meer aan verbeteringen in EF Core zitten, vind je hier.

Model building verbeteringen: de kortste configuratie van meer-op-meer-koppelingen

EF7

In november 2022 komt EF7 uit, gelijktijdig met .NET 7. Net als .NET 7 heeft deze versie geen LTS. Het is ook de eerste versie waar Core uit de naam verdwenen is; er is nu geen verwarring meer met oude versies aangezien de laatste “oude” versie ook een versie 6 had. EF7 borduurt weer verder op EF Core 6. Hoewel nog niet alle wijzigingen duidelijk zijn, is er al wel duidelijk wat er in de planning zit:

JSON-Kolommen

JSON-kolommen zijn kolommen waarin JSON-tekst wordt opgeslagen. De bedoeling is dat de JSON properties gemapt kunnen worden naar de properties in de entities.

Meer informatie over JSON kolommen vind je hier.

Bulk Updates

Een ander voorstel voor EF7 zijn “bulk updates”. Zonder data in het geheugen te laden, kunnen dan veel regels bijgewerkt worden.

Meer informatie over bulk updates vind je hier.

Grafische User Interface

Dit voorstel gaat over betere ondersteuning voor Windows Forms en .NET MAUI. Het is namelijk niet altijd eenvoudig om de technieken met elkaar te verbinden. In EF7 wordt de ervaring van in EF Core en in Visual Studio verbeterd. In de basis gaat het om het herintroduceren van Visual Studio tooling, zodat het ongeveer gelijk werkt zoals in .NET Framework.

Migratie van EF6 naar EF7

De vorige Entity Framework versie 6 - de versie van 17 oktober 2013 en dus niet te verwarren met EF Core 6 - was een vrij complete versie. In EF7 worden ontbrekende functionaliteiten uit EF6 toegevoegd. Het is op dit moment nog niet duidelijk welke functionaliteit van EF6 wordt toegevoegd aan EF7. Wel is duidelijk dat deze functionaliteit het makkelijker moet maken om de EF6 projecten te porten naar EF7.

Meer informatie

Op onze GitHub-pagina kun je de demo repository vinden. Hierin zijn wat shortcuts genomen, maar geeft wel een beeld van hoe Entity Framework werkt.

In de readme van de repository vind je meer informatie en links over EF Core 6 en EF7.

Mocht je hier nou nog vragen over hebben, of hulp van één van onze .NET Developers kunnen gebruiken… laat het ons weten! We kijken graag een keer met je mee.

Michiel Michiel / 04-11-2021

3 minuten lezen

Je kan veel van Microsoft zeggen, maar stilgezeten hebben ze dit jaar in ieder geval niet. Op 5 Oktober lanceert Microsoft Windows 11. Een maand later, op 8 november, wordt Visual Studio 2022 gelanceerd en de dag daarna is .NET 6 en C# 10 beschikbaar.

In deze blog gaat het over de laatste datum. De lancering van .NET 6 wordt gevierd met een drie dagen durende conferentie op dotnetconf.net. Om dinsdag om 17:00 begint het met de keynote en de laatste sessie eindigt op vrijdagochtend om 02:00.

Gedurende deze drie dagen zijn er 83 sessies, totaal meer dan 40 uur. Ik denk dat iedereen wel een goede reden heeft om niet al deze sessies te bekijken. Aan de andere kant wil je wel weten wat je kan verwachten van .NET 6 en C# 10.

Daarom in deze blog de must-watch sessies.

Dinsdag 9 november

Dinsdag

17:00 – De Keynote
De enige sessie van een uur waarin Scott Hunter en z’n team al het grote nieuws van .NET 6 presenteert.

18:30 – What’s new in C# 10
Deze sessie is belangrijk voor C# developers aangezien C# 10 handige nieuwe functies heeft.

19:00 – Enterprise-grade Blazor apps with .NET 6
Dat Microsoft Blazor nog steeds serieus neemt blijkt wel uit het feit dat 14 van de 83 sessies over Blazor gaan. Deze sessie worden nieuwe features gepresenteerd.

22:00 – Minimal APIs in .NET 6
In deze sessie wordt gedemonstreerd hoe kleine HTTP APIs gebouwd kunnen worden met “low-ceremony”.

0:00 – Upgrading from .NET Framework to .NET 6
Een belangrijke sessie voor gebruikers van .NET Framework waarin de voordelen van .NET 6 ten opzichte van .NET Framework besproken worden.

1:30 – .NET Everywhere - Windows, Linux, and Beyond
Rocksterren komen altijd aan het eind van de avond en Scott Hanselman is natuurlijk de rockster van Microsoft. Deze sessies zijn altijd de moeite waard.

Woensdag 10 november

Woensdag

Op woensdag gaan de sessies om 16:00 weer verder waarbij begonnen wordt met CodeParty Day 2. Daarna gaan de sessies in één keer door tot 2:00 in de nacht van donderdag op vrijdag.

Donderdag 11 november

Donderdag

8:30 – Practical tips to elevate your UX and accessibility
Ik heb al eerder sessies van Jessica Engström gezien en deze sessies geven altijd goed inzicht hoe UX-ontwerpen verbeterd kunnen worden.

11:30 – JavaScript frontend development with ASP.NET Core in .NET 6
Veel webapplicaties die tegenwoordig gebouwd worden, hebben een .NET 6 API back-end met een Javascript framework, zoals Angular, als Front-End. In deze sessies worden verbeteringen gedemonstreerd.

14:30 – 30 Minutes of Testing in .NET
Testen is een belangrijk onderdeel van software ontwikkeling. In deze sessie passeren verschillende soorten tests de revue met voorbeelden hoe ze in ASP.NET projecten kunnen worden toegepast.

21:30 – Cross Platform Database Support On Steroids
Deze sessie heb ik toegevoegd, zodat het hele pallet van database tot Front-End met UX in de must-watch lijst staat. In deze sessie wordt EF Core gebruikt om te integreren met verschillende database soorten, zoals SQL Server, MySQL en PostgreSQL.

1:00 – Host, deploy and scale ASP.NET Core Blazor Server
In deze sessie wordt naar verschillende Blazor Server configuraties gekeken.

Uiteraard zijn er veel meer interessante sessies, maar met bovenstaande sessies krijg je een redelijk goed beeld welke innovaties er met .NET 6 nieuw bijgekomen zijn. Alle sessies zijn ook op een later moment terug te kijken. Vorig jaar zagen we dat YouTube de beste feed was om te volgen.

Alle sessies zijn ook terug te vinden op dotnetconf.net.

{description}

Heb je een Microsoft Expert nodig?

Neem contact met ons op
{description}

Zoek je een nieuwe baan?

Bekijk onze vacatures