Neste Teched Amsterdam surgiram algumas novidades sobre a evolução dos application blocks e do shadowfax/SDAF/EDAF/EDRA. Desde então já se fizeram comentários sobre o fim do shadowfax. É verdade que o shadowfax se tornou num projecto complexo e de aplicação específica, contrariando os objectivos dos patterns & practices. No entanto este projecto vai ser muito importante para o lançamento da nova framework, do visual studio e de muitos documentos que estão a ser preparados para ajudar os programadores.
Neste projecto procura-se aplicar quatro princípios importantes na implementação de serviços em sistemas distribuidos:
- Separação do interface do serviço da sua implementação
- Separação da implementação (domain logic) daquilo que é ortogonal e específico de determinados transportes e/ou configurações (por exemplo: logging, tracing, autenticação, autorização, ...). Uma espécie de AOP aplicado aos pipelines de execução dos pedidos (AOP Aspects ~ Handlers).
- Separação da implementação do transporte para permitir múltiplos transportes. (Se uma mensagem pode ser representada em XML porque não suportar simultaneamente serviços via Web Services, .NET Remoting, MSMQ, SMTP, Indigo...)
- Interfaces estáveis (p.ex. com versões) para funcionarem com contractos que garantem o desacoplamento entre o serviço e os seus clientes (consumers)
Para demonstrar estes conceitos e como eles se aplicam com facilidade usando esta framework, foram introduzidas no source quatro quickstarts e um site de homebanking (GBRI/Global Bank). O projecto cresceu e teve muito feedback importante. Identificaram-se incongruências entre os vários app blocks actuais e descobriram-se novos blocos que vão surgir todos debaixo de um novo nome dentro do MSDN: algo entre o "Block Library" ou "Enterprise Library".
Resumindo, este continua a ser o melhor projecto para aprender (source code) a tirar partido da framework .NET e de onde estão a surgir importantes componentes reutilizáveis e gratuitos.
Podem começar pelo site do projecto http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=9c29a963-594e-4e7a-9c45-576198df8058. Entretanto foi publicado também um add-in (templates) para o VisualStudio para simplificar a utilização desta framework nos projectos: http://www.gotdotnet.com/Community/Workspaces/newsitem.aspx?id=9c29a963-594e-4e7a-9c45-576198df8058&newsId=2971