Yo trato siempre de usar este stack para apps webs:
-Asp.Net MVC para la web en el frontend.
-AngularJS para las vistas del lado del usuario(no suelo usar las rutas,porque eso ya me lo da
asp.net MVC).
-NancyFX como servidor REST( testear endpoints con NancyFX es lo mas sencillo, a comparacion con webapi y MVC).
-Jquery, modernizr, D3js,DCjs, UnderscoreJS son comodines para la parte del lado del cliente.
-Bootstrap para la UI, aunque en otros he usado BlueprintCSS, la verdad bootstrap es el estandar de facto.
-Dapper para las consultas a la DB(select,simple update,simple inserts)
-Fluent Nhibernate para las entidades, crear la db, para insercion, updates, mantener al día el schema, etc.
Aunque.... actualmente tengo clientes que salen usando el Entity Framework en lugar de Nhibernate, o Webapi en lugar de NancyFX, son cuestión de ideas o en muchos casos requerimientos de sus clientes.
No hay silverbullet, creo que tienes que aprender a aplicar lo que sea bueno para ciertos casos,por ejemplo un cliente quería hacer unas cargas masivas usando entity framework, cuando vio que tardaba demasiado, pasamos todo a bulk inserts con Ado.Net y disminuyeron los tiempos enormemente. Otro ejemplo, hay vistas que tenemos en Asp.Net MVC con razor simple, vistas de CRUD, porque no las hicimos con angularJS? porque era un overkill, realmente no son vistas que sean utilizadas diariamente y solo lo usaban los administradores para dar mantenimiento a ciertas entidades, era mas rapido(y menos costoso) usar la vista generada de razor y quizas hacer minimos ajustes, que hacer toda una vista con AngularJS.
Por ultimo, angularJS es el estándar de facto de momento para el MVC del lado del cliente, y muchos clientes lo piden, asi que seria bueno que le heches un ojo, ademas aprendiendolo se te va a hacer mas facil trabajar con el.
Saludos.