Erinevus ASP.NET Core ja ASP.NET MVC 5 vahel

Parim viis õppida mis tahes tehnoloogia osas uut on võrrelda selle varasema versiooniga.
Siit saab aru ASP.NET Core (MVC) ja ASP.NET MVC 5 erinevusest, luues näidisrakenduse ja võrdledes nende vahel projektilahenduse struktuuri.

Noh, meil on lahenduse struktuuris ASP.NET Core MVC ja ASP.NET MVC 5 vahel palju erinevusi, uurime neid ilma koodi kirjutamata.

ASP.NET Core on lahja ja kokkusobiv raamistik veebi- ja pilverakenduste loomiseks. ASP.NET Core on täielikult avatud lähtekoodiga.

Täielikult avatud lähtekoodiga olemine pole lihtne ülesanne, Microsoft on teinud hämmastava töö selle muutmiseks kogu Windowsi, Maci ja Linux OS-i jaoks.

Kiire ülevaade ASP.NET Core täiustustest

  • Luua ja käitada platvormideüleseid ASP.NET-i rakendusi Windowsis, Macis ja Linuxis
  • Ehitatud .NET Core'ile, mis toetab rakenduste tõelist versiooni
  • Uus tööriist, mis lihtsustab tänapäevast veebiarendust
  • Ühtne joondatud veebivirn MVC ja Web API jaoks
  • Pilvevalmis keskkonnapõhine konfiguratsioon
  • Integreeritud tugi NuGeti pakettide loomiseks ja kasutamiseks
  • Sisseehitatud tugi sõltuvuse süstimiseks
  • Võimalus võõrustada IIS-is või iseenda hostina oma protsessis

Esiteks looge ASP.NET Core MVC rakendus ja ASP.NET MVC 5, kasutades Visual Studio 2015 / VS 2017 kogukonna väljaannet

Erinevus 1 - ASP.NET Core MVC ja Web API-de ühtne joondatud veebipakk

ASP.NET MVC 5 annab meile veebirakenduse loomisel võimaluse valida MVC või Web API või mõlemad. Selle põhjuseks oli asjaolu, et MVC 5 ja Web API veebivirn ei olnud sama.ASP.NET Core MVC-l on nüüd MVC ja Web API jaoks ühtne joondatud veebivirn. Alloleval pildil on märkeruut MVC ja Web API jaoks ROHKELT välja toodud, samas kui MVC 5 annab võimaluse lisada Web API.

Erinevus 2 - projekti (lahenduse) struktuuri muutused

Kui näete paremas servas ASP.NET Core MVC lahenduste uurijat, pole Web.config, Global.asax. Siis kuidas see tegeleb konfiguratsiooniseadete, autentimise ja rakenduse käivitamisega konkreetse koodi täitmisega.
appsettings.json, kohandatud konfiguratsioonifailid on mõned failid, mis täidavad ASP.NET MVC 5 puuduvate failide tööd. Kui vaadata kausta kaustade kaupa, on palju muudatusi.

Erinevus 3 - ASP.NET tuum on suunatud täielikult. NET ja. NET tuumale

Oleme töötanud täieliku .NET-raamistiku kallal, see on siiani hämmastav kogemus ja on ka edaspidi. Mis on .NET tuum?

.NET Core on üldotstarbeline arendusplatvorm, mida hooldavad Microsoft ja GitHubis asuv .NET kogukond. See on platvormideülene, toetab Windowsi, macOS-i ja Linuxit ning seda saab kasutada seadme, pilve ja manustatud / asjade Interneti stsenaariumides

Oh, platvormideülene !! Jah, nüüd saame arendada ASP.NET Core veebirakendusi .NET südamiku vastu ja käitada kas Windowsis, Linuxis või Macis.
Oodake, see pole veel möödas: mitte ainult saame areneda Windows OS-is, vaid ka Linuxis, Macis, kasutades Visual Studio Code'i või muid koodiredaktorid nagu Vim, Atom, Sublime

Erinevus 4 - ASP.NET Core'i rakendused ei vaja hostimiseks IIS-i

Ärge imestage, ASP.NET Core'i eesmärk on olla platvormideülene .NET Core'i abil. Seda silmas pidades otsustas Microsoft võõrustada ASP.NET Core'i rakendusi mitte ainult IIS-is, vaid ka neid saab ise hostida või kasutada Linuxis Nginxi veebiserverit. Kestrel on sisemine veebiserver päringute töötlemiseks

Erinevus 5 - staatiliste failide kaust wwwroot

Kaust wwwroot tähistab veebiserveri töötamisel veebirakenduse tegelikku juuri. Staatilistele failidele nagu config.json, mida pole wwwroot-is, pole kunagi juurdepääsu ja tundlikele failidele juurdepääsu blokeerimiseks pole vaja luua spetsiaalseid reegleid. Need staatilised failid võivad olla tavalised HTML, Javascript, CSS, pildid, teek jne.

Lisaks turbeeelistele lihtsustab kaust wwwroot ka tavalisi toiminguid, näiteks komplekteerimist ja minimeerimist, mida saab nüüd hõlpsamini lisada tavalisse ehitamisprotsessi ja automatiseerida selliste tööriistade abil nagu Grunt. Kausta „wwwroot” nime saab muuta.

Erinevus 6 - uus lähenemisviis pakettide serveri ja kliendi küljes sõltuvuse haldamiseks.

Kõigile .NET-i arendajatele on teada, et kaustas Viited on kõik DLL-id, NuGeti paketid, eriti .NET Framework. Kasutage Visual Studio IDE-s töötamise kogemust ja juurutage ASP.NET Core rakendusi kas Windows, Linux või Mac, kasutades .NET Core.

Selle serveripoolne sõltuvuste haldamine. Kliendipoolne sõltuvusehaldus on olulisem, kuna kliendipoolel on serveripoolsest rohkem erinevaid pakette.

Kliendi poolel on kindlasti jQuery, Bootstrap, grunt, mis tahes Javascripti raamistikud nagu AngularJS, Backbone jne, pildid, stiilifailid. Kliendipoolsel paketthaldusel avatud lähtekoodiga kogukonnas on kaks nime “LibMan” (äsja käivitatud) ja “NPM”. Need on osa sõltuvustest.

Erinevus 7 - serveripoolsed paketid säästavad ruumi ASP.NET Core'is

Oleme kasutanud NuGeti paketihaldurit, et lisada viide komplektide, teegi, raamistiku või muude kolmandate osapoolte pakettidele.
Need oleks alla laaditud NuGetist, mis loob projekti struktuuris kausta „Paketid”.

30 ASP.NET-i rakendust on 30, kõik kasutavad NuGeti pakette sõltuvuste määramiseks, kulukad umbes 70 MB kettaruumi, nii et lõppkokkuvõttes kasutame pakettide salvestamiseks peaaegu 2 GB kettaruumi, ehkki kõik need on ühesugused. Mõned SMART-i arendajad teavad seda probleemi, neil on oma lahendus.

ASP.NET Core asus salvestama kõik selle arendamisega seotud paketid kausta Kasutajad ja ASP.NET Core rakenduste loomisel viitab Visual Studio neile kausta Kasutajad.
Selle funktsiooni nimi on .NET Core 2 jaoks Runtime Store. Isegi kui teil on 100 ASP.NET Core'i näidisrakendust, viitavad nad kõik kausta Kasutajad, mis asuvad ainult mõne MB-ni, punktnetist.

Erinevus 8 - sisseehitatud sõltuvuse sissepritse (DI) tugi ASP.NET Core'i jaoks

Sõltuvuse süstimise (DI) abil saadakse lõdvalt ühendatud, paremini kontrollitav kood, see on väga oluline, kuna see aitab kirjutamisüksuse testimisel. ASP.NET MVC 5/4 või klassikalistes ASPX-põhistes rakendustes on meil eraldi DI konteinerid, näiteks Unity, AutoFac, StructureMap jne.
DI, selle täiendavate jõupingutuste kasutamiseks pidime üles ehitama oma projekti.

Nüüd on ASP.NET Core'i rakendustes sisseehitatud sõltuvuse süstimine, st DI jaoks pole peavalu. Lihtsalt looge mõned teenused ja olge valmis DI kasutamiseks.
Core MVC näidisrakenduses on tegelikult sisseehitatud DI, avame “Startup.cs” ja otsime meetodit “ConfigureServices (IServiceCollection services)”.

Selle peamine eesmärk on selliste teenuste konfigureerimine nagu EF, autentimine, MVC lisamine ja käsitsi kirjutatud kohandatud teenused nagu IEmailServer ja ISmsSender.

Erinevus 9 - ASP.NET Core'i kasutaja saladused

Mitu korda hoiame arendustöö käigus tundlikke andmeid projektipuu sees, sageli jagame neid saladusi koodide jagamise kaudu ekslikult, lisades sellele kogemata TFS-i (lähtekontroll).

Mõnikord võisime seda kogeda. ASP.NET Core-põhistes rakendustes on nüüd kasutajasaladuste kontseptsioon; Salajase halduri tööriist pakub üldisemat mehhanismi tundlike andmete säilitamiseks arendustööde jaoks väljaspool projektipuud.

Salahalduri tööriist ei krüpteeri salvestatud saladusi ja seda ei tohiks käsitleda usaldusväärse kauplusena. See on mõeldud ainult arendamiseks.

Võrreldes ASP.NET MVC 5/4-ga on palju erinevusi, kuid ilma ühe koodi kirjutamata, kui leiame need erinevused, tähendab see, et Microsoft on avatud lähtekoodiga versioonis palju edasi liikunud.

Algselt avaldati veebisaidil www.mithunvp.com.