Как создать правильный файловую архитектуру Xamarin приложения?
Здравствуйте!
Суть
В срочном порядке интенсивно изучаю технологию Xamarin. Мой основной стек технологий это asp.net. Поскольку есть задача для реализации с помощью нового (Для меня) фреймворка, я хотел бы разобраться с правильным подходом к реализации архитектуры. Первым делом я провёл сбор информации и чтение документации. Теперь, перед этапом перехода к реализации и написания непосредственно самого кода и логики работы приложения, меня интересует вопрос об архитектуре.
Сама суть вопроса
Я не могу найти адекватной информации по поводу построения архитектуры приложения. При стандартном создании у меня есть 4 проекта (, .Android, .IOS и .UWP). Я не могу до конца понять по поводу взаимодействия самых компонентов между проектами.
Вопрос
В проекте есть стандартная страница MainPage, внутри которой реализуется стандартная логика для начального экрана приложения. Зачем тогда нужен проект .Android? Если в проект .Android нужно закидывать "экраны" для приложения на платформе Android, тогда какой смысл с проекта ? Какие вообще компоненты нужно добавлять в проект .Android и откуда из вызывать? Если кидать подобную логику в проект , то какой смысл с проектов .Android и .IOS, если всё равно будет вызываться логика с проекта ?
Пример
Если в проекте .Android я создам папку Views и в неё закину экран HomePage.xaml (Правильно ли вообще так делать?), зачем вообще тогда мне нужны подобные папки в проект , если я не имею доступ к вызову событий этих компонентов? Т.е., если у меня есть некая кнопка на экране, который находится в проекте , то как мне привязать вызов этого события из проекта .Android?
Итог
Короче говоря, не могу разобраться по поводу размещения компонентов и их событий внутри проекта, а так же откуда их вызывать, куда передавать. Где вообще нужно реализовать паттерн MVVM, если у меня 4 проекта?
P.S.
Я прочитал некую техническую информацию, по поводу самой технологии и как вообще можно реализовать некий, необходимый мне функционал, но я не могу понять, в каком месте его реализовать с точки зрения архитектуры и файловой архитектуры проекта (Не писать же весь код в одном файле, необходимо же всю логику разбивать на множество файлов для создания АДЕКВАТНОЙ архитектуры приложения).
Доку читал, но что-то не могу понять, как создать правильную архитектуру, какие классы где нужно создавать. Даже тот же паттерн MVVM, где его реализовать, в каком из 4-х проектов? Зачем создавать в .Adnroid (Или .IOS) экраны и как взаимодействовать с их событиями, из какого места в програме?