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:
- C # e C # .NET são a mesma coisa ... C #
- O .NET é, como você diz, uma biblioteca de código com a qual as linguagens .NET podem conversar.
- As linguagens .NET vêm em diferentes tipos, como: C # .NET, VB.NET, Managed C ++, F #.
- 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.
- 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.
- 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.