O que você mais gosta ASP.NET?
ASP.NET é uma excelente estrutura para construir aplicações web em um ambiente Windows. Cerca de 2 anos atrás, a Microsoft anunciou que uma grande parte do .NET seria de código aberto. Isso foi enorme. Na verdade, eu havia me afastado do .NET para trabalhar com linguagens baseadas em JVM e esse anúncio me trouxe de volta ao .NET.
Também gosto da quantidade de ferramentas que estão prontamente disponíveis para o ASP.NET, incluindo MVC, WebForms, Web API e Entity Framework.
A facilidade com que você pode implantar aplicações ASP.NET em servidores locais ou no Azure é ótima. Análise coletada por e hospedada no G2.com.
O que você não gosta ASP.NET?
A coisa que mais me desagrada no ASP.NET é o quão RAD a Microsoft tem tentado tornar o desenvolvimento de software (RAD significa "Desenvolvimento Rápido de Aplicações"). Isso é tanto uma coisa boa quanto ruim. É bom porque os desenvolvedores podem montar uma aplicação rapidamente usando o Visual Studio, e quase qualquer pessoa pode manter essa aplicação apontando, clicando e editando componentes visuais no IDE.
Essa simplificação do desenvolvimento de software permite que muitos desenvolvedores muito inexperientes trabalhem em aplicações sem muita complexidade. O motivo pelo qual isso é um problema é que tais desenvolvedores podem passar anos, literalmente, sem progredir além desse ponto. Uma vez entrevistei alguém com 10 anos de experiência para uma posição de nível sênior, e por causa das boas intenções da Microsoft, ele não conhecia tópicos avançados como reflexão ou modificação do pipeline do ASP.NET. Você verá isso muito na comunidade .NET, e isso leva a muita sobrecarga desnecessária de manutenção de software, bem como sobrecarga de operações.
Falando em sobrecarga, antes da atual mudança para o código aberto pela Microsoft, o ASP.NET exigia principalmente implantação em servidores Windows. Isso frequentemente requer licenças pesadas. Já é possível há algum tempo implantar em Linux ou OS X Server usando Mono, mas sempre houve diferenças sutis entre Mono e Microsoft .NET que tornavam esse cenário de implantação um incômodo.
Outra coisa que me incomoda no ASP.NET e no .NET em geral é como os frameworks são versionados. Você terá o ASP.NET 4, que pode rodar no .NET 3.5 ou nas muitas versões do 4.x. A versão do ASP.NET estar fora de sincronia com o runtime do .NET sempre foi uma confusão para muitos desenvolvedores.
Para aumentar a confusão de versionamento, a nova abordagem da Microsoft para o ASP.NET (chame de ASP.NET 5) rodará no .NET 4.5.x e no novo '.NET Core' de código aberto. A Microsoft recentemente criou uma matriz (https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/standard-platform.md) para resolver qualquer confusão de versionamento. Para complicar ainda mais, há atualmente uma discussão para renomear o ASP.NET 5 para ASP.NET 1.0.
Além dessa loucura de versionamento, o novo ASP.NET é escrito para engenheiros (por exemplo, aqueles que: podem escrever bibliotecas/módulos/SDKs, entendem muito bem injeção de dependência e abstrações, podem aprender novas ferramentas rapidamente) em vez de desenvolvedores (por exemplo, aqueles que usam bibliotecas e frameworks para criar aplicações). Sinto que as empresas que continuarem com o ASP.NET descobrirão dolorosamente essa mudança abrupta do foco RAD de volta para o software como uma ciência e uma arte. Em outras palavras, haverá uma divisão mais acentuada entre "rockstars" e "novatos". Análise coletada por e hospedada no G2.com.