Wednesday, May 31, 2006

GetReady - Colaboração com Office 2007

Ontem tive o privilégio de abrir as hostilidades na track (totalmente portuguesa) de Office 2007 do evento GetReady, realizado no Centro de Congressos de Lisboa. A sessão que apresentei focou-se nas funcionalidades colaborativas do Office 2007, com destaque para o SharePoint, Outlook, Word, e a terminar um dos novos membros da família Office, o Groove. Foi uma sessão ligeira (nível 200), mas espero que ilustrativa das novidades do produto na área da colaboração, nomeadamente na existência de inúmeras oportunidades de colaboração e acesso à informação.

As demonstrações, feitas com a versão Beta 2, foram as seguintes:

Criação de Site
Criação de site, um processo muito semelhante ao da versão anterior do SharePoint, mas com selecção explícita dos membros dos 3 grupos de segurança por omissão: Visitors, Members e Owners (desapareceram os anteriores Readers, Contributors e Administrators).

Criação de Document Library Mail-Enabled
Uma das novidades mais interessantes da nova versão do SharePoint é a possibilidade de enviar mails para doclibs. Esta funcionalidade apenas necessita de um SMTP, não obriga a ter Exchange Server, e é feita sem necessidade de qualquer configuração específica. Basta indicar, ao criar a doclib, o endereço email que pretendemos.

Enviar email para Document Library Mail-Enabled
Envio de um email para uma doclib, com vários documentos em anexo. Alguns segundos depois, os documentos anexo aparecem na doclib, como previsto. Na parametrização desta funcionalidade, é possível indicar se queremos que sejam publicados apenas os anexos, ou também o corpo do email como ficheiro .EML, ou ainda as permissões para publicação. Esta é uma potencialidade muito simples, mas dá um enorme jeito em diversos cenários, como arquivo de documentos trocados em projectos, etc.

Segurança ao nível do item
Uma das funcionalidades mais pedidas em projectos na versão actual do SharePoint (SPS2003/WSS2.0) é a possibilidade de especificar permissões de items individuais em document libraries, sejam documentos sejam pastas. A nova versão restaura uma possibilidade que existiu em termpos no SPS2001, sendo agora possível especificar diferentes permissões individualmente, quer em termos de grupos quer de utilizadores específicos. Excelente!

Workflows
Outra das "killer features" é a possibilidade de associar workflows à publicação ou alteração de conteúdos, utilizando a tecnologia Windows Workflow. A demo que fiz utilizou um dos workflows nativos do MOSS 2007 (para quem não sabe, é a abreviatura oficial do Microsoft Office SharePoint Server 2007), para aprovação de documentos de uma doclib. Criei um workflow de aprovação, com aprovação paralela por um de dois aprovadores. Mostrei que esta aprovação pode ser feita ou directamente no SharePoint, ou no Outlook através do email de notificação que é enviado aos aprovadores, ou no próprio Word, quando o documento é aberto por um dos aprovadores. Este workflow também cria notificações na lista de tarefas do site, atribuídas aos aprovadores, sendo o seu estado actualizado automaticamente quando o documento é actualizado.
Apesar de não o ter mostrado, é possível também alterar dinamicamente o workflow, delegando a tarefa a outro utilizador seleccionado.
Além dos workflows nativos, podem ser criados workflows programaticamente, no Visual Studio 2005 (apesar de o SDK para o Beta 2 ainda não estar disponível), ou usando o SharePoint Designer, conhecido anteriormente por FrontPage e que foi convertido numa ferramenta de authoring específica para SharePoint.

Subscrições RSS
O novo Outlook inclui um feedreader bastante interessante (pode não ser o mais refinado do mercado, mas tem a enorme vantagem de ter o RSS integrado com o email), e o SharePoint inclui a possibilidade de criar subscrições sobre feeds dos conteúdos de DocLibs, Listas, resultados de pesquisas, etc. Nesta demonstração, criei uma subscrição sobre o conteúdo da doclib que tinha criado.

Acesso Offline a Document Libraries
Se a subscrição RSS de doclibs (ou qualquer outra feed RSS) é interessante, mais interessante pode ser ter acesso integral, offline, ao conteúdo de document libraries. Esta é outra das funcionalidades que considero mais interessantes. Os documentos das várias doclibs ficam organizados em "SharePoint folders" do Outlook, e é possível indicar individualmente se queremos ou não ter cada ficheiro com cópia no Outlook (por exemplo, caso existam ficheiros de grandes dimensões ou que não mudem muito e que não nos interesse ter localmente).

Sincronização de Calendários
A versão actual do SharePoint já permitia ter uma cópia offline de calendários SharePoint no Outlook. Esta relação passou a ser bidireccional na versão 2007, ou seja, é agora possível adicionar agendamentos a um calendário SharePoint directamente no Outlook. Uma funcionalidade muito interessante, esta dos calendários partilhados, mais uma vez tanto do ponto de vista do trabalho em equipa como até de calendários individuais.
Esta sincronização bidireccional passou também a ser possível com os contactos, que não demonstrei.

Sincronização de Tarefas
Nesta demonstração mostrei não apenas a sincronização bidireccional entre a Task Lisk do SharePoint e as Tasks do Outlook, como a possibilidade de criar vistas Gantt. A vista Gantt pode ser criada sobre qualquer lista, desde que tenha quatro campos específicos: um campo com o nome (Title) da tarefa, um campo numérico com % de realização, e duas datas, início e fim. Não é uma vista Gantt completa com dependências como se vê no Project, mas tem as barrinhas com as datas e a indicação da % de realização.
Nota: posso ter dado a entender na apresentação que na versão actual do SharePoint era possível ter uma cópia offline das tasks no Outlook, o que não corresponde à verdade.

Reciclagem
Uma "pequena funcionalidade", a existência de uma Recycle Bin de onde podemos recuperar documentos eliminados por engano. Depois de passados 30 dias, os documentos são automaticamente removidos desta Recycle Bin, e passados para uma Recycle Bin de administração, de onde só podem ser recuperados por um administrador.

MySite e Blog
Vista geral pelos sites pessoais, que podem ser utilizados para guardar documentos, ter contactos de colegas, a hierarquia da organização, uma ficha pessoal, etc. Além de toda esta informação, um dos novos items que se podem criar são blogs, que não têm necessariamente de ser criados no MySite. Têm as funcionalidades normais dos blogs, como permalinks ou possibilidade de fazer comentários. É uma funcionalidade muito fashion, que pode ter grande utilidade em blogs internos de projectos ou equipas.

Envio de textos para blogs via Word
O envio de posts para os blogs do SharePoint pode ser feito num formulário específico, mas existe uma forma mais interessante de o fazer, usando directamente o Word 2007. Basta seleccionar "Publish > To Blog" e o Word cria uma template que permite preencher o título do post e o respectivo corpo do conteúdo. De seguida é necessário configurar uma conta de blog, e note-se que este pode estar alojado - além do SharePoint - em soluções como o My Spaces, Community Server, ou outros. Aquando da publicação é possível indicar a localização para onde devem ser enviadas imagens eventualmente utilizadas, podendo seleccionar-se uma Document Library ou um site Ftp. A salientar pela positiva o facto de o HTML gerado pelo Word ser limpo, o que não acontece com o HTML do Word 2003, e a vantagem de se poder recorrer ao spell check. Pela negativa, no entanto, há o facto de não suportar (ainda?) mecanismos como categorias ou parametrizações avançadas, como o Cross-Posting do Community Server.

Web Part RSS Feed Reader
Depois de mostrar como o SharePoint disponibiliza inúmeras feeds RSS, e como o Outlook pode ser usado para as consumir, faltava mostrar a WebPart de leitura de feeds RSS. Já existem webparts gratuitas na Net que oferecem esta funcionalidade no SPS2003/WSS2.0, agora passou a estar incluída de base. Para demonstrar a funcionalidade, criei uma Web Part a consumir uma feed do Flickr, com texto e imagens.

Wiki
A última demonstração do primeiro bloco ilustrou a possibilidade de criar Wikis no SharePoint. Popularizados em grande parte pelo sucesso e dimensão da Wikipedia, são um repositório "plano" de páginas, sendo os links entre elas realizados usando uma notação simplificada: [[título da página destino]]. Esta funcionalidade pode ser muito útil para documentação de projectos, por exemplo (e com um conversor CHM/HELP para Wiki, mais ainda).

Groove
No segundo bloco de demonstrações, e depois de apresentar globalmente o Groove como uma tecnologia de espaços de trabalho colaborativos distribuídos, criei um workspace, convidei um utilizador remoto por email (que entretanto aceitou o convite e começou a criar conteúdos no workspace), apresentei várias ferramentas, como o repositório de documentos, fórum de discussão, sketch pad ou instant messaging, e terminei com a sincronização entre o Groove e document libraries SharePoint. Ao contrário da sincronização offline com o Outlook, esta não é automática, sedo realizada a pedido do utilizador. Relativamente ao Outlook, tem a vantagem de ser possível adicionar documentos no Groove que são depois enviados para o SharePoint, o que não é possível no primeiro.
O Groove parece-me ser uma ferramenta muito interessante como parte integrante do Office, mas tem ainda um caminho a percorrer relativamente às potencialidades de integração com o SharePoint. Exemplos do que poderia ser possível são:

  • Em vez de existir área de ficheiros e área sincronizada com SharePoint, poderia haver uma única área de ficheiros, opcionalmente sincronizada com o SharePoint;
  • Sincronização de fórum de discussão, tarefas, notepad, sketchpad, e outras ferramentas, com funcionalidades equivalentes do SharePoint;
  • Sendo o Groove destinado a suportar equipas distribuídas geograficamente, com duração limitada no tempo, seria interessante ter a possibilidade de arquivar todo o conteúdo de um Workspace relativo a um projecto terminado, por exemplo como site SharePoint.

A seu tempo!

Tive um precalço na demonstração: não tinha parado previamente o serviço "System Event Notification" (com "net stop sens" no comando de linha), sem o que a sincronização entre o Outlook e o SharePoint não funciona nas VMs. A não esquecer.

[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Saturday, May 27, 2006

Office 2007: GetReady

Na próxima 3ª-feira, dia 30, vai passar por Lisboa o evento GetReady!, com sessões sobre Office 2007, Exchange Server 2007 e Windows Vista. A meu cargo está a primeira sessão da manhã na track de Office 2007 (OF01), sobre soluções de colaboração na nova versão do Office. Para quem não conhece, vai ter oportunidade de ver pela primeira vez as potencialidades de produtos como os novos SharePoint, Word, Outlook e Groove. A sessão vai ser pouco técnica, mas prometo encher os olhos a quem lá estiver! (o que não custa nada, com o novo Office).


Nas últimas semanas tenho tido oportunidade de testar várias versões beta do Office, e parece-me um produto com enorme potencial, e que inova em áreas que se poderia considerar ser difícil evoluir neste tipo de produtos, como a interface ao utilizador e usabilidade. Isto para nem falar dos produtos servidor (Excel, SharePoint, Forms e Groove), porque agora quando digo "Office", referindo-me a coisas como Word ou Excel, acabo por dizer "Office Client". :-)


Apareçam!


jota

[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Thursday, May 25, 2006

Exame beta BizTalk 2006 (71-235): algumas notas

Algumas notas sobre este exame beta. Para já, não é nada simples, e é longo, com 72 perguntas ao todo. Demoram-se 2 horas pelo menos. Ao contrário do que disse num post anterior, o exame não usa o motor de exames interactivo, as respostas são de escolha múltipla tradicional.


Relativamente ao conteúdo, algumas impressões:
- Há poucas perguntas sobre schemas e mapas;
- Há muitas perguntas sobre Rule Engine e especialmente BAM, sendo que estas últimas têm algumas inconsistências gramaticais e nem sempre usam a mesma terminologia da documentação do produto;
- Não há perguntas referentes a API's, BAS, HWS ou sobre qualquer dos adapters do produto, nem os nativos nem os novos na versão 2006.


De resto, o exame é o que seria de esperar, com muito messaging, orchestration, transacções, correlação, persistência, deployment (application, host instances, etc.). Os resultados chegam pelo correio daqui a 8 semanas. :-)


Recomendo vivamente a quem for fazer o exame que use os 30 minutos destinados a isso para fazer comentários sobre as perguntas incorrectas ou mal redigidas que encontrem. Quando terminar o período beta, vai ser tarde demais.


Boa sorte!


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Wednesday, May 24, 2006

BizTalk 2006 : exame 71-235 e novas samples

A versão beta do exame 70-235 vai pode fazer-se entre 24 de Maio e 7 de Junho. Este exame conta para a certificação MCP/BizTalk 2006 Technology Specialist (segundo informação que me passaram, da Prometric), mas ao que parece a classificação só vai estar disponível 6 a 8 semanas depois da realização do mesmo. Para quem não saiba, o exame vai usar o novo motor interactivo de exames da Microsoft, o que vai ser interessante experimentar.


O registo pode fazer-se nos sites da Vue e da Prometric, mas o código de voucher ("TS235") para que o exame não tenha custo já só funciona neste segundo. Notar que no registo o exame aparece listado com o código 71-235. A pouca informação que há sobre o que sai no exame está no site de learning da MS.


Mais uma nota: a Microsoft disponibilizou 5 novas e interessantes "samples" de BizTalk 2006, neste URL: http://msdn.microsoft.com/biztalk/downloads/samples/default.aspx :


- Use SSO as a [Secure] Configuration Store
- Atomic Transactions with Com+ Serviced Components in Orchestrations
- Exception Handling in Orchestrations
- Implementing Scatter and Gather Pattern
- Using the Sql Adapter with Atomic Transactions in Orchestrations


Destas, acho as duas sobre transacções especialmente interessantes, até porque ajudam a desmistificar um engano comum: o facto de as transacções atómicas no BizTalk, "as-is", não serem transacções DTC. Nota: as soluções abrem em VS2005 Professional, mas os projectos de testes precisam da Team Suite.


Finalmente: obrigado a todos os que participaram na formação de BizTalk Server 2006, espero sinceramente que tenha valido a pena e não tenha sido demasiada informação em tão pouco tempo. :-)


jota


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Monday, May 22, 2006

Code Ownership

Num post recente, o Hugo Ribeiro fala de "Code Ownership", assumindo-se como defendendo do que chama de "Strong Code Ownership". Num dos livros mais interessantes que li nos últimos tempos, "Organizational Patterns of Agile Software Development", de James Coplien e Neil Harrison, os autores descrevem e defendem o padrão "Code Ownership" (pp. 261-263):


- Something that is everybody's responsibility is really no one's responsibility.
- Each code module in the system is owned by a single Developer. Except in exceptional and explicit circumstances, code may be modified only by its owner. Anyone else that wants to make changes must approach the owner and get approval.


Este padrão aplica-se, recomendam os autores, a todo o tempo de vida de cada módulo de software, não terminando com a entrega do projecto ou produto.


Parece-me óbvio que a necessidade de recorrer a este padrão aumenta com a dimensão da equipa de desenvolvimento, e que os principais problemas estão relacionados com a existência de apenas uma pessoa com conhecimento sobre cada módulo específico: a) cada developer pode ser um bottleneck às alterações necessárias aos seus módulos (pode estar ocupado com outras tarefas); b) em casos de rotação de pessoal, corre-se o risco de perder o know-how sobre o módulo.


Os autores reconhecem estes riscos, e sugerem algumas abordagens para os minimizar: a utilização do padrão Code in Pairs ("Pair compatible designers. Together, they can work together to produce more than the sum of the two individually."), uma técnica muito "XP", ou a realização de inspecções de código. Sugerem também, para evitar bottlenecks, que em circunstâncias especiais o owner possa conceder autorização para realização de alterações a outros developers. Referem ainda que o dono do módulo pode ser um grupo de pessoas, com um líder designado (o arquitecto/chefe de equipa), o que pode ser especialmente interessante em projectos de maior dimensão.


Relativamente ao paralelo com o defendido por Kent Beck, nomeadamente a "collective code ownweship", os autores respondem simplesmente com: "Ownership by everybody is really ownership by nobody."


Na minha opinião pessoal, a utilização deste padrão (definido explícitamente ao nível de política dos projectos) faz todo o sentido, nem que seja pelas consequências da sua não utilização, ao nível da falta de controlo de alterações, modificação da lógica/desenho, convenções seguidas, ou até a simples violação de encapsulamento (neste caso ao mostrar a outros Developers como está desenvolvido o módulo).


jota


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Thursday, May 4, 2006

BizTalk Server 2006 Developer Training - 9 a 12 de Maio @ Microsoft - TagusPark

Durante a próxima semana vou dar uma workshop prática de 4 dias na Microsoft, no Tagus Park, sobre BizTalk Server 2006, destinada a clientes e parceiros Microsoft.


A agenda inclui os seguintes tópicos:



  • Apresentação do BizTalk 2006

  • Messaging

  • Schemas

  • Maps

  • Pipelines

  • Adapters

  • Orquestrações

  • Business Activity Monitoring

  • Business Rule Engine

  • Web Services

  • Boas Práticas / Truques e Dicas

A Workshop identificará e tirará partido das novas funcionalidades do BizTalk Server 2006, lançado no final de Março, como sejam a nova consola de administração, as evoluções no motor do BizTalk, e as funcionalidades de deployment.


Informação sobre cada um dos módulos pode ser consultada no site da |create|it|. O horário é entre as 09:15 e 17:30.


O registo, para uma das poucas vagam que ainda existe, tem um custo de 700€, e pode ser efectuado aqui:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032295883&Culture=pt-PT


jota


 


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]