Вопрос в том, хотите ли вы пойти по многостраничной или одностраничной дороге.
GWT - это набор инструментов, который помогает вам создавать одностраничные веб-приложения, в которых бэкэнд служит только источником данных. Это подход SOUI (Сервис-ориентированный пользовательский интерфейс).
Одна страница хоста обслуживает клиентское приложение GWT, и вы имеете дело с синхронизацией потоков и другими шаблонами пользовательского интерфейса (MVP) на стороне клиента.
Если вы пойдете по этому пути, вы, вероятно, не будете использовать какие-либо расширенные функции ASP.NET MVC3 (в частности, часть представления контроллера модели).
Однако также возможно использовать GWT в многостраничной установке, где бэкэнд заботится о «синхронизации потока», и вы встраиваете GWT в качестве виджетов в соответствующие представления / страницы.
В итоге вы получаете небольшие приложения GWT для каждой страницы хоста / MVC-представления. Вы не получите всех оптимизаций при повторном использовании кода, потому что каждая страница хоста будет отдельным приложением GWT и, следовательно, общий код будет загружаться несколько раз.
Относительно вашего конкретного вопроса и технических аспектов ASP.NET MVC3 и Razor:
Я не могу это прокомментировать, потому что у меня нет опыта работы с ASP.NET MVC3. Но в целом приложения GWT можно встроить в любую веб-страницу, просто включив файл начальной загрузки nocache.js (если вам нужна поддержка истории, также вставьте скрытый iFrame).
См. здесь для получения более подробной информации.
Примечание: этот проект также может быть интересен для вас.