Upload
comunidade-netponto
View
878
Download
0
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
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
Patrocinadores desta reunião
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 [email protected]
http://pontonetpt.com/blogs/raposohttp://twitter.com/vraposohttp://pt.linkedin.com/in/virgilioesteves