it-swarm.it

Relazione tra C #, .NET, ASP, ASP.NET ecc

Non sono molto chiaro sulla differenza tra C #, C # .NET e lo stesso per ASP e altri linguaggi '.NET'.

Da quello che ho capito, .NET è una libreria/framework di ... cose. Penso che essenzialmente accedano ai dati di Windows come elementi del modulo ecc., Ma ciò non sembra valere per ASP.NET.

Inoltre, vedo persone che si definiscono sviluppatori ".NET". Questo significa che sono fluenti in C #, ASP e altre lingue?

Infine, non vedo mai C # senza .NET allegato. C # è strettamente legato a .NET per essere inutilizzabile senza di esso?

In sintesi: cosa fornisce esattamente .NET? In che modo si riferisce a C # e ASP etc? Cosa significa "uno sviluppatore .NET"? E infine, perché non vedi mai C # senza .NET?

[A parte, mi rendo conto che si tratta di domande multiple, ma penso che siano molto correlate tra loro (o almeno questa è l'impressione che la navigazione dei programmatori/SO ecc. Mi abbia dato)].

146
Megan Walker

Capisco la tua confusione, credimi, ho la stessa prospettiva quando si tratta del mondo Java! Cercherò comunque di abbattere le tue domande e di affrontarle una ad una ... come aggiungere alcuni altri punti che si spera aiuteranno a chiarire cosa sta succedendo:

  1. C # e C # .NET sono la stessa cosa ... C #
  2. .NET è, come dici tu, una libreria di codice con cui le lingue .NET possono parlare.
  3. I linguaggi .NET sono disponibili in diversi gusti come: C # .NET, VB.NET, Managed C++, F #.
  4. Le lingue .NET vengono compilate in CIL ( Common Intermediate Language ), il che significa che iniziano tutte a "parlare" la stessa lingua e possono quindi interagire.
  5. ASP.NET è la parte della libreria .NET utilizzata per creare siti Web. Ci sono altre sottosezioni di ASP.NET come WebForms (il vecchio modo di creare pagine Web) o la libreria MVC a maturazione rapida che vale la pena di esaminare.
  6. I moduli (vecchia tecnologia) o il nuovo WPF (Windows Presentation Foundation) sono le tecnologie che in genere utilizzeresti in .NET per creare quelle che conosci come applicazioni desktop tradizionali.

Un'ultima cosa su cui vorrei finire è la differenza tra libreria e framework. Negli ultimi anni questi due termini sono stati usati anche come sinonimi, ma non è così. Il modo più semplice che posso pensare di differenziare i due è:

  • Una libreria contiene molte funzionalità tra cui puoi scegliere, ad esempio l'utilizzo di una tecnologia non significa che sei bloccato nel resto. Ciò significa libertà, tuttavia avrai più lavoro per te.
  • Un framework, tuttavia, stabilisce molto come lavorerai. Fornisce un flusso di lavoro che nel bene e nel male è difficile da modificare. Ciò significa un rapido sviluppo/prototipazione, ma in caso di modifiche significative in futuro potrebbe essere impossibile (o richiedere molto tempo) implementarle.

Il progetto a cui stai lavorando dipenderà dalla tua scelta.

172
PaulCarroll

.NET è un framework di sviluppo di applicazioni: contiene numerose librerie contenenti una vasta gamma di funzionalità.

C # è un linguaggio creato per l'uso con .NET. Non è l'unico linguaggio compatibile .NET. Altre opzioni includono VB.NET, F #, Managed C++, IronRuby e IronPython. Scrivi il codice nella lingua che preferisci per utilizzare la funzionalità nel framework .NET.

ASP.NET è un'estensione di .NET che ti aiuta a scrivere applicazioni e siti Web basati sul web. Gran parte del quadro generale è disponibile (o utile, ad esempio WinForms) in questo contesto.

[Classico] ASP è un vecchio framework Web, anche di Microsoft. Nonostante i nomi simili, ASP e ASP.NET sono abbastanza diversi sotto il cofano. Uno la differenza notevole è che le tue uniche opzioni linguistiche per ASP sono VBScript e JScript. ASP è una tecnologia più vecchia e obsoleta, non preoccuparti.

23
Grant Palin

Prima di tutto, .Net è un framework bytecode, simile a Java bytecode. .Net tuttavia è solo BYTECODE. Non esiste una lingua ufficiale ".Net". Le due lingue principali che puntano a .Net sono C # e VB.Net. ASP.Net è un'estensione della libreria .Net fornita per consentire alle applicazioni scritte in C # o VB.Net (o in altre lingue con targeting .Net) di funzionare come sito Web.

Gli sviluppatori che affermano di conoscere .Net di solito significano che conoscono C # o VB.Net, o entrambi, e possono facilmente imparare qualunque cosa non conoscano (C # e VB.Net sono linguaggi estremamente simili a parte la sintassi generale)

Infine, ASP IS NON è lo stesso di ASP.Net. Hanno differenze enormi

14
Earlz

Poiché solo una risposta menziona Mono senza entrare nei dettagli:

Sebbene C # come linguaggio sia stato originariamente sviluppato in Microsoft come parte di .NET Framework, è stato successivamente standardizzato da ECMA , il che significa che le implementazioni indipendenti conformi allo standard del il linguaggio può essere sviluppato, e in effetti lo erano. Il più importante di questi è Mono .

Mono è un'implementazione open source di un set di strumenti conforme allo standard ECMA compatibile con .NET Framework, incluso un compilatore C # e un'implementazione CLI (Mono Runtime, l'equivalente del CLR di Microsoft - la macchina virtuale di .NET Framework). Lo scopo è quello di eseguire applicazioni .NET multipiattaforma. Ad oggi, supporta C # 4.0 e parte sostanziale delle funzionalità di .NET Framework . Oltre a rispecchiare l'implementazione di Microsoft, il team di Mono sta facendo anche innovazioni.

Quindi sì, è possibile e fattibile lavorare in C # senza .NET. È improbabile, tuttavia, che Mono sarà in grado di competere con la quota di mercato di Microsoft e la posizione di .NET Framework, non ora e non nell'immediato futuro.

8
scrwtp

Il libro di Jon Skeet, C # In Depth, suddivide .NET in modo piuttosto succinto. Viene spesso utilizzato in connessione con

  1. Linguaggi di programmazione (C #, VB)
  2. Il runtime (CLR) che esegue il bytecode in cui sono compilate le lingue.
  3. Librerie di framework (Windows Form/ASP.NET)
7
mootinator

le altre risposte fanno un buon lavoro nel spiegare ciò che ogni tecnologia, ma penso che manchi uno dei principali motivi di confusione. C # e C # .NET sono essenzialmente sinonimi, tuttavia VB.NET e VB sono diversi e ASP e ASP.NET sono diversi. VB si riferisce generalmente a VB6 e precedenti e ASP si riferisce all'ASP classico. Queste tecnologie sono state radicalmente ridisegnate con il rilascio di .NET framework e invece di creare nuovi nomi per prodotti Microsoft ha aggiunto .NET praticamente a tutto, ma anche C # era nuovo, quindi entrambi i nomi si riferiscono alla stessa cosa.

2
Ryathal

Devi distinguere tra lingue, framework, CLR, pattern e metodi di programmazione.

ASP.Net utilizza uno schema di programmazione completamente diverso per lo sviluppo di Winforms sebbene condividano le stesse basi. È possibile programmare applicazioni ASP.net e .Net in una varietà di lingue.

Poi c'è Mono e il linguaggio C # usato nel contesto Mono - probabilmente merita qualche ricerca.

Leggi questi link:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg

0
Jeremy