ASP.NET: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m rilasciato -> pubblicato
 
(14 versioni intermedie di 11 utenti non mostrate)
Riga 16:
|SoftwareLibero = si
|Lingua =
|SitoWeb = https://www.asp.net/
}}
 
'''ASP.NET''' è un progetto [[open source]]<ref>{{Cita web|url=https://dotnet.microsoft.com/en-us/platform/open-source|titolo=.NET is open source on GitHub {{!}} .NET|sito=Microsoft|lingua=en-US|accesso=4 maggio 2022-05-04}}</ref><ref>{{Cita web|url=https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/cose-aspnet/|titolo=Che cos’è ASP.NET?|sito=IONOS Digitalguide|lingua=it|accesso=4 maggio 2022-05-04}}</ref> che comprende un insieme di tecnologie di sviluppo di [[software]] per il [[web]], commercializzate da [[Microsoft]]. Utilizzando queste tecnologie, gli sviluppatori possono realizzare [[Applicazione web|applicazioni web]] e [[Web service|servizi web]] (''web service'').
 
È stato rilasciatopubblicato per la prima volta nel gennaio 2002<ref>{{Cita web|url=https://umbraco.com/knowledge-base/aspnet/|titolo=What is ASP.NET? {{!}} The Open Source Web Framework|sito=umbraco.com|lingua=en-US|accesso=4 maggio 2022-05-04}}</ref> con la versione 1.0 del [[.NET Framework]] ed è il successore della tecnologia [[Active Server Pages]] (ASP) di Microsoft. ASP.NET è costruito sul [[Common Language Runtime]] (CLR), permettendo ai programmatori di scrivere codice ASP.NET usando qualsiasi linguaggio .NET supportato. Il framework di estensione ASP.NET [[SOAP]] permette ai componenti ASP.NET di elaborare messaggi SOAP.
 
Il successore di ASP.NET è ASP.NET Core. È una reimplementazione di ASP.NET come [[framework per applicazioni web]] modulare, insieme ad altri framework come [[Entity Framework]]. Il nuovo framework usa il nuovo progetto open-source .NET Compiler Platform (nome in codice "Roslyn") ed è [[multipiattaforma]]. [[ASP.NET MVC Framework|ASP.NET MVC]], ASP.NET Web API, e ASP.NET Web Pages (una piattaforma che usa solo pagine Razor) si sono fusi in un MVC 6 unificato<ref>{{Cita web|url=https://docs.microsoft.com/en-us/aspnet/core/|titolo=ASP.NET documentation|autore=wadepickett|sito=docs.microsoft.com|lingua=en-us|accesso=4 maggio 2022-05-04}}</ref>.
 
== Principi su cui si basa ASP.NET ==
Line 32 ⟶ 31:
ASP.NET si propone di semplificare la migrazione degli sviluppatori dalle applicazioni [[Windows]] alle applicazioni web mettendoli in grado di generare pagine composte da tanti controlli [[widget (informatica)|widget]], del tutto simili a quelli usati dall'[[interfaccia utente]] di Windows.
 
Un controllo web, come ad esempio un ''pulsante'' o un{{'}}''etichetta'' (label), funzionano in modo molto simile a quello delle loro controparti Windows: il codice ad essi associato può assegnare loro determinate ''proprietà'' ed eseguire azioni in risposta ad [[Programmazione ad eventi|eventi]] ad essi associati (ad esempio alla pressione di un pulsante). La differenza sta nel fatto che, mentre i controlli Windows disegnano se stessi sullo schermo, i controlli web producono blocchi di codice [[HTML]] che vanno ad inserirsi automaticamente nella pagina che deve essere inviata al [[browser]] dell'utente finale.
 
== Paradigma di programmazione di ASP.NET ==
Line 39 ⟶ 38:
Lo stile convenzionale dei linguaggi per lo sviluppo di applicazioni web si era invece finora basato sulla tecnica dello [[scripting]]. Le classi della libreria Framework. NET si propongono, inoltre, di combinarsi ed interagire con le tecnologie esistenti, come ad esempio [[JavaScript]], in modo da attribuire un carattere di ''persistenza'' ad oggetti software, anche nell'ambito di un ambiente come il web, che è intrinsecamente privo di stato (''stateless server'').
 
La libreria di classi Framework. NET, implementa la struttura del CLR (Common Language Runtime), la cui base è formata da un [[compilatore]] JIT (''[[Just in time (programmazione)|just in time]]''). Ciò significa che il codice intermedio prodotto, chiamato IL (Intermediate Language) ed identico per tutti i linguaggi di alto livello impiegati, viene compilato in [[linguaggio macchina]] al momento della prima esecuzione. Utilizzando diversi compilatori ''just in time'' è possibile riutilizzare lo stesso IL intermedio su [[Microprocessore|processori]] diversi. Questa tecnica viene definita ''Jitting''.
Questo tipo di compilazione è ben diverso da linguaggi come ad esempio [[Java (linguaggio di programmazione)|Java]], nei quali invece tutto il codice gira su una vera e propria [[macchina virtuale]], mentre in .NET al momento dell'esecuzione il programma è effettivamente in linguaggio macchina come tutti gli altri linguaggi.
 
Line 62 ⟶ 61:
 
== Critiche ad ASP.NET ==
ASP e ASP.NET possono girare insieme nella stessa applicazione web. Questo approccio consente agli sviluppatori di migrare da un ambiente all'altro gradualmente invece che tutto in una volta. Con [[Internet Information Services|IIS]] 6.0 e versioni precedenti, le pagine scritte usando versioni precedenti del framework ASP non possono condividere la stessa sessione senza l'uso di librerie di terze parti. Questa limitazione non esiste per applicazioni ASP.NET e ASP che girano insieme sotto [[Internet Information Services|IIS]] 7. In alcuni casi durante il runtime ASP.NET ricicla il processo attivo, provocando l'occupazione di più del 60% della memoria disponibile. Si può configurare in modo che il riciclo avvenga solo dopo un certo numero di richieste, dopo un certo tempo, ecc. Tuttavia così facendo l'utilizzatore può perdere lo stato della sessione corrente. Se l'applicazione usa lo stato della sessione per caricare le informazioni di autenticazione (cattiva pratica poiché l'autenticazione basata sui cookie e membership è un'opzione disponibile già integrata nel framework) e se l'applicazione è configurata per usare sessioni in-process, l'utente può essere disconnesso se il processo viene riciclato.https://mobikul.com/erp-app-development/
 
== Esempio di codice ==
Line 211 ⟶ 210:
 
== Confronto con PHP ==
PHP è diretto concorrente di ASP.NET. La scelta dei due linguaggi ha pro e contro a seconda delle proprie esigenze<ref>{{Cita web|url=https://appinventivwww.arkasoftwares.com/blog/php-vs-asp-net/|titolo=PHP vs ASP.NET: Top Differences for Beginners’ Understanding|sito=AppinventivArka Softwares|data=2813 settembreottobre 20182023|lingua=en|accesso=307 gennaiomarzo 20212024}}</ref><ref>{{Cita web|url=https://www.pixelcrayons.com/blog/php-vs-asp-net-how-to-choose-the-right-one/|titolo=ASP.Net vs PHP: Which is Better?|autore=Varun Bhagat|sito=PixelCrayons|data=8 ottobre 2019|lingua=en|accesso=30 gennaio 2021}}</ref><ref>{{Cita web|url=https://theonetechnologies.com/blog/post/net-framework-vs-net-core-a-complete-quick-comparison|titolo=.NET Framework Vs .NET Core: A Complete Quick Comparison|autore=Kiranbeladiya|sito=TheOneTechnologies |data=24 Septembersettembre 2021|lingua=en|accesso=24 Junegiugno 2022}}</ref>:
{| class="wikitable"
| colspan="2" |'''PRO'''
Line 242 ⟶ 241:
|}
== Note ==
<references responsive="0" />
 
== Voci correlate ==
Line 253 ⟶ 252:
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [{{cita testo|url=http://aspnet.html.it/ |titolo=aspnet.HTML.it]}} Guide, articoli di approfondimento, script, FAQ e forum dedicati alla tecnologia Microsoft per il Web
* {{cita web|url=http://www.aspitalia.com/|titolo=ASPItalia.com: storica community su ASP e ASP.NET, dal 1998}}
* {{cita web|url=http://www.webmasterpoint.org/funzione/8/controlliserver_ASPNET/index.html|titolo=Controlli Server ASP.NET}}
* {{cita web|url=http://www.ugidotnet.org/|titolo=UGIdotNET: User Group italiano su .NET}}
* {{cita web|1url=https://msdn.microsoft.com/vstudio/express/vwd/|2titolo=Visual Web Developer Express Edition 2005|lingua=en|accesso=25 aprile 2019|urlarchivio=https://web.archive.org/web/20070718060837/http://msdn.microsoft.com/vstudio/express/vwd/|dataarchivio=18 luglio 2007|urlmorto=sì}}
* {{cita web|url=http://www.dotnetspace.com/|titolo=DotNetSpace articoli su ASP.NET 2.0|lingua=en}}
* {{Cita testo|lingua=en}} [|url=http://en.csharp-online.net/ |titolo=C# Online.NET] {{Webarchive|urlurlarchivio=https://web.archive.org/web/20181119030119/http://en.csharp-online.net/ |data=19 novembre 2018 }} - C# e .NET enciclopedia.
* {{cita web|url=http://www.aspdev.org/asp.net/|titolo=articoli su ASP.NET|lingua=en}}
* {{cita web|1url=http://www.developerfusion.co.uk/aspnet/|2titolo=Developer Fusion; tutorial e codice sorgente ASP.NET|lingua=en|accesso=3 giugno 2005|dataarchivio=3 marzo 2006|urlarchivio=https://web.archive.org/web/20060303180938/http://www.developerfusion.co.uk/aspnet/|urlmorto=sì}}
* {{cita web|sito=[[W3Schools|w3schools.com]]|url=https://www.w3schools.com/aspnet/|titolo=W3Schools tutorial|lingua=en}}
* {{cita web|url=https://www.mono-project.com/|titolo=Mono: implementazione open source del Framework .NET compatibile con molte piattaforme|lingua=en}}
* {{cita web|url=http://www.aspalliance.com|titolo=ASPAlliance: Tutorial ASP e ASP.NET|lingua=en}}
* {{cita web|1url=http://www.visualbuilder.com/aspnet/tutorial/|2titolo=VisualBuilder: Tutorial ASP.NET|lingua=en|accesso=12 ottobre 2007|urlarchivio=https://web.archive.org/web/20071012155209/http://visualbuilder.com/aspnet/tutorial/|dataarchivio=12 ottobre 2007|urlmorto=sì}}
 
{{Framework per applicazioni web}}