Transitive dependencies are underestimated from security, safety and reliability points. I'd like to show and share my vision how it should work and what ideas should lead you,
10. NuGet Broken by Design
• Это просто макрос
• Минимум подтверждений от пользователя
• Что устанавливать? По умолчанию последнюю стабильную версию
• Как решать зависимости? Выбрать наименьшую версию
удовлетворяющую пакетам. См.п1.
• Какой набор DLL установить? Чтобы лучше всего подходил версии
фреймворка проекта
11. PS> Полные права при запуске скриптов
- Возможность запускать любые скрипты
• Newtonsoft.JSON запускает браузер
+ Настройка MSBuild
+ Открытие Readme
+ Скаффолдинг
+ Трансформации XML конфигов
PS> next__
12. Тесное переплетение со студией
- Установкапакетов требует студии
- Зависимости указаны в *.csproj
+ Все действия полностью аналогичны ручному процессу
Нет новых концепций
24. NuGet 2.x - Dep Version
<configuration>
<config>
<add key="DependencyVersion" value="HighestPatch" />
</config>
</configuration>
Возможные значения
- Lowest: самая ранняя возможная версия
- HighestPatch
- HighestMinor
- Highest: самая последняя версия
28. Project.json (> NuGet 3.0)
• https://github.com/aspnet/Home/wiki/Project.json-file
• https://docs.nuget.org/Consume/ProjectJson-Intro
• Только для
• Universal Windows Platform
• Portable class libraries
• ASP.NET 5 applications
31. Можно подключать пакеты NuGet
Можно подключать файлы из GitHub
https://fsprojects.github.io/Paket/github-dependencies.html
32. Принципы работы Paket
Следование принципам SemVer
Неинвазность работы с csproj и работа из консоли
Максимально предсказуемая политика по работе с версиями
библиотек.
33. Файлы Paket
• paket.dependencies (.sln)
• все зависимости решения
• paket.lock (.sln)
• Описание ресурсов
• Описание всех транзитивных зависимостей для каждой сборки
индивидуально
• paket.references
• Опиание прямых зависимостей (только имена)
38. Итого
• Используйте новый NuGet 3.2Paket
• Для NuGet используйте графический
интерфейс
• Используйте политики обновлений для
Nuget 2.X
• Следите за зависимостями в проекте
• Следовать SemVer