Чтобы быть ясным, я следую шаблону MVVM, и я хочу структурировать свой проект, чтобы я мог поделиться своим кодом модели между UWP-приложением и стандартным WPF-приложением. Код, который я хочу использовать, не имеет интерфейса. Мне не нравится мысль о поиске новых инструментов для замены тех, которые я использую в течение многих лет, которые занимаются определенными задачами, такими как ведение журнала, подключение к базе данных, ориентированной на документ, и т.д.
Я попытался начать писать UWP-оболочку вокруг некоторого кода, который у меня уже есть, и напрямую ссылаться на проект модели. Visual Studio отказалась это допустить, показывая мне сообщение об ошибке, в котором говорится: "Невозможно добавить ссылку на проект" ACK.Model ". То же самое произошло, когда я попытался поместить модель в универсальную библиотеку и ссылаться на нее из приложения WPF. Я не хочу делиться WPF-кодом. Только слой модели, не имеющий ссылки на библиотеки пользовательского интерфейса.
Это страшное предложение, потому что это означает, что если я хочу сделать что-то существенное, я должен выбрать либо перейти на 100% в UWP, либо остаться на 100% WPF. NewtonSoft.JSON может иметь универсальное распространение (ASP.NET MVC), но как насчет ElasticSearch.NET и других инструментов, необходимых для создания важных приложений?
Я нашел, где скрывался тип проекта "Portable Class Library". PCL позволят мне поделиться своим кодом в WPF и Universal приложениях, поскольку это был один из вариантов. Это решает простой случай части модели моего кода, но я (по-прежнему) не могу использовать некоторые из библиотек, которые я хочу. Мне все еще нужно большое количество библиотек, которые не имеют PCL.