Date post: | 04-Jan-2016 |
Category: |
Documents |
Upload: | chandler-nelson |
View: | 57 times |
Download: | 1 times |
DEV307
Централизованный доступ к компонентам разработки приложений с помощью NuGet
Владимир Юневэксперт по технологиям веб-разработкиMicrosoft
Содержание
Проблема современной компонентной разработки
NuGet – как решение проблемы:Основы: на что способен NuGetСоздание и публикация пакетов
NuGet для команд разработчиков:Место NuGet в компанииСоздание своего сервера NuGetNuGet и Continuous Integration
NuGet в бизнесе и проектах
Проблема
как добавить компонент в проект?
Проблема на примере
Добавление к проекту Visual Studio библиотеки ELMAH для регистрации ошибок
Нашлось сразу,
к счастью.
Поиск сайта библиотеки
Похоже, нам сюда
?Возможно, нам подойдет
это.
Ок, наверное, то что нужно.
Перед распаковкой нужно зайти
в Свойства
И не забыть...
Распаковать сборки в
папку проекта
Нужно добавить
правильные параметры в web.config
Ну вот! Работает!
Проблема
Хочу добавить всего одну фичу в проект:Ищем нужный сайт, находим компонентКачаем .zip/.msi/.exeРаспаковываем/запускаемЧитаем мануалОбновляем проект: файлы, сборка, web.config, ......
Проблема
Хочу добавить еще фичи в проект...
Проблема
Коллеги добавляют фичи у себя...
Проблема
Проектов у нас несколько...
Проблема
И таких компаний много
Решение?
пакетный менеджерNuGet
30
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
Главная цель - построение экосистемы разработки
Решение
install-package feature
• Ищем нужный сайт, находим компонент
• Качаем .zip/.msi/.exe• Распаковываем/запускаем• Читаем мануал• Обновляем проект: файлы, сборка,
web.config, ...• ...
NuGet в командах
Install-Package
Update-Package
Uninstall-Package
Get-Package
New-Package
Демонстрация• практическое использование NuGet• создание и публикация собственных пакетов
NuGet – это решение!
быстрый доступ к тысячам готовых компонентавтоматическая установка, обновление, удалениеразрешение зависимостейлегкость создания пакетов и публикациикомандная строка и UI,nuget.exeрасширение команд,PowerShellоткрытые стандарты
NuGet для команд
• свой сервер пакетов• контроль версий• continuous integration
Какие задачи мы пытаемся решить?
Разделение компонент бизнес-логики между
командами
Разделение лучших практик между
командами
Построение экосистемы на базе существующих готовых компонент и
сторонних инструментов
Настройка специфичной для компании конфигурации
Как задачи зачастую решаются сегодня?
Файловые хранилища с папками загруженных компонент и установщиками инструментов
Наследственные и «особые» знания
Разряженная документация в wiki, файлах или обсуждениях в email
Вытягивание решений из имеющихся исходных кодов в средстве контроля версий внутри компании
Чем NuGet способен помочь?
Предлагает централизованное хранилище знаний на языке кода, сборок, конфигураций и скриптов автоматизации
Предлагает конкрентные решения вместо руководств, политик или абстрактных стандартов
NuGet – это часть автоматических процессов разработки
Использование NuGet в компании
Разверните собственный репозиторий пакетовВ локальной сети или в виде веб-сервера
Начните оформлять библиотеки и компоненты компании в виде пакетов NuGet
Используйте мета-пакеты для оформления лучших практик:
Мета-пакеты - набор зависимостейПримеры: пакет тестирования, базовый набор приложений
Интеграция NuGet в компании
Проект
Проект
Проект
Создавайте проекты на базе пакетов NuGet, автоматизируйте
создание и обновление собственных пакетов
Храните проекты и конфигурацию пакетов в вашей системе контроля
версий
Интегрируйте NuGet в вашу систему Continuous Integration
VCS
VCS
VCS
CI
Демонстрация
создание своего сервера NuGet, интеграция в компании
NuGet в компании – это решение!
Единое хранилище лучших практик, библиотек и компонент компании
Быстрый доступ к сторонним компонентам
Однообразный подход к установке, обновлению и конфигурированию проектов
Интеграция в процессы разработки
Примеры применения
• NuGet в бизнесе• примеры проектов
NuGet как средство доставки
Компания Devexpress
NuGet как сервис
MyGet.org - oблачный NuGet
NuGet и GitHub
NuGit.org – сервис интеграции с GitHub
Итоги
Итоги NuGet
NuGet позволит организовать централизованный доступ к компонентам и практикам разработки приложений в компании
NuGet – это основа инфраструктуры разработки ПО
NuGet – функциональный инструмент с интеграцией в процессы разработки
NuGet – открытый механизм, который может стать основой ваших собственных сервисов
Ресурсы
http://nuget.org – официальный сайтhttp://nuget.codeplex.com – исходные коды, багтрекер, информация, последние версии, форум
http://nugetter.codeplex.com – интеграция с TFS
http://myget.org – облачный NuGethttp://mygit.org – интеграция с GitHub
Обратная связь
Уважаемые участники!Ваше мнение очень важно для нас!В блокноте, который находится в инфопаке участника, вы найдете анкету для оценки докладовПожалуйста, оцените доклад и сдайте анкету при выходе из зала модераторуДля участия в конкурсе заполненных анкет, отметьте в анкете номер, который указан на вашем бейдже
Спасибо!
Всем спасибо! Ваши вопросы
DEV307Владимир Юнев
эксперт по технологиям веб-разработки[email protected]://blogs.msdn.com/b/vyunev@XaocCPS, facebook.com/yunev