Relazione tra C #, .NET, ASP, ASP.NET ecc [chiuso]

140

Sono davvero poco chiaro sulla differenza tra C #, C # .NET e lo stesso per ASP e altri linguaggi ".NET".

Da quanto ho capito, .NET è una libreria / framework di ... cose. Penso che siano essenzialmente l'accesso ai dati di Windows come gli elementi del modulo, ecc., Ma sembra che non si applichi a ASP.NET.

Inoltre, vedo le persone che si definiscono sviluppatori ".NET". Significa che parlano fluentemente C #, ASP e altre lingue?

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

In breve: cosa fornisce esattamente .NET? Come si relaziona a C # e ASP ecc? Cosa significa "uno sviluppatore .NET"? E infine, perché non vedi mai C # senza .NET?

[Per inciso, mi rendo conto che si tratta di domande multiple, ma penso che siano molto correlate (o almeno questa è l'impressione che i programmatori / SO ecc. mi hanno dato)].

    
posta Megan Walker 06.02.2011 - 23:27
fonte

7 risposte

170

Capisco la tua confusione, credimi, ho la stessa prospettiva quando si tratta del mondo Java! Comunque cercherò di abbattere le tue domande e affrontarle una per una ... e 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 i linguaggi .NET possono parlare.
  3. I linguaggi .NET sono disponibili in diverse versioni, ad esempio: C # .NET, VB.NET, Managed C ++, F #.
  4. I linguaggi .NET vengono compilati in CIL ( Common Intermediate Language ), il che significa che tutti iniziano a "parlare" nella stessa lingua e può quindi interoperare.
  5. ASP.NET è la parte della libreria .NET utilizzata per creare siti Web. Esistono altre sottosezioni di ASP.NET come WebForms (il vecchio modo di creare pagine Web) o la libreria MVC che sta maturando rapidamente e che vale la pena esaminare.
  6. Forms (old tech) o il nuovo WPF (Windows Presentation Foundation) sono le tecnologie che normalmente utilizzi in .NET per creare quelle che conosci come applicazioni desktop tradizionali.

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

  • Una libreria contiene molte funzionalità che puoi scegliere e scegliere tra cui utilizzare un pezzo di tecnologia non significa che sei bloccato nel resto. Questo significa libertà, tuttavia avrai più lavoro da ritagliare per te.
  • Un framework, tuttavia, stabilisce molto bene il modo in cui lavorerai. Fornisce un flusso di lavoro che nel bene o nel male è difficile da cambiare. Ciò significa sviluppo / prototipazione rapidi, ma se in futuro si apportano modifiche significative potrebbe essere impossibile (o molto dispendioso in termini di tempo) implementarle.

Il progetto su cui stai lavorando dipenderà dalla scelta che fai.

    
risposta data 06.02.2011 - 23:58
fonte
23

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

C # è un linguaggio creato per l'uso con .NET. Non è l'unica lingua compatibile con .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 framework generale è disponibile (o utile, ad esempio WinForms) in questo contesto.

[Classic] ASP è un vecchio framework web, anch'esso di Microsoft. Nonostante i nomi simili, ASP e ASP.NET sono abbastanza diversi sotto il cofano. Una differenza degna di nota è che le uniche opzioni in lingua per ASP sono VBScript e JScript. ASP è una tecnologia obsoleta e obsoleta, non ti preoccupare.

    
risposta data 07.02.2011 - 00:47
fonte
11

Innanzitutto, .Net è un framework bytecode, simile al bytecode Java. .Net è tuttavia solo BYTECODE. Non esiste una lingua ufficiale ".Net". Le due principali lingue di targeting .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 altre lingue con targeting .Net) di funzionare come un sito Web.

Gli sviluppatori che dicono di sapere .Net di solito significa che conoscono C # o VB.Net, o entrambi, e possono facilmente apprendere qualsiasi cosa che non conoscono (C # e VB.Net sono lingue estremamente simili oltre alla sintassi generale)

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

    
risposta data 06.02.2011 - 23:32
fonte
7

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 possono essere sviluppate implementazioni standard indipendenti del linguaggio, e in effetti lo erano. Il più importante di questi è Mono .

Mono è un'implementazione open source di un set compatibile con lo standard ECMA compatibile con .NET Framework, tra cui un compilatore C # e un'implementazione CLI (Mono Runtime, l'equivalente di CLR di Microsoft, la macchina virtuale di .NET Framework). Lo scopo è 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 Mono sta anche apportando innovazioni proprie.

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

    
risposta data 12.06.2012 - 23:21
fonte
6

Il libro di Jon Skeet, C # In Depth rompe .NET in modo piuttosto succinto. È spesso usato in connessione con

  1. Linguaggi di programmazione (C #, VB)
  2. The Runtime (CLR) che esegue il bytecode a cui sono state compilate le lingue.
  3. Librerie di framework (Windows Forms / ASP.NET)
risposta data 07.02.2011 - 07:39
fonte
2

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

    
risposta data 12.06.2012 - 22:45
fonte
0

Devi distinguere tra le lingue, i framework, i metodi CLR, i pattern e la programmazione.

ASP.Net utilizza un modello di programmazione completamente diverso per lo sviluppo di Winforms anche se condividono le stesse fondamenta. È possibile programmare le 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 i seguenti link:
link
link
link

    
risposta data 06.02.2011 - 23:35
fonte

Leggi altre domande sui tag