530 likes | 787 Views
DEV307. э ксперт по технологиям веб-разработки. Microsoft. Централизованный доступ к компонентам разработки приложений с помощью NuGet. Владимир Юнев. Содержание. Проблема современной компонентной разработки NuGet – как решение проблемы: Основы: на что способен NuGet
E N D
DEV307 эксперт по технологиям веб-разработки Microsoft Централизованный доступ к компонентам разработки приложений с помощью NuGet Владимир Юнев
Содержание • Проблема современной компонентной разработки • NuGet – как решение проблемы: • Основы: на что способен NuGet • Создание и публикация пакетов • NuGet для команд разработчиков: • Место NuGet в компании • Создание своего сервера NuGet • NuGet иContinuous Integration • NuGet в бизнесе и проектах
Проблема как добавить компонент в проект?
Проблемана примере • Добавление к проектуVisual Studio библиотеки ELMAHдля регистрации ошибок
Поиск сайта библиотеки Нашлось сразу, к счастью.
? Возможно, нам подойдет это.
Перед распаковкой нужно зайти в Свойства
Распаковать сборки в папку проекта
Нужно добавить правильные параметры вweb.config
Проблема • Хочу добавить всего одну фичу в проект: • Ищем нужный сайт, находим компонент • Качаем .zip/.msi/.exe • Распаковываем/запускаем • Читаем мануал • Обновляем проект: файлы, сборка, web.config, ... • ...
Проблема • Хочу добавить еще фичи в проект...
Проблема • Коллеги добавляют фичи у себя...
Проблема • Проектов у нас несколько...
Проблема • И таких компаний много
Решение? пакетный менеджерNuGet
PublishSettingsGenerator UrlShortener.Helper postal nservicebus Simple.Data.Core Autofac FakeItEasy Altairis.Web.Security Bootstrapper QuickGraph Spark Common.Logging FluentHtml-ci Machine.Specifications Antlr Should AutoMapper MvvmLight NUnit reactiveui-core StructureMap 51Degrees.mobi Elmah Hammock MvcMailer RhinoMocks Adam.JSGenerator Newtonsoft.Json DotNetZip BBCode fasterflect Castle Lucene AzureToolkit FluentNHibernate FluentAssertions NHibernate FluentValidation NSubstitute log4net NLog WatiN Ninject DotNetOpenAuth jQuery AutoPoco Rx Iesi Collections TweetSharp Facebook SDK HtmlAgilityPack xunit SharpZipLib MvcContrib combres iTextSharp linq.js CLEditor Moq RestSharp jQuery.Validation Simple.Data.Core MvcSiteMapProvider RavenDB 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 в компании VCS CI VCS VCS Храните проекты и конфигурацию пакетов в вашей системе контроля версий Создавайте проекты на базе пакетов NuGet, автоматизируйте создание и обновление собственных пакетов Интегрируйте NuGet в вашу систему Continuous Integration
Демонстрация создание своего сервера NuGet, интеграция в компании
NuGet в компании – это решение! • Единое хранилище лучших практик, библиотек и компонент компании • Быстрый доступ к сторонним компонентам • Однообразный подход к установке, обновлению и конфигурированию проектов • Интеграция в процессы разработки
Примеры применения NuGet в бизнесе примеры проектов
NuGet как средство доставки • Компания Devexpress
NuGet как сервис • MyGet.org - oблачный NuGet
NuGet и GitHub • NuGit.org – сервис интеграции с GitHub
Итоги NuGet • NuGet позволит организовать централизованный доступ к компонентам и практикам разработки приложений в компании • NuGet – это основа инфраструктуры разработки ПО • NuGet – функциональный инструмент с интеграцией в процессы разработки • NuGet – открытый механизм, который может стать основой ваших собственных сервисов