Я недавно создал веб-проект MVC в .Net Core, для которого сейчас хочу создать интерфейс для Android и iOS. Я понимаю различия между .Net Standard и .Net Core, но у меня возникла проблема с выяснением того, что должно идти в каком проекте. Сначала я опишу текущее решение:
DataModel: Как и следовало ожидать, DataModel содержит все мои базовые модели и DTO. На него ссылаются все другие проекты.
DataAccess: выполняет все операции хранения / получения данных (репозитории) и ссылается только на DataModel
HostService: служба RESTful, которая обслуживает данные и ссылается на DataModel и DataAccess
Отображение: внешний код MVC, который содержит ViewModels, Views, Controllers и т. Д. И ссылки на DataModel и HostService
Насколько я понимаю, некоторые части проекта Display действительно должны находиться в .NetСтандартный проект для их повторного использования в проекте Xamarin, ориентированном на Adroid и iOS, но я немного озадачен тем, какие части следует перенести в новый проект .Net Standard. Очевидно, что представления должны оставаться в проекте Display, поскольку они содержат код Razor, специфичный для веб-интерфейса. Мне кажется, что единственными вещами, которые нужно переместить в новый проект, являются ViewModels и Controllers (а также все, на что они ссылаются)? Это звучит правильно или я слишком упрощаю? Я что-то упустил или есть какие-то ошибки, о которых я должен знать?
FWIW, я запустил анализатор переносимости .Net и получил следующие результаты:
Itотметил, что эти элементы были несовместимы с .Net Standard:
Как определить, где возникают эти конфликты для их разрешения? Я искал целевые элементы (т. Е. Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute) в проекте Display, но не нашел никаких совпадений, поэтому я не уверен, как их исправить. Любые указатели будут с благодарностью!