Microsoft .NET: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
riscritto incipit |
m Correggo dei wikilink. |
||
(30 versioni intermedie di 22 utenti non mostrate) | |||
Riga 1:
{{U|.NET Framework|informatica|marzo 2018}}
{{Software
Riga 5 ⟶ 4:
| Logo = Microsoft_.net.png
| Didascalia =
| Immagine =
| Sviluppatore = [[Microsoft Corporation]]
| UltimaVersione = 4.
| DataUltimaVersione =
| SistemaOperativo =
| Linguaggio = Multilinguaggio
| Genere =
| Licenza = [[Software proprietario|Proprietario]] ([[EULA]]), [[Base Class Library|BCL]] o [[Shared source#Microsoft Reference Source License (Ms-RSL)|Microsoft Reference Source License]]<ref name="sourcerelease">{{Cita web |url=
| Lingua =
| SoftwareLibero = Sì
| SitoWeb =
}}
'''Microsoft .NET''' è una [[piattaforma (informatica)|piattaforma]] di sviluppo
== Storia ==
▲'''.NET''' è una piattaforma di sviluppo ''[[General purpose|general purpose]]'' che mette a disposizione varie funzionalità come il supporto per più linguaggi di programmazione (coprendo tutti i [[Paradigma di programmazione|paradigmi di programmazione]]: object oriented, procedurali, funzionali, imperativi, user oriented, ecc.), modelli di programmazione asincroni e simultanei, [[Interoperabilità|interoperabilità]], consentendo l'esecuzione su più piattaforme ed in presenza di scenari applicativi variegati.
{{cn|Le tecnologie di base di .NET erano originariamente state sviluppate da Microsoft come propria versione di [[Linguaggio di programmazione Java|Java]], per poi evolvere, nel [[1998]] nel linguaggio [[
Microsoft ha sviluppato .NET come contrapposizione proprietaria al linguaggio [[Java (linguaggio di programmazione)|Java]] (che è [[open source]]) e attribuisce un ruolo strategico al lancio di '''.NET''' come piattaforma di sviluppo per applicazioni desktop e [[server]] nel successivo decennio per le architetture [[client/server]], [[internet]] ed [[intranet]]. Rispetto a Java, .NET è uno standard [[Organizzazione internazionale per la normazione|ISO]] riconosciuto ([[ISO 23270]] e [[ISO 23271]]) e quindi non è possibile, da parte della casa madre, modificarne la [[sintassi]] (a meno di discostarsi dal proprio stesso standard).▼
▲Microsoft ha sviluppato .NET come contrapposizione proprietaria al linguaggio [[Java (linguaggio di programmazione)|Java]] (che è [[open source]]) e attribuisce un ruolo strategico al lancio di '''.NET''' come piattaforma di sviluppo per applicazioni desktop e [[server]] nel successivo decennio per le architetture [[client/server]], [[internet]] ed [[intranet]]. Rispetto a Java, .NET è uno standard [[Organizzazione internazionale per la normazione|ISO]] riconosciuto ([[ISO 23270]] e [[ISO 23271]]) e quindi non è possibile, da parte della casa madre, modificarne la sintassi (a meno di discostarsi dal proprio stesso standard).
== Descrizione ==
=== Caratteristiche principali === La prima versione di .NET è stata diffusa nel [[2002]]. La sua peculiarità è l'essere indipendente dalla versione operativa di [[Windows]] su cui è installata, e di includere molte funzionalità progettate espressamente per integrarsi in ambiente [[internet]] e garantire il massimo grado di [[sicurezza informatica|sicurezza]] e [[integrità dei dati]]. Utilizza in modo esteso il concetto di [[Modularità (informatica)|modularità]] dei [[componenti software]] (''Component Oriented Programming''), proponendosi così come evoluzione dell'esistente modello [[Component Object Model|COM]] (''Component Object Model'').▼
La CLR (''[[Common Language Runtime]]'') è un insieme di [[libreria software|librerie]] che, insieme alla classe di librerie di base denominata FCL (''[[Framework Class Library]]''), è progettata per poter funzionare con qualsiasi [[sistema operativo]]. Il [[compilatore
▲La prima versione di .NET è stata diffusa nel [[2002]]. La sua peculiarità è l'essere indipendente dalla versione operativa di [[Windows]] su cui è installata, e di includere molte funzionalità progettate espressamente per integrarsi in ambiente [[internet]] e garantire il massimo grado di [[sicurezza informatica|sicurezza]] e [[integrità dei dati]]. Utilizza in modo esteso il concetto di [[modularità]] dei [[componenti software]] (''Component Oriented Programming''), proponendosi così come evoluzione dell'esistente modello [[Component Object Model|COM]] (''Component Object Model'').
▲La CLR (''[[Common Language Runtime]]'') è un insieme di [[libreria software|librerie]] che, insieme alla classe di librerie di base denominata FCL (''[[Framework Class Library]]''), è progettata per poter funzionare con qualsiasi [[sistema operativo]]. Il compilatore Just In Time ''esegue'' un codice [[assembly]] denominato CIL (''[[Common Intermediate Language]]''). È inoltre possibile:
* accedere a componenti scritti in altri linguaggi;
* quando il [[sistema operativo]] sottostante è [[Microsoft Windows]], accedere ai suoi [[servizi]] e alle sue [[Application programming interface|API]];
* accedere ai [[Web
.NET è corredato da una serie di strumenti di sviluppo delle applicazioni, progettati in modo da funzionare in modo integrato all'interno della piattaforma .NET. Uno dei principali strumenti è l'IDE (''[[Integrated Development Environment]]'' cioè ''Ambiente di sviluppo integrato'') denominato [[Visual Studio .NET|Visual Studio]].▼
== Linguaggi di programmazione .NET ==▼
▲=== Linguaggi di programmazione .NET ===
La CLI (''Common Language Infrastructure'') è concepita per essere compatibile con qualsiasi linguaggio di alto livello [[Programmazione orientata agli oggetti|orientato agli oggetti]], fornendo un unico modello a oggetti ed una vasta libreria di classi condivisibili.
Ciò costituisce un'evoluzione della strategia [[Microsoft]] che in passato aveva tradizionalmente avuto nel linguaggio [[Visual Basic]] uno dei propri punti di forza. Alcuni analisti hanno fatto notare che si è trattato di una scelta non priva di rischi da parte di Microsoft, in quanto per un programmatore [[Visual Basic]] la migrazione verso [[Visual Basic .NET]] (vedi oltre) può richiedere un notevole periodo di apprendimento, poiché, per poter sfruttare tutte le potenzialità del nuovo linguaggio, deve abituarsi a pensare in termini totalmente ''[[Programmazione orientata agli oggetti|object oriented]]'', e questo nonostante il fatto che [[Visual Basic .NET]] abbia conservato, per quanto possibile, la sintassi delle vecchie versioni.
Il vecchio Visual Basic, giunto fino alla versione 6 per [[Microsoft Windows|Windows]], si era infatti lentamente evoluto verso la programmazione ad oggetti, senza però arrivare ad implementarla completamente, e questo anche perché Microsoft non voleva creare una rottura drastica con lo stile di programmazione acquisito dai milioni di sviluppatori che lo utilizzavano, e tuttora lo utilizzano, in tutto il mondo e ormai da molti anni. Microsoft, ed altri produttori di software, forniscono [[Compilatore|compilatori]] e strumenti di sviluppo per molti [[linguaggi di programmazione]], fra cui:
* Linguaggi forniti da Microsoft insieme alla suite originale:
** [[C sharp|C#]] (pronunciato ''C sharp''), linguaggio ad oggetti simile al [[Linguaggio di programmazione Java|Java]] della [[Oracle Corporation]].
** [[Visual Basic .NET]], linguaggio orientato agli oggetti e [[multithreading|multi-threaded]] basato sulla sintassi di [[VisualBasic]]
** [[J sharp|J#]] (pronunciato ''J sharp''), variante di [[
** [[Managed C++]], una variante [[managed]] (vedi oltre) del [[C++]] per la piattaforma .NET
* Alcuni linguaggi forniti da altri produttori:
Riga 57 ⟶ 53:
** [[Perl]]
** [[Python]]
** [[Ruby (linguaggio di programmazione)|Ruby]]
** [[Mercury (linguaggio)|Mercury]]
** [[Component Pascal]], più simile all'[[Oberon (linguaggio)|Oberon]] che non al [[Pascal (linguaggio)|Pascal]]
Riga 73 ⟶ 69:
* [[ADO.NET]], nuova versione per il [[framework .NET]] di [[ActiveX Data Objects|ADO]] (''ActiveX Data Objects''), è il primo modello di accesso relazionale ai dati per le applicazioni basate su .Net.
===
▲.NET è corredato da una serie di strumenti di sviluppo delle applicazioni, progettati in modo da funzionare in modo integrato all'interno della piattaforma .NET. Uno dei principali strumenti è l'IDE (''[[Integrated Development Environment]]'' cioè ''Ambiente di sviluppo integrato'') denominato [[Visual Studio .NET|Visual Studio]].
Il [[Common Language Runtime]] (CLR), il [[Common Intermediate Language]] (CIL) ed il linguaggio C# sono simili rispettivamente alla [[Macchina virtuale Java|Java Virtual Machine]], al [[bytecode]] e al linguaggio [[Linguaggio di programmazione Java|Java]] della [[Oracle Corporation]], con cui sono in forte concorrenza. Entrambi utilizzano un proprio [[bytecode]] intermedio. Il bytecode di .NET è progettato per essere compilato al momento dell'esecuzione (''just in time compilation'' detta anche ''JITting''), come il bytecode di Java. Al momento, con le ultime versioni rilasciate .NET è disponibile per tutte le piattaforme quali: [[Linux]], [[Unix]] e [[macOS|Mac OSX]], mentre Java è portabile su qualsiasi piattaforma fin dalla nascita. La [[Java EE]] (''Java Platform, Enterprise Edition'') di Oracle fornisce funzionalità leggermente superiori ad altre tecnologie Microsoft, come [[COM plus|COM+]] e [[MSMQ]], che lavorano peraltro in modo integrato con i sistemi operativi Windows. .NET fa un uso estensivo ed astratto di tutte queste tecnologie ormai consolidate.▼
La tecnologia di software a componenti su cui Microsoft ha puntato maggiormente in passato per lo sviluppo su larga scala di applicazioni era [[Component Object Model|COM]] (''Component object model''), evolutosi poi in [[COM plus|COM+]], detto anche [[Microsoft Transaction Server|MTS]].<br />Per consentire una migrazione graduale verso .NET dei progetti esistenti, .NET è stato progettato per interagire con oggetti COM, facendo da [[wrapper]] (letteralmente ''involucro''), cioè da strato esterno che accede alle funzioni dello strato interno; tuttavia Microsoft ha dichiarato molto esplicitamente che in futuro, .NET è destinato a sostituire COM come modello architetturale di software a componenti. Le nuove applicazioni che accedono alle funzionalità ed ai servizi delle piattaforme [[Win32]] dovrebbero, quindi, d'ora in poi utilizzare .NET anziché COM, previa interposizione di interfacce astratte (i componenti transazionali di .NET utilizzano attualmente [[COM plus|COM+]]).▼
== Standardizzazione ==▼
▲=== Standardizzazione ===
Microsoft ha sottoposto una parte delle specifiche di progetto di .NET all'esame di [[ECMA]] (''European Computer Manufacturers Association'') per consentirne la standardizzazione. Ciò costituisce un rischio, sebbene calcolato. Questa mossa ha lo scopo di favorire l'implementazione di versioni e strumenti compatibili con il nuovo standard, che facciano da strumenti di migrazione e conversione di software non scritto per Windows in codice .NET.
=== Implementazioni alternative ===
Sebbene le classi di librerie del Framework .NET siano il punto di riferimento standard di tutta la tecnologia .NET, ne esistono anche numerose implementazioni alternative.
[[Mono (progetto)|Mono]] è un progetto il cui scopo è l'implementazione [[open source]] delle librerie [[runtime]] e di sviluppo di .NET. Il progetto attualmente è guidato da [[Xamarin]], società del gruppo Microsoft (precedentemente da [[
* [[Gtk Sharp|GTK#]]: un [[wrapper]] .NET per i toolkit [[GUI]] [[GTK+]].
* XSP: un [[servizio web]] scritto in C# per supportare applicazioni [[ASP.NET]] di tipo [[host]].
Riga 97 ⟶ 88:
[[Microsoft Rotor]], (ovvero la ''Shared Source Common Language Infrastructure'') è un'implementazione di tipo [[shared]] del [[Framework .NET]] che funziona sotto [[Windows XP]], [[FreeBSD]], e [[Mac OS X Jaguar]].
==
=== Con Java EE ===
▲{{cn|Le tecnologie di base di .NET erano originariamente state sviluppate da Microsoft come propria versione di [[Linguaggio di programmazione Java|Java]], per poi evolvere, nel [[1998]] nel linguaggio [[J%2B%2B|J++]] e successivamente in .NET.}}
▲Il [[Common Language Runtime]] (CLR), il [[Common Intermediate Language]] (CIL) ed [[il linguaggio C]]# sono simili rispettivamente alla [[Macchina virtuale Java|Java Virtual Machine]], al [[bytecode]] e al linguaggio [[Linguaggio di programmazione Java|Java]] della [[Oracle Corporation]], con cui sono in forte concorrenza. Entrambi utilizzano un proprio [[bytecode]] intermedio. Il bytecode di .NET è progettato per essere compilato al momento dell'esecuzione (''just in time compilation'' detta anche ''JITting''), come il bytecode di Java. Al momento, con le ultime versioni rilasciate .NET è disponibile per tutte le piattaforme quali: [[Linux]], [[Unix]] e [[macOS|Mac OSX]], mentre Java è portabile su qualsiasi piattaforma fin dalla nascita. La [[Java EE]] (''Java Platform, Enterprise Edition'') di Oracle fornisce funzionalità leggermente superiori ad altre tecnologie Microsoft, come [[COM plus|COM+]] e [[MSMQ]], che lavorano peraltro in modo integrato con i sistemi operativi Windows. .NET fa un uso estensivo ed astratto di tutte queste tecnologie ormai consolidate.
=== COM ===
▲La tecnologia di software a componenti su cui Microsoft ha puntato maggiormente in passato per lo sviluppo su larga scala di applicazioni era [[Component Object Model|COM]] (''Component object model''), evolutosi poi in [[COM plus|COM+]], detto anche [[Microsoft Transaction Server|MTS]].<br />Per consentire una migrazione graduale verso .NET dei progetti esistenti, .NET è stato progettato per interagire con oggetti COM, facendo da [[wrapper]] (letteralmente ''involucro''), cioè da strato esterno che accede alle funzioni dello strato interno; tuttavia Microsoft ha dichiarato molto esplicitamente che in futuro, .NET è destinato a sostituire COM come modello architetturale di software a componenti. Le nuove applicazioni che accedono alle funzionalità ed ai servizi delle piattaforme [[Win32]] dovrebbero, quindi, d'ora in poi utilizzare .NET anziché COM, previa interposizione di interfacce astratte (i componenti transazionali di .NET utilizzano attualmente [[COM plus|COM+]]).
== Note ==
Riga 110 ⟶ 105:
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|1=http://www.uxpassion.com/2008/10/new-microsoft-net-logo-and-branding/|2=Microsoft .NET new logo and branding|lingua=en|accesso=17 giugno 2009|urlarchivio=https://web.archive.org/web/20090312022014/http://www.uxpassion.com/2008/10/new-microsoft-net-logo-and-branding/|dataarchivio=12 marzo 2009|urlmorto=sì}}
* {{cita web|
* {{cita web|
{{Controllo di autorità}}
{{Portale|informatica|Microsoft}}
|