Posts

Showing posts from August, 2009

Interoperabilidade na prática JEE 5(JBoss) com .NET (C# framework 3.5) parte 2

Image
No post anterior mostrei como criar um Webservice em Java EE5 usando EJB3 e rodando a aplicação no JBoss AS 5.1, o webservice foi consumido em uma aplicação C#. Tudo isso foi possível por que as duas implementações(java e .net) implementam WS-I Basic Profile.

Neste post vou mostrar como criar um Webservice em Aspx usando C# como linguagem de implementação e vamos consumir este Webservice com uma aplicação Java usando o Jax-WS. Antes de começar vamos as dependências para execução destas aplicações.



Dependências das Aplicações
Java JDK 6_16Jax-WS 2.1.x
eclipse 3.4.x
Visual Studio 2008SoapUIAplicação .net

Agora vamos criar a aplicação .net que disponibiliza um Webservice. Abra o visual studio 2008 e crie uma aplicação do tipo ASP.NET Web Service, o visual studio vai criar um código de exemplo com um olá mundo, nos vamos modificar este código.

Atenção: O Visual Studio se perde quando mudamos o namespace e o nome da classe do Webservice, você precisa abrir o arquivo asmx e ajustar para o namesp…

Interoperabilidade na prática JEE 5(JBoss) com .NET (C# framework 3.5) parte 1

Image
O desenvolvimento de software corporativo de hoje tem que suportar a interoperabilidade de serviços entre diversas plataformas, neste post vou mostrar como podemos fazer serviços/aplicações escritas em Java com JEE 5 no Jboss 5.1 conversar com uma aplicação C# com .net Framework 3.5.

Vou realizar esta conversa usando Webservice, tanto a solução do lado do Java como a solução do lado do .Net precisam implementar WS-I Basic Profile 1.1, quando criamos um Webservice com C# no .net Framework 3.5 ele já implementa WS-I Basic profile 1.1 o mesmo acontece ao utilizarmos do lado do Java o Jax-WS 2.x. Como vou rodar a solução Java no JBoss AS 5.01GA vamos estar utilizando o JBoss WS.
Interoperabilidade de Webservices

Na prática webservices não são 100% interoperaveis, ainda existem diversos gaps para realizar a comunicação, mas existe uma organização que é a WS-I que define os padrões de comunicação para padronização de interoperabilidade de webservices. No total existem mais de 50 especificaçõ…

PaaS, Cloud Computing, Virtualização e o Futuro parte 2

Image
No post anterior PaaS, Cloud Computing, Virtualização e o Futuro parte 1 comentei sobre algumas deficiências que existem hoje em dia no desenvolvimento de software. Dentre elas foquei nas dificuldades de criar um software que se escalável e no descolamento que existe do desenvolvimento para produção/operação.

Na continuação do assunto, gostaria de salientar o obvio, ou seja, não existe bala de prata, PaaS, Cloud Computing e Virtualização não são soluções para todos os problemas e para todos os tipos de aplicações e cenários. Então vou começar falando um pouco mais do que se trata estas tecnologias, focando em conceito.

Depois irei falar sobre o que anda acontecendo no mercado e o que pode vir a ser o futuro, acredito que muita inovação vai surgir nos próximos 2 anos e pode ser o novo paradigma de desenvolvimento de software.



Virtualização

Em poucas palavras estamos falando de abstração. Pode ser abstrair/deixar transparente o hardware, mas você tem acesso a este hardware mas como se foss…

PaaS, Cloud Computing, Virtualização e o Futuro parte 1

Image
Nestes últimos anos a tecnologia evoluiu muito, principalmente pela necessidade cada vez maior de termos sistemas escaláveis e com um menor custo de operação. Quando estamos desenvolvendo software em média estamos falando só de 20% do tempo de vida da aplicação, ou seja, a maior fatia da aplicação ela vai estar em produção.

Com a tecnologia atual ainda é muito forte a necessidade de se ter uma boa arquitetura e pensar muito em como desenvolver aplicações, isto envolve pessoas + ferramentas e Processo acredito que isso não vai mudar, mas podemos ter facilidades que hoje não se utilizadas ou não estão acessíveis a todos.

Teoricamente plataformas como a da Sun(Java) e a da Microsoft(.net) já nos provem diversas facilidades as mesmas que não existiam quando se programava em C ou até mesmo Clipper. Ja foi um grande salto de paradigma da programação estruturada para a OO e para as plataformas de Java e .net porem ainda falta muito.



Cada vez mais as aplicações ficam mais complexas, mais usuári…

Curso Gratuito de Spring Framework

Em 2007 eu criei este curso de Spring framework. Hoje é com grande satisfação que venho disponibilizar este material. Você pode baixar o material e utiliza-lo para estudo e até mesmo para ministrar cursos.

Neste curso são abordados as principais funcionalidades do núcleo do Spring Framework...



Confira a apostila completo do curso a baixo:

Spring Framework 2.0 - Diego Pacheco

Este curso conta com 5 slides para condução do curso, você pode obter todos estes slides na minha conta do SlideShare, dentre outras apresentações que fiz. Confira os Slides a baixo:

Spring Capitulo 01View more presentations from Diego Pacheco.

Spring Capitulo 02View more presentations from Diego Pacheco.

Spring Capitulo 03View more presentations from Diego Pacheco.

Spring Capitulo 04View more presentations from Diego Pacheco.

Refactoring de Banco de Dados com Liquibase: Parte 2 Liquibase e Maven 2

Image
No post anterior comentei sobre a importância das práticas da engenharia como refactoring e versionamento aplicados ao Banco de Dados. Neste post vou mostrar como usar o Liquibase na prática com Apache Maven 2.

A utilização em conjunto com Maven 2 é muito produtiva por dois fatores, o primeiro é que você pode criar um projeto Java no eclipse e utilizar o seu plugin de SCM sendo do CVS ou Subversion para versionar o projeto. O Segundo motivo é você pode colocar este projeto no seu servidor de build continuo e tendo assim as mudanças do desenvolvimento e banco acontecendo de forma igual e no mesmo momento.



A Estrutura básica do Projeto

Você poderia estruturar o projeto de várias formas, no site do liquibase existem algumas boas práticas de como estruturas os conjuntos de mudanças. Vamos a estrutura do projeto que criei:
src/main/resources/changelogssrc/main/resources/database-confsrc/main/resources/sqlsrc/main/resources/start-scriptpom.xmlNo arquivo pom.xml que ficam as configurações para…

Refactoring de Banco de Dados com Liquibase: Parte 1 Conceitutal

Image
Faz tempo que o banco de dados deixou de ser um mero repositório. Hoje em dia os bancos de dados tem muito mais do que um mero repositório. Muitas aplicações tem diversos pontos em banco de dados, quando a maior parte de aplicação já não esta no banco.

Quando olhamos para o desenvolvimento de software nos dias de hoje podemos perceber a utilização de diversas práticas e métodos da engenharia como Integração Continua, Sandboxes, Testes, Versionamento, Refactoring e muito mais. Mas e o banco de dados? Na maioria das vezes não utiliza estas práticas.

A não utilização das práticas de desenvolvimento junto ao banco de dados tem motivos, dentre eles saliente a própria questão cultural. Em muitas empresas a equipe é dividia em desenvolvimento e banco de dados, logo que mexe com Java, .NET, Delphi ou qualquer linguagem por exemplo não é do mesmo grupo das pessoas que lidam com o banco.

Outro fator é o paradigma, muitas vezes as equipes responsáveis pelo banco de dados estão atreladas a um para…

Testes Unitários na prática com Spring, TestNG, Mockito e Maven 2 : Parte 3

Na parte 1 desta séria de postes comentei sobre a integração de soluções para testes como o TestNG e o Mockito mostrando um domínio básico de um aplicação para efetuarmos testes. Na parte 2 mostrei na prática como criar um teste com Spring, testNG e rodar tudo através do Maven 2.

Neste post vou falar mais de alguns recursos do TestNG e mostrar como utilizar o Mockito e bem como as possibilidades e cenários de uso deste tipo de soluções para testes. Continuando o assunto com testNG vou falar de alguns recursos da solução utilizando anotações.



Anotações de @Before... e @After...

O TestNG tem algumas anotações muito úteis. Para setup de testes e grupos de testes, isso nos possibilita montar o ambiente necessário para execução dos testes. Também possibilita a limpeza do cenário dos testes entre uma execução e outra. Confira as anotações:
@BeforeClass@AfterClass@BeforeMethod@AfterMethodAs anotações de Before e After significam que o método anotado vai rodar antes ou depois. Este antes ou dep…