SlideShare una empresa de Scribd logo
1 de 35
Madrid, 9 y 10 de junio de 2015
ALM en Office 365
by Adrián Díaz
Adrián Díaz Cervera
MVP SharePoint Server
ENCAMINA
http://geeks.ms/blogs/adiazcervera
http://blogs.encamina.com/desarrollandosobresharepoint
@AdrianDiaz81
SharePoint Architect
ALM en Office 365
Índice
¿Qué es ALM?
¿Por qué ALM?
Tipos de Proyecto
Herramientas
Pruebas Unitarias
Integración Continua
Verificar calidad
Futuro ...
¿Qué es ALM?
Application lifecycle management
“Proceso continuo de la gestión de la
vida de una aplicación a través de la
gobernanza, el desarrollo y
mantenimiento”
Wikipedia
Application lifecycle management
■ Es la forma de crear software con calidad
■ 3 Puntos claves:
■ Gobernanza: asegurarse que la aplicación siempre provea lo que el negocio
necesite.
■ Desarrollo: la parte fundamental de ALM. Es la construcción del producto a
generar, que ocurre periódicamente en varias fases o iteraciones.
■ Operaciones: el planeamiento y ejecución del despliegue y monitoreo de la
aplicación.
Planificar Desarrollar OperarDespliegar
Procesos modernos de ALM
12 preguntas de Spolsky
■ Do you use source control?
■ Can you make a build in one step?
■ Do you make daily builds?
■ Do you have a bug database?
■ Do you fix bugs before writing new code?
■ Do you have an up-to-date schedule?
■ Do you have a spec?
■ Do programmers have quiet working conditions?
■ Do you use the best tools money can buy?
■ Do you have testers?
■ Do new candidates write code during their interview?
■ Do you do hallway usability testing?
■ http://www.joelonsoftware.com/articles/fog0000000043.html
ALM en 365
Consideraciones previas
■Diferente al ciclo en SharePoint => + sencillo + estándar
■Ventajas y cambios
■Conceptos como los pruebas, establecimiento de compilaciones,
implementación y control de calidad se pueden ampliar para incluir la
implementación en SharePoint como una aplicación de SharePoint.
■Soluciones consistentes en varios componentes de aplicación que abarcan o
combinan distintos tipos de opciones de hospedaje
■=> Estos requisitos pueden suponer un cambio significativo en la forma en que
desarrolladores y equipos afrontan el proceso diario de creación e implementación
Cloud First, Mobile First …
Fases en el ALM
Requisitos, Desarrollo, Diseño, Testing, Despliegue, Operaciones
Desarrollo: Entornos de desarrollo
Desarrollo: Tipo de Desarrollos
■Modelo Apps
■SharePoint Hosted
■Provider Hosted
■Office Apps
■Modelo Cloud
■Desarrollo Móvil (Xamarin, Cordova,..)
■Customizacion SharePoint Online
Desarrollo: Que debemos de tener en cuenta
■Desafíos
■Múltiples lenguajes(C#, PHP, JAVA, XML, HTML, CSS, JS)
■Dependencias criticas
■Equipo de desarrollo
■Buenas Practicas
■Control de código
■Convención sobre la configuración
■Desarrolladores especializados
■Estandarizar el entorno de desarrollo
■Usar herramientas complementarias como por ejemplo R#
Front End
■Desafíos
■No hay masterPage, PageLayout
■Igual que en otro productos
■Uso de herramientas no habituales en .NET (Node JS, Gulp, Grunt)
■Uso de generadores de JavaScript (TypeScript,EC6..)
■Buenas practicas
■Automatizar tareas: Generación de SASS
■Verificar el JavaScript (JSHint)
■Uso de estándares web (bower, npm …)
Testing
■Desafíos
■Hacer Pruebas Unitarias es complicado
■Hay funcionalidad estándar
■Los Test Manuales tienen un gran coste
■Buenas practicas
■Especificar los casos de Test
■Separar la lógica de negocio de los datos (bien datos SP, BD)
■Usar FrameWorks de mock (TypeMock, JustMock, Moles, Shims)
■Implementar Test de UI (Coded UI, Cucumber, VS TestManager…)
■Implementar Test de Carga
Asegurar la Calidad
■Desafíos
■Igual que otras herramientas como ASP.NET
■Uso del Cloud
■Diferentes Release según Tenant
■Buenas Practicas
■Asegurar la calidad en cada Check In
■Establecer la calidad
■Usar herramientas/plugins: FxCop, StyleCop and SPDisposeCheck, SPCaf
■Hacer code reviews
■Verificar el código de SharePoint
Despliegue
■Desafíos
■Test manuales
■Múltiples entornos (DEV, TEST, INT, PRE, PROD)
■La gente de sistema no son Desarrolladores
■Buenas practicas
■Estandarizar el proceso de despliegue
■Usar Powershell
■Incluir configuración y contenido
■Parametrizar el despliegue dependiendo de diferentes entorno
■Log todos los pasos del despliegue
■Automatizar las fases
Office 365 Practice and Patterns
■Proyecto Open Source liderado por la Comunidad Office 365
■Colaboran Gurus, MVP y empleados de Microsoft
■https://github.com/OfficeDev/PnP
■Objetivo:
■Unificar las buenas practicas de desarrollo
■Colaboración y dialogo
■Poner ejemplos y casos reales de utilización
ALM con
Visual Studio
Online
ALM con Visual Studio / TFS / VSO
¿Por qué Visual Studio ALM?
■Porque estamos en Microsoft
■Disponemos de todas las herramientas en un único punto
■Es nuestro “único punto de consulta (truth)”
■Tenemos dos posibilidades
■Cloud (Visual Studio Online)
■On-premises (Team Foundation Server)
■Hay otros sistemas, buscad y escoger …
■Mercurial
■Subversion
■….
GIT o TFS
GIT o TFS ¿Depende?
■GIT
■Equipos distribuidos
■Equipos maduros
■Habituados a qué es un gestor de código Fuente
■Producto con varias versiones/fuentes
■TFS
■Equipos centralizados
■Desarrolladores noveles
Q&A
Adrián Díaz Cervera
MVP SharePoint Server
ENCAMINA
http://geeks.ms/blogs/adiazcervera
http://blogs.encamina.com/desarrollandosobresharepoint
@AdrianDiaz81
SharePoint Architect
ALM en Office 365 con Visual Studio y TFS

Más contenido relacionado

La actualidad más candente

Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
 
Testing automatizado de aplicaciones web
Testing automatizado de aplicaciones webTesting automatizado de aplicaciones web
Testing automatizado de aplicaciones webAnibal Guzmán Miranda
 
Alta automatización de pruebas de calidad de software, cambio de paradigmas
Alta automatización de pruebas de calidad de software, cambio de paradigmasAlta automatización de pruebas de calidad de software, cambio de paradigmas
Alta automatización de pruebas de calidad de software, cambio de paradigmasSoftware Guru
 
20130329 Patrones de Aplicaciones para La nube #GWAB
20130329 Patrones de Aplicaciones para La nube #GWAB20130329 Patrones de Aplicaciones para La nube #GWAB
20130329 Patrones de Aplicaciones para La nube #GWABRicardo González
 
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...SpanishPASSVC
 
Integración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineIntegración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineErnesto Cardenas Cangahuala
 
Modelos de procesos de software
Modelos de procesos de softwareModelos de procesos de software
Modelos de procesos de softwareSonia Sosa
 
DevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continuaDevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continuaDavid Alvarez Palomo
 

La actualidad más candente (9)

Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
 
Testing automatizado de aplicaciones web
Testing automatizado de aplicaciones webTesting automatizado de aplicaciones web
Testing automatizado de aplicaciones web
 
Alta automatización de pruebas de calidad de software, cambio de paradigmas
Alta automatización de pruebas de calidad de software, cambio de paradigmasAlta automatización de pruebas de calidad de software, cambio de paradigmas
Alta automatización de pruebas de calidad de software, cambio de paradigmas
 
20130329 Patrones de Aplicaciones para La nube #GWAB
20130329 Patrones de Aplicaciones para La nube #GWAB20130329 Patrones de Aplicaciones para La nube #GWAB
20130329 Patrones de Aplicaciones para La nube #GWAB
 
METODOLOGIA XP
METODOLOGIA XPMETODOLOGIA XP
METODOLOGIA XP
 
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
 
Integración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineIntegración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio Online
 
Modelos de procesos de software
Modelos de procesos de softwareModelos de procesos de software
Modelos de procesos de software
 
DevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continuaDevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continua
 

Similar a ALM en Office 365 con Visual Studio y TFS

02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevidaclaudiappaez
 
Ruben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con FlexygoRuben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con FlexygoCOIICV
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasBelatrix Software
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25Demian Raschkovan
 
Pruebas de software con Microsoft Visual Studio 2013 y Visual Studio Online
Pruebas de software con Microsoft Visual Studio 2013 y Visual Studio OnlinePruebas de software con Microsoft Visual Studio 2013 y Visual Studio Online
Pruebas de software con Microsoft Visual Studio 2013 y Visual Studio OnlineWilly Marroquin (WillyDevNET)
 
[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo V[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo VGonzalo Chelme
 
Xamarin Fest DevOps
Xamarin Fest DevOpsXamarin Fest DevOps
Xamarin Fest DevOpsjuanmdura
 

Similar a ALM en Office 365 con Visual Studio y TFS (20)

02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevida
 
Ruben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con FlexygoRuben Pardo - Innovación, Modernización y Productividad con Flexygo
Ruben Pardo - Innovación, Modernización y Productividad con Flexygo
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Trabajo
TrabajoTrabajo
Trabajo
 
Desarrollo de software.pptx
Desarrollo de software.pptxDesarrollo de software.pptx
Desarrollo de software.pptx
 
Desarr
DesarrDesarr
Desarr
 
Desarrollo de proyectos
Desarrollo de proyectosDesarrollo de proyectos
Desarrollo de proyectos
 
Trabajo
TrabajoTrabajo
Trabajo
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Rup
RupRup
Rup
 
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
 
Pruebas de software con Microsoft Visual Studio 2013 y Visual Studio Online
Pruebas de software con Microsoft Visual Studio 2013 y Visual Studio OnlinePruebas de software con Microsoft Visual Studio 2013 y Visual Studio Online
Pruebas de software con Microsoft Visual Studio 2013 y Visual Studio Online
 
DevOps on AZURE
DevOps on AZUREDevOps on AZURE
DevOps on AZURE
 
[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo V[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo V
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Xamarin Fest DevOps
Xamarin Fest DevOpsXamarin Fest DevOps
Xamarin Fest DevOps
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 

Más de Adrian Diaz Cervera

Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAdrian Diaz Cervera
 
Como desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerComo desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerAdrian Diaz Cervera
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?Adrian Diaz Cervera
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureAdrian Diaz Cervera
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameAdrian Diaz Cervera
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAdrian Diaz Cervera
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Adrian Diaz Cervera
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NETAdrian Diaz Cervera
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordAdrian Diaz Cervera
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...Adrian Diaz Cervera
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesAdrian Diaz Cervera
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian Diaz Cervera
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesAdrian Diaz Cervera
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePointAdrian Diaz Cervera
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014Adrian Diaz Cervera
 

Más de Adrian Diaz Cervera (20)

gRPC vs Rest La batalla final
gRPC vs Rest La batalla finalgRPC vs Rest La batalla final
gRPC vs Rest La batalla final
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un Avenger
 
Como desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerComo desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico Avenger
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en Azure
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGame
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
 
Dockeriza tu SQL Server
Dockeriza tu SQL ServerDockeriza tu SQL Server
Dockeriza tu SQL Server
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NET
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
 
Asp vNext Is Comming
Asp vNext Is CommingAsp vNext Is Comming
Asp vNext Is Comming
 
Gapand 2015 machine learning
Gapand 2015 machine learningGapand 2015 machine learning
Gapand 2015 machine learning
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes sociales
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365
 
Extender office365
Extender office365 Extender office365
Extender office365
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresariales
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 

ALM en Office 365 con Visual Studio y TFS

  • 1. Madrid, 9 y 10 de junio de 2015 ALM en Office 365 by Adrián Díaz
  • 2.
  • 3. Adrián Díaz Cervera MVP SharePoint Server ENCAMINA http://geeks.ms/blogs/adiazcervera http://blogs.encamina.com/desarrollandosobresharepoint @AdrianDiaz81 SharePoint Architect
  • 5. Índice ¿Qué es ALM? ¿Por qué ALM? Tipos de Proyecto Herramientas Pruebas Unitarias Integración Continua Verificar calidad Futuro ...
  • 7. Application lifecycle management “Proceso continuo de la gestión de la vida de una aplicación a través de la gobernanza, el desarrollo y mantenimiento” Wikipedia
  • 8. Application lifecycle management ■ Es la forma de crear software con calidad ■ 3 Puntos claves: ■ Gobernanza: asegurarse que la aplicación siempre provea lo que el negocio necesite. ■ Desarrollo: la parte fundamental de ALM. Es la construcción del producto a generar, que ocurre periódicamente en varias fases o iteraciones. ■ Operaciones: el planeamiento y ejecución del despliegue y monitoreo de la aplicación.
  • 10.
  • 11. 12 preguntas de Spolsky ■ Do you use source control? ■ Can you make a build in one step? ■ Do you make daily builds? ■ Do you have a bug database? ■ Do you fix bugs before writing new code? ■ Do you have an up-to-date schedule? ■ Do you have a spec? ■ Do programmers have quiet working conditions? ■ Do you use the best tools money can buy? ■ Do you have testers? ■ Do new candidates write code during their interview? ■ Do you do hallway usability testing? ■ http://www.joelonsoftware.com/articles/fog0000000043.html
  • 13. Consideraciones previas ■Diferente al ciclo en SharePoint => + sencillo + estándar ■Ventajas y cambios ■Conceptos como los pruebas, establecimiento de compilaciones, implementación y control de calidad se pueden ampliar para incluir la implementación en SharePoint como una aplicación de SharePoint. ■Soluciones consistentes en varios componentes de aplicación que abarcan o combinan distintos tipos de opciones de hospedaje ■=> Estos requisitos pueden suponer un cambio significativo en la forma en que desarrolladores y equipos afrontan el proceso diario de creación e implementación
  • 14. Cloud First, Mobile First …
  • 15. Fases en el ALM Requisitos, Desarrollo, Diseño, Testing, Despliegue, Operaciones
  • 17. Desarrollo: Tipo de Desarrollos ■Modelo Apps ■SharePoint Hosted ■Provider Hosted ■Office Apps ■Modelo Cloud ■Desarrollo Móvil (Xamarin, Cordova,..) ■Customizacion SharePoint Online
  • 18. Desarrollo: Que debemos de tener en cuenta ■Desafíos ■Múltiples lenguajes(C#, PHP, JAVA, XML, HTML, CSS, JS) ■Dependencias criticas ■Equipo de desarrollo ■Buenas Practicas ■Control de código ■Convención sobre la configuración ■Desarrolladores especializados ■Estandarizar el entorno de desarrollo ■Usar herramientas complementarias como por ejemplo R#
  • 19. Front End ■Desafíos ■No hay masterPage, PageLayout ■Igual que en otro productos ■Uso de herramientas no habituales en .NET (Node JS, Gulp, Grunt) ■Uso de generadores de JavaScript (TypeScript,EC6..) ■Buenas practicas ■Automatizar tareas: Generación de SASS ■Verificar el JavaScript (JSHint) ■Uso de estándares web (bower, npm …)
  • 20. Testing ■Desafíos ■Hacer Pruebas Unitarias es complicado ■Hay funcionalidad estándar ■Los Test Manuales tienen un gran coste ■Buenas practicas ■Especificar los casos de Test ■Separar la lógica de negocio de los datos (bien datos SP, BD) ■Usar FrameWorks de mock (TypeMock, JustMock, Moles, Shims) ■Implementar Test de UI (Coded UI, Cucumber, VS TestManager…) ■Implementar Test de Carga
  • 21.
  • 22. Asegurar la Calidad ■Desafíos ■Igual que otras herramientas como ASP.NET ■Uso del Cloud ■Diferentes Release según Tenant ■Buenas Practicas ■Asegurar la calidad en cada Check In ■Establecer la calidad ■Usar herramientas/plugins: FxCop, StyleCop and SPDisposeCheck, SPCaf ■Hacer code reviews ■Verificar el código de SharePoint
  • 23.
  • 24. Despliegue ■Desafíos ■Test manuales ■Múltiples entornos (DEV, TEST, INT, PRE, PROD) ■La gente de sistema no son Desarrolladores ■Buenas practicas ■Estandarizar el proceso de despliegue ■Usar Powershell ■Incluir configuración y contenido ■Parametrizar el despliegue dependiendo de diferentes entorno ■Log todos los pasos del despliegue ■Automatizar las fases
  • 25. Office 365 Practice and Patterns ■Proyecto Open Source liderado por la Comunidad Office 365 ■Colaboran Gurus, MVP y empleados de Microsoft ■https://github.com/OfficeDev/PnP ■Objetivo: ■Unificar las buenas practicas de desarrollo ■Colaboración y dialogo ■Poner ejemplos y casos reales de utilización
  • 26.
  • 28. ALM con Visual Studio / TFS / VSO
  • 29. ¿Por qué Visual Studio ALM? ■Porque estamos en Microsoft ■Disponemos de todas las herramientas en un único punto ■Es nuestro “único punto de consulta (truth)” ■Tenemos dos posibilidades ■Cloud (Visual Studio Online) ■On-premises (Team Foundation Server) ■Hay otros sistemas, buscad y escoger … ■Mercurial ■Subversion ■….
  • 31. GIT o TFS ¿Depende? ■GIT ■Equipos distribuidos ■Equipos maduros ■Habituados a qué es un gestor de código Fuente ■Producto con varias versiones/fuentes ■TFS ■Equipos centralizados ■Desarrolladores noveles
  • 32.
  • 33. Q&A
  • 34. Adrián Díaz Cervera MVP SharePoint Server ENCAMINA http://geeks.ms/blogs/adiazcervera http://blogs.encamina.com/desarrollandosobresharepoint @AdrianDiaz81 SharePoint Architect

Notas del editor

  1. Build-Measure-Learn was coined in “The Lean Startup”, by Eric Ries. Although the discussion in the book is primarily focused on startup environments, aspects of it can be applied generally to help deliver value quickly. The main idea here is that agility can be achieved by iterating quickly through these high-level steps. The ALM capabilities of Team Foundation Server and Visual Studio help organizations through four different stages – Planning, Development, Release and Operations.
  2. En las empresas hay dos tipos de personas: unos entusiastas que quieren llevar las ultimas tecnologías aunque no la conozcan y otro tipo Mourinho que son más agrios y que nunca quieren los cambios
  3. Joel Spolsky fue uno de los fundadores de Stack Over Flow, jefe de producto de Word Perfect.
  4. Uno de los grandes problemas que tiene SharePoint es que para desarrollar es necesario tener un SharePoint en tu maquina o acceso al mismo, con lo cual es necesario ordenadores con grandes prestación. Ahora incluso desde un navegador es posible desarrollar para Office 365.
  5. Los desarrollos en Office 365 puedes ser muy variados y de todo los tipos pero vamos a centrarnos en los siguientes: