#Utveckling & Arkitektur

.NET Core - del1 - Vad är det och varför ska vi använda det?

Vi har noterat ett ökat intresse från våra kunder gällande konsulter med erfarenhet av ASP.NET Core MVC och .NET Core. Här svarar Jimi på ett antal frågor kring vad "dotnet core" och "asp dotnet core" egentligen är och huruvida vi ska använda det. 

 

.NET Core

Den här delen riktar sig till dig som inte är insatt i vad .NET Core är och kanske inte heller är utvecklare men vill få en överblick i ämnet. I kommande delar av serien riktar vi oss främst till dig som är utvecklare.

För att inte missa några uppdateringar är det säkrast att du prenumererar på bloggen genom att skriva in din e-postadress här till höger.

 

Vad är egentligen .NET Core?

– Det är en nystart på  .NET 4 (ramverket som används idag), istället för att fortsätta på den befintliga kodbasen börjar man om från grunden enligt dagens förutsättningar vad gäller hårdvara och nytänkande kring arkitektur med kompakt kodbas, skalbarhet, öppen källkod, mikrotjänster och olika molnstrategier osv. 

– Ska man förklara .NET Core djupare är det enklast att använda Microsofts beskrivning

  • Det är en utvecklingsplattform vilken underhålls av Microsoft och .NET Communityt, det utvecklas som öppen källkod.
  • Det är "cross-platform", vilket betyder att det fungerar på Windows, macOS och Linux, på olika typer av enheter (devices), i olika molnlösningar och i inbyggda/inbäddade system (embedded).

 

Varför tycker du att man ska bygga system med .NET Core?

– Några av de största fördelarna jag kan se med .NET Core är de strategiska

  • Frihet;
    att vi kan bygga applikationer som kan köras på olika typer av plattformar ger oss större valmöjlighet bland driftsmiljöer oavsett om ni väljer egen drift, molntjänster som Microsoft Azure, Amazon AWS, Google Cloud eller privata moln från leverantörer som Cisco och Ericsson
  • Skalbarhet och prestanda;
    .NET Core gör det enkelt att bygga små delsystem (micro services) som snabbt kan skalas upp och ner  
    – lite som en självkörande bil, den gasar när det behövs och bromsar in när det behövs medan du njuter av utsikten.
    .NET Core är mycket snabbare och mindre än .NET vilket ger mer prestanda till en mindre peng
  • Kompatibilitet;
    .NET Core kan köras tillsammans med klassiska .NET vilket gör det enkelt att bygga vidare på befintliga .NET-system med ny teknik.
  • Framtidsutsikter;
    .NET Core förvaltas av den oberoende organisationen .NET Foundation (grundad av Microsoft) vilka samarbetar med Microsoft och industrin i stort.
    .NET Foundation har till uppgift att stimulera, hjälpa och synliggöra projekt i öppen källkod relaterade till .NET Framework, vilket borgar för ett fortsatt levande community med stor tillgång till färdiga moduler, plugins och kompletta system i öppen källkod.
  • Kompetensförsäkran på sikt; 
    Eftersom .NET Core kan utvecklas på Windows, Mac och Linux kommer även utvecklare från "andra sidan" i Mac- och Linuxvärlden att lära sig .NET Core, vilket ger dig som beställare eller arbetsgivare ett större urval av systemutvecklare och partners på sikt.

 

Läs även den här artikeln på Microsofts blogg om när man bör använda .NET Core

 

Finns det någon anledning att vänta med .NET Core?

– Det senaste är inte alltid det bästa

  • Var medveten om att .NET Core blev produktionsfärdigt först i Juni 2016, vilket betyder att det fortfarande är nytt och därmed inte ett lika stabilt inarbetat ramverk som .NET.
  • .NET har funnits i produktion sedan 2002 och därmed finns en mycket större flora av färdiga komponenter och ramverksstöd än vad som finns för .NET Core, vilket är bra att vara medveten om då det kan påverka produktiviteten i ert projekt.

Om jag idag ska bygga en enkel applikation eller en enkel webbsida tittar jag på .NET Core som ett första alternativ, men för ett större system skulle jag troligen blanda .NET med .NET Core.

 

Läs även den här artikeln på Microsofts blogg om när man inte ska använda .NET Core

 

Har du några andra tips på vad man bör tänka på?

– Har ni en egen utvecklingsavdelning?

  • Inventera kunskapen hos utvecklarna, kanske har de redan koll på stora delar av de tekniska frågorna. Tyvärr är det ganska vanligt att utvecklarna inte blir tillfrågade innan de ska bygga ett system – ta vara på deras kunskap, de har ofta en bra och övergripande insikt i verksamheten.
  • Begränsa dig inte till uttalanden från den egna utvecklingsavdelningen, skaffa dig ett bredare underlag genom att fråga folk i andra företag hur de gjort, hur de gör och vilka erfarenheter de har. 

Ha en någorlunda grov skiss för kraven på systemets förvaltningsbarhet, dess långsiktiga hållbarhet och livslängd innan du väljer arkitektur.

  • Tänk dig att du ska bygga ett hus men inte riktigt vet om det ska  stå kvar i 1 år eller 100 år  hur ska du då kunna ta ställning till materialval och konstruktion?
  • Ha en strategi som grund att stå på och låt sen strategin driva valet av teknik och arkitektur, inte tvärt om. För ett levande system handlar det i slutändan om att ha en förvaltningskostnad som är ekonomiskt hållbar, inte vilken teknik det är byggt i.

 

Vad är det för nyheter för systemutvecklarna – är det ett stort steg att gå till .NET Core från den klassiska .NET?

– Även om det finns en del nyheter handlar det i slutändan om att skriva affärslogik med samma språk som tidigare – tänk att du kör en automatväxlad bil ena dagen och en manuellt växlad andra dagen, grunderna är samma men det tar lite tid att vänja sig vid skillnaderna.

 

När det gäller arkitektur med tanke på drift och utvecklingsverktyg, vilka plattformar jobbar Agero med?

 Vi arbetar främst med Microsofts produkter som Azure för drift och Visual Studio för utveckling eftersom det är det bästa för klassisk .NET och självklart har bra stöd för .NET Core. 

 

Jag är intresserad av Processtöd

 

Detta var grundläggande information om .NET Core, i fortsättningen på den här serien blir det tekniskt när vi bygger en applikation i .NET Core och ASP.NET Core.

Applikationens syfte är att visa upp konsultprofiler och den byggs utifrån en förenklad icke teknisk kravspecifikation där vi får fria tyglar att välja tekniker.

När nya avsnitt i serien är tillgängliga kommer det att finnas länkar här nedan, prenumerera på bloggen nu genom att fylla i  din e-postadress här till höger.

Del 2 - Web Api med Autentisering via Identity och IdentityServer

Publicerad: 2017-01-12