Итак, мы увидели, как можно создать базовое приложение, но строить логику в одном единственном файле для большого сайта может стать серьезной занозой, а как поддерживать такое я даже не представляю. Можно попытаться построить какую-то машину, которая будет смотреть на то, какие параметры присылает браузер серверу и пытаться в зависимости от различных составляющих вызывать тот или иной код, который мы для своего удобства разбросаем по файлам.
Казалось бы, отличный план, но совершенно не нужный, потому что в ASP .NET все уже реализовано для нас. Microsoft неплохо потрудились, чтобы предоставить нам все необходимое, для возможности строить приложения с использованием паттерна MVC, который позволяет разделять логику приложения, от представления.
MVC наверно самый популярный паттерн в Web программировании и его смысл заключается в том, чтобы отделить бизнес логику приложения (модель) от представления (View). Контроллер – это промежуточное звено, которое связывает бизнес логику и то, как отображается страница.
С популярностью мобильных приложений этот паттерн показал свои лучшие стороны, если реализован правильно. Один и тот же код – модель будет использоваться для двух разных приложений, где представлениями могут быть – HTML или UI мобильного приложения, а связывать их будут свои контроллеры.
Чтобы не повторятся в контроллерах, они должны быть максимально тупыми. Их основная задача – получить данные от модели и передать представлению. Когда представление хочет отправить данные модели, то тут контроллер получает информация от представления, может конвертировать данные в нужный формат и передать дальше модели.
Мобильные контроллеры могут быть в виде кода, который передает данные напрямую UI, если использовать Xamarin, а может быть и простой еще один Web контроллер, который отображает возвращает данные в виде JSON и это уже получается WebAPI REST сервис