Decorreu na passada semana entre os dias 12 e 14 de Março a edição deste ano do TechDays, o maior evento de tecnologia do país. Este evento juntou mais de 2000 profissionais na área das TI, tendo sido dadas mais de 150 sessões técnicas por 120 oradores, tendo sido claramente a maior edição deste evento. De seguida, deixo o meu testemunho relativamente às sessões a que tive oportunidade de assistir no 1º dia.

COL03 – Arquitectura e Desenvolvimento de Aplicações que Permitem Pesquisa com MOSS

Orador: Beat Schwegler, Microsoft (Blog: http://blogs.msdn.com/beatsch/)

Esta sessão foi dividida em duas partes:

  • Como tornar informação das aplicações pesquisável no MOSS
  • Como efectuar pesquisas no MOSS a partir de aplicações e apresentar os resultados
Como tornar informação das aplicações pesquisável no MOSS

Foi dada uma introdução sobre a arquitectura de pesquisa do MOSS e os seus componentes (Content Sources [File, BDs, Exchange,etc], Protocol Handlers [http, ftp, file, BDC, etc], IFilters, Metadata e permissões).

De seguida, foram referidos os requisitos para tornar formatos de ficheiro proprietários pesquisáveis no MOSS, tendo que para tal ser instalado um iFilter de forma a que o motor de indexação do MOSS possa ler o conteúdo dos ficheiros e indexá-los.

Para tornar conteúdos de aplicações LOB pesquisáveis, deve ser usado o BDC. Deve ser criado o ficheiro xml de meta dados (metadata.xml). No ficheiro de meta dados devem ser especificados:

  • Entidades
  • Métodos – devem ser especificados métodos Finder e SpecificFinder de forma a que os dados possam ser pesquisados.
Como efectuar pesquisas no MOSS a partir de aplicações e apresentar os resultados

Podem ser usados 3 métodos:

Informação adicional: http://msdn2.microsoft.com/en-us/library/bb887531.aspx

ARC04 – Database Design Patterns: Boas Práticas para os Modelos de Dados

Orador: Stephen Forte, Corzen, Inc. (Blog: http://www.stephenforte.net/)

Esta sessão foi muito interessante, das mais interessantes a que assisti. O orador (americano) é um comunicador nato, cativando desde o início a audiência. Durante a sessão foram abordados dois tópicos essenciais:

  • Data Model Patterns
  • Infrastructure Patterns – Data Partitioning
Data Model Patterns

Existem 3 patterns:

  • Transactional Design Pattern – este modelo deve ser usado para as bases de dados operacionais, com elevado nível de transacções (OLTP), tipicamente bases de dados de suporte ao negócio. O modelo de dados deve ser definido para que a base de dados se encontre normalizada. Não devem ser usados índices de forma a evitar perdas de performance nas operações de insert, delete e update.
  • Slowly Changing Dimensions Design Pattern (SCD)– esta pattern deve ser usada para bases de dados de reporting e consulta de informação. O seu preenchimento é feito a partir da BD OLTP, devendo a a estrutura da BD ser desnormalizada e as tabelas desenhadas de forma a agregar toda a informação que se pretenda consultar na mesma tabela de forma a simplificar as querys (evitando joins com outras tabelas) e desta forma conseguir-se querys mais rápidas. Com este modelo evita-se que as querys de report sejam efectuadas sobre a BD OLTP. Neste tipo de BDs, podem e devem ser usados índices para acelerar as querys.
  • Data Warehouse Design Pattern – este modelo é uma extensão do anterior, tendo um pouco mais de estrutura (existem N tabelas de dimensão [Tempo, Produto, Sexo, etc] e uma tabela de Factos [com uma chave estrangeira para cada tabela de dimensões] onde são guardados os dados a partir da BD OLTP). Este modelo deve ser usado em detrimento do SCD em BDs com volumes massivos de dados.

Existem várias formas para popular as BDs SCD ou DW: por T-SQL, DTS, SSIS, etc.

Foi dado um exemplo concreto da utilização destes modelos: a Amazon.com usa uma BD OLTP para todas as ordens de compra e uma BD SCD para os catálogos de produtos.

Infrastructure Patterns – Data Partitioning

Os patterns seguintes devem ser usados quando se tiver um volume muito grande de informação e as querys à BD começarem a ficar lentas.

Existem 2 patterns:

  • Horizontal Partitioning – consiste em dividir os dados em várias tabelas com a mesma estrutura. Exemplos: dados anuais, dados semestrais, etc conforme o volume de dados.
  • Vertical Align – consiste em dividir os dados em duas ou mais tabelas, mantendo o número de registos intacto. Numa tabela, são guardados as colunas mais acedidas (ex: nome, email, etc), colocando-se na(s) restante(s) as colunas menos acedidas.

Estas duas patterns podem ser usadas em conjunto.

O particionamento de dados pode também ser feito, separando os dados em vários discos, de forma a que se um disco ficar inoperacional, os outros continuam a funcionar.

COL01 – Gestão de Conteúdos e Usabilidade com Sharepoint (MOSS)

Oradores: Carla Faria e Luís Calado, Microsoft

Esta sessão foi composta por duas partes distintas, apresentadas por cada um dos oradores:

  • Acessibilidade na Web em geral – Carla Faria
  • Acessibilidade com SharePoint (MOSS) – Luís Calado
Acessibilidade na Web em geral

A Carla Faria é uma especialista em acessibilidade na Web. De seguida, fica um resumo das "guidelines" de acessibilidade apresentadas na sessão:

Acessibilidade com SharePoint (MOSS)

O Luís deixou alguns conselhos práticos para melhorar a acessibilidade dos sites em MOSS:

  • Incluir textos alternativos para todos os elementos textuais
  • Utilizar tamanhos de letra relativos (usar font-size na unidade ".em") em detrimento de tamanhos fixos (http://www.bigbaer.com/css_tutorials/css_font_size.htm e http://clagnut.com/blog/348/)
  • Em WCM, evitar usar Web parts J ou alterar forma de renderização das Web part zones
  • Utilizar sempre que possível controlos de publicação MOSS ou web controls ASP.NET sempre que possível em deterimento de web parts
  • Incorporação de solução de terceiros para edição de conteúdos (Telerik RAD Editor – W3C WAG level A)
  • Começar sempre por desenhar master page mínima
  • Validar página para acessibilidade = validar master page + validar page layouts + validar conteúdos
  • Nos menus SharePoint, não usar a classe Menu do ASP.NET mas antes renderizar <ul><li>.

Encontra-se em http://www.codeplex.com/aks o Accessibility Toolkit for SharePoint (AKS), um conjunto de templates, master pages, controlos e web parts acessíveis. Este toolkit é instalado através de um solution package (.wsp) e contém alterações à implementação das web part zones. Na próxima versão do AKS vai ser lançado um gestor de conteúdos acessível (Accessible Rich Text Editor [aRTE]). O roadmap do AKS encontra-se disponível em http://blogs.msdn.com/sharepoint/archive/2008/03/12/announcing-accessibility-kit-for-sharepoint-1-1-and-future-roadmap.aspx.

DEV06 – ADO.NET Entity Framework e LINQ To Entities

Orador: Luís Falcão (ISEL)

Nesta sessão foi abordada a ADO.NET Entity Framework (http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx), uma nova framework cujo objectivo é o de aumentar o nível de abstracção no que diz respeito à programação da camada de acesso a dados. Um dos problemas mais comuns no desenho das classes DAL é o esforço associado ao mapeamento entre as classes DAL e a BD. A Entity Framework permite facilitar esta tarefa ao disponibilizar um diagrama integrado no Visual Studio 2008. Usando o Solution Explorer é possível importar todo a estrutura de uma base de dados para um diagrama de classes que é a transformação do modelo de dados num modelo de classes mapeado directamente com a estrutura da BD. Depois é possível definir novas relações entre as classes, definir heranças entre classes (não é possível definir herança ao nível da BD), mapear os dados de uma classe para que estes sejam divididos entre duas ou mais tabelas entre outras funcionalidades.

Na nova API vem incluído um novo .NET provider para Entity Framework (Entity Client) que é o correspondente ao SqlClient (para SQL Server) para actuar sobre as entidades criadas com a Entity Framework.

Ainda se encontra em versão beta e nesta fase só permite gerar o Entity Model a partir da BD, não permitindo ainda criar primeiro o modelo antes e gerar a BD a partir deste.

LEAVE A REPLY

Please enter your comment!
Please enter your name here