Relação entre C #, .NET, ASP, ASP.NET etc [fechada]


143

Não sou muito claro a diferença entre C #, C # .NET e o mesmo para ASP e outras linguagens '.NET'.

Pelo que entendi, o .NET é uma biblioteca / estrutura de ... coisas. Eu acho que eles essencialmente acessam dados do Windows, como elementos de formulário, etc., mas isso não parece se aplicar ao ASP.NET.

Além disso, vejo pessoas chamando-se desenvolvedores de '.NET'. Isso significa que eles são fluentes em C #, ASP e outros idiomas?

Finalmente, nunca vejo o C # sem o .NET anexado. O C # está tão intimamente ligado ao .NET quanto inutilizável sem ele?

Em resumo: o que exatamente o .NET fornece? Como isso se relaciona com C # e ASP, etc? O que significa 'um desenvolvedor .NET'? E, finalmente, por que você nunca vê o C # sem o .NET?

[Como um aparte, eu percebo que essas são várias perguntas, mas acho que elas são muito inter-relacionadas (ou pelo menos essa é a impressão que a navegação nos programadores / SO etc me deu)].

Respostas:


172

Eu entendo sua confusão, acredite em mim, tenho a mesma perspectiva quando se trata do mundo Java! De qualquer forma, tentarei desmembrar suas perguntas e resolvê-las uma a uma ... além de acrescentar alguns outros pontos que, espero, ajudem a esclarecer o que está acontecendo:

  1. C # e C # .NET são a mesma coisa ... C #
  2. .NET é, como você diz, uma biblioteca de código com a qual as linguagens .NET podem conversar.
  3. As linguagens .NET são de diferentes tipos, como: C # .NET, VB.NET, C ++ gerenciado, F #.
  4. As linguagens .NET são compiladas para CIL ( Common Intermediate Language ), o que significa que todas elas começam a "falar" a mesma linguagem e, portanto, podem interoperar.
  5. ASP.NET é a parte da biblioteca .NET usada para criar sites. Existem outras subseções do ASP.NET, como o WebForms (a maneira antiga de criar páginas da Web) ou a biblioteca MVC que amadurece rapidamente e também vale a pena examinar.
  6. Forms (tecnologia antiga) ou o novo WPF (Windows Presentation Foundation) são as tecnologias que você usaria normalmente no .NET para criar o que você conhece como aplicativos de área de trabalho tradicionais.

Uma coisa final que gostaria de concluir é a diferença entre biblioteca e estrutura. Nos últimos anos, esses dois termos foram usados ​​como sinônimos, mas esse não é o caso. A maneira mais fácil de diferenciar os dois é:

  • Uma biblioteca contém muitas peças de funcionalidade que você pode escolher, ou seja, usar uma peça de tecnologia não significa que você está preso ao resto. Isso significa liberdade, mas você terá mais trabalho para você.
  • No entanto, uma estrutura define muito como você estará trabalhando. Ele fornece um fluxo de trabalho que para o bem ou para o mal é difícil de mudar. Isso significa desenvolvimento / prototipagem rápidos, mas se forem feitas alterações significativas no futuro, pode ser impossível (ou demorado) implementá-las.

O projeto em que você está trabalhando dependerá da escolha que você fizer.


7
+1, mas uma pequena diferença no # 2 - .NET não é uma "biblioteca de códigos", é uma estrutura (que você define corretamente como um "fluxo de trabalho" que define como seus programas são definidos e executados). A coleção de bibliotecas padrão publicadas pela Microsoft que estão disponíveis para os idiomas .NET é a .NET Base Class Library (BCL).
Nlawalker

7
Observe que o ASP também pode ser usado para se referir ao ASP clássico, e não ao ASP.NET.
Brian

11
Não concordo com o ponto 1. O C # pode ser usado sem o .NET, portanto, o C # .NET afirma explicitamente que você usa C # com a estrutura .NET, enquanto o C # não. Na prática, embora a maioria das pessoas assuma que o C # é usado com o .NET.
22812 Ian Newson

23

O .NET é uma estrutura de desenvolvimento de aplicativos - contém inúmeras bibliotecas que contêm uma variedade de funcionalidades.

C # é uma linguagem criada para uso com o .NET. Não é a única linguagem compatível com .NET - outras opções incluem VB.NET, F #, C ++ gerenciado, IronRuby e IronPython. Você escreve código no idioma de sua escolha para usar a funcionalidade na estrutura .NET.

O ASP.NET é uma extensão do .NET que ajuda você a escrever aplicativos e sites baseados na Web. Grande parte da estrutura geral está disponível (ou útil, no caso de, por exemplo, WinForms) neste contexto.

[Classic] ASP é uma estrutura da web mais antiga, também da Microsoft. Apesar dos nomes semelhantes, o ASP e o ASP.NET são bem diferentes. Uma diferença notável é que suas únicas opções de linguagem para ASP são VBScript e JScript. ASP é uma tecnologia mais antiga e desatualizada, não se incomode com ela.


14

Primeiro, o .Net é uma estrutura de bytecode, semelhante ao Java bytecode. .Net, no entanto, é apenas BYTECODE. Não existe um idioma oficial ".Net". Os dois principais idiomas direcionados ao .Net são C # e VB.Net. O ASP.Net é uma extensão da biblioteca .Net fornecida para permitir que aplicativos escritos em C # ou VB.Net (ou outros idiomas direcionados .Net) funcionem como um site.

Os desenvolvedores que dizem que sabem .Net geralmente querem saber C # ou VB.Net, ou ambos, e podem aprender facilmente qualquer um que não conheçam (C # e VB.Net são idiomas extremamente semelhantes, além da sintaxe geral)

Por fim, o ASP NÃO É o mesmo que o ASP.Net. Eles têm enormes diferenças


Portanto, existe uma diferença entre o aplicativo ac # e o aplicativo ac # .net? Eu pergunto como você soltou o .net do c # .net na sua resposta. A seção de desenvolvedores .Net foi muito útil.
Megan Walker

5
Bem, o C # é na verdade apenas um idioma, não vinculado ao .Net. MAS todo o uso atual de C # é com .Net, por isso praticamente, não há diferença entre "C #" e "C # .Net"
Earlz

Como desenvolvedor ".NET", faço a reivindicação porque evito métodos / recursos exclusivos de linguagem, tanto quanto possível, para que eu possa pular em todas as linguagens .NET com apenas alterações de sintaxe.
Wayne

11
C # a linguagem é apenas uma linguagem. Você pode escrever qualquer coisa em C # sem precisar conversar com um back-end ou estrutura do .NET. Para quem duvida de mim, veja o Xamarin C #: uma maneira de escrever aplicativos nativos para iOS e Android sem usar nenhum .NET.
Phil Ryan

@ PhilRyan Pelo que vale a pena, o Xamarin nem sequer foi inventado quando esta resposta foi publicada.
TylerH

8

Como apenas uma resposta menciona o Mono sem entrar em detalhes:

Embora o C # como idioma tenha sido desenvolvido originalmente na Microsoft como parte do .NET Framework, posteriormente foi padronizado pela ECMA , o que significa que implementações independentes da linguagem, compatíveis com os padrões, podem ser desenvolvidas, e de fato foram. O mais proeminente deles é o Mono .

O Mono é uma implementação de código aberto de um conjunto de ferramentas compatíveis com o padrão ECMA compatível com o .NET Framework, incluindo um compilador C # e uma implementação de CLI (Mono Runtime, o equivalente ao CLR da Microsoft - a máquina virtual do .NET Framework). Seu objetivo é executar aplicativos .NET entre plataformas. Atualmente, ele suporta C # 4.0 e parte substancial dos recursos do .NET Framework . Além de espelhar a implementação da Microsoft, a equipe Mono também está fazendo inovações próprias.

Portanto, sim, é possível e viável trabalhar em C # sem o .NET. No entanto, é improvável que Mono seja capaz de rivalizar com a participação de mercado da Microsoft e a posição do .NET Framework, não agora e nem no futuro imediato.


Estava esperando alguém explicar o Mono, para corrigir a suposição equivocada de que você nunca vê o C # sem ser emparelhado com o .NET. +1.
precisa saber é o seguinte

7

O livro de Jon Skeet, C # In Depth, divide o .NET de maneira bastante sucinta. É frequentemente usado em conexão com

  1. Linguagens de programação (C #, VB)
  2. O tempo de execução (CLR) que executa o bytecode para o qual esses idiomas são compilados.
  3. Bibliotecas de estrutura (Windows Forms / ASP.NET)

2

as outras respostas explicam bem o que cada tecnologia faz, mas acho que elas perdem um dos principais motivos de confusão. C # e C # .NET são essencialmente sinônimos, no entanto, VB.NET e VB são diferentes e ASP e ASP.NET também são diferentes. VB geralmente refere-se ao VB6 e mais antigo, e ASP refere-se ao ASP clássico. Essas tecnologias foram radicalmente redesenhadas com o lançamento da estrutura .NET e, em vez de criar novos nomes para os produtos que a Microsoft anexou ao .NET para praticamente tudo, mas o C # também era novo, portanto os dois nomes realmente se referem à mesma coisa.


0

Você precisa diferenciar entre os idiomas, frameworks, CLR, padrões e métodos de programação.

O ASP.Net usa um padrão de programação completamente diferente para o desenvolvimento do Winforms, embora eles compartilhem a mesma base. Você pode programar aplicativos ASP.net e .Net em uma variedade de idiomas.

Depois, há o Mono e a linguagem C # usada no contexto Mono - provavelmente vale a pena pesquisar.

Leia estes links:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/Arquivo: Overview_of_the_Common_Language_Infrastructure.svg


"Você pode programar aplicativos ASP.net e .Net em uma variedade de idiomas." Não tenho certeza do que você quer dizer com isso. Você diz que pode escrever um programa ASP.net em uma variedade de idiomas. Mas eu pensei ASP era a língua e .NET foi o quadro que você adicionar em.
Megan Walker

O ASP.net é uma estrutura e eu a vejo como uma metodologia de programação. O ASP.net pode ser codificado em qualquer idioma desta lista en.wikipedia.org/wiki/List_of_CLI_languages, onde a classe ASP não pode.
Jeremy

11
ASP não é uma linguagem.
Mareie
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.