SlideShare una empresa de Scribd logo
MADRID · NOV 18-19 · 2016
Gestión de
dependencias
con tu propio
feed nuget
@lfraile
lfraile@lfraile.net
MADRID · NOV 18-19 · 2016
MADRID · NOV 18-19 · 2016
¿Por qué?
MADRID · NOV 18-19 · 2016
Por qué lo necesitamos
Reutilización de componentes
Gestión del cambio de versiones
Depuración de componentes compartidos
Asegurar la versión de nuestras dependencias
Desarrollo
Compilaciones
Entornos
MADRID · NOV 18-19 · 2016
Soluciones frecuentes
Carpetas compartidas UNC
DLL hell
Subir las librerias al repositorio
Versionado hell
Depuración hell
Repositorio hell
¿Pendrive?
No comments
MADRID · NOV 18-19 · 2016
Que aportan los paquetes NuGet
Coherencia de versiones
Gestión de dependencias
Centralización de paquetes comunes
Depuración con símbolos
Mejora de tiempos de compilación
MADRID · NOV 18-19 · 2016
¿Cuándo?
MADRID · NOV 18-19 · 2016
Referencias varios proyectos VS
Dentro de solución
Con bajo nivel modificaciones
Mejora tiempos de compilación
Facilita el trabajo en proyectos VS
MADRID · NOV 18-19 · 2016
Componentes reutilizables
Despues de estabilizar
Librerías communes en proyectos
Facilita la reutilización
Mejora el seguimiento de versionado
MADRID · NOV 18-19 · 2016
Scaffolding de estructuras
Reutilizables en distintos proyectos
Generación de estructuras communes
Facilita la estructura en proyectos similares
OJO no caer en los framework / churreras
MADRID · NOV 18-19 · 2016
Paquetes de terceros modificados
Componentes OSS modificados
También bajo nivel de modificaciones
Mejor reutilización
Minimización tiempos compilación
Facilidad en dependencias
MADRID · NOV 18-19 · 2016
Objetivos
Facilitar la división de las soluciones
Mejoras en la compilación
Entorno de desarrollo
Gestión de ciclo de dependencias
Asegurar versiones y entornos
Eliminar incertidumbre
Facilitar los procesos de kick-off
Clone/pull+ Build == success
Facilitar interdependencias entre equipos
MADRID · NOV 18-19 · 2016
Tips
Publica tus símbolos
Agrega todo lo necesario al paquete
Versionado (SemVer)
Automatiza la creación y publicación
Objetivo: facilitar la compilación “from scratch”
Referencias para desarrollo en la creación de paquetes
MADRID · NOV 18-19 · 2016
Generación de
paquetes
MADRID · NOV 18-19 · 2016
Generación .nupkg
Fichero de definición nuspec
Contiene las propiedades del paquete
Creación con nuget spec XXX.csproj
Nuget pack
Línea de commandos de generación
Directo a través de un csproj
Usando fichero nuspec
https://docs.nuget.org/Create/Creating-and-Publishing-a-Package
MADRID · NOV 18-19 · 2016
Fichero NuSpec
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>EppPlus custom</title>
<authors>$author$</authors>
<owners>$author$</owners>
<description>$description$</description>
<releaseNotes>Customized EPPPlus package.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags></tags>
</metadata>
<files>
<file src="scriptsinit.ps1" target="toolsinit.ps1" />
<file src="contentimagesayudante.jpg" target="contentimgayudante.jpg"/>
</files>
</package>
https://docs.nuget.org/create/nuspec-reference
$id$
- nombre de assembly
$version$
- AssemblyVersionAttribute /
AssemblyInformationalVersionAtt
ribute
$author$
- AssemblyCompanyAttribute.
$description$
- AssemblyDescriptionAttribute.
$configuration$
- Configuración usada en
compilación
MADRID · NOV 18-19 · 2016
Más secciones
Dependencias
Paquetes nuget
Assemblies
Framework
GAC
Dependencias en desarrollo (packages.config)
Ficheros a incluir
Imágenes
CSS
Origen y destino en instalación
MADRID · NOV 18-19 · 2016
Ejecución de acciones PowerShell
Init.ps1
Ejecución única durante instalación
Ejecución en apertura de solución
Install.ps1
Ejecución en instalación (por Proyecto)
Después de init.ps1
Uninstall.ps1
Ejecución en desinstalación
Setup
param($installPath, $toolsPath, $package, $project)
Directorio Tools
MADRID · NOV 18-19 · 2016
Creación nupkg
MADRID · NOV 18-19 · 2016
Gestión de
paquetes en
VSTS
MADRID · NOV 18-19 · 2016
Extensión de VSTS en la galería
En preview Ya disponible
Gratuita … por ahora … Gratis hasta 5 usuarios
Soporta npm
Dos tipos de feed
Privados al equipo
Públicos a todos los equipos VSTS
Totalmente integrado en VSTS
MADRID · NOV 18-19 · 2016
Creación
publicación y
consumo VSTS
MADRID · NOV 18-19 · 2016
MyGet
MADRID · NOV 18-19 · 2016
MyGet
Producto comercial
La referencia en cuanto a feeds privados
También tiene feeds públicos
Más completo que VSTS
Dispone de publicación de símbolos
MADRID · NOV 18-19 · 2016
Publicación y
consumo
MyGet
MADRID · NOV 18-19 · 2016
Depuración
MADRID · NOV 18-19 · 2016
Publicación símbolos
Por ahora solo MyGet
Generados durante la build
Parámetro -Symbols
Se publican automáticamente
Con MyGet
Con VSTS no se pueden publicar
MADRID · NOV 18-19 · 2016
Consumo de símbolos
Configuración a nivel de Visual Studio
Parámetro “Enable Just My Code”
Configuración de símbolos
Fuentes de símbolos
Caché Local de símbolos
Módulos a incluir/Excluir
F11 …
MADRID · NOV 18-19 · 2016
Depuración de
paquetes
MADRID · NOV 18-19 · 2016
Conclusiones
Gestionar los paquetes es un must-have
Facilitar compilaciones
Mejorar tiempos de builds
Mejorar la gestión de soluciones
Facilitar la gestión de dependencias
Facilitar depuración con símbolos
Evitar “DLL Hell”
MADRID · NOV 18-19 · 2016
¡¡GRACIAS!!
Luis Fraile
@lfraile
Lfraile@Lfraile.net

Más contenido relacionado

La actualidad más candente

TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?Pablo Bouzada
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
Micael Gallego
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Micael Gallego
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NET
Jonathan González
 
Introducción a WPF
Introducción a WPFIntroducción a WPF
Introducción a WPF
Rodolfo Finochietti
 
.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0
Luis Ruiz Pavón
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en WindowsAntonio Ognio
 
Uso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaUso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomla
Roberto Segura
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
Micael Gallego
 
Aplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptAplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScript
Luis Guerrero
 
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Pablo Arias
 
Introducción a ASPNET vNext
Introducción a ASPNET vNextIntroducción a ASPNET vNext
Introducción a ASPNET vNextJulito Avellaneda
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un Hackathon
Carlos Azaustre
 
Visual studio codespaces + azure devops
Visual studio codespaces + azure devopsVisual studio codespaces + azure devops
Visual studio codespaces + azure devops
Miguel Angel Teheran Garcia
 
Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
Micael Gallego
 
Python gui-mvc-pyqt
Python gui-mvc-pyqtPython gui-mvc-pyqt
Python gui-mvc-pyqt
alexis ibarra
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net
Globant
 
.NET Core
.NET Core.NET Core
.NET Core
Mariano Sánchez
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
César Hernández
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 

La actualidad más candente (20)

TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NET
 
Introducción a WPF
Introducción a WPFIntroducción a WPF
Introducción a WPF
 
.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
 
Uso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaUso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomla
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Aplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptAplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScript
 
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
 
Introducción a ASPNET vNext
Introducción a ASPNET vNextIntroducción a ASPNET vNext
Introducción a ASPNET vNext
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un Hackathon
 
Visual studio codespaces + azure devops
Visual studio codespaces + azure devopsVisual studio codespaces + azure devops
Visual studio codespaces + azure devops
 
Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
 
Python gui-mvc-pyqt
Python gui-mvc-pyqtPython gui-mvc-pyqt
Python gui-mvc-pyqt
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net
 
.NET Core
.NET Core.NET Core
.NET Core
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 

Similar a Gestiona tus dependencias con NuGet, VSTs y MyGet

Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGetGestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Luis Fraile
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
Enrique Catala Bañuls
 
Docker4developers Codemotion2016
Docker4developers Codemotion2016Docker4developers Codemotion2016
Docker4developers Codemotion2016
Raúl Requero García
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Open Canarias
 
Dc salad
Dc saladDc salad
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep Dive
Eduard Tomàs
 
Asp.net 5 en linux y mac, herramientas e integración
Asp.net 5 en linux y mac, herramientas e integraciónAsp.net 5 en linux y mac, herramientas e integración
Asp.net 5 en linux y mac, herramientas e integración
robertogg
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
Rafa Hidalgo
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
Richard Eliseo Mendoza Gafaro
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
Imanol Iza Martin
 
ASP.NET vNext... Desarrollo cross platform
ASP.NET vNext... Desarrollo cross platformASP.NET vNext... Desarrollo cross platform
ASP.NET vNext... Desarrollo cross platform
Eduard Tomàs
 
Guía de Introducción a MAXQDA (Investigación Cualitativa)
Guía de Introducción a MAXQDA (Investigación Cualitativa)Guía de Introducción a MAXQDA (Investigación Cualitativa)
Guía de Introducción a MAXQDA (Investigación Cualitativa)
lucmelo
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018
crevillo
 
Application Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BIApplication Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BI
[T]echdencias
 
Drupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experienciaDrupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experiencia
Samuel Solís Fuentes
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
Paradigma Digital
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
Marta Alfonso Aller
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
SUGES (SharePoint Users Group España)
 
Atica Dev Ops II
Atica Dev Ops IIAtica Dev Ops II
Asp.Net vNext - La revolución que viene
Asp.Net vNext - La revolución que vieneAsp.Net vNext - La revolución que viene
Asp.Net vNext - La revolución que viene
Eduard Tomàs
 

Similar a Gestiona tus dependencias con NuGet, VSTs y MyGet (20)

Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGetGestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Docker4developers Codemotion2016
Docker4developers Codemotion2016Docker4developers Codemotion2016
Docker4developers Codemotion2016
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Dc salad
Dc saladDc salad
Dc salad
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep Dive
 
Asp.net 5 en linux y mac, herramientas e integración
Asp.net 5 en linux y mac, herramientas e integraciónAsp.net 5 en linux y mac, herramientas e integración
Asp.net 5 en linux y mac, herramientas e integración
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
 
ASP.NET vNext... Desarrollo cross platform
ASP.NET vNext... Desarrollo cross platformASP.NET vNext... Desarrollo cross platform
ASP.NET vNext... Desarrollo cross platform
 
Guía de Introducción a MAXQDA (Investigación Cualitativa)
Guía de Introducción a MAXQDA (Investigación Cualitativa)Guía de Introducción a MAXQDA (Investigación Cualitativa)
Guía de Introducción a MAXQDA (Investigación Cualitativa)
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018
 
Application Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BIApplication Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BI
 
Drupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experienciaDrupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experiencia
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Atica Dev Ops II
Atica Dev Ops IIAtica Dev Ops II
Atica Dev Ops II
 
Asp.Net vNext - La revolución que viene
Asp.Net vNext - La revolución que vieneAsp.Net vNext - La revolución que viene
Asp.Net vNext - La revolución que viene
 

Más de Luis Fraile

Code Security with GitHub Advanced Security
Code Security with GitHub Advanced SecurityCode Security with GitHub Advanced Security
Code Security with GitHub Advanced Security
Luis Fraile
 
GitHub Codespacescon .NET Core
GitHub Codespacescon .NET CoreGitHub Codespacescon .NET Core
GitHub Codespacescon .NET Core
Luis Fraile
 
Bilbostack 2020 - El camino de l a entrega en DevOps
Bilbostack 2020 - El camino de l a entrega en DevOpsBilbostack 2020 - El camino de l a entrega en DevOps
Bilbostack 2020 - El camino de l a entrega en DevOps
Luis Fraile
 
Un ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOpsUn ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOps
Luis Fraile
 
Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017
Luis Fraile
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team Services
Luis Fraile
 
Validando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitecturaValidando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitectura
Luis Fraile
 
ALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitecturaALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitectura
Luis Fraile
 
Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014
Luis Fraile
 
[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010Luis Fraile
 
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008Luis Fraile
 
Team Foundation Server Build 2010
Team Foundation Server Build 2010Team Foundation Server Build 2010
Team Foundation Server Build 2010
Luis Fraile
 

Más de Luis Fraile (12)

Code Security with GitHub Advanced Security
Code Security with GitHub Advanced SecurityCode Security with GitHub Advanced Security
Code Security with GitHub Advanced Security
 
GitHub Codespacescon .NET Core
GitHub Codespacescon .NET CoreGitHub Codespacescon .NET Core
GitHub Codespacescon .NET Core
 
Bilbostack 2020 - El camino de l a entrega en DevOps
Bilbostack 2020 - El camino de l a entrega en DevOpsBilbostack 2020 - El camino de l a entrega en DevOps
Bilbostack 2020 - El camino de l a entrega en DevOps
 
Un ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOpsUn ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOps
 
Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team Services
 
Validando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitecturaValidando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitectura
 
ALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitecturaALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitectura
 
Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014
 
[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010
 
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
 
Team Foundation Server Build 2010
Team Foundation Server Build 2010Team Foundation Server Build 2010
Team Foundation Server Build 2010
 

Último

Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 

Último (20)

Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 

Gestiona tus dependencias con NuGet, VSTs y MyGet

  • 1. MADRID · NOV 18-19 · 2016 Gestión de dependencias con tu propio feed nuget @lfraile lfraile@lfraile.net MADRID · NOV 18-19 · 2016
  • 2. MADRID · NOV 18-19 · 2016 ¿Por qué?
  • 3. MADRID · NOV 18-19 · 2016 Por qué lo necesitamos Reutilización de componentes Gestión del cambio de versiones Depuración de componentes compartidos Asegurar la versión de nuestras dependencias Desarrollo Compilaciones Entornos
  • 4. MADRID · NOV 18-19 · 2016 Soluciones frecuentes Carpetas compartidas UNC DLL hell Subir las librerias al repositorio Versionado hell Depuración hell Repositorio hell ¿Pendrive? No comments
  • 5. MADRID · NOV 18-19 · 2016 Que aportan los paquetes NuGet Coherencia de versiones Gestión de dependencias Centralización de paquetes comunes Depuración con símbolos Mejora de tiempos de compilación
  • 6. MADRID · NOV 18-19 · 2016 ¿Cuándo?
  • 7. MADRID · NOV 18-19 · 2016 Referencias varios proyectos VS Dentro de solución Con bajo nivel modificaciones Mejora tiempos de compilación Facilita el trabajo en proyectos VS
  • 8. MADRID · NOV 18-19 · 2016 Componentes reutilizables Despues de estabilizar Librerías communes en proyectos Facilita la reutilización Mejora el seguimiento de versionado
  • 9. MADRID · NOV 18-19 · 2016 Scaffolding de estructuras Reutilizables en distintos proyectos Generación de estructuras communes Facilita la estructura en proyectos similares OJO no caer en los framework / churreras
  • 10. MADRID · NOV 18-19 · 2016 Paquetes de terceros modificados Componentes OSS modificados También bajo nivel de modificaciones Mejor reutilización Minimización tiempos compilación Facilidad en dependencias
  • 11. MADRID · NOV 18-19 · 2016 Objetivos Facilitar la división de las soluciones Mejoras en la compilación Entorno de desarrollo Gestión de ciclo de dependencias Asegurar versiones y entornos Eliminar incertidumbre Facilitar los procesos de kick-off Clone/pull+ Build == success Facilitar interdependencias entre equipos
  • 12. MADRID · NOV 18-19 · 2016 Tips Publica tus símbolos Agrega todo lo necesario al paquete Versionado (SemVer) Automatiza la creación y publicación Objetivo: facilitar la compilación “from scratch” Referencias para desarrollo en la creación de paquetes
  • 13. MADRID · NOV 18-19 · 2016 Generación de paquetes
  • 14. MADRID · NOV 18-19 · 2016 Generación .nupkg Fichero de definición nuspec Contiene las propiedades del paquete Creación con nuget spec XXX.csproj Nuget pack Línea de commandos de generación Directo a través de un csproj Usando fichero nuspec https://docs.nuget.org/Create/Creating-and-Publishing-a-Package
  • 15. MADRID · NOV 18-19 · 2016 Fichero NuSpec <?xml version="1.0"?> <package > <metadata> <id>$id$</id> <version>$version$</version> <title>EppPlus custom</title> <authors>$author$</authors> <owners>$author$</owners> <description>$description$</description> <releaseNotes>Customized EPPPlus package.</releaseNotes> <copyright>Copyright 2016</copyright> <tags></tags> </metadata> <files> <file src="scriptsinit.ps1" target="toolsinit.ps1" /> <file src="contentimagesayudante.jpg" target="contentimgayudante.jpg"/> </files> </package> https://docs.nuget.org/create/nuspec-reference $id$ - nombre de assembly $version$ - AssemblyVersionAttribute / AssemblyInformationalVersionAtt ribute $author$ - AssemblyCompanyAttribute. $description$ - AssemblyDescriptionAttribute. $configuration$ - Configuración usada en compilación
  • 16. MADRID · NOV 18-19 · 2016 Más secciones Dependencias Paquetes nuget Assemblies Framework GAC Dependencias en desarrollo (packages.config) Ficheros a incluir Imágenes CSS Origen y destino en instalación
  • 17. MADRID · NOV 18-19 · 2016 Ejecución de acciones PowerShell Init.ps1 Ejecución única durante instalación Ejecución en apertura de solución Install.ps1 Ejecución en instalación (por Proyecto) Después de init.ps1 Uninstall.ps1 Ejecución en desinstalación Setup param($installPath, $toolsPath, $package, $project) Directorio Tools
  • 18. MADRID · NOV 18-19 · 2016 Creación nupkg
  • 19. MADRID · NOV 18-19 · 2016 Gestión de paquetes en VSTS
  • 20. MADRID · NOV 18-19 · 2016 Extensión de VSTS en la galería En preview Ya disponible Gratuita … por ahora … Gratis hasta 5 usuarios Soporta npm Dos tipos de feed Privados al equipo Públicos a todos los equipos VSTS Totalmente integrado en VSTS
  • 21. MADRID · NOV 18-19 · 2016 Creación publicación y consumo VSTS
  • 22. MADRID · NOV 18-19 · 2016 MyGet
  • 23. MADRID · NOV 18-19 · 2016 MyGet Producto comercial La referencia en cuanto a feeds privados También tiene feeds públicos Más completo que VSTS Dispone de publicación de símbolos
  • 24. MADRID · NOV 18-19 · 2016 Publicación y consumo MyGet
  • 25. MADRID · NOV 18-19 · 2016 Depuración
  • 26. MADRID · NOV 18-19 · 2016 Publicación símbolos Por ahora solo MyGet Generados durante la build Parámetro -Symbols Se publican automáticamente Con MyGet Con VSTS no se pueden publicar
  • 27. MADRID · NOV 18-19 · 2016 Consumo de símbolos Configuración a nivel de Visual Studio Parámetro “Enable Just My Code” Configuración de símbolos Fuentes de símbolos Caché Local de símbolos Módulos a incluir/Excluir F11 …
  • 28. MADRID · NOV 18-19 · 2016 Depuración de paquetes
  • 29. MADRID · NOV 18-19 · 2016 Conclusiones Gestionar los paquetes es un must-have Facilitar compilaciones Mejorar tiempos de builds Mejorar la gestión de soluciones Facilitar la gestión de dependencias Facilitar depuración con símbolos Evitar “DLL Hell”
  • 30. MADRID · NOV 18-19 · 2016 ¡¡GRACIAS!! Luis Fraile @lfraile Lfraile@Lfraile.net