sábado, 24 de dezembro de 2011

Ferramentas de Mapeamento Objecto-Relacional

Ferramentas de mapeamento Objecto-Relacional (do inglês Object-Relational Mapping Tools ou ORM tools) são ferramentas de middleware usadas para criar uma camada de abstracção orientada a objectos, para o programador, enquanto lidam com os dados num formato relacional, na base de dados.

As ferramentas ORM fornecem, assim, uma camada de abstracção que permite ao programador abstrair-se do formato físico em que os dados estão armazenados. A gestão a persistência dos dados é delegada na ferramenta de ORM, permitindo ao programador trabalhar ao nível do código com objectos que instanciam o modelo de domínio, desenvolvido na fase de modelação do software, em vez de ter que usar estruturas com o formato das tabelas da base de dados.

As ferramentas de mapeamento objecto-relacional estabelecem uma ligação bidirecional entre os objectos no código e os dados na base de dados relacional.

Há diversas ferramentas ORM, tanto comerciais como livres (ver Lista de software ORM), de entre as quais a mais usada no mundo Java é decerto o Hibernate, e no mundo .Net, o NHibernate e o ADO.Net Entity Framework.

Mais leitura:
      - Choosing an object-relational mapping tool
      - Hibernate.org
      - ADO.Net Entity Framework at a glance

Outros artigos relacionados:
    - ADO.Net Entity Framework
    - Começar a usar o .Net Entity Framework - 1
    - Começar a usar o .Net Entity Framework - 2
    - Utilização do Hibernate para Java - 1
    - Utilização do Hibernate para Java - 2

sexta-feira, 23 de dezembro de 2011

Começar a usar o .Net Entity Framework - 2

Depois de criado o projeto Windows Forms Application, e gerado o modelo de dados a partir da base de dados, vamos ver como podemos aceder à base de dados através do modelo, usando um pequeno exemplo ilustrativo.

No form Form1 criado automaticamente ao criar o projecto Windows Forms Application, vamos criar uma comboBox, arrastando a partir da toolbox. 


No separador de propriedades (Properties) mudemos-lhe o nome para viaturasBox1.





Começar a usar o .Net Entity Framework - 1


Este artigo ilustra a criação de um modelo Entity Framework e a sua utilização num pequeno programa em C# para ambiente Windows (Windows Forms Application).
Para implementar este exemplo é necessário ter o Visual Studio 2010 instalado (com o 2008 também deve funcionar), assim como a framework .Net 3.5 SP1 ou superior.
Para além disso, é necessário aceder a um serviço de base de dados, pelo que, como primeira abordagem, se aconselha a usar o Microsoft SQL Server 2008.

(Este exemplo foi atualizado para o .Net Framework 4.5, e utilizando o VS 2013)
1. O primeiro passo consiste em criar um novo projecto do tipo Windows Forms Application.



ADO.Net Entity Framework


O Entity Framework é um conjunto de tecnologias do ADO.NET que suportam o desenvolvimento de software orientado aos dados (data-oriented).
Tipicamente, hoje em dia, os programadores de aplicações orientadas aos dados efectuam a modelação das entidades e relacionamentos numa forma orientada por objectos, e depois têm que lidar com o formato em que têm que colocar essas entidades num motor de base de dados. Os dados podem ser fisicamente distribuídos por diversos sistemas de armazenamento e, mesmo as aplicações que trabalham com apenas um sistema de base de dados, têm que fazer compromissos entre o formato lógico dos dados modelados, presente no modelo, e o formato físico, fácil de manter e orientado a um acesso eficiente.
O Entity Framework permite aos programadores trabalharem com os dados no formato de objectos específicos do domínio, conforme modelado no modelo abstracto de dados, sem se preocuparem com as tabelas da base de dados onde os mesmos estão armazenados.
Com o Entity Framework, os programadores podem trabalhar a um nível de abstracção mais elevado do que quando têm que lidar directamente com os dados, e podem criar e manter aplicações orientadas aos dados com menos código do que em aplicações tradicionais.
Como o Entity Framework é um componente da .NET Framework, as aplicações que usam o Entity Framework podem correr em qualquer computador em que está instalada a framework .Net, acima da versão 3.5 SP1.

No próximo artigo veremos um pequeno exemplo de como usar o ADO.Net Entity Framework.


Outros artigos relacionados:
    - Começar a usar o .Net Entity Framework - 1
    - Começar a usar o .Net Entity Framework - 2

sexta-feira, 28 de outubro de 2011

Como instalar uma extensão no Joomla (1.7)

O Joomla é muito bom. Bastam as features com que vem de origem para fazer websites bastante completos e com um “look” profissional.

Mas, ao fim de algum tempo surge a necessidade de, no site que montámos, incluir algo que não é possível com os módulos de origem.

Então, é necessário instalar uma extensão no Joomla. Em http://extensions.joomla.org/ ou http://developer.Joomla.org, entre outros sítios, é possível pesquisar e encontrar diversas extensões para o Joomla.

Há cinco tipos principais de extensões, no Joomla: Componentes, Módulos, Plugins, Templates, e Linguagens. Cada um dos tipos lida com funcionalidade específica (ver http://docs.joomla.org/Extension_types_(general_definitions)).

Outras possíveis extensões são Library e File. Libraries são pacotes de código que fornecem funcionalidade à framework Joomla ou às suas extensões. File são ficheiros.

Instalar o Joomla...

O Joomla é outro conhecido framework de portal, disponibilizado sob a licença GNU/GPL, que parece ser o sucessor do PHP-Nuke.

A sua instalação é muito parecida à do PHP-Nuke, e torna-se bastante trivial, após instalação do XAMP (descrita noutro post).

A versão que instalei foi a 1.7.2 e segui os passos indicados em http://docs.joomla.org/Use_Joomla!_on_your_own_computer, apesar de ter feito a instalação no Windows.

No entanto, para o Windows, a instalação parece ser bastante mais fácil, podendo ser usado um instalador Web --> http://www.microsoft.com/web/joomla/

Esse instalador instala os pré-requisitos, assim como o Webmatrix, para além do Joomla, obviamente.

Instalar o PHP-Nuke...

O PHP-Nuke é um conhecido framework de portal, disponibilizado sob a licença GNU/GPL, no qual podem ser instalados inúmeros módulos, ou para o qual podem ser desenvolvidos novos módulos em Php.

Instalei-o hoje no meu PC (WINDOWS 7) e decidi resumir neste post a forma como resolvi os problemas.

Para a instalação do PHP-Nuke, e uma vez que não tinha instalado o Apache, PHP e MySQL, foram feitos os seguintes passos:

- Download do XAMPP (bundle que traz o Apache, PHP e MySQL)
- Instalar o XAMPP.
- Arrancar os serviços (previamente desligar o IIS)
- Download do PHP-Nuke e descompactá-lo para uma directoria
- Correr o PHP-Nuke (obviamente dá erro, mas disponibiliza um link para a instalação fácil)
- Alterar o php.ini para ignorar warnings de funções antigas

Os pontos 1 e 2 são triviais. O XAMPP pode ser downloaded de http://www.apachefriends.org/en/xampp-windows.html ou http://www.baixaki.com.br/download/xampp.htm.

Eu usei a versão XAMPP 1.7.7, que inclui:

- Apache 2.2.21
- MySQL 5.5.16
- PHP 5.3.8
- phpMyAdmin 3.4.5
- FileZilla FTP Server 0.9.39
- Tomcat 7.0.21 (with mod_proxy_ajp as connector)

Já, no ponto 3, o arranque do Apache na porta 80, está dependente da desactivação do IIS (ou arrancar um deles noutra porta...)

--> Para desactivar o IIS basta ir ao Painel de Controlo-->Sistema e Segurança-->Ferramentas Administrativas, abrir o Gestor de Serviços de Informação Internet (IIS) e parar o serviço.

O ponto 4, download do PHP-Nuke, pode ser feito de http://phpnuke.org/index.php. Usei a versão 8.2, e descompactei-o para htdocs\phpnuke.

Depois, corri o phpnuke descompactado, o que provoca um warning de uma função "deprecated", mas disponibiliza um link para uma instalação fácil (não vou falar do outro modo de instalação porque não foi necessário usá-lo).

Este passo pede diversa informação, entre a qual está o nome da BD do MySQL onde vai ser instalada a BD do Nuke.

Após a instalação, ao correr o PHP-Nuke instalado, aparece a primeira página do portal, mas com uma lista de várias linhas com warnings de funções "deprecated". Isto não impede o Nuke de correr correctamente, mas obviamente não fica bem no nosso portal. A maneira mais simples de contornar este problema é "esconder essas mensagens", alterando o ficheiro php.ini com as duas linhas seguintes:

display_errors = off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

Isto resolve o problema e permite-nos começar a explorar o Nuke.