2016-04-11 4 views
4

Я работаю над проектом Xamarin.Forms. Когда я создаю портативное решение Xamarin.Forms, я получаю один портативный проект и четыре проекта платформы для iOS, Android, Windows8.1 и WindowsPhone 8.1 соответственно.Как организовать мое решение Xamarin.Forms?

У меня есть все страницы пользовательского интерфейса и логические коды в переносном проекте и все специфичные для платформы вызовы в каждом проекте платформы. Теперь, ссылаясь на Xamarin Architecture, мы можем иметь шесть уровней приложения.

Чтобы добиться этого, какие изменения мне нужно будет сделать в моей структуре проекта?

Должен ли я отделить страницу пользовательского интерфейса и поместить его в отдельный проект и отдельный проект для бизнес-логики? Я новичок в Xamarin, поэтому хотел бы знать мнение эксперта.

+1

Прежде всего, вы не должны строго придерживаться слоев, представленных в этом документе, поскольку это всего лишь общее предложение. Во-вторых, первые 4 уровня (доступ к уровню данных для доступа к службе (если у вас есть ...)) должны быть включены в общую часть вашего кода, тогда как оставшийся (практически код пользовательского интерфейса и код конкретной платформы) должен быть в Формах проект. Конкретные проекты платформы (ios, android ...) должны использоваться только для очень специфических настроек. – markusian

+0

«Общая часть вашего кода» означает переносимый проект? А какие будут проекты? В моем случае вся общая часть, включая общий пользовательский интерфейс, находится в переносном проекте. – Arti

+4

То, что вы делаете, уже прекрасное, на мой взгляд. Если вы хотите иметь большее разделение, вы можете оставить весь свой интерфейс в переносном проекте и перенести все обычные вещи (доступ к базе данных, бизнес-логике ...) в новый проект, который будет общим для всех возможных платформ. Таким образом, вы могли бы иметь, например, структуру с: App.Common, App.Forms, App.iOS, App.Android ... – markusian

ответ

1

Если вам нужно реализовать тот же проект для Web/Desktop, как вы это делаете? Здесь вы также будете использовать ту же реализацию.

В основном, в решении Xamarin.Forms проект библиотеки портативных классов является точкой входа в ваше приложение. Проекты iOS, Android, Windows 8.1 и WindowsPhone 8.1 используются для упаковки вашего пользовательского интерфейса в проекте Portable Class Library для каждой платформы. Поэтому вам не нужно переписывать пользовательский интерфейс для каждой платформы.

Все ваши DTO, уровень доступа и алгоритмы доступа к данным будут напрямую привязаны к проекту Portable Class Library.

+1

. Таким образом, структура, предложенная @markusian, имеет App.common, App.portable, App.iOS, App.Anroid .. будет лучшей структурой. – Arti

+0

@Arti да, думаю. –

Смежные вопросы