web-dev-qa-db-fra.com

Relation entre C #, .NET, ASP, ASP.NET, etc.

Je ne suis vraiment pas clair sur la différence entre C #, C # .NET et la même chose pour ASP et les autres langages '.NET'.

D'après ce que je comprends, .NET est une bibliothèque/un cadre de ... choses. Je pense qu'ils sont essentiellement un accès aux données Windows telles que les éléments de formulaire, etc., mais cela ne semble pas s'appliquer à ASP.NET.

De plus, je vois des gens s'appeler des développeurs '.NET'. Cela signifie-t-il qu'ils parlent couramment C #, ASP et d'autres langages?

Enfin, je ne vois jamais C # sans .NET attaché. C # est-il si étroitement lié à .NET qu'il est inutilisable sans lui?

En résumé: que propose exactement .NET? Comment est-ce lié à C # et ASP etc? Que signifie "développeur .NET"? Et enfin, pourquoi ne voyez-vous jamais C # sans .NET?

[En passant, je me rends compte que ce sont de multiples questions, mais je pense qu'elles sont très interdépendantes (ou du moins c'est l'impression que la navigation des programmeurs/SO etc m'a donné)).

146
Megan Walker

Je comprends votre confusion, croyez-moi, j'ai la même perspective en ce qui concerne le monde Java! Quoi qu'il en soit, je vais essayer de décomposer vos questions et de les aborder une par une ... aussi en ajoutant quelques autres points qui, nous l'espérons, aideront à clarifier ce qui se passe:

  1. C # et C # .NET sont la même chose ... C #
  2. .NET est, comme vous le dites, une bibliothèque de code avec laquelle les langages .NET peuvent parler.
  3. Les langages .NET se présentent sous différentes formes telles que: C # .NET, VB.NET, Managed C++, F #.
  4. Les langages .NET se compilent en CIL ( Common Intermediate Language ) ce qui signifie qu'ils commencent tous à "parler" le même langage et peuvent donc interagir.
  5. ASP.NET est la partie de la bibliothèque .NET utilisée pour créer des sites Web. Il existe d'autres sous-sections d'ASP.NET comme WebForms (l'ancienne façon de créer des pages Web) ou la bibliothèque MVC à maturation rapide qui valent également la peine d'être examinées.
  6. Les formulaires (ancienne technologie) ou le nouveau WPF (Windows Presentation Foundation) sont les technologies que vous utiliseriez généralement dans .NET pour créer ce que vous appelez des applications de bureau traditionnelles.

Une dernière chose que je voudrais terminer est la différence entre la bibliothèque et le framework. Ces dernières années, ces deux termes ont été utilisés comme synonymes, mais ce n'est pas le cas. La façon la plus simple à laquelle je peux penser pour différencier les deux est:

  • Une bibliothèque contient de nombreuses fonctionnalités que vous pouvez choisir, c'est-à-dire que l'utilisation d'une seule technologie ne signifie pas que vous êtes enfermé dans le reste. Cela signifie la liberté, mais vous aurez plus de travail à faire pour vous.
  • Cependant, un cadre définit très bien comment vous allez travailler. Il fournit un flux de travail qui, pour le meilleur ou pour le pire, est difficile à modifier. Cela signifie un développement/prototypage rapide, mais si des modifications importantes sont apportées à l'avenir, il peut être impossible (ou très long) de les mettre en œuvre.

Le projet sur lequel vous travaillez dépendra du choix que vous ferez.

172
PaulCarroll

.NET est un cadre de développement d'applications - il contient de nombreuses bibliothèques contenant une gamme de fonctionnalités.

C # est un langage créé pour être utilisé avec .NET. Ce n'est pas le seul langage compatible .NET - les autres options incluent VB.NET, F #, Managed C++, IronRuby et IronPython. Vous écrivez du code dans la langue de votre choix pour utiliser les fonctionnalités du framework .NET.

ASP.NET est une extension de .NET qui vous aide à écrire des applications et des sites Web. Une grande partie du cadre global est disponible (ou utile, par exemple dans WinForms) dans ce contexte.

[Classic] ASP est un framework Web plus ancien, également de Microsoft. Malgré les noms similaires, ASP et ASP.NET sont très différents sous le capot. One la différence notable est que vos seules options de langage pour ASP sont VBScript et JScript. ASP est une technologie plus ancienne et obsolète, ne vous en faites pas).

23
Grant Palin

Tout d'abord, .Net est un framework de bytecode, similaire à Java bytecode. .Net n'est cependant que BYTECODE. Il n'y a pas de langue officielle ".Net". Les deux langues principales ciblant .Net sont C # et VB.Net. ASP.Net est une extension de la bibliothèque .Net fournie pour permettre aux applications écrites en C # ou VB.Net (ou dans d'autres langages ciblés .Net) de fonctionner comme un site Web.

Les développeurs qui disent connaître .Net signifient généralement qu'ils connaissent C # ou VB.Net, ou les deux, et peuvent facilement apprendre celui qu'ils ne connaissent pas (C # et VB.Net sont des langages extrêmement similaires en dehors de la syntaxe générale)

Enfin, ASP IS PAS le même que ASP.Net. Ils ont d'énormes différences

14
Earlz

Puisqu'une seule réponse mentionne Mono sans entrer dans les détails:

Bien que C # en tant que langage ait été initialement développé par Microsoft dans le cadre de .NET Framework, il a ensuite été normalisé par ECMA , ce qui signifie que les implémentations conformes aux normes indépendantes de la le langage peut être développé, et ils l'ont été. Le plus important d'entre eux est Mono .

Mono est une implémentation open source d'un ensemble d'outils conformes à la norme ECMA compatible avec .NET Framework, y compris un compilateur C # et une implémentation CLI (Mono Runtime, l'équivalent du CLR de Microsoft - la machine virtuelle de .NET Framework). Son objectif est d'exécuter des applications .NET multiplateforme. À ce jour, il prend en charge C # 4.0 et ne partie substantielle des fonctionnalités de .NET Framework . En plus de refléter la mise en œuvre de Microsoft, l'équipe Mono fait également ses propres innovations.

Donc, oui, il est possible et faisable de travailler en C # sans .NET. Il est cependant peu probable que Mono puisse rivaliser avec la part de marché de Microsoft et la position de .NET Framework, pas maintenant, et pas dans un avenir immédiat.

8
scrwtp

Le livre de Jon Skeet, C # In Depth décompose assez rapidement .NET. Il est souvent utilisé en relation avec

  1. Langages de programmation (C #, VB)
  2. Le Runtime (CLR) qui exécute le bytecode dans lequel ces langages sont compilés.
  3. Bibliothèques de framework (Windows Forms/ASP.NET)
7
mootinator

les autres réponses expliquent bien le contenu de chaque technologie, mais je pense qu'elles manquent l'une des principales raisons de confusion. C # et C # .NET sont essentiellement synonymes, mais VB.NET et VB sont différents et ASP et ASP.NET sont également différents. VB fait généralement référence à VB6 et plus ancien, et ASP fait référence à ASP classique. Ces technologies ont été radicalement repensées avec la sortie du framework .NET et plutôt que de trouver de nouveaux noms pour Microsoft a ajouté .NET à presque tout, mais C # était également nouveau, donc les deux noms se réfèrent vraiment à la même chose.

2
Ryathal

Vous devez faire la différence entre les langages, les cadres, le CLR, les modèles et les méthodes de programmation.

ASP.Net utilise un modèle de programmation complètement différent pour le développement de Winforms bien qu'ils partagent la même base. Vous pouvez programmer des applications ASP.net et .Net dans une variété de langues.

Ensuite, il y a Mono et le langage C # utilisé dans le contexte Mono - mérite probablement quelques recherches.

Lisez ces liens:
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