SlideShare una empresa de Scribd logo
José Antonio Estevan
Extensiones, y que la
fuerza nos acompañe.
About the Speaker
•José Antonio Estevan
•jaestevan.com
•@jaestevan
Premier Field Engineer @ Microsoft
+14 Years Dynamics AX Experience
Former MVP
Proud geek
Extensiones, y que la fuerza nos
acompañe
1
2
3
4
¿Qué son?
La fuerza
¿Por qué son necesarias?
Poderoso el lado oscuro es
¿Cómo pensar en extensiones?
Aprender a usar la fuerza, tu debes…
¿Y a partir de ahora?
Que la fuerza nos acompañe
¿Qué son?
ArtefactoEnAOT
-Atributo 1: EDT
+ Metodo 1()
-Atributo 2: EDT
ArtefactoEnAOT
-Atributo 1: EDT
+ Metodo 1 modif()
+ Metodo 2 nuevo()
-Atributo 2: Mi valor
• Overlay: El lado oscuro
¿Qué son?
ArtefactoEnAOT
-Atributo 1: EDT
+ Metodo 1()
-Atributo 2: EDT
ArtefactoM1_Extension
-Atributo 2: Mi valor
ArtefactoM2_Extension
+ Metodo 1 modif()
+ Metodo 2 nuevo()
Extends
Augments
• Extensiones: La fuerza
¿Por qué extensiones?
‘Overlay’ no
permitido
Menor coste de
propiedad
Aumento de la
calidad
Soporte para
actualización continua
Every customer on latest release; always.
Personalizaciones no intrusivas
No cambiar la
definición de tipos
Cambiar firma de métodos
Cambiar restricciones en tablas
(incluyendo índices)
No romper la
encapsulación
Cambiar modificadores de
acceso a métodos
(public – private – protected)
Solo cambios de
naturaleza aditiva
NO OVER-LAYERING
Cambios que no cumplan el
Principio de Liskov
Permitir el principio
Abierto/Cerrado
Los objetos (clases, módulos, métodos)
deben ser abiertos a extensión y
cerrados para modificación
Personalizaciones no intrusivas
Clases de extensión (+CoC)
Subscripción a eventos y delegados
Extensiones por metadatos
SysExtension y otros frameworks
https://blogs.msdn.microsoft.com/axinthefield/embrace-the-extensions-mindset-with-dynamics-365-for-finance-and-operations/
¡¿Solo eso?!
• Se puede cambiar el texto que ven los usuarios (aka. Labels).
• Se pueden extender enums (los que son extensibles)
• Se pueden añadir campos, relaciones, índices y métodos a tablas.
• Se pueden añadir controles, datasources y métodos a formularios.
• Se pueden añadir métodos y estado (atributos) a clases.
• Se pueden ”envolver” (wrap) métodos protected y public en clases para inyectar
código personalizado en la ejecución (Chain-of-Command).
• Se pueden subscribir eventos personalizados y del sistema utilizando sólo
atributos. (Sí, tenemos una patente sobre esto).
• Se puede responder a delegados de forma segura, incluso con varios suscriptores
(hay que ser un “buen ciudadano”).
• Se pueden crear factorías de clases con SysExtension framework.
https://blogs.msdn.microsoft.com/mfp/2018/03/29/x-the-most-extensible-language-on-the-planet-2/
Chain of Command (CoC)
• Permite que los métodos sean ‘envueltos’ (wrapped) en
clases de extensión.
• Estos métodos deben incluir una llamada al método next, que
ejecuta el código original o la siguiente llamada en la ‘cadena’
• Permite acceder a métodos y miembros public y protected
de la clase original (a su estado).
• Se pueden ‘envolver’ varios métodos en una misma clase de
extensión para crear una funcionalidad compleja coherente.
• Beneficios:
• Permite habilitar muchos casos de extensibilidad con un mínimo refactor
• Permite habilitar una gran cantidad de casos reportados por partners
• El código resultante es más fácil de crear y entender
• Permite múltiples extensiones y partners sin colisión
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/method-wrapping-coc
Chain of Command (CoC)
Requerimientos:
a) Cambiar el valor devuelto por calcAmount()
b) Insertar lo que hace post() en un log, en la misma transacción.
Non-developer extensions
• Embed Power Apps
• User-defined fields
• Permiten añadir datos y
elementos de la interfaz
de forma no intrusiva y
sin código
https://docs.microsoft.com/es-es/dynamics365/unified-operations/fin-and-ops/get-started/user-defined-fields
https://docs.microsoft.com/es-es/dynamics365/unified-operations/fin-and-ops/get-started/embed-power-apps
Alternativas
• Refactorizar el código para evitar cambios
intrusivos utilizando extensiones.
• Trabajar con los equipos de Microsoft en el
análisis de nuevas posibilidades de extensión
(Extensibility Requests o programas para ISV)
• Aceptar que tu solución/implementación no
es viable para Dynamics 365 for Finance and
Operations
¿Cuál es era el plan?
Kernel / Platform
App Platform
App Foundation
Hard seal
Hard seal
Nov 2016 – 7.1
Hard seal
Jun 2017 – 7.3
Hard seal
Apr 2018 – 8.0
Extension based
customizations only!
Hard seal
Nov 2016 – 7.1
Hard seal
Hard seal
Nov 2016 – 7.1
Hard seal
Jun 2017 – 7.3
Hard seal
Nov 2016 – 7.1
Hard seal
Dec 2017 – 7.2
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/migration-upgrade/versions-update-policy
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/extensibility-roadmap
¡¿Y ahora qué?!
Disfruta de una experiencia sin costosas actualizaciones, siempre
aprovechando los avances de la última versión.
Customers
Eliminar todo overlay evitando modificaciones intrusivas
mediante las opciones de extensión que hemos visto.
VARs
Eliminar todo overlay de sus soluciones para hacerlas
extensibles por clientes y VARs y permitir una fácil instalación.
ISVs
Facilitar opciones de extensión no intrusivas mediante nuevas
funcionalidades en la plataforma y la adaptación del código
de la aplicación.
Microsoft
https://docs.microsoft.com/es-es/dynamics365/unified-operations/dev-itpro/extensibility/extensib
Resumen
• Entender los beneficios del modelo de
personalización basado en extensiones.
• Comprender las posibilidades de extensión no
intrusivas del producto.
• Aprender nuevos patrones para refactorizar código
de ‘overlay’ a extensiones.
Every customer on
latest release; always.
¡Muchas gracias!
Dynamics 365 Community
The Dynamics 365 Community is a site where you can find community contributions, ask questions and
interact with Microsoft Dynamics peers and experts. The community has over 200K members and is
growing.
New UI/UX: https://community.dynamics365.com

Más contenido relacionado

Similar a Dynamics saturday madrid 2018 extensiones y que la fuerza te acompane - jose antonio

LAIT602_AI_AVILA_ARTURO.pptx
LAIT602_AI_AVILA_ARTURO.pptxLAIT602_AI_AVILA_ARTURO.pptx
LAIT602_AI_AVILA_ARTURO.pptx
arturoavilacamacho1
 
Emprendiendo Negocios con Software Libre
Emprendiendo Negocios con Software LibreEmprendiendo Negocios con Software Libre
Emprendiendo Negocios con Software Libre
KOKOA - Comunidad de Software Libre
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
Pedro Ballesteros
 
03 webinar content_deliveryplatform_v1.0-intix
03 webinar content_deliveryplatform_v1.0-intix03 webinar content_deliveryplatform_v1.0-intix
03 webinar content_deliveryplatform_v1.0-intix
Roger CARHUATOCTO
 
Nexus y la Deuda Tecnica
Nexus y la Deuda TecnicaNexus y la Deuda Tecnica
Nexus y la Deuda Tecnica
Jorge Hernán Abad Londoño
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
Javier Muñoz
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extrema
peraltag
 
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)
 
Cómo gestionar el ciclo de vida de soluciones SPFx
Cómo gestionar el ciclo de vida de soluciones SPFxCómo gestionar el ciclo de vida de soluciones SPFx
Cómo gestionar el ciclo de vida de soluciones SPFx
SUGES (SharePoint Users Group España)
 
Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017
Eduardo Diaz
 
Planes De Entrenamiento En TecnologíA
Planes De Entrenamiento En TecnologíAPlanes De Entrenamiento En TecnologíA
Planes De Entrenamiento En TecnologíA
LUISVALENZUELA
 
Clase 4, 29/8/2007
Clase 4, 29/8/2007Clase 4, 29/8/2007
Clase 4, 29/8/2007
Christian Sifaqui
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
rogergrefa1
 
diferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext jsdiferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext js
christian enrique portilla pauca
 
Mda Para Dummies
Mda Para DummiesMda Para Dummies
Mda Para Dummies
solnatec
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
Luciano Moreira da Cruz
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
AderMogollonLuna
 
Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...
Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...
Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...
DQSconsulting
 
Activica - Soluciones de Software
Activica - Soluciones de SoftwareActivica - Soluciones de Software
Activica - Soluciones de Software
Activica
 
Asegúr@IT IV - Microsoft y Seguridad
Asegúr@IT IV - Microsoft y SeguridadAsegúr@IT IV - Microsoft y Seguridad
Asegúr@IT IV - Microsoft y Seguridad
Chema Alonso
 

Similar a Dynamics saturday madrid 2018 extensiones y que la fuerza te acompane - jose antonio (20)

LAIT602_AI_AVILA_ARTURO.pptx
LAIT602_AI_AVILA_ARTURO.pptxLAIT602_AI_AVILA_ARTURO.pptx
LAIT602_AI_AVILA_ARTURO.pptx
 
Emprendiendo Negocios con Software Libre
Emprendiendo Negocios con Software LibreEmprendiendo Negocios con Software Libre
Emprendiendo Negocios con Software Libre
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
03 webinar content_deliveryplatform_v1.0-intix
03 webinar content_deliveryplatform_v1.0-intix03 webinar content_deliveryplatform_v1.0-intix
03 webinar content_deliveryplatform_v1.0-intix
 
Nexus y la Deuda Tecnica
Nexus y la Deuda TecnicaNexus y la Deuda Tecnica
Nexus y la Deuda Tecnica
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extrema
 
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
 
Cómo gestionar el ciclo de vida de soluciones SPFx
Cómo gestionar el ciclo de vida de soluciones SPFxCómo gestionar el ciclo de vida de soluciones SPFx
Cómo gestionar el ciclo de vida de soluciones SPFx
 
Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017
 
Planes De Entrenamiento En TecnologíA
Planes De Entrenamiento En TecnologíAPlanes De Entrenamiento En TecnologíA
Planes De Entrenamiento En TecnologíA
 
Clase 4, 29/8/2007
Clase 4, 29/8/2007Clase 4, 29/8/2007
Clase 4, 29/8/2007
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
 
diferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext jsdiferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext js
 
Mda Para Dummies
Mda Para DummiesMda Para Dummies
Mda Para Dummies
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
 
Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...
Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...
Por qué migrar tu ERP actual a Dynamics 365 Finance y Supply Chain … y si ya ...
 
Activica - Soluciones de Software
Activica - Soluciones de SoftwareActivica - Soluciones de Software
Activica - Soluciones de Software
 
Asegúr@IT IV - Microsoft y Seguridad
Asegúr@IT IV - Microsoft y SeguridadAsegúr@IT IV - Microsoft y Seguridad
Asegúr@IT IV - Microsoft y Seguridad
 

Más de Demian Raschkovan

Que ha sido de wally
Que ha sido de wallyQue ha sido de wally
Que ha sido de wally
Demian Raschkovan
 
Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integraciones
Demian Raschkovan
 
Dynamics saturday online 2020 gestion de credito v1.0
Dynamics saturday online 2020   gestion de credito v1.0Dynamics saturday online 2020   gestion de credito v1.0
Dynamics saturday online 2020 gestion de credito v1.0
Demian Raschkovan
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
Demian Raschkovan
 
Hjp saturday 2020_v2
Hjp saturday 2020_v2Hjp saturday 2020_v2
Hjp saturday 2020_v2
Demian Raschkovan
 
Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365
Demian Raschkovan
 
Chateando con power apps
Chateando con power appsChateando con power apps
Chateando con power apps
Demian Raschkovan
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platform
Demian Raschkovan
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365
Demian Raschkovan
 
Dynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdf
Demian Raschkovan
 
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Demian Raschkovan
 
Automatizando flujos con teams y power automate
Automatizando flujos con teams y power automateAutomatizando flujos con teams y power automate
Automatizando flujos con teams y power automate
Demian Raschkovan
 
Power bi fromzeroto bi hero
Power bi fromzeroto bi heroPower bi fromzeroto bi hero
Power bi fromzeroto bi hero
Demian Raschkovan
 
Definir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDefinir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo control
Demian Raschkovan
 
Todo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroTodo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique Romero
Demian Raschkovan
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!
Demian Raschkovan
 
Empower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformEmpower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platform
Demian Raschkovan
 
Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)
Demian Raschkovan
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDS
Demian Raschkovan
 
Mejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsMejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive Cards
Demian Raschkovan
 

Más de Demian Raschkovan (20)

Que ha sido de wally
Que ha sido de wallyQue ha sido de wally
Que ha sido de wally
 
Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integraciones
 
Dynamics saturday online 2020 gestion de credito v1.0
Dynamics saturday online 2020   gestion de credito v1.0Dynamics saturday online 2020   gestion de credito v1.0
Dynamics saturday online 2020 gestion de credito v1.0
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
 
Hjp saturday 2020_v2
Hjp saturday 2020_v2Hjp saturday 2020_v2
Hjp saturday 2020_v2
 
Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365
 
Chateando con power apps
Chateando con power appsChateando con power apps
Chateando con power apps
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platform
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365
 
Dynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdf
 
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
 
Automatizando flujos con teams y power automate
Automatizando flujos con teams y power automateAutomatizando flujos con teams y power automate
Automatizando flujos con teams y power automate
 
Power bi fromzeroto bi hero
Power bi fromzeroto bi heroPower bi fromzeroto bi hero
Power bi fromzeroto bi hero
 
Definir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDefinir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo control
 
Todo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroTodo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique Romero
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!
 
Empower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformEmpower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platform
 
Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDS
 
Mejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsMejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive Cards
 

Último

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Festibity
 

Último (20)

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
 

Dynamics saturday madrid 2018 extensiones y que la fuerza te acompane - jose antonio

  • 1. José Antonio Estevan Extensiones, y que la fuerza nos acompañe.
  • 2.
  • 3. About the Speaker •José Antonio Estevan •jaestevan.com •@jaestevan Premier Field Engineer @ Microsoft +14 Years Dynamics AX Experience Former MVP Proud geek
  • 4. Extensiones, y que la fuerza nos acompañe 1 2 3 4 ¿Qué son? La fuerza ¿Por qué son necesarias? Poderoso el lado oscuro es ¿Cómo pensar en extensiones? Aprender a usar la fuerza, tu debes… ¿Y a partir de ahora? Que la fuerza nos acompañe
  • 5. ¿Qué son? ArtefactoEnAOT -Atributo 1: EDT + Metodo 1() -Atributo 2: EDT ArtefactoEnAOT -Atributo 1: EDT + Metodo 1 modif() + Metodo 2 nuevo() -Atributo 2: Mi valor • Overlay: El lado oscuro
  • 6. ¿Qué son? ArtefactoEnAOT -Atributo 1: EDT + Metodo 1() -Atributo 2: EDT ArtefactoM1_Extension -Atributo 2: Mi valor ArtefactoM2_Extension + Metodo 1 modif() + Metodo 2 nuevo() Extends Augments • Extensiones: La fuerza
  • 7.
  • 8.
  • 9. ¿Por qué extensiones? ‘Overlay’ no permitido Menor coste de propiedad Aumento de la calidad Soporte para actualización continua Every customer on latest release; always.
  • 10. Personalizaciones no intrusivas No cambiar la definición de tipos Cambiar firma de métodos Cambiar restricciones en tablas (incluyendo índices) No romper la encapsulación Cambiar modificadores de acceso a métodos (public – private – protected) Solo cambios de naturaleza aditiva NO OVER-LAYERING Cambios que no cumplan el Principio de Liskov Permitir el principio Abierto/Cerrado Los objetos (clases, módulos, métodos) deben ser abiertos a extensión y cerrados para modificación
  • 11. Personalizaciones no intrusivas Clases de extensión (+CoC) Subscripción a eventos y delegados Extensiones por metadatos SysExtension y otros frameworks https://blogs.msdn.microsoft.com/axinthefield/embrace-the-extensions-mindset-with-dynamics-365-for-finance-and-operations/
  • 12. ¡¿Solo eso?! • Se puede cambiar el texto que ven los usuarios (aka. Labels). • Se pueden extender enums (los que son extensibles) • Se pueden añadir campos, relaciones, índices y métodos a tablas. • Se pueden añadir controles, datasources y métodos a formularios. • Se pueden añadir métodos y estado (atributos) a clases. • Se pueden ”envolver” (wrap) métodos protected y public en clases para inyectar código personalizado en la ejecución (Chain-of-Command). • Se pueden subscribir eventos personalizados y del sistema utilizando sólo atributos. (Sí, tenemos una patente sobre esto). • Se puede responder a delegados de forma segura, incluso con varios suscriptores (hay que ser un “buen ciudadano”). • Se pueden crear factorías de clases con SysExtension framework. https://blogs.msdn.microsoft.com/mfp/2018/03/29/x-the-most-extensible-language-on-the-planet-2/
  • 13. Chain of Command (CoC) • Permite que los métodos sean ‘envueltos’ (wrapped) en clases de extensión. • Estos métodos deben incluir una llamada al método next, que ejecuta el código original o la siguiente llamada en la ‘cadena’ • Permite acceder a métodos y miembros public y protected de la clase original (a su estado). • Se pueden ‘envolver’ varios métodos en una misma clase de extensión para crear una funcionalidad compleja coherente. • Beneficios: • Permite habilitar muchos casos de extensibilidad con un mínimo refactor • Permite habilitar una gran cantidad de casos reportados por partners • El código resultante es más fácil de crear y entender • Permite múltiples extensiones y partners sin colisión https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/method-wrapping-coc
  • 14. Chain of Command (CoC) Requerimientos: a) Cambiar el valor devuelto por calcAmount() b) Insertar lo que hace post() en un log, en la misma transacción.
  • 15. Non-developer extensions • Embed Power Apps • User-defined fields • Permiten añadir datos y elementos de la interfaz de forma no intrusiva y sin código https://docs.microsoft.com/es-es/dynamics365/unified-operations/fin-and-ops/get-started/user-defined-fields https://docs.microsoft.com/es-es/dynamics365/unified-operations/fin-and-ops/get-started/embed-power-apps
  • 16. Alternativas • Refactorizar el código para evitar cambios intrusivos utilizando extensiones. • Trabajar con los equipos de Microsoft en el análisis de nuevas posibilidades de extensión (Extensibility Requests o programas para ISV) • Aceptar que tu solución/implementación no es viable para Dynamics 365 for Finance and Operations
  • 17. ¿Cuál es era el plan? Kernel / Platform App Platform App Foundation Hard seal Hard seal Nov 2016 – 7.1 Hard seal Jun 2017 – 7.3 Hard seal Apr 2018 – 8.0 Extension based customizations only! Hard seal Nov 2016 – 7.1 Hard seal Hard seal Nov 2016 – 7.1 Hard seal Jun 2017 – 7.3 Hard seal Nov 2016 – 7.1 Hard seal Dec 2017 – 7.2 https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/migration-upgrade/versions-update-policy https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/extensibility-roadmap
  • 18. ¡¿Y ahora qué?! Disfruta de una experiencia sin costosas actualizaciones, siempre aprovechando los avances de la última versión. Customers Eliminar todo overlay evitando modificaciones intrusivas mediante las opciones de extensión que hemos visto. VARs Eliminar todo overlay de sus soluciones para hacerlas extensibles por clientes y VARs y permitir una fácil instalación. ISVs Facilitar opciones de extensión no intrusivas mediante nuevas funcionalidades en la plataforma y la adaptación del código de la aplicación. Microsoft
  • 19.
  • 21. Resumen • Entender los beneficios del modelo de personalización basado en extensiones. • Comprender las posibilidades de extensión no intrusivas del producto. • Aprender nuevos patrones para refactorizar código de ‘overlay’ a extensiones. Every customer on latest release; always.
  • 23. Dynamics 365 Community The Dynamics 365 Community is a site where you can find community contributions, ask questions and interact with Microsoft Dynamics peers and experts. The community has over 200K members and is growing. New UI/UX: https://community.dynamics365.com