ti-enxame.com

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

Não sou muito claro sobre 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 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ê 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 por Programadores/SO etc me deu)]).

146
Megan Walker

Entendo sua confusão, acredite em mim, tenho a mesma perspectiva quando se trata do mundo Java! De qualquer forma, tentarei quebrar suas perguntas e resolvê-las uma a uma ... também adicione alguns outros pontos que ajudarão 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 vêm em 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 começam a "falar" o mesmo idioma 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ê normalmente usaria 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.

172
PaulCarroll

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, ASP e ASP.NET são bem diferentes do comum. Uma diferença notável é que suas únicas opções de idioma para ASP são VBScript e JScript. ASP é uma tecnologia mais antiga e desatualizada, não se preocupe com isso.

23
Grant Palin

Primeiro, .Net é uma estrutura de bytecode, semelhante a Java bytecode. .Net, no entanto, é apenas BYTECODE. Não existe uma linguagem oficial ".Net". As duas principais linguagens direcionadas a .Net são C # e VB.Net. 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, ASP IS NÃO é o mesmo que ASP.Net. Eles têm grandes diferenças

14
Earlz

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 por ECMA , o que significa que implementações independentes do padrão do a linguagem pode ser desenvolvida, e de fato era. O mais proeminente deles é 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.

8
scrwtp

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)
7
mootinator

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.

2
Ryathal

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/File:Overview_of_the_Common_Language_Infrastructure.svg

0
Jeremy