![Page 1: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/1.jpg)
![Page 2: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/2.jpg)
DEV307
Централизованный доступ к компонентам разработки приложений с помощью NuGet
Владимир Юневэксперт по технологиям веб-разработкиMicrosoft
![Page 3: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/3.jpg)
Содержание
Проблема современной компонентной разработки
NuGet – как решение проблемы:Основы: на что способен NuGetСоздание и публикация пакетов
NuGet для команд разработчиков:Место NuGet в компанииСоздание своего сервера NuGetNuGet и Continuous Integration
NuGet в бизнесе и проектах
![Page 4: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/4.jpg)
Проблема
как добавить компонент в проект?
![Page 5: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/5.jpg)
Проблема на примере
Добавление к проекту Visual Studio библиотеки ELMAH для регистрации ошибок
![Page 6: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/6.jpg)
Нашлось сразу,
к счастью.
Поиск сайта библиотеки
![Page 7: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/7.jpg)
Похоже, нам сюда
![Page 8: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/8.jpg)
![Page 9: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/9.jpg)
?Возможно, нам подойдет
это.
![Page 10: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/10.jpg)
Ок, наверное, то что нужно.
![Page 11: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/11.jpg)
![Page 12: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/12.jpg)
![Page 13: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/13.jpg)
Перед распаковкой нужно зайти
в Свойства
![Page 14: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/14.jpg)
И не забыть...
![Page 15: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/15.jpg)
![Page 16: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/16.jpg)
![Page 17: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/17.jpg)
Распаковать сборки в
папку проекта
![Page 18: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/18.jpg)
![Page 19: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/19.jpg)
![Page 20: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/20.jpg)
![Page 21: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/21.jpg)
Нужно добавить
правильные параметры в web.config
![Page 22: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/22.jpg)
![Page 23: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/23.jpg)
Ну вот! Работает!
![Page 24: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/24.jpg)
Проблема
Хочу добавить всего одну фичу в проект:Ищем нужный сайт, находим компонентКачаем .zip/.msi/.exeРаспаковываем/запускаемЧитаем мануалОбновляем проект: файлы, сборка, web.config, ......
![Page 25: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/25.jpg)
Проблема
Хочу добавить еще фичи в проект...
![Page 26: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/26.jpg)
Проблема
Коллеги добавляют фичи у себя...
![Page 27: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/27.jpg)
Проблема
Проектов у нас несколько...
![Page 28: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/28.jpg)
Проблема
И таких компаний много
![Page 29: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/29.jpg)
Решение?
пакетный менеджерNuGet
![Page 30: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/30.jpg)
30
![Page 31: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/31.jpg)
CastleN
Hib
ern
ate
log4net
NUnit
Elm
ah
Nin
ject
Antlr
Iesi Collections
jQuery
New
tonso
ft.Jso
n
Moq
FluentNHibernate
AutoMapperStructureMap
NLog
Autofac
Facebook SDKRx
RhinoMocks
MvcContrib
51Degrees.mobiD
otN
etO
pen
Au
th
Com
mon
.Log
gin
g
MvvmLight
BBCode
Mvc
Mai
ler
xuni
t
Flu
entV
alid
atio
n
Ham
moc
k
SharpZipLib
FluentHtml-ciMachine.Specifications
jQuery.Validation
WatiN
Htm
lAgi
lityP
ack
Simple.Data.Core
CLEditor
Simple.Data.CoreAltairis.Web.Security
UrlShortener.HelperiT
extS
harp
QuickGraph
DotNetZip
FakeItEasy
PublishSettingsGenerator
Spa
rk
NSubstitute
RavenDB
Luce
ne
AutoPoco
RestSharp
Should
postalnservicebus
reac
tive
ui-c
ore
linq
.js
fast
erfle
ct
combres
TweetSharp
MvcSiteMapProvider
Ad
am.J
SG
en
era
tor
Flu
en
tAss
ert
ion
s
Bootstrapper
AzureToolkit
ErikEJ.SqlCeMembership
![Page 32: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/32.jpg)
Главная цель - построение экосистемы разработки
![Page 33: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/33.jpg)
Решение
install-package feature
• Ищем нужный сайт, находим компонент
• Качаем .zip/.msi/.exe• Распаковываем/запускаем• Читаем мануал• Обновляем проект: файлы, сборка,
web.config, ...• ...
![Page 34: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/34.jpg)
NuGet в командах
Install-Package
Update-Package
Uninstall-Package
Get-Package
New-Package
![Page 35: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/35.jpg)
Демонстрация• практическое использование NuGet• создание и публикация собственных пакетов
![Page 36: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/36.jpg)
NuGet – это решение!
быстрый доступ к тысячам готовых компонентавтоматическая установка, обновление, удалениеразрешение зависимостейлегкость создания пакетов и публикациикомандная строка и UI,nuget.exeрасширение команд,PowerShellоткрытые стандарты
![Page 37: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/37.jpg)
NuGet для команд
• свой сервер пакетов• контроль версий• continuous integration
![Page 38: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/38.jpg)
Какие задачи мы пытаемся решить?
Разделение компонент бизнес-логики между
командами
Разделение лучших практик между
командами
Построение экосистемы на базе существующих готовых компонент и
сторонних инструментов
Настройка специфичной для компании конфигурации
![Page 39: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/39.jpg)
Как задачи зачастую решаются сегодня?
Файловые хранилища с папками загруженных компонент и установщиками инструментов
Наследственные и «особые» знания
Разряженная документация в wiki, файлах или обсуждениях в email
Вытягивание решений из имеющихся исходных кодов в средстве контроля версий внутри компании
![Page 40: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/40.jpg)
Чем NuGet способен помочь?
Предлагает централизованное хранилище знаний на языке кода, сборок, конфигураций и скриптов автоматизации
Предлагает конкрентные решения вместо руководств, политик или абстрактных стандартов
NuGet – это часть автоматических процессов разработки
![Page 41: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/41.jpg)
Использование NuGet в компании
Разверните собственный репозиторий пакетовВ локальной сети или в виде веб-сервера
Начните оформлять библиотеки и компоненты компании в виде пакетов NuGet
Используйте мета-пакеты для оформления лучших практик:
Мета-пакеты - набор зависимостейПримеры: пакет тестирования, базовый набор приложений
![Page 42: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/42.jpg)
Интеграция NuGet в компании
Проект
Проект
Проект
Создавайте проекты на базе пакетов NuGet, автоматизируйте
создание и обновление собственных пакетов
Храните проекты и конфигурацию пакетов в вашей системе контроля
версий
Интегрируйте NuGet в вашу систему Continuous Integration
VCS
VCS
VCS
CI
![Page 43: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/43.jpg)
Демонстрация
создание своего сервера NuGet, интеграция в компании
![Page 44: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/44.jpg)
NuGet в компании – это решение!
Единое хранилище лучших практик, библиотек и компонент компании
Быстрый доступ к сторонним компонентам
Однообразный подход к установке, обновлению и конфигурированию проектов
Интеграция в процессы разработки
![Page 45: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/45.jpg)
Примеры применения
• NuGet в бизнесе• примеры проектов
![Page 46: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/46.jpg)
NuGet как средство доставки
Компания Devexpress
![Page 47: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/47.jpg)
NuGet как сервис
MyGet.org - oблачный NuGet
![Page 48: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/48.jpg)
NuGet и GitHub
NuGit.org – сервис интеграции с GitHub
![Page 49: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/49.jpg)
Итоги
![Page 50: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/50.jpg)
Итоги NuGet
NuGet позволит организовать централизованный доступ к компонентам и практикам разработки приложений в компании
NuGet – это основа инфраструктуры разработки ПО
NuGet – функциональный инструмент с интеграцией в процессы разработки
NuGet – открытый механизм, который может стать основой ваших собственных сервисов
![Page 51: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/51.jpg)
Ресурсы
http://nuget.org – официальный сайтhttp://nuget.codeplex.com – исходные коды, багтрекер, информация, последние версии, форум
http://nugetter.codeplex.com – интеграция с TFS
http://myget.org – облачный NuGethttp://mygit.org – интеграция с GitHub
![Page 52: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/52.jpg)
Обратная связь
Уважаемые участники!Ваше мнение очень важно для нас!В блокноте, который находится в инфопаке участника, вы найдете анкету для оценки докладовПожалуйста, оцените доклад и сдайте анкету при выходе из зала модераторуДля участия в конкурсе заполненных анкет, отметьте в анкете номер, который указан на вашем бейдже
Спасибо!
![Page 53: Централизованный доступ к компонентам разработки приложений с помощью NuGet](https://reader036.vdocument.in/reader036/viewer/2022062422/5681387b550346895da02c6a/html5/thumbnails/53.jpg)
Всем спасибо! Ваши вопросы
DEV307Владимир Юнев
эксперт по технологиям веб-разработки[email protected]://blogs.msdn.com/b/vyunev@XaocCPS, facebook.com/yunev