Разработка по принципу пакет-проект

Коллеги, кто нибудь вел разработку по принципу пакет-проект, из статьи мало понятно как действовать. Есть вопросы:

  1. При выгрузки пакетов ФС папка Files не создалась(кастомный пакет) - можно добавить вручную?
  2. Можно ли добавлять данное решение в существующий пакет?
  3. В папку Files добавлять ProjectName.dll или весь solution?
  4. Проект создавать как библиотеку классов + подключать в зависимости пакет Terrasoft? 

В общем что то в этом роде.

Заранее благодарен!

Нравится

14 комментариев

Алексей, насколько помню, всё взаимодействие происходит через консольную программу «clio», а в веб-интерфейсе такой пакет выглядит как пустой, вручную туда добавлять ничего не нужно.

 

На странице clio перечислены её команды для создания, загрузки и выгрузки пакетов.

Зверев Александр,

с установкой пакета разобрался, теперь вот вопрос как использовать встроенные классы при разработке в ФС?

Вот пытаюсь определить переменную с данным типом -https://prnt.sc/tqf1ps

Что делаю не так?

Если брать данную dll - https://prnt.sc/tqf4n0 и вставлять во Внешние сборки(https://prnt.sc/tqf4z5) тогда смысл данного решения?

Зверев Александр,

Перелопатил что только возможно было, так и не нашел примеров как использовать функционал файлового контента, у Вас будет пару примеров?

Недавно было онлайн-обучение «Ускорение разработки с пакетами-проектами и репозиторием данных», но видео с него не встречалось. Возможно, отправляли только записавшимся.

 

Его автор ответил по поводу того, что Вы спрашивали о смысле этого решения: 

Взаимодействие между проектными-классами, и схемами исходного кода происходит через API-проекты.

Основная польза от такого решения – согласовав API, можно поставлять решение без компиляции основного приложения.

Зверев Александр,

По идее данный подход может решить проблему конфликта библиотек, в частности Google.Apis, вот пытаюсь решить данную проблему, но столкнулся с проблемой использования функционала портируемого пакета-проекта, как вызывать те или иные классы и методы.

Здравствуйте, Алексей!

 

Пакет-проект - это пакет который содержит только файловый контент, который в папке пакета располагается в папке Files.
В файловом контенте расположен обычный проект .
net, а компиляция у него настроена в папку Bin.

В проекте реализованы сервисы, которые имеют доступ к базе данных.

Приложение загружает библиотеки (dll) из папки Files\Bin и ищет в них сервисы, а найденные сервисы активирует.

В проекте не будут видны конфигурационные классы, так же как и классы из данного проекта не будут видны коду в конфигурации, это изолированные сервисы.

 

Ответы на вопросы:

 При выгрузки пакетов ФС папка Files не создалась(кастомный пакет) - можно добавить вручную?

Ее можно создать вручную

   Можно ли добавлять данное решение в существующий пакет?

Можно.
Однако у нашего приложения есть экспериментальная фича, включив которую, пакет содержащий только файловый  контент будет ставится быстро, без компиляции всего приложения.

Для ее включения надо в Web.config загрузчика добавить

<add key="Feature-UseCompilationByNecessity" value="true" /> 

В этом одно из преимуществ пакетов-проектов, поэтому если в пакете уже находились, схемы, то такой пакет будет ставиться медленно, с  компиляцией.

  В папку Files добавлять ProjectName.dll или весь solution?

Обязательно надо добавить ProjectName.dll в Files\Bin, а solution, на ваше усмотрение, обычно желательно, чтобы вы скачав пакет могли вести в нем разработку.

 Проект создавать как библиотеку классов + подключать в зависимости пакет Terrasoft?

Проект надо создавать как библиотеку классов, которая содержит сервисы. К проекту можно подключить другие библиотеки, как к обычному проекту

Для работы с классами ядра можно к проекту подключить библиотеки из nugget:

 <PackageReference Include="BpmonlineSDK" Version="7.14.4.844-rc" />
 <PackageReference Include="Terrasoft.ServiceModel" Version="1.0.0" />
 <PackageReference Include="Terrasoft.ServiceModel.Primitives" Version="1.0.0">

 

 как использовать встроенные классы при разработке в ФС?

Как и в любом другом проекте .net.

Вот пытаюсь определить переменную с данным типом -https://prnt.sc/tqf1ps

Что делаю не так?

По скриншотам сказать что-то сложно, пришлите пакет, мы тогда объясним что там идет не так.

Если брать данную dll - https://prnt.sc/tqf4n0 и вставлять во Внешние сборки(https://prnt.sc/tqf4z5) тогда смысл данного решения?

В проекте (пакета-проекта), нельзя подключать сборки добавленные во внешние сборки в конфигурации.

 

Мотков Илья,

Можно ли при использовании данного решения как-то избежать конфликт библиотек Google? А то пока не получается...
 

Мотков Илья,

Мотков Илья пишет:
В проекте (

т.е. я не смогу добавить более новые библиотеки Google.Apis, Google.Analytics.V3, Google.Apis.Core (latest stable version) и т.д.? И затем без проблем использовать?

Здравствуйте, Алексей!

 

Рекомендуем прислать пакет, чтобы можно было посмотреть.

По поводу Clio, лучше установить последнюю версию, после чего проинсталировать новую версию cliogate. Если будут ошибки, еще раз прислать лог, который выдала утилита.

Мотков Илья,

здравствуйте, ссылку на скачивания пакета скидывал Вам в личном сообщении

Мотков Илья пишет:

Здравствуйте, Алексей!

Рекомендуем прислать пакет, чтобы можно было посмотреть.

По поводу Clio, лучше установить последнюю версию, после чего проинсталировать новую версию cliogate. Если будут ошибки, еще раз прислать лог, который выдала утилита.

Что касается clio и инсталяции cliogate в результате выполнения команды возникает следующая ошибка - https://prnt.sc/ttvziv 

Алексей, в соседней теме это Ваш же случай?

Зверев Александр,

да, уже и систему переустанавливал, не помогает

 

Алексей, по поводу конфликта версий, всё как обычно с библиотеками: им или залить себе ту же версию, что у «в коробке» (более старую), или аргументировать, чтобы обновили «в коробке» до более новой. Если используется не самая новая версия системы, прежде всего попробовать обновить, возможно, в актуальной библиотеку тоже обновили.

Показать все комментарии