Por onde começar para aprender C# para Web?

Olá,

Venho do Java e estou mexendo um pouco com C# no trabalho devido a um dos colegas do C# ter pedido demissão, to me virando fazendo as coisas menos complexas e já estudei o basicão do C# puro, mas agora necessito estudar voltado para web, por onde começar? Meu objetivo é trabalhar com servidores RestFul.

E para o banco de dados? Pesquisei e vi que existem o NHibernate e o Entity Framework, qual devo usar, ou pelo menos por qual começar e porque? Qual a diferença dos dois?

Qual o framework utilizado para mockar objetos e fazer testes unitários, como se fosse o Mockito do Java? (NUnit sei que é semelhante ao JUnit)

Estuda o que o projeto usar.

Web.Api

Sobre banco de dados, comece por ADO.NET puro. Depois experimente EF e NH. Ambos seguem a mesma linha, ORMs completos e consequentemente pesados. Prefiro o Dapper, é leve e voltado sempre pra escrever direto em SQL, sem linguagem OO intermediária.

Sobre testes unitários, to por fora, nunca entendi pra que serve isso.