Wednesday, October 25, 2006

Performance: BizTalk 2004 vs 2006 com Sql Server 2000 vs 2005

Isto já apareceu referido noutros blogs, mas não posso deixar de referir aqui: foi publicado um estudo a comparar o desempenho do BizTalk com 3 tipos de infraestrutura: BizTalk 2004 com Sql 2000 SP3, BizTalk 2006 com Sql 2000 SP4, e BizTalk 2006 com Sql 2005. Os resultados, para todos os cenários avaliados, mostram uma clara superioridade da última configuração, em alguns casos com uma diferença surpreendente.

Este estudo não apresenta os motivos para as diferenças de desempenho, só os tempos e quantidades de mensagens globais, mas não deixa de ser um argumento muito forte para motivar a selecção das versões mais recentes, ou o upgrade para as mesmas.

Aproveito para recomendar que se façam upgrades para o Sql Server 2005 SP1, e para o COM+ 1.5 Hotfix Rollup Package 9, se ainda não os têm, cada um deles com benefícios nesta área.

Tuesday, October 17, 2006

Create It: 5 anos

Há 5 anos atrás nesta data, eu e alguns amigos e colegas criámos a empresa que hoje é a |create|it|. Com vontade de fazer melhor, de prestar serviços com Qualidade, de ser capaz de dizer que queremos ser [d]os melhores, aliar a Experiência em projectos e tecnologias a uma grande Agilidade e proximidade na gestão de projectos e da equipa, de ter uma busca constante da Inovação e de chegar primeiro. Ainda há muito caminho pela frente, arestas a limar, e o constante desafio do crescimento, mas até agora a batalha está ganha e estamos onde queremos estar.

Em termos tecnológicos, a decisão fundamental foi a aposta a 100% em plataformas Microsoft, e por aí passam e já passaram produtos e tecnologias como o .Net/C# assumida desde a primeira hora, o SharePoint 2001, as primeiras instalações nacionais em produção de produtos como o SharePoint Portal Server 2003 ou do actual SharePoint Server 2007, a aposta ganha no BizTalk Server, desde a "ingénua" versão 2000/2002 até ao actual 2006, ao Identity Integration Server, e vários outros. A aposta na inovação foi também ganha pela participação em eventos, por formações leccionadas em BizTalk Server 2006 ou mais recentemente no Office 2007, e pela participação na génese do GASP - Grupo de Arquitectura de Software Português, que veio abrir espaço a uma comunidade na área da Arquitectura de Software.

Finalmente, aproveito este post para anunciar o |blog|it|, a novíssima plataforma de weblogs dos colaboradores da empresa, onde passarão a estar disponíveis não apenas os blogs que já existem (o meu e o do Raúl), como os de outras pessoas que têm interesse em partilhar o que aprendem. O Url é http://blogit.create.pt .

Parabéns |create|it| ! :-)

Friday, October 13, 2006

BizTalk 2004/2006: Not all Delay Shapes are created the same

While doing a simple copy&paste of a Delay shape to the outside of a Listen block, I noticed a slight difference between the use of delay shapes inside and ouside Listen's. Here's the Delay shape ouside any other encompasing shape:


Notice the example message: "Delay for one day". Below is a screenshot of a Delay shape inside a Listen shape:


Notice the example message: "Time out after one day".


Now, it's actually nice that the text message changes. What is not nice is the missing semi-column in this second variant! I don't know if this is intentional or not, but it happens both in BizTalk 2004 and 2006, and you get a compilation error if the usage is not as referenced: no semi-column in the Listen shape, with a semi-column outside it.


Any hints on the reason for the difference?


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

Monday, October 9, 2006

SharePoint 2007: Atribuir tarefas a grupos de utilizadores

Outra questão que se levantou na formação de Office 2007, e especificamente na componente SharePoint, foi relativa à possibilidade de atribuir Tasks na Task List a grupos de utilizadores, e não a utilizadores individuais. A resposta à pergunta é Sim, e tanto no relativo a SharePoint Groups como a grupos de utilizadores na AD.

Existem no entanto alguns pormenores a referir: quando se entra na lista de Tasks do SharePoint, por omissão a vista seleccionada é a "My Tasks", e esta não lista as tarefas atribuídas ao utilizador via os grupos a que pertence. Se mudarmos para a vista "By My Groups", já são visíveis as tarefas atribuídas a grupos, mas apenas os grupos SharePoint de que o utilizador actual é membro, e não os grupos na AD.

Já em relação a workflows o comportamento é o desejável. Verifiquei o Approval, com os dois tipos de grupos, e ambos funcionaram bem, entregando as tarefas em sequência ou paralelo a todos os utilizadores do grupo em causa.

[Nota: os testes foram feitos com o beta2]


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

Sunday, October 8, 2006

BizTalk 2004 SP1 – Pipeline component “Properties validation failed. The document schema does not exist.”

There is an issue in BizTalk Server 2004 SP1 that came up while configuring a flat-file disassembler pipeline component with a given document schema. The problem is as follows.

The solution configuration includes three different BizTalk projects: one project containing a flat-file document schema, a second project containing a property schema that is referenced by the first project/schema, and a third project with a receive pipeline. Both the Document Schema and Pipeline projects reference the Property Schema project. The problem is that, with this configuration, I cannot reference/use my document schema in the FFDasm pipeline component: it is not selectable in the Document Schema's combobox, and I get a compilation error such as this:

S:\mypath\ReceiveDelimited.btp Component 'Flat file disassembler' properties validation failed. The document schema "[Fully qualified name of my document schema assembly]" does not exist.

After struggling with this issue for some time, I opened a support case with Microsoft and very quickly got a reply: apparently this is a "limitation" of the product, which does not support this kind of scenario. The issue was solved in VS2005/BizTalk 2006, and to work around it in 2004 Sp1 there are several solutions: a) put the assembly with the property schema in the GAC; b) move the property schema to one of the other two projects; or c) remove the reference to the property schema in the document schema, configure the pipeline component with the document schema, add again the reference to the property schema to the document schema, build and ignore the warning [Note: I can't be sure, but I seem to remember that I got a compilation error, not a warning, so this last alternative may not work].


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

Tuesday, October 3, 2006

Workflows com Visual Studio e InfoPath no MOSS2007

Como referi no post anterior, o exercício de Workflow realizado no curso de Office 2007 (uma actualização do capítulo do livro "7 Development Projects for MOSS2007 and WSS") foi algo complexo, e o laboratório não incluía detalhe suficiente sobre cada passo realizado.

Para quem tiver interesse em começar a explorar o tema de Workflows em SharePoint, tem no blog do Nick Swan uma explicação passo-a-passo de um workflow com VS2005 e formulários InfoPath 2007, tanto dos vários passos como do que é necessário para fazer o deployment. O exemplo não é o mesmo do curso, apesar de muito semelhante, mas antes uma explicação detalhada do "How To" que é incluído no SDK do MOSS 2007 (SDK > Managing Enterprise Document Content > Workflows in Office SharePoint Server 2007). Este exemplo funciona bem com a beta 2 do MOSS 2007.

Algumas notas gerais que podem facilitar a sua realização:

  • Para fazer debug ao Workflow no VS2005, é necessário fazer Attach ao w3wp (Managed Code);
  • No string Install.Bat que instala a Feature e o Workflow, e que é criado automaticamente quando se cria o projecto no Visual Studio, trocar as 2 linhas que fazem o Deactivate e Uninstall da Feature para o topo. Depois de os formulários InfoPath estarem feitos e testados, comentar as duas linhas que fazem essa verificação;
  • Caso apenas se altere o código do workflow, não é necessário reinstalar a feature, basta colocar no Gac a nova versão e fazer IISRESET;
  • Um dos aspectos interessantes do exemplo é que usa o primeiro formulário tanto para na Associação como na Iniciação do workflow, o que é especificado no Workflow.Xml . O mesmo pode ser feito na criação de Tasks, mas neste caso pode não ser obrigatório repetir a associação, bastando atribuir o mesmo "Task Type" às tarefas criadas e fazer a associação uma única vez.
  • Quando se faz o Publish de um formulário IP, deve usar-se o mesmo nome que aparece nas properties (quando se vai copiar o URN).
  • O ficheiro com a Secondary Data Source, o ItemMetadata.xml, tem de ter este nome, e é case sensitive. Notar que o exemplo do Nick Swan está incorrecto neste ponto (ou antes, os screenshots estão bem, a descrição textual incorrecta). Este ponto está referido na documentação do MOSS, mas é fácil deixar passar. Se não tiver este nome, a passagem de valores para o 2º formulário não funciona.

Para quem vai começar nisto, recomendo ainda o download do ECM Starter Kit for 2007 Office System , que além das templates de projecto para o Studio tem vários exemplos de workflow sobre
MOSS.

Fazer workflows para MOSS tem a sua complexidade, que suponho vá diminuir à medida que a tecnologia ganhe maturidade, mas o potencial – já hoje – é muito grande. Repleto de "Oportunidades para ISV's". :-)


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

Monday, October 2, 2006

Formação Office 2007 for Developers: Wrap Up

Nas últimas duas semanas tive a oportunidade de voltar a dar formação, desta vez sobre Office 2007, na perspectiva de programadores, tanto relativos ao agora chamado Office Cliente (Outlook, Word, Excel, InfoPath, etc.), como sobre a componente servidor, com foco no SharePoint (Services e Server) mas também Forms Server e Excel Services. O contacto com 30 pessoas de diferentes empresas, permitiu-me perceber os diferentes interesses em cada uma das "features" do produto, e onde pretendem investir. Isto em adição ao gosto pessoal em dar formação, e ao conhecimento acrescido do panorama do IT em Portugal. :-)

A grande saliência, mesmo tendo o SharePoint em pano de fundo, vai para o Workflow. Foi o tema que mais interesse e antecipação criou (tal como aconteceu no seu lançamento no PDC05 o ano passado), apesar de – como se teve oportunidade de constatar – o desenvolvimento de Workflows sobre SharePoint, adicionalmente se usando formulários InfoPath, ter alguma complexidade técnica. Os exemplos e demonstrações que tivemos oportunidade a fazer foram apenas pontos de partida, e é essencial que venha a existir mais documentação.

Também a recolher algum interesse teve o desenvolvimento para Office Cliente, e refiro-me aqui principalmente ao desenvolvimento de Add-Ins, desenvolvidos sobre Visual Studio Tools for Office (o curso focou na CTP de Junho do VSTO "v3", mas o beta do VSTO 2005 Special Edition ficou disponível já durante o curso). Há soluções e possibilidades muito interessantes no modelo, e a integração com o "online", via SharePoint, pode ser uma grande mais valia. Um aspecto curioso de referir é que, ainda assim, o desenvolvimento de aplicações do tipo "Smart Client" continua a ter alguma resistência, possivelmente, devida aos últimos 10 anos em que nos habituámos a tudo ser baseado em Web. Para vários dos ISV's, no entanto, é o modelo que faz mais sentido para a sua área de negócio.

No cruzamento entre o cliente e o servidor estão as componentes baseadas na utilização de Forms Server em conjunto com o Outlook como cliente. A ideia de termos formulários ricos que são preenchidos num browser ou no próprio Outlook, e que podem ser trabalhados nos novos "Forms Folders" do Outlook e guardados num SharePoint (eventualmente associados a Workflows) levanta imensas possibilidades e oportunidades de negócio, talvez com saliência para o sector público e grandes organizações.

Outras áreas que foram bastante referidas incluiram a componente de Web Content Management (WCM), a utilização do MOSS 2007 como plataforma para desenvolver sites web públicos (o substituto do CMS2002), e o Enterprise Content Management (ECM), para aplicações de gestão de conteúdos, incluindo coisas como Records Management e Workflow. O programa do curso não incluía, no entanto, grandes desenvolvimentos nestas duas áreas.

Duas outras áreas particularmente referidas foram o Business Data Catalog (BDC) e os Excel Services. A primeira pode operar uma mini-revolução no mundo da Integração de Sistemas ao permitir expôr com relativa simplicidade, em sites SharePoint, informação que é armazenada em sistemas de negócio (desde que em Sql ou acessíveis por Web Services), sem obrigar a programação. Um cenário do tipo "case study" é a possibilidade de disponibilizar informação de sistemas como SAP num SharePoint, em que a consulta pode ser feita em web parts pré-disponibilizadas ou acessível meramente usando a pesquisa texto livre do MOSS. Se isto não deixa água na boca... :-) Para isto, e numa abordagem inicial, o que é necessário é apenas especificar uma camada de metadados a descrever a informação do sistema origem, e voilá.
A segunda, os Excel Services, não tanto pela realização de cálculos pesados no servidor ou pelas potencialidades em termos de Business Inteligence, mas pela possibilidade de invocar folhas de cálculo no servidor utilizando a camada de web services genéricos que é disponibilizada. E há coisas que são muito mais interessantes de fazer no Excel que programadas em C#. :-)

A quem esteve no curso: espero sinceramente que tenha valido a pena, e ver-vos noutras ocasiões! Nos próximos dias vou tentar colocar aqui respostas a perguntas mais frequentes ou informação sobre assuntos que tenham sido cobertos de forma menos aprofundada.

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