SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
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 Extensiones para Dynamics 365: La fuerza de la extensibilidad

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-intixRoger CARHUATOCTO
 
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 SoftwareJavier 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 Extremaperaltag
 
Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Eduardo Diaz
 
Planes De Entrenamiento En TecnologíA
Planes De Entrenamiento En TecnologíAPlanes De Entrenamiento En TecnologíA
Planes De Entrenamiento En TecnologíALUISVALENZUELA
 
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.pptrogergrefa1
 
Mda Para Dummies
Mda Para DummiesMda Para Dummies
Mda Para Dummiessolnatec
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoLuciano 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.pptxAderMogollonLuna
 
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 SoftwareActivica
 
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 SeguridadChema Alonso
 

Similar a Extensiones para Dynamics 365: La fuerza de la extensibilidad (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

Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integracionesDemian 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.0Demian Raschkovan
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Demian 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 365Demian Raschkovan
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platformDemian 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 d365Demian 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 pdfDemian 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 automateDemian 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 controlDemian 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 RomeroDemian 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 platformDemian 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 CDSDemian 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 CardsDemian 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

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (20)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Extensiones para Dynamics 365: La fuerza de la extensibilidad

  • 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