# ASP.NET

ASP.NET é a plataforma da Microsoft para o desenvolvimento de aplicações Web e é o sucessor da tecnologia ASP. Permite, através de uma linguagem de programação integrada na .NET Framework, criar páginas dinâmicas. Não é nem uma linguagem de programação como VBScript, PHP, nem um servidor web como IIS ou Apache.
O ASP.NET é baseado no Framework .NET herdando todas as suas características, por isso, como qualquer aplicação .NET, as aplicações para essa plataforma podem ser escritas em várias linguagens, como C#, F# e Visual Basic.NET.
Embora se possa desenvolver aplicações ASP.NET utilizando somente um editor de texto e o compilador.NET, o ambiente de desenvolvimento mais comum das aplicações ASP.NET é o Visual Studio.NET já que possui algumas características que facilitam o trabalho do programador, como os componentes visuais para criação de formulários de páginas Web.
Uma aplicação para web desenvolvida em ASP.NET pode reutilizar código de qualquer outro projeto escrito para a plataforma.NET, mesmo que em linguagem diferente. Uma página ASP.NET escrita em VB.NET pode chamar componentes escritos em C# ou Web Services escritos em C++, por exemplo. Ao contrário da tecnologia ASP, as aplicações ASP.NET são compiladas antes da execução, trazendo sensível ganho de desempenho.
As aplicações Web ASP.NET necessitam do Framework.NET e do servidor IIS para executar, pelo menos na plataforma Windows. Existe também o projeto mod aspdotnet, módulo que permite o servidor Apache HTTP Server trabalhar em conjunto com o Framework.NET e rodar aplicações ASP.NET na plataforma Windows. O projeto Mono é um esforço para permitir que aplicações ASP.NET (na verdade toda a plataforma.NET) possam executar em outras plataformas, como o Linux.

## ASP.NET MVC

O ASP.NET MVC é um padrão de arquitetura que provê uma alternativa ao ASP.NET Web Forms, para criação de aplicações Web baseadas no MVC (Model View Controller). O Framework MVC é definido pelo namespace System.Web.Mvc. O ASP.NET MVC é um padrão que muitos desenvolvedores estão acostumados, de separar em camadas o modelo, a visualização e os controles. Algumas aplicações Web podem se beneficiar do framework MVC, enquanto outras podem continuar a usar o padrão tradicional ASP.NET, que é baseado em Web Forms e postbacks. Nenhuma abordagem, seja MVC ou Web Forms, exclui a outra, podendo inclusive serem utilizadas ao mesmo tempo.
Recursos do MVC:
* Separação das tarefas da aplicação (Entrada lógica, lógica de negócio e a lógica de Interface);
* Um framework extensível e conectável. Os componentes do MVC são projetados, sendo assim facilmente substituídos ou customizados. Você pode plugá-lo à sua política de roteamento de URL (URL Routing), conectá-lo a sua própria engine de visualização e outros componentes.
* Um componente poderoso de URL-mapping, que lhe permite criar aplicativo com URLs compreensíveis e que sejam de fácil localização por buscadores. Além de poder utilizar um padrão para nomeação de URLs, reforçando a ideia de localização otimizada (SEO - Search Engine Optimization).
* Suporte a recursos existentes do ASP.NET. O MVC permite a utilização de recursos como autenticação de formulários e Windows Authentication, autorização URL (URL Authorization), data caching, gerenciamento de estado de sessão e perfil, o sistema de configuração e a arquitetura de provider.