Onze eerste applicatie in .NET Core

Magazine item

Bij Pixeo bouwen we al jaren onze websites en webshops in het .NET Framework, de grondlegger van het nieuwe platform. Hetzij momenteel exclusief voor Windows-omgevingen. Wij konden niets anders dan Microsoft hun beslissing toejuichen! 

 

R&D

Allereerst wilde ik de applicatiestructuur een keer uitpluizen. Daarvoor installeerde ik de toen laatste nieuwe versie van Visual Studio op mijn virtuele Windows-omgeving, waar je supersimpel een nieuw .NET Core project kon aanmaken. Daar zat meteen al een heleboel voorbeeld-code in om de boel draaiende te krijgen en om je meteen een overzicht te geven van alle nieuwigheden en veranderingen. Daarna kopieerde ik dat project van mijn virtuele Windows omgeving naar mijn macOS, voerde wat kleine aanpassingen uit en niet veel later was draaide er een .NET webapp native op macOS.

Dat kunstje vergaarde menig "wow" op kantoorvloer.

In dat kleine jaar na lancering schoten de tutorials en instructievideo's op als paddestoelen uit de grond. De beste plaats om te beginnen is op de .NET Core website. Kies je platform en gaan!

 

Project

Eind 2016 boodt er zich een nieuw project van vrij grote schaal aan. Wij bij Pixeo zijn al even op zoek naar een kans om naast ons in-house CMS systeem de Creatr, een open-source cross-platform cloudbased beheersysteem gebaseerd op de laatste innovatieve vernieuwing op het gebied van webapplicaties aan te bieden. Dit voor een betere efficiëntie in onderhoud en uitbreiding van het systeem én voor een betere gebruikerservaring te kunnen aanbieden, vooral in termen van snelheid.

De leercurve is lichtjes steiler in vergelijking met een nieuwe applicatie bouwen in het klassiek .NET Framework:

  • .NET Core is jong en in volle ontwikkeling. De documentatie wordt dagelijks aangevuld.
  • De oplossingen die we tijdens de ontwikkeling zoeken vinden we nu terug in beter terug te vinden ervaringen in het klassieke .NET Framework. We zetten deze ervaringen naar onze eigen hand en voorzien dan een oplossing in voor  .NET Core.
  • Persoonlijk, als relatieve nieuweling in hardcore .NET, leer je meteen programmeren volgens de nieuwe visie van Microsoft.

 

Applicatiestructuur uiteenzetten

Dit project moet de basis worden van één van onze latere producten. Vandaar moest er goed nagedacht worden over wat we enkel nodig hebben voor dit project en wat er later kunnen loskoppelen en hergebruiken voor andere projecten. Een .NET project solution kan je opdelen in verschillende projecten naargelang hun functie. Momenteel zijn we al bij de volgende opdeling gekomen:

  1. Beheersysteem (MVC-app)
  2. Front-engine (MVC-app)
  3. Gedeelde logica omtrent aanmelden, beheer van gebruikers, implementatie van een multi-tenant systeem (Class library)
  4. Gedeelde logica omtrent alle aspecten van de e-commerce (Class library)

 

Authenticatie

Microsoft biedt na jaren trail-and-error een robuuste oplossing voor authenticatie aan onder de noemer ASP.NET Core Identity. Na het bekijken van de voorbeelden voorzien in hun Github-project hebben heel snel kunnen distilleren en implementeren wat nodig hebben voor onze applicatie.

Wat zijn de mogelijkheden van ASP.NET Identity?

  • Authenticatie
    • Klassieke login met e-mail en wachtwoord
      • Uitgebreide user-flow voor het terugvinden van je login-gegevens.
    • Multifactor authenticatie
  • Beheer van gebruikers
  • Beheer van rollen en rechten binnenin je applicatie.

 

Opstellen van de datastructuur

Onze jarenlange ervaring in het onderhouden van CMS-systemen leert ons dat dit gene kattepis is. Het process om een verouderd CMS te voorzien van nieuwe functionaliteit en beveiligingsupdates kan sneller en efficiënter om zo een nog betere service aan onze klanten te bieden.

We gaan daarom een systeem bouwen waarvan het beheer op een centrale plaats kan, maar waarbij de data en bijgevolg de privacy per klant, gescheiden blijft. Een multi-tentant systeem.

De datastructuur maken we niet meer manueel aan via SQL-queries of in onze database-tool. We definiëren deze in onze code, in classes en gebruiken Entity Framework Core om die classes om te vormen naar tabellen en relaties in databanken. Zo wordt meteen ook de gehele datastructuur opgeslagen in versiebeheer.

 

Tot zo ver onze eerste ervaringen met .NET Core. Er is nog veel werk aan de winkel en we delen graag binnenkort meer van onze ervaringen met jou.

 

2017 wordt voor Pixeo alvast een jaar van openheid.

profile pic Gepubliceerd op 6 april 2017 door Nick Goris
plane-propellor

Ontdek jouw groeiformule

Bezoek ons labo