TechEd Developers 2007 @ Barcelona

image

Nesta última semana estive em Barcelona, numa conferência da Microsoft, o TechEd Developers.

Em primeiro lugar tenho de dizer que é uma cidade simplesmente fantástica, tanto em termos culturais, como de infra-estruturas, entre outros. Já tinha ouvido e lido muita coisa sobre a cidade, mas estar lá supera todas as expectativas!

Nos primeiros dois dias (Sábado e Domingo) tivémos a oportunidade de visitar a cidade e embora tenha sido muito pouco tempo para ver tanta coisa que lá existe, conseguimos visitar alguns dos sítios mais emblemáticos da cidade. Podem ver as fotos aqui e aqui.

Em relação ao evento, assisti a muito boas sessões, entre outas (poucas) menos boas, mas no geral o balanço é bastante positivo. Fiquei fã do Roy Osherove (o tal que acaba as sessões a cantar), do qual vi 3 sessões, todas sobre metodologias ágeis. Para mim foi mesmo o melhor orador do evento!

A seguir vou fazer uma retrospectiva e deixar uma pequena crítica a todas as sessões a que assisti:

Dia 1 – 5 de Novembro


No primeiro dia a parte da manhã era para efectuar o registo e apenas da parte da tarde é que começaram as sessões, com a Keynote do Somasegar a abrir as hostilidades.

14:00: Keynote (Somasegar)

O evento começou com a Keynote dada pelo vice-presidente da secção de desenvolvimento da Microsoft. Para além de não perceber nada do que o homem dizia, o assunto, que supostamente introduziria os temas do evento, não trouxe nada de novo, deixando a sensação que não se fez nada de novo nos últimos tempos. Salvou-se a participação do Dan Fernandez, com uma demo sobre programação para o jogo World of Warcraft.

image

16:00: TLA201 – A Tour of Visual Studio 2008 and the .NET Framework 3.5 (Daniel Moth)

Nesta sessão introduziram-se as novidades das novas versões do IDE e da plataforma de desenvolvimento.

O VS2008 parece apresentar mais novidades a nível do desenvolvimento para a web, como por exemplo o suporte de IntelliSense em Javascript; de organização e gestão dos estilos/classes CSS; ou a possibilidade de ter no mesmo ecrã o código HTML e um preview do mesmo (split view). Não se falou das novidades do Team System, nomeadamente a nível de Source Control, suporte para integração contínua, para unit testing (MSTest), etc. Também se evidenciou o facto de se poderem criar projectos com as diferentes versões da plataforma, o que limita as funcionalidades que depois estão disponíveis e coloca referências para os assemblies das versões respectivas. Tudo muito light.

Quanto a .NET 3.5, falou-se das novidades a nível das novas versões das linguagens C# (3.0) e Visual Basic (9.0). C# tem agora suporte para expressões lambda, tipos anónimos, inferência de tipos e métodos de extensão, que permitem, entre outras coisas, dar suporte ao LINQ.

Esperava mais desta sessão, pensei que fosse um pouco mais aprofundada e não tão superficial. Deixou muito a desejar…

17:45: ARC202 – Agile Development with Team System (Roy Osherove)

Esta era uma das sessões que não queria perder e não desiludiu, muito pelo contrário! O Roy começou por introduzir as metodologias ágeis, conceitos associados e seus componentes. Falou de Scrum, Extreme e Pair Programming, Unit Testing, Automated Builds, relatórios/gráficos gerados com base na informação presente no TFS, como por exemplo bugs detectados vs resolvidos, evolução do resultado dos testes, entre outros e deu exemplos do suporte do Team System para estas metodologias. Deu para ver que domina claramente o tema e deixava sempre um sorriso na plateia com as suas piadas sarcásticas. Para acabar em beleza, pegou na guitarra e tocou uma música de melodia conhecida e letra a condizer com o tema da sessão. Podem "ver" o vídeo aqui (com má qualidade).

Embora a tarefa não fosse difícil, conseguiu, na minha opinião, fazer a melhor sessão até ao momento!

  image

 

Dia 2 – 6 de Novembro


09:00: TLA314 – Microsoft XNA Studio Express – Developing 2D-Games for Windows and Xbox 360 (Andreas Schabus, Maximilian Knor)

Já cheguei um pouco atrasado a esta sessão e só apanhei o final. (O facto do hotel ser na outra ponta da cidade e demorar mais tempo no percurso hotel-evento do que de Lisboa a Barcelona, ajudou "um pouco"). Foi pena, porque era uma das sessões que mais queria ver, devido a ultimamente andar envolvido neste tema.

Do que vi, a sessão foi feita com o objectivo de realizar uma demo jogável em 75 minutos, objectivo esse que foi conseguido (para isso muito ajudaram os snippets do VS). O jogo era o XNAKanoid, a versão XNA do Arkanoid, em 2D e durante a sua elaboração evidenciaram-se os aspectos mais importantes da framework. No final, o Andreas explicou como é que se pode fazer deploy de um jogo para a Xbox 360.

image image image

10:45: SEC202 – Threat Modeling (Michael Howard)

Esta sessão tinha o objectivo de envidenciar as falhas de segurança existentes no software hoje em dia e mostrar como é que estas podem ser evitadas. Passa tudo por uma análise detalhada do projecto, incluindo um diagrama com as entidades (internas e externas) envolvidas, fluxos de dados e contentores de dados. Após a esquematização, identificam-se as ameaças existentes, como por exemplo possíveis alvos de spoofing, DoS, etc.  Finalmente, têm que ser encontradas soluções para as ameaças encontradas, que tipicamente seguem um padrão e para cada ameaça existe uma técnica específica para a eliminar (ex.: spoofing -> autenticação).

No final, distribuiu um exercício pela plateia, que foi resolvido 2 a 2 (à excepção dos mais "anti-sociais"), mostrando depois a sua solução. Foi uma sessão interessante, que deu para pensar em certos pormenores do software que desenvolvo e nas possíveis formas de o melhorar em termos de segurança.

12:15: LNC01 – Why Software Sucks (David Platt)

Esta foi a primeira Lunch Session do evento e uma das melhores do evento! Excelente orador, com uma capacidade incrível para fazer a plateia rir às gargalhadas, para logo a seguir colocar no ar uma certa apreensão. O tema era sobre o facto de o software desenvolvido hoje em dia não ser feito com funcionalidades/usabilidade adequada ao seu utilizador final, mas ser sempre feito com uma perspectiva mais técnica, mais para quem o está a desenvolver do que para quem o vai utilizar – "Know thy user, for he is not thee". Deu exemplos de bom e de mau software e incentivou os presentes a verem o desenvolvimento de software com uma perspectiva de utilizador final, pondo-se no seu lugar.

image image

image image image 

13:30: TLA323 – What’s New in Visual C++ 2008? (Kate Gregory)

Depois de um almoço rápido e antes do encontro MSP (durante a qual não fui ver nenhuma sessão do calendário do TechEd), ainda tive tempo para ir espreitar mais uma sessão. Pensava que ía ver algo da nova especificação de C++, mas afinal apenas vi as novas funcionalidades do VS2008 para suporte a C++. Não era assunto que me interessasse muito e vim-me embora a meio.

Encontro MSP

Durante a tarde/noite de terça-feira houve um encontro dos MSPs de todo o mundo presentes no TechEd, onde se falou sobre o programa e já mais para o final, estiveram presentes alguns oradores (entre eles o Dan Fernandez, o David Platt, o David Chappell e o Mahesh), aos quais pudemos colocar questões.

À noite fomos jogar bowling, onde fiquei na equipa da Suiça, juntamente com MSPs russos, ucranianos, romenos e um orador americano. Foi uma noite excelente e, embora não faça a mínima ideia se ganhámos à nossa adversária (a Austrália), diverti-me imenso e conheci muita gente interessante! :)

image

image

image

 

Dia 3 – 7 de Novembro


09:00: SBP202 – Connections in the Cloud – BizTalk Services and  Windows Communication Foundation (WCF) (Justin Smith)

Esta sessão (à qual cheguei um pouco atrasado – de manhã torna-se difícil chegar a horas) iniciou com a distinção entre BizTalk Server e BizTalk Services e respectiva caracterização deste último. O objectivo da sessão era mostrar como é que estes serviços podem ser utilizados em WCF e com que finalidades. A meu ver o orador tornou a apresentação demasiado entediante e antes que começasse a dormir, fui tomar o pequeno-almoço e assistir a outra sessão.

09:00: TLA309 – LINQ to XML: Using the Language Integrated Query (LINQ) Framework with XML Data (Mike Taulty)

Após ter saído da sala onde estava a decorrer a sessão anterior, ao passar pelo corredor, esta era uma das sessões que estava a ser transmitida nos LCDs e fiquei a ver enquanto comia qualquer coisa, acabando por ficar até ao final. Tal como o nome indica, a apresentação focava a utilização de LINQ para fontes de dados em XML, mostrando como é que se podem manipular e alterar documentos XML utilizando LINQ. Apesar de não trazer grandes novidades, como tenho andado a trabalhar com XML, quis ver de que forma o poderia passar a fazer em .NET 3.5.

10:45: TLA10-IS – Unit Testing Tips and Techniques with Visual Studio 2008 and the .NET Framework (Roy Osherove)

Mais uma sessão do Roy e mais uma vez mudei de ideias quanto à melhor sessão até ao momento (que tinha sido a primeira dele). Como sessão interactiva que era, começou por pedir a opinião ao público quanto aos temas que gostavam que fossem abordados. Apontou a opinião de alguns assistentes e depois houve uma votação de braço no ar, fazendo ele uma estimativa do nº de pessoas que o teriam levantado. Após a votação, os temas foram abordados por ordem, começando no que tinha tido maior número de votos.

Os temas abordados foram (por ordem e com uma pequena conclusão):

  1. UI testing: não se deve fazer!
  2. Testing data layers: faz todo o sentido que se teste com a base de dados e não com mocks. Deve-se testar a DAL e a DBL como se fossem uma única camada, utilizando transacções para repor o estado anterior à execução do teste.
  3. Mock objects: devem ser utilizados quando se testam componentes com dependências de outros e quando se pretende fazer testes de interacção (verificar se são invocadas as operações esperadas no componente a que corresponde o mock).
  4. Multithreaded tests: dêem uma vista de olhos à biblioteca do Roy para suporte a este género de testes, aqui.
  5. NUnit vs MbUnit vs MSTest: MSTest é, aparentemente o que oferece menos funcionalidades, estando o MbUnit no lado oposto, sendo também o mais extensível.

No final da discussão, houve tempo para mais uma música, que tal como a anterior, estava bastante engraçada!

12:15: LNC02 – Communities? Can They Really Help My Business, My Day-to-Day Job, and My Career? (Bart Martens)

Esta foi a segunda Lunch Session, onde o tema era as comunidades e como é que estas nos podem ajudar. Não gostei da forma como o orador estava a expor o tema, em tom monocórdico e nada entusiasta e vim-me embora a meio.

13:30: DAT303 – Entity Framework: Application Patterns (Pablo Castro)

Este tema era um dos que mais me interessava, pois refere-se a uma nova abordagem à interacção com dados, nas aplicações .NET. Já não é necessário trabalhar directamente com conexões nem com comandos SQL, já não é necessário recorrer a bibliotecas open source como o NHibernate, agora pode-se fazer desenvolvimento com maior abstracção do modelo relacional utilizado, utilizando "apenas" a framework .NET. (ou pelo menos, assim o espero!).

O Pablo durante toda a sessão mostrou exemplos de utilização da Entity Framework, tanto em arquitecturas de 2 como de mais camadas, mostrou quando e como deve ser utilizada e evidenciou as suas vantagens e ainda houve tempo para falar sobre Web Data Services (Astoria). Fiquei com a sensação que a apresentação poderia ter sido muito melhor: nunca mostrou os ficheiros XML de suporte à Entity Framework (que ainda são de 3 tipos); mostrou demasiado código e código sem interesse, quando podia ter utilizado snippets… Acho que devia ter escolhido outra sessão sobre este tema…

15:45: TLA305 – Continuous Integration With and Without Team System (Roy Osherove)

Como não poderia deixar de ser, tive que ir assistir a outra sessão do Roy! Ao contrário das outras, esta não me surpreendeu por aí além, em parte porque a parte inicial toda já a tinha ouvido na primeira sessão que vi dele e até as piadas eram as mesmas…

Quanto ao tema específico desta sessão, estava à espera de ver mais sobre o CruiseControl.NET, que pareceu reduzido a uma thread que verifica quando é que existem alterações em ficheiros (obviamente que estou a exagerar). Durante a apresentação, introduziu o NAnt e explicou porque é que não gostava dele (demasiado XML, sem ferramentas user-friendly: o NAnt-GUI foi ridicularizado por apenas colocar o código XML dentro de um Windows Form) e mostrou uma alternativa, o FinalBuilder; explicou os fundamentos da Integração Contínua e demonstrou como é que pode ser utilizada com o VSTS2008.

Apesar de não a ter achado tão boa quanto as suas anteriores, gostei da apresentação, que no final teve mais um momento musical.

17:30: MED301 – "Small is Beautiful" Building Solutions with the .NET Micro Framework (Dave Baker, Rob Miles)

Como não podia sair do TechEd sem ver o Rob Miles e como tinha curiosidade para ver a Micro Framework, fui assistir a esta sessão. Durante 75m falou-se das características e limitações desta framework, mostrou-se como se utiliza o VS para desenvolver e fazer debug e demonstrou-se também como construir e trabalhar com o emulador, sempre com o humor britânico do Rob Miles. Na minha opinião faltaram mais exemplos práticos, com o hardware e mesmo os exemplos com o simulador foram muito pobres (apenas um quadrado a mudar de cor através do clique num botão, para simular a lanterna de um vigilante…).

No final da sessão, o André Sousa, que foi ver a sessão comigo, fez a melhor pergunta do Q&A e levou para casa uma Embedded Fusion board.

image

 

Dia 4 – 8 de Novembro


10:45: WEB310 – The Next Release of ASP.NET – Significant Features Available Soon… (really soon) (Matt Gibbs)

O último dia em que estive no evento começou com uma sessão sobre as novidades de ASP.NET, como por exemplo em relação a AJAX, Silverlight e o suporte para MVC. Foi uma sessão meramente informativa, onde se mostraram alguns dos novos controlos e exemplos da sua utilização.

13:30: TLA317 – Real World Unit Testing with Team System for Database Professionals (Brian Randel)

Esta sessão era uma das que queria mesmo ver e não fiquei nada desiludido! O Brian mostrou que o novo VS apresenta um grande suporte para unit testing a bases de dados, trabalhando directamente com a BD e não através de uma camada de acesso e exemplificou como deve ser feito este tipo de testes. Uma coisa que está em falta é o suporte para outros DBMS, pois por agora apenas existe suporte para SQL Server.

15:45: ARC305 – SOAP/WS-* and REST: Complementary Communication Styles (David Chappell)

Grande apresentação do David Chappell, não pelo tema em si, que já não é novo, mas pela forma como o expôs e pelas suas qualidades enquanto orador. Fez um overview a cada um destes tipos de comunicação, apresentando as vantagens e desvantagens de cada um e quando é que deve ser utilizado cada um deles e explicou porque é que não se devem chamar "Web Services" aos serviços baseados em SOAP, classificando-os como uma evolução da comunicação por RPCs.

17:30: TLA402 – Hardcore Production Debugging of .NET Applications (Ingo Rammer)

Última sessão do evento (pelo menos para mim), o cansaço acumulado já era bastante e a vontade de dormir também. Ainda assim, fui assistir a uma sessão hardcore :) na qual me consegui manter acordado durante todo o tempo (yeah!). O Ingo começou por expôr uma situação em que temos de fazer debug a código de produção e estamos fisicamente longe e sem acesso a um PC com ferramentas de desenvolvimento. A partir daí, mostrou uma série de ferramentas que podem ser utilizadas para fazer debug remoto a aplicações .NET (sem ser necessário ter símbolos de debug), como por exemplo o WinDbg ou o Mdbg. Os exemplos utilizados vão ser disponibilizados no site dele.


O balanço final foi bastante positivo, fiquei com a certeza de ter aproveitado ao máximo o tempo que tive e de ter aprendido e ganho bases para enfrentar novos desafios.

Em relação a Barcelona… Ficou a vontade de lá voltar, com mais tempo para passear! :)

image image image

image image image

About these ads
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s