Централизованный доступ к компонентам разработки ...

Post on 04-Jan-2016

57 views 1 download

description

DEV307. э ксперт по технологиям веб-разработки. Microsoft. Централизованный доступ к компонентам разработки приложений с помощью NuGet. Владимир Юнев. Содержание. Проблема современной компонентной разработки NuGet – как решение проблемы: Основы: на что способен NuGet - PowerPoint PPT Presentation

transcript

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Владимир Юнев

эксперт по технологиям веб-разработкиvyunev@microsoft.comhttp://blogs.msdn.com/b/vyunev@XaocCPS, facebook.com/yunev