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é)).
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:
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:
Le projet sur lequel vous travaillez dépendra du choix que vous ferez.
.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).
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
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.
Le livre de Jon Skeet, C # In Depth décompose assez rapidement .NET. Il est souvent utilisé en relation avec
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.
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