Задать вопрос
@ilyushchenko

Как правильно вынести модели WebApi в отдельный проект для повторного использования в Xamarin?

Доброго времени суток!
Есть 2 решения с проектами: WebAPI на Asp.NET Core 2 и Xamarin Forms.
Архитектура проектов выглядит следующим образом:
Решение для API
  • WebApi
  • WebApi.Data - Здесь хранятся модели данных
  • WebApi.Tests
Решение для Xamarin
  • XF
  • XF.Data - Здесь повторно описываются модели, приходящие из API


Собственно суть вопроса - как правильно вынести модели в отдельный проект и как правильней на них ссылаться так, что бы их изменения приходили в оба проекта.

Буду очень благодарен, если будут примеры таких решений. Заранее спасибо.

PS:
Каждый проект в своем решении, соответственно недостаточно просто создать ClassLibrary и ссылаться на нее из обоих проектов.

PPS:
Покопавшись, я нашел несколько решений:
git submodule
Как я понял в моем случае можно будет создать проект библиотеки, запихнуть в него модели и вставлять его подмодулем в вышеупомянутые решения. Правильный ли такой подход?
Создание NuGet package
но как их распространять без публикации в NuGet
DLL
Стандартный подход просто подключать библиотеку вручную.
Не хочется прибегать к нему, т.к. сейчас проект только создается и модели добавляются каждый день, соответственно обновлять библиотеку каждый раз вручную не очень то хочется.
  • Вопрос задан
  • 168 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@maltsever
Если не секрет, то почему нельзя поместить всё в одно решение? Как альтернатива, можно использовать один гит репозиторий, внутри которого будут два решения. Каждое из решений будет ссылаться на один и тот же проект Data. Это не так элегантно, но будет работать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
serafimprozorov
@serafimprozorov
Люблю Erlang....
Лучшим решением будет, на мой взгляд, как раз-таки создание пакета NuGet под netstandard.
NuGet-пакет необязательно публиковать на NuGet.org, можно использовать любой NuGet-репозиторий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы