MAF - Managed AddIn Framework

Preview:

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

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

Virgílio Esteves

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

Virgílio EstevesID&T – Software @HIS

.NET Framework (2.0 » 4.0)

.NET Compact Framework (2.0 » 3.5 SP1)

WPF / Silverlight

Agenda

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

Motivação

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

externas

Problemáticas

• Discovery• Activation• Isolation• Lifetime Management• Versioning

Arquitectura“Típica”

ContractsHost AddIn

ArquitecturaMAF Pipeline

ContractsAddIn

adaptersHost

adaptersAddIn views

Host views AddInHost

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

PipelineEstrutura de directorias

AddInStore– Rebuild()– RebuildAddIns()

– Update()– UpdateAddIns()

– FindAddIn()– FindAddIns()

Pipeline

demonstração

ArquitecturaMAF Pipeline

Contractsv1

AddIn adapters

v1

Host adapters

v1

AddIn views

v1

Host views

v1

AddInv1

Hostv1

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

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

Oi?!?

Versionamento eretro-compatibilidade

demonstração

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

Performance

demonstração

Resumo

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

Citação...

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

Daniel O'Connor

Questões?

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

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

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! :)

Obrigado!

Virgílio Estevesraposo@gmail.com

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