Relacionamento entre C #, .NET, ASP, ASP.NET etc [closed]

140

Não estou 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 / framework de ... coisas. Eu acho que eles são basicamente acesso a 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 a si mesmas de desenvolvedores '.NET'. Isso significa que eles são fluentes em C #, ASP e outros idiomas?

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

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

[Como um aparte, eu percebo que estas são múltiplas perguntas, mas eu acho que elas são muito inter-relacionadas (ou pelo menos essa é a impressão que os programadores de navegação / SO etc me deram)].

    
por Megan Walker 06.02.2011 / 23:27
fonte

7 respostas

170

Eu entendo sua confusão, acredite em mim eu tenho a mesma perspectiva quando se trata do mundo de Java! De qualquer forma, vou tentar quebrar as suas questões e abordá-las uma a uma ... bem como acrescentar alguns outros pontos que ajudarão a esclarecer o que está acontecendo:

  1. C # e C # .NET são a mesma coisa ... C #
  2. O .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, Managed C ++, F #.
  4. Compilações de idiomas .NET para CIL ( Common Intermediate Language ), o que significa que todos começam a "falar" na mesma língua e pode, portanto, interoperar.
  5. O ASP.NET é a parte da biblioteca .NET usada para criar sites. Existem outras subseções do ASP.NET, como WebForms (a maneira antiga de criar páginas da Web) ou a biblioteca MVC que está amadurecendo rapidamente e que vale a pena examinar também.
  6. Formulários (tecnologia antiga) ou o novo WPF (Windows Presentation Foundation) são as tecnologias que você normalmente usa no .NET para criar o que você sabe como aplicativos tradicionais de área de trabalho.

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

  • Uma biblioteca contém muitas funcionalidades que você pode escolher, por exemplo, usar uma peça de tecnologia não significa que você esteja trancado no restante. Isso significa liberdade, mas você terá mais trabalho para você.
  • No entanto, um framework define muito como você estará trabalhando. Ele fornece um fluxo de trabalho que, para melhor ou pior, é difícil de mudar. Isso significa desenvolvimento rápido / prototipagem, mas se mudanças significativas forem feitas no futuro, pode ser impossível (ou muito demorado) implementá-las.

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

    
por 06.02.2011 / 23:58
fonte
23

O .NET é uma estrutura de desenvolvimento de aplicativos - contém várias 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 #, Managed C ++, IronRuby e IronPython. Você escreve código no idioma de sua escolha para usar a funcionalidade no .NET framework.

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 web mais antiga, também da Microsoft. Apesar dos nomes semelhantes, ASP e ASP.NET são bastante diferentes sob o capô. Uma diferença notável é que suas únicas opções de linguagem para ASP são VBScript e JScript. O ASP é uma tecnologia antiga e ultrapassada, não se preocupe com isso.

    
por 07.02.2011 / 00:47
fonte
11
Primeiro, o .Net é um framework de bytecode, similar ao bytecode do Java. .Net no entanto, é apenas BYTECODE. Não existe uma língua oficial ".Net". As duas principais linguagens que visam o .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 outras linguagens de destino .Net) funcionem como um site.

Desenvolvedores que dizem conhecer .Net geralmente querem dizer que conhecem o C # ou o VB.Net, ou ambos, e podem facilmente aprender qualquer um que não saibam (C # e VB.Net são linguagens extremamente similares, além da sintaxe geral)

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

    
por 06.02.2011 / 23:32
fonte
7

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

Embora o C # tenha sido originalmente desenvolvido na Microsoft como parte do .NET Framework, ele foi padronizado posteriormente por ECMA , o que significa que implementações independentes da linguagem em conformidade com o padrão podem ser desenvolvidas, e de fato foram. O mais proeminente desses é Mono .

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

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

    
por 12.06.2012 / 23:21
fonte
6

O livro de Jon Skeet, C # Inthth, desmonta o .NET de maneira sucinta. É frequentemente usado em conexão com

  1. Linguagens de programação (C #, VB)
  2. O Runtime (CLR), que executa o bytecode dessas linguagens, é compilado.
  3. Bibliotecas de estrutura (Windows Forms / ASP.NET)
por 07.02.2011 / 07:39
fonte
2

as outras respostas fazem um bom trabalho de explicar o que cada tecnologia, mas eu acho que eles perdem uma das principais razões para a confusão. C # e C # .NET são essencialmente sinônimos, porém VB.NET e VB são diferentes e ASP e ASP.NET também são diferentes. VB geralmente se refere ao VB6 e mais antigo, e ASP se refere ao ASP clássico. Essas tecnologias foram radicalmente redesenhadas com o lançamento do .NET framework e, em vez de criar novos nomes para produtos, a Microsoft incluiu o .NET em quase tudo, mas o C # também era novo, então ambos os nomes realmente se referem à mesma coisa. >     

por 12.06.2012 / 22:45
fonte
0

Você precisa diferenciar entre os métodos Idiomas, Frameworks, CLR, Padrões e Programação.

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

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

Tenha uma leitura destes links: link
link
link

    
por 06.02.2011 / 23:35
fonte

Tags