Tuesday, August 23, 2005

Software Factories/Workbenches

O tema de software factories (e Domain Specific Languages) tem estado a surgir em força, a meu ver ligado em parte à necessidade de aumentar a produtividade no desenvolvimento de software, bem como a temas como geração de código.


Do que já li sobre o assunto, destaco o seguinte:


Language Workbenches: The Killer-App for Domain Specific Languages? (by Martin Fowler)
Artigo muito interessante que descreve a visão do autor sobre Language Workbenches (o nome que dá às "Software Factories"). De resto, a grande maioria dos artigos dele são de leitura muito interessante.


The Case for Software Factories, by Jack Greenfield (Microsoft)
Sobre a motivação para SF's, que saiu no Architect's Journal.


Software Product Lines, Software Factories, Guidance Automation Toolkit and Domain Specific Languages (PDF), by Clipcode
Também introdutório/motivacional, mas tem vários links interessantes a visitar.


Software Factories Assembling Applications with Patterns, Models, Frameworks and Tools (PDF), by Jack Greenfield and Keith Short (Microsoft)


E o livro, na Amazon: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, por Jack Greenfield, Keith Short, e outros.


Para quem já tem o VS2005 Beta 2 instalado, um conceito muito interessante - parte integrante das funcionalidades de "SW Factories" - é o do Guidance Automation Toolkit, que permite programar/configurar extensões para o VS2005. Um exemplo clássico é ter um "wizard" de criação de uma nova Solution, que depois de pedir alguns dados ao utilizador, gera projects para Data, Business, Service, etc., preenche configurações como a Strong Key e a Company, gera código de acesso a dados, inclui as classes da Enterprise Library, etc. A primeira vez que ouvi falar disto foi na conferência de Patterns&Practices em 2004 em Reading (UK), numa apresentação sobre o EDRA pelo Wojtek Kozaczynski, e motivado inicialmente pela complexidade de configuração desse desenvolvimento. Este é um dos sites de referência sobre o GAT (o blog do Cazzulino é o outro).


A terminar, duas notas soltas:


Thursday, August 11, 2005

Oracle e Enterprise Library

(em resposta a um pedido num comentário)


Para se usar o Enterprise library para conexão ao Oracle deve usar-se a aplicação "Entreprise Library Configuration" que é instalada com a Entreprise Library. Efectuar os passos seguintes:


1. Abra a aplicação, vá a "File > Open Application" e escolher o web.config ou a app.config da aplicação a configurar.


2. Clicar com o lado direito do rato sobre “Application” seleccionar “New > Data Access Application Block”, e surge a configuração de acesso a bases de dados é mostrada.


Screenshot1


3. Escolher uma nova “Database Type”, para Oracle, pois por omissão só vem uma criada para SqlServer, usando o botão direito do rato sobre “Database Types” e escolhendo Oracle.


Screenshot 2


4. Criar a conexão à base de dados usando o botão do lado dto do rato sobre “Connection Strings > New > Oracle Connection String”


5. Criar os parâmetros da “Connection String” com nome do parâmetro/valor que vão ser usados para aceder à base de dados Oracle.


Screenshot 3


6. Criar uma nova instância, escolhendo o tipo de base de dados “Oracle” e a conexão à base de dados “Oracle Connection String”. O nome da instância é o parâmetro que vai ser usado no código.


Screenshot 4 

7. Exemplo de invocação (C#):

Database database = DatabaseFactory.CreateDatabase(“Oracle Instance criada no ponto 6”);
DBCommandWrapper command = database.GetStoredProcCommandWrapper("ex. Procedure/package");
command.AddInParameter("Parameter name", DbType.AnsiString, parameterValue);
database.ExecuteScalar(command);


Tiago Oliveira