close

ASP.NET

Hoppa till navigering Hoppa till sökning
ASP. net
programvara
Logotyp
GenreIntegrerad utvecklingsmiljö
UtvecklarenMicrosoft Corporation
Datum för första versionenjanuari 2003
Senaste versionen4.7.1 (17 oktober 2017 )
Operativ systemMicrosoft Windows
LicensApache License 2.0
( gratis licens )
Hemsidawww.asp.net/

ASP.NET är ett projekt med öppen källkod [1] [2] som inkluderar en uppsättning mjukvaruutvecklingsteknologier för webben , marknadsförda av Microsoft . Med hjälp av dessa tekniker kan utvecklare bygga webbapplikationer och webbtjänster ( webbtjänster ).

Den släpptes först i januari 2002 [3] med version 1.0 av .NET Framework och är efterföljaren till Microsofts Active Server Pages (ASP)-teknologi. ASP.NET är byggt på Common Language Runtime (CLR), vilket gör att programmerare kan skriva ASP.NET-kod med valfritt .NET-språk som stöds. ASP.NET SOAP- tilläggsramverket tillåter ASP.NET-komponenter att bearbeta SOAP-meddelanden.

Efterföljaren till ASP.NET är ASP.NET Core. Det är en omimplementering av ASP.NET som ett modulärt ramverk för webbapplikationer , tillsammans med andra ramverk som Entity Framework . Det nya ramverket använder det nya open-source .NET Compiler Platform-projektet (kodnamnet "Roslyn") och är plattformsoberoende . ASP.NET MVC , ASP.NET Web API och ASP.NET Web Pages (en plattform som endast använder Razor-sidor) har slagits samman till en enhetlig MVC 6 [4] .

Principer som ASP.NET bygger på

Även om namnet ASP.NET kommer från ASP ( Active Server Pages ) ( Microsofts gamla webbutvecklingsteknologi ), finns det betydande skillnader mellan de två. Faktum är att ASP.NET är baserat, precis som alla applikationer i Microsoft .NET- familjen , på Common Language Runtime ( CLR ).

Utvecklare kan skriva kod med vilket som helst av högnivåspråken som stöds av .NET - ramverket (klassbibliotek) , som Visual Basic .Net (proprietary Microsoft), C # (uttalas C sharp , språk som är föremål för en standardiseringsspecifikation ) ), J # ( J sharp , härlett från Java), men också många andra öppen källkod (och icke) språk, såsom Perl och Python , detta är möjligt eftersom CLR har standardiserats vid ECMA . ASP.NET-applikationer är betydligt snabbare och mer presterande än de som byggts med andra skripttekniker , eftersom hela webbplatskoden är förkompilerad till några dll -filer (ofta i en enda fil) som hanteras av en webbserver .

ASP.NET syftar till att förenkla migreringen av utvecklare från Windows -applikationer till webbapplikationer genom att göra det möjligt för dem att generera sidor som består av många widgetkontroller , mycket lika de som används av Windows -användargränssnittet .

En webbkontroll, som en knapp eller en etikett (etikett), fungerar på ett mycket liknande sätt som deras Windows-motsvarigheter: koden som är kopplad till dem kan tilldela dem vissa egenskaper och utföra åtgärder som svar på händelser som är kopplade till dem (t. exempel med en knapptryckning). Skillnaden är att medan Windows-kontroller ritar sig själva på skärmen, producerar webbkontroller block av HTML -kod som automatiskt infogar sig själva på sidan för att skickas till slutanvändarens webbläsare .

ASP.NET programmeringsparadigm

ASP.NET är utformat på ett sådant sätt att det uppmuntrar utvecklaren att systematiskt använda paradigmet för det grafiska användargränssnittet ( GUI ) kombinerat med den så kallade händelsedrivna programmeringen , det vill säga den programmeringsstil som de olika kodblocken är i. exekveras som svar på vissa händelser , eller åtgärder, på grafiska kontroller på skrivbordet .

Den konventionella språkstilen för utveckling av webbapplikationer baserades istället på skripttekniken . Rambiblioteksklasserna. NET föreslår också att kombinera och interagera med befintliga teknologier, såsom JavaScript , för att tillskriva mjukvaruobjekt en beständighetskaraktär , även i en miljö som webben, som i sig är tillståndslös ( statslös server ).

The Framework Class Library. NET, implementerar strukturen för CLR (Common Language Runtime), vars bas bildas av en JIT ( just in time ) kompilator. Detta innebär att den producerade mellankoden, kallad IL (Intermediate Language) och identisk för alla högnivåspråk som används, kompileras till maskinspråk vid tidpunkten för den första exekveringen. Genom att använda olika just in time kompilatorer är det möjligt att återanvända samma mellanliggande IL på olika processorer . Denna teknik kallas Jitting . Den här typen av kompilering skiljer sig mycket från språk som Java , där i stället all kod körs på en riktig virtuell maskin , medan programmet i .NET vid tidpunkten för körningen faktiskt är på maskinspråk som alla andra språk.

Liksom alla andra språk i .NET-sviten använder ASP.NET också den automatiska minnesdisallokeringsmekanismen som kallas garbage collector .

Styrkor med ASP.NET över ASP

Den breda tillgängligheten av kontroller, klasser och utvecklingsverktyg gör det möjligt att avsevärt minska utvecklingstiden för programvarumoduler, och gör det möjligt för utvecklaren att enkelt återanvända samma kod i olika applikationer. ASP.NET har också avsevärt förenklat dataåtkomstkapaciteten jämfört med ASP. Till exempel är det mycket enklare och mer omedelbart att skapa en sida som innehåller en lista med data hämtade från en databas .

Andra fördelar är:

  • Den förkompilerade koden gör att applikationer kan köras snabbare, med ett större antal programmeringsfel som upptäcks och elimineras redan under utveckling, samt låter dig distribuera en webbapplikation utan att nödvändigtvis behöva bifoga källan.
  • Användardefinierade kontroller låter dig enkelt implementera mycket vanliga kontroller, till exempel menyer .
  • De ytterligare COM- och .NET-komponenterna behöver inte registreras på servern genom att arbeta från konsolen, utan initieras vid körning av applikationen. På så sätt behöver värdleverantörskunder inte begära registrering av några bibliotek på serversidan.
  • ASP.NET kan utge sig för att vara vilken användare som helst av Windows-servern där den körs, och ärver alla privilegier på filsystemet .
  • Samhörigheten med grafiken och programmeringsstilen i Windows-applikationer gör att växla mellan dem mer intuitivt för programmerare.
  • Tillgången till en mycket rik uppsättning kontroller och klassbibliotek möjliggör snabb applikationsutveckling.
  • Möjligheten att cachelagra hela sidor, delar av sidorna eller applikationsdata förbättrar den övergripande prestandan avsevärt.
  • Om en ASP.NET-applikation misslyckas med att allokera det minne som den behöver ( minnesläckage ) laddar runtime-modulen bort hela den isolerade miljön där den kritiska applikationen körs från minnet och laddar om den i ett annat område som specifikt skapats. För att utföra dessa laddnings-/avlastningsoperationer (och andra som rör applikationen som helhet) ramverket. NET tillhandahåller klassen AppDomain .
  • ASP.NET-sessionstillstånd kan sparas i en SQL -serverdatabas eller i en separat process som finns på samma maskin som webbservern, eller på en annan maskin. Sessionsdata och egenskaper går inte förlorade när Internet Information Services (IIS) återställs eller när den aktiva ASP.NET-processen återvinns.
  • Med Visual Studio .NET och IIS Server kan du utföra felsökning på serversidan, med samma steg-för-steg-verktyg som används i de flesta kompileringsutvecklingsmiljöer.
  • Förmågan hos .NET CLR-plattformen att stödja många språk gör att programmerare kan skriva kod för webbsidor i VB.NET, C #, J #, etc.

Kritik av ASP.NET

ASP och ASP.NET kan köras tillsammans i samma webbapplikation. Detta tillvägagångssätt tillåter utvecklare att migrera från en miljö till en annan gradvis istället för allt på en gång. Med IIS 6.0 och tidigare kan sidor skrivna med äldre versioner av ASP-ramverket inte dela samma session utan användning av tredjepartsbibliotek. Den här begränsningen finns inte för ASP.NET- och ASP-program som körs tillsammans under IIS 7. I vissa fall återvinner ASP.NET den aktiva processen under körning och upptar mer än 60 % av det tillgängliga minnet. Den kan konfigureras så att återvinning sker först efter ett visst antal förfrågningar, efter en viss tid osv. Däremot kan användaren förlora statusen för den aktuella sessionen. Om applikationen använder sessionstillstånd för att ladda autentiseringsinformation (dålig praxis eftersom cookiebaserad autentisering och medlemskap är ett tillgängligt alternativ som redan är inbyggt i ramverket) och om applikationen är konfigurerad för att använda pågående sessioner , kan användaren loggas ut om processen återvinns.

Kodprov

Nedan är källkoden som genererar det klassiska minimala meddelandet:

<% @  Page  Language = "C #"  %>
<HTML>
<HUVUD>
    <TITLE> Exempel på en ASPX-sida </TITLE>
</HEAD>
<KROPP>
    <DIV  STYLE = "TEXT-ALIGN: CENTER" >
        <% 
            int  mcycle ;
            String  mstringa  =  "" ;
            för  ( m cykel  =  1 ;  m cykel  <=  10 ;  m cykel ++ )  {
                mstring  =  mstring  +  String . Format ( "<SPAN STYLE = 'FONT-SIZE: {0} PX'> Hej världen i ASP.NET </SPAN> <br />" ,  mcycle ) ; 
            } 
            Meddelande . InnerHtml  =  mstring ; 
        %> 
        <SPAN  id =  "Meddelande"  runat = "server" /> 
    </DIV> 
</BODY>
</HTML>

ASP.NET-filnamn har filnamnstillägget .aspx . Siddirektivet låter dig ange vilket språk som används (i exemplet C #), och många andra attribut som låter dig beskriva sidans egenskaper och utseende . Varje aspx-sida kan bara innehålla ett siddirektiv . Observera att exempelraderna med kod som följer siddirektivet är vanlig HTML-kod.

2 variabler deklareras: hela mcycle och strängen med namnet mstring , och en for - loop definieras för att visa meddelandet med tecken med ökande storlek från 1 till 10. Mstring- variabeln lagrar HTML-koden som ska visas. I slutet av cykeln ställs InnerHtml- egenskapen för Message - objektet in .

Taggen <SPAN>har attributet runatsom indikerar att elementet ska köras på serversidan , vilket vanligtvis är fallet i applikationer utvecklade i ASP.NET.

Utvecklingsverktyg

Det finns många program tillgängliga för att utveckla ASP.NET-applikationer, de viktigaste och mest populära är:

ASP.NET 3.5

ASP.NET 3.0 har aldrig funnits. Microsoft använde namnet ".NET Framework 3.0" för att distribuera en uppsättning nya tekniker: WPF ( Windows Presentation Foundation ), WCF ( Windows Communication Foundation ) och WF ( Windows Workflow Foundation ). .NET Framework 3.0 innehåller dock inte en ny version av CLR eller ASP.NET. Jämfört med version 2.0 kan version 3.5 av ASP.NET betraktas som en gradvis utveckling; i synnerhet är de nya funktionerna koncentrerade till tre områden: LINQ , AJAX och Silverlight .

Säkerhet

En ASP.NET-webbplats kan utsättas för hackerattacker [5] :

  • Felaktig konfiguration av säkerhetsalternativ
  • Cross-Site Request Forgery (CSRF) - tillåter en angripare att tvinga en validerad och inloggad användare att utföra åtgärder utan deras medgivande
  • Cross-Site Scripting (XSS)
  • Laddar skadliga filer: Angripare kan ändra filtillägg (till exempel från ".exe" till ".jpeg") och det skadliga skriptet kan laddas som en bildfil
  • Versionsupplysning: Versionsinformation kan användas av en angripare. När en webbläsare skickar en HTTP-förfrågan till servern får vi som svar en svarshuvud som innehåller all information om servern
  • SQL Injection : tillåter angripare att förfalska identifiera , modifiera befintliga data, orsaka förkastningsproblem som att avbryta transaktioner eller ändra bokslut, få all data på systemet, ta bort eller göra data oåtkomlig och skapa eller äventyra användarna av databasservern.
  • Exponering för känsliga uppgifter: lösenord, PAN-nummer, kreditkortsinformation, etc.
  • Trasig autentisering och sessionshantering. Om autentisering och sessionshantering inte implementeras korrekt i en webbapplikation kommer den att göra den sårbar för attacker. Angripare kan stjäla data på grund av:
  1. Osäkra anslutningar (använder inte SSL )
  2. Förutsägbara inloggningsuppgifter
  3. Lagra inte inloggningsuppgifter i krypterad form
  4. Felaktig applikationsloggning
  • Omdirigeringar och vidarebefordran är inte validerade. Om vi ​​inte validerar omdirigeringar av webbsidor ökar risken för en attack. Den här attacken används främst för att nätfiska användaren med autentiseringsuppgifter eller för att installera skadlig skadlig programvara.

Programmeringsmallar

ASP.NET stöder ett antal programmeringsmodeller för att bygga webbapplikationer [6] :

  • ASP.NET Web Form: Ett ramverk för att bygga modulära sidor från komponenter, med UI-händelser bearbetade på serversidan.
  • ASP.NET MVC: Skapa webbsidor med designmodellen modell - vy - styrenhet.
  • ASP.NET-webbsidor: Lättviktssyntax för att lägga till dynamisk kod och komma åt data direkt i HTML-kodning [7] .
  • ASP.NET Web API: ramverk för att bygga webb-API på .NET Framework [8] .
  • ASP.NET Webhook: Implementerar webhook-modellen för att prenumerera och publicera händelser via HTTP.
  • SignalR - Ett ramverk för realtidskommunikation för tvåvägskommunikation mellan klient och server.

Andra ASP.NET-tillägg inkluderar:

  • ASP.NET Handler: komponenter som implementerar gränssnittet System.Web.IHttpHandler. Till skillnad från ASP.NET-sidor har de inte HTML-uppmärkningsfiler, händelser och annat stöd. Allt de har är en kodfil (skriven på alla .NET-kompatibla språk) som skriver en del data till serverns HTTP-svar. HTTP-hanterare liknar ISAPI-tillägg.
  • ASP.NET AJAX - Ett tillägg med komponenter på både klientsidan och serversidan för att skriva ASP.NET-sidor som innehåller Ajax-funktionalitet.
  • ASP.NET Dynamic Data: En ställningstillägg för att bygga datadrivna webbapplikationer.

IIS integrerad pipeline

I IIS 6.0 och tidigare kan sidor skrivna med olika versioner av ASP-ramverket inte dela sessionstillstånd utan att använda tredjepartsbibliotek. Detta gäller inte för ASP.NET- och ASP-applikationer som körs sida vid sida på IIS 7. Med IIS 7.0 kan moduler köras i en integrerad pipeline som gör att moduler skrivna på vilket språk som helst kan köras för varje begäran [9] .

Versioner

Datum Version
30 november 2015 4.6.1
30 april 2018 4.7.2
24 april 2003 1.1
21 november 2006 3.0
20 juli 2015 4.6
19 november 2007 3.5
18 november 2015 5 RC1
18 april 2019 4.8
17 oktober 2017 4.7.1
17 oktober 2013 4.5.1
16 januari 2002 1.0
15 augusti 2012 4.5
12 april 2010 4.0
11 april 2017 4.7
11 augusti 2008 3.5 Service Pack 1
7 november 2005 2.0
5 maj 2014 4.5.2
2 augusti 2016 4.6.2

Jämförelse med PHP

PHP är en direkt konkurrent till ASP.NET. Valet av de två språken har för- och nackdelar enligt dina behov [10] [11] [12] :

PROFFS MOT
PHP ASP.NET PHP ASP.NET
Det är öppen källkod så det är gratis och förbättras ständigt av ett stort antal människor snarare än ett enda företag Stöder alla programmeringsspråk och fungerar bra med appar eller C # Det är inte lämpligt för att bygga skrivbordsprogram Mindre lätt att lära sig och förstå än PHP
Det finns fler onlinesupportgrupper för att påskynda inlärningsprocessen än ASP.NET Meddela utvecklare om de har gjort fel i kodningen innan de kompilerar PHP-felhantering anses vara dålig jämfört med ASP.NET, så det kan ta längre tid att upptäcka ett problem Mindre stödgemenskap
Lättare att lära sig och förstå än ASP.NET Den kommer med många verktyg och funktioner för att stödja programmerare. Det möjliggör anpassning som orsakar buggar och dålig kodning jämfört med ASP.NET Det fungerar bara på en Microsoft-server
Det fungerar även på Linux- servrar Skapande av skrivbordsapplikationer. Eftersom koden är öppen källkod är den inom allas räckhåll och är därför mer utsatt för attacker Dyrare på grund av Microsoft -licensen

Anteckningar

  1. ^ ( EN ) .NET är öppen källkod på GitHub | .NET , på Microsoft . Hämtad 4 maj 2022 .
  2. ^ Vad är ASP.NET? , på IONOS Digitalguide . Hämtad 4 maj 2022 .
  3. ^ Vad är ASP.NET ? | The Open Source Web Framework , på umbraco.com . Hämtad 4 maj 2022 .
  4. ^ Wadepickett , ASP.NET-dokumentation , docs.microsoft.com . Hämtad 4 maj 2022 .
  5. ^ 9 sätt hackare utnyttjar ASP.NET - och hur man förhindrar dem , på Business 2 Community . Hämtad 28 januari 2021 .
  6. ^ Välj mellan ASP.NET och ASP.NET Core , på docs.microsoft.com .
  7. ^ Vanliga frågor om ASP.NET-webbsidor ( razor) , docs.microsoft.com .
  8. ^ Kom igång med ASP.NET Web API 2 (C # ) , docs.microsoft.com .
  9. ^ Hur man drar fördel av IIS 7.0 Integrated Pipeline , på iis.net .
  10. ^ PHP vs ASP.NET: Top Differences for Beginners' Understanding , på Appinventiv , 28 september 2018. Hämtad 30 januari 2021 .
  11. ^ Varun Bhagat, ASP.Net vs PHP: Vilket är bättre? , på PixelCrayons , 8 oktober 2019. Hämtad 30 januari 2021 .
  12. ^ Kiranbeladiya , .NET Framework vs. NET Core: A Complete Quick Comparison , på TheOneTechnologies , 24 september 2021. Hämtad 24 juni 2022 .

Relaterade artiklar

Externa länkar