26
MAF (Managed AddIn Framework) Criação de Aplicações Extensíveis Virgílio Esteves http://netpont o.org 12ª Reunião Presencial - 10/07/2010

MAF - Managed AddIn Framework

Embed Size (px)

DESCRIPTION

A capacidade de uma aplicação suportar "addins" é quase obrigatória nos dias de hoje, quer pela necessidade de actualizações em run-time, quer pela necessidade de existirem entidades externas a desenvolver componentes para a nossa aplicação. Segurança, isolamento e versionamento são pois palavras-chave para o sucesso de tal implementação. Venha conhecer como o MAF pode ajudá-lo a implementar estas capacidades em suas aplicações .NET de forma simples e flexível.

Citation preview

Page 1: MAF - Managed AddIn Framework

MAF (Managed AddIn Framework)Criação de Aplicações Extensíveis

Virgílio Esteves

http://netponto.org12ª Reunião Presencial - 10/07/2010

Page 2: MAF - Managed AddIn Framework

Virgílio EstevesID&T – Software @HIS

.NET Framework (2.0 » 4.0)

.NET Compact Framework (2.0 » 3.5 SP1)

WPF / Silverlight

Page 3: MAF - Managed AddIn Framework

Agenda

• Motivação• Problemáticas• Arquitectura• Funcionamento Pipeline• Performance• Coffee-break

Page 4: MAF - Managed AddIn Framework

Motivação

• Capacidade de evoluir• Personalização da solução• Actualizações em tempo-real• Desenvolvimentos efectuados por entidades

externas

Page 5: MAF - Managed AddIn Framework

Problemáticas

• Discovery• Activation• Isolation• Lifetime Management• Versioning

Page 6: MAF - Managed AddIn Framework

Arquitectura“Típica”

ContractsHost AddIn

Page 7: MAF - Managed AddIn Framework

ArquitecturaMAF Pipeline

ContractsAddIn

adaptersHost

adaptersAddIn views

Host views AddInHost

Page 8: MAF - Managed AddIn Framework

PipelineSegmentos e Referências

Segmento Referências Namespaces

Contract System.AddIn.dllSystem.AddIn.Contract.dll

System.AddIn.PipelineSystem.AddIn.Contract

AddIn view System.AddIn.dll System.AddIn.Pipeline

AddIn adapterSystem.AddIn.dll

System.AddIn.Contract.dllAddIn view segment

Contract segmentSystem.AddIn.Pipeline

Host adapterSystem.AddIn.dll

System.AddIn.Contract.dllHost view segmentContract segment

System.AddIn.Pipeline

Host System.AddIn.dllHost view segment

System.AddIn.HostingHost view

AddIn System.AddIn.dllAddIn view segment AddIn view

Page 9: MAF - Managed AddIn Framework

PipelineEstrutura de directorias

Page 10: MAF - Managed AddIn Framework

AddInStore– Rebuild()– RebuildAddIns()

– Update()– UpdateAddIns()

– FindAddIn()– FindAddIns()

Page 11: MAF - Managed AddIn Framework

Pipeline

demonstração

Page 12: MAF - Managed AddIn Framework

ArquitecturaMAF Pipeline

Contractsv1

AddIn adapters

v1

Host adapters

v1

AddIn views

v1

Host views

v1

AddInv1

Hostv1

Page 13: MAF - Managed AddIn Framework

Contractsv2

Host adapters

v2

Host views

v2

ArquitecturaMAF Pipeline

Contractsv2

AddIn adapters

v2

Host adapters

v2

AddIn views

v2

Host views

v2

AddInv2

Hostv2

Hostv2

AddIn adaptersv1 -> v2

AddIn views

v1

AddInv1

Page 14: MAF - Managed AddIn Framework

Contractsv1

Contractsv1

Host adapters

v1

Host views

v1

ArquitecturaMAF Pipeline

AddIn adapters

v1

AddIn views

v1

AddInv1

AddIn adaptersv2 -> v1

Host adapters

v1

Host views

v1

Hostv1

AddIn views

v2

AddInv2

Page 15: MAF - Managed AddIn Framework

Oi?!?

Page 16: MAF - Managed AddIn Framework

Versionamento eretro-compatibilidade

demonstração

Page 17: MAF - Managed AddIn Framework

Performance– Maximizar a velocidade• Cross Process• Cross-Domain• Cross-Domain FastPath

– [LoaderOptimization(LoaderOptimization.MultiDomainHost)] – Contract assembly na GAC

– Reduzir o número de vezes• Mais informação, menos vezes

Page 18: MAF - Managed AddIn Framework

Performance

demonstração

Page 19: MAF - Managed AddIn Framework

Resumo

• Motivação• Problemáticas• Arquitectura• Funcionamento Pipeline• Performance

Page 20: MAF - Managed AddIn Framework

Citação...

“Developing software is like developing a church. First you build it, then you pray.”

Daniel O'Connor

Page 21: MAF - Managed AddIn Framework

Questões?

Page 22: MAF - Managed AddIn Framework

Referências 1/2Add-ins and Extensibility (MSDN)

– http://msdn.microsoft.com/en-us/library/bb384200.aspx

System.AddIn Tools and Samples– http://clraddins.codeplex.com

Page 23: MAF - Managed AddIn Framework

Referências 2/2Channel 9 Blog for Daniel Moth

– http://channel9.msdn.com/posts/DanielMoth/

Add-In Performance: What can you expect as you cross an isolation boundary and how to make it better

– http://blogs.msdn.com/b/clraddins/archive/2008/02/22/add-in-performance-what-can-you-expect-as-you-cross-an-isolation-boundary-and-how-to-make-it-better-jesse-kaplan.aspx

Page 25: MAF - Managed AddIn Framework

Próximas reuniões presenciais

• 10/07/2010 - Julho• 14/08/2010 - Agosto• 18/09/2010 - Setembro• 23/10/2010 - Outubro

Reserva estes dias na agenda! :)

Page 26: MAF - Managed AddIn Framework

Obrigado!

Virgílio [email protected]

http://pontonetpt.com/blogs/raposohttp://twitter.com/vraposohttp://pt.linkedin.com/in/virgilioesteves